#ifndef NICO_EGRESS #define NICO_EGRESS /********************** ROUTING (egress definiton) TABLES ***********************************/ action set_egress_port (port_t out_port) { #ifndef _SUME_SWITCH_P4_ standard_metadata.egress_spec = out_port; #else sume_metadata.dst_port = out_port; #endif } action set_egress_port_and_mac (port_t out_port, mac_addr_t mac_addr) { hdr.ethernet.dst_addr = mac_addr; set_egress_port(out_port); } table v6_networks { key = { hdr.ipv6.dst_addr: lpm; } actions = { set_egress_port; set_egress_port_and_mac; controller_debug; controller_reply; controller_debug_table_id; NoAction; } size = ROUTING_TABLE_SIZE; default_action = controller_debug_table_id(TABLE_V6_NETWORKS); } table v4_networks { key = { hdr.ipv4.dst_addr: lpm; } actions = { set_egress_port; set_egress_port_and_mac; controller_debug; controller_debug_table_id; NoAction; } size = ROUTING_TABLE_SIZE; default_action = controller_debug_table_id(TABLE_V4_NETWORKS); } #endif