• p4 learningrepeater


    /* -*- P4_16 -*- */
    #include <core.p4>
    #include <v1model.p4>
    
    /*************************************************************************
    *********************** H E A D E R S  ***********************************
    *************************************************************************/
    
    struct metadata {
    }
    
    struct headers {
    }
    
    /*************************************************************************
    *********************** P A R S E R  ***********************************
    *************************************************************************/
    
    parser MyParser(packet_in packet,
                    out headers hdr,
                    inout metadata meta,
                    inout standard_metadata_t standard_metadata) {
    
          state start{
              transition accept;
          }
    }
    
    /*************************************************************************
    ************   C H E C K S U M    V E R I F I C A T I O N   *************
    *************************************************************************/
    
    control MyVerifyChecksum(inout headers hdr, inout metadata meta) {
        apply {  }
    }
    
    
    /*************************************************************************
    **************  I N G R E S S   P R O C E S S I N G   *******************
    *************************************************************************/
    
    control MyIngress(inout headers hdr,
                      inout metadata meta,
                      inout standard_metadata_t standard_metadata) {
    
        /* TODO 1: For solution 2 -> define a table that matches standard_metadata.ingress_port */
    	action l2_fwd(bit<9> egress_port) {
    	    standard_metadata.egress_spec = egress_port;
    	}
    	
    	table fwd {
    		key = {
    			standard_metadata.ingress_port;
    		}
    		actions = {
    			l2_fwd;
    			NoAction;
    		}
    		size:512;
    		default_action:NoAction();
    	}
    	
        /* TODO 2: For solution 2 -> define an action that modifies the egress_port */
    
        apply {
            fwd.apply();
            /* TODO 3:*/
            /* Solution 1: Without tables, write the algorithm directly here*/
            /* Solution 2: Apply the table you use */
    
        }
    }
    
    /*************************************************************************
    ****************  E G R E S S   P R O C E S S I N G   *******************
    *************************************************************************/
    
    control MyEgress(inout headers hdr,
                     inout metadata meta,
                     inout standard_metadata_t standard_metadata) {
        apply {  }
    }
    
    /*************************************************************************
    *************   C H E C K S U M    C O M P U T A T I O N   **************
    *************************************************************************/
    
    control MyComputeChecksum(inout headers  hdr, inout metadata meta) {
        apply { }
    }
    
    /*************************************************************************
    ***********************  D E P A R S E R  *******************************
    *************************************************************************/
    
    control MyDeparser(packet_out packet, in headers hdr) {
        apply {
    
        /* Deparser not needed */
    
        }
    }
    
    /*************************************************************************
    ***********************  S W I T C H  *******************************
    *************************************************************************/
    
    V1Switch(
    MyParser(),
    MyVerifyChecksum(),
    MyIngress(),
    MyEgress(),
    MyComputeChecksum(),
    MyDeparser()
    ) main;
    ) main;
    

      

  • 相关阅读:
    gitlab搭建
    .NET Core 跨平台物联网开发:设置委托事件(二)
    .NET Core 跨平台物联网开发:连接阿里云IOT(一)
    Orange Pi 3 GPIO 笔记
    树莓派踩坑备忘录 -- 使用 Linux
    .NET Core / C# 开发 IOT 嵌入式设备的个人见解
    阿里云 IOT 对接设备开发 C# 开发设备对接阿里云 IOT平台
    跨平台开发 -- C# 使用 C/C++ 生成的动态链接库
    .NET Core 使用 EF 出错的解决方法
    arm 开发板更新 gcc/gcc++ | Debain 更新 gcc,无需编译直接更新 gcc
  • 原文地址:https://www.cnblogs.com/grglym/p/16285186.html
Copyright © 2020-2023  润新知