First stab at BNG support in fabric.p4
This implementation is derived from Deutsche Telekom contribution:
https://github.com/opencord/p4se
It supports basic upstream and downstream termination based on double
VLAN tags and PPPoE, including counters and downstream metering.
Change-Id: I940959f2338d7319654cf665f6cfe2de7200616b
diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java
index 882a624..eb927ad 100644
--- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java
+++ b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java
@@ -33,90 +33,140 @@
}
// Header field IDs
- public static final PiMatchFieldId HDR_ICMP_CODE =
- PiMatchFieldId.of("icmp_code");
public static final PiMatchFieldId HDR_IG_PORT =
PiMatchFieldId.of("ig_port");
- public static final PiMatchFieldId HDR_ETH_DST =
- PiMatchFieldId.of("eth_dst");
- public static final PiMatchFieldId HDR_GTP_IPV4_DST =
- PiMatchFieldId.of("gtp_ipv4_dst");
public static final PiMatchFieldId HDR_VLAN_IS_VALID =
PiMatchFieldId.of("vlan_is_valid");
- public static final PiMatchFieldId HDR_IPV4_DST =
- PiMatchFieldId.of("ipv4_dst");
- public static final PiMatchFieldId HDR_INT_IS_VALID =
- PiMatchFieldId.of("int_is_valid");
- public static final PiMatchFieldId HDR_EG_PORT =
- PiMatchFieldId.of("eg_port");
- public static final PiMatchFieldId HDR_EG_SPEC =
- PiMatchFieldId.of("eg_spec");
+ public static final PiMatchFieldId HDR_IPV6_SRC_NET_ID =
+ PiMatchFieldId.of("ipv6_src_net_id");
+ public static final PiMatchFieldId HDR_C_TAG = PiMatchFieldId.of("c_tag");
public static final PiMatchFieldId HDR_IPV4_SRC =
PiMatchFieldId.of("ipv4_src");
public static final PiMatchFieldId HDR_IPV6_DST =
PiMatchFieldId.of("ipv6_dst");
- public static final PiMatchFieldId HDR_ETH_TYPE =
- PiMatchFieldId.of("eth_type");
- public static final PiMatchFieldId HDR_MPLS_LABEL =
- PiMatchFieldId.of("mpls_label");
- public static final PiMatchFieldId HDR_ETH_SRC =
- PiMatchFieldId.of("eth_src");
- public static final PiMatchFieldId HDR_IP_PROTO =
- PiMatchFieldId.of("ip_proto");
public static final PiMatchFieldId HDR_L4_DPORT =
PiMatchFieldId.of("l4_dport");
- public static final PiMatchFieldId HDR_NEXT_ID =
- PiMatchFieldId.of("next_id");
- public static final PiMatchFieldId HDR_ICMP_TYPE =
- PiMatchFieldId.of("icmp_type");
+ public static final PiMatchFieldId HDR_PPPOE_CODE =
+ PiMatchFieldId.of("pppoe_code");
+ public static final PiMatchFieldId HDR_IPV6_SRC =
+ PiMatchFieldId.of("ipv6_src");
+ public static final PiMatchFieldId HDR_ETH_SRC =
+ PiMatchFieldId.of("eth_src");
+ public static final PiMatchFieldId HDR_S_TAG = PiMatchFieldId.of("s_tag");
public static final PiMatchFieldId HDR_VLAN_ID =
PiMatchFieldId.of("vlan_id");
+ public static final PiMatchFieldId HDR_ETH_DST =
+ PiMatchFieldId.of("eth_dst");
+ public static final PiMatchFieldId HDR_ICMP_TYPE =
+ PiMatchFieldId.of("icmp_type");
+ public static final PiMatchFieldId HDR_IPV4_DST =
+ PiMatchFieldId.of("ipv4_dst");
+ public static final PiMatchFieldId HDR_IPV6_TRAFFIC_CLASS =
+ PiMatchFieldId.of("ipv6_traffic_class");
+ public static final PiMatchFieldId HDR_IPV6_DST_NET_ID =
+ PiMatchFieldId.of("ipv6_dst_net_id");
+ public static final PiMatchFieldId HDR_ETH_TYPE =
+ PiMatchFieldId.of("eth_type");
+ public static final PiMatchFieldId HDR_NEXT_ID =
+ PiMatchFieldId.of("next_id");
public static final PiMatchFieldId HDR_L4_SPORT =
PiMatchFieldId.of("l4_sport");
+ public static final PiMatchFieldId HDR_ICMP_CODE =
+ PiMatchFieldId.of("icmp_code");
+ public static final PiMatchFieldId HDR_IPV4_ECN =
+ PiMatchFieldId.of("ipv4_ecn");
+ public static final PiMatchFieldId HDR_PPPOE_SESSION_ID =
+ PiMatchFieldId.of("pppoe_session_id");
+ public static final PiMatchFieldId HDR_EG_SPEC =
+ PiMatchFieldId.of("eg_spec");
+ public static final PiMatchFieldId HDR_LINE_ID =
+ PiMatchFieldId.of("line_id");
+ public static final PiMatchFieldId HDR_IPV4_DSCP =
+ PiMatchFieldId.of("ipv4_dscp");
+ public static final PiMatchFieldId HDR_EG_PORT =
+ PiMatchFieldId.of("eg_port");
+ public static final PiMatchFieldId HDR_GTP_IPV4_DST =
+ PiMatchFieldId.of("gtp_ipv4_dst");
+ public static final PiMatchFieldId HDR_INT_IS_VALID =
+ PiMatchFieldId.of("int_is_valid");
+ public static final PiMatchFieldId HDR_MPLS_LABEL =
+ PiMatchFieldId.of("mpls_label");
+ public static final PiMatchFieldId HDR_IP_PROTO =
+ PiMatchFieldId.of("ip_proto");
+ public static final PiMatchFieldId HDR_PPPOE_PROTOCOL =
+ PiMatchFieldId.of("pppoe_protocol");
// Table IDs
- public static final PiTableId FABRIC_INGRESS_NEXT_MULTICAST =
- PiTableId.of("FabricIngress.next.multicast");
public static final PiTableId FABRIC_INGRESS_NEXT_HASHED =
PiTableId.of("FabricIngress.next.hashed");
- public static final PiTableId FABRIC_EGRESS_PROCESS_INT_MAIN_PROCESS_INT_SOURCE_TB_INT_SOURCE =
- PiTableId.of("FabricEgress.process_int_main.process_int_source.tb_int_source");
- public static final PiTableId FABRIC_INGRESS_FORWARDING_MPLS =
- PiTableId.of("FabricIngress.forwarding.mpls");
- public static final PiTableId FABRIC_INGRESS_PROCESS_SET_SOURCE_SINK_TB_SET_SINK =
- PiTableId.of("FabricIngress.process_set_source_sink.tb_set_sink");
- public static final PiTableId FABRIC_INGRESS_FORWARDING_ROUTING_V4 =
- PiTableId.of("FabricIngress.forwarding.routing_v4");
public static final PiTableId FABRIC_EGRESS_PROCESS_INT_MAIN_PROCESS_INT_TRANSIT_TB_INT_INSERT =
PiTableId.of("FabricEgress.process_int_main.process_int_transit.tb_int_insert");
- public static final PiTableId FABRIC_INGRESS_ACL_ACL =
- PiTableId.of("FabricIngress.acl.acl");
- public static final PiTableId FABRIC_INGRESS_NEXT_XCONNECT =
- PiTableId.of("FabricIngress.next.xconnect");
+ public static final PiTableId FABRIC_EGRESS_BNG_EGRESS_DOWNSTREAM_T_SESSION_ENCAP =
+ PiTableId.of("FabricEgress.bng_egress.downstream.t_session_encap");
public static final PiTableId FABRIC_INGRESS_FILTERING_FWD_CLASSIFIER =
PiTableId.of("FabricIngress.filtering.fwd_classifier");
- public static final PiTableId FABRIC_INGRESS_PROCESS_SET_SOURCE_SINK_TB_SET_SOURCE =
- PiTableId.of("FabricIngress.process_set_source_sink.tb_set_source");
- public static final PiTableId FABRIC_INGRESS_FORWARDING_BRIDGING =
- PiTableId.of("FabricIngress.forwarding.bridging");
- public static final PiTableId FABRIC_INGRESS_SPGW_INGRESS_S1U_FILTER_TABLE =
- PiTableId.of("FabricIngress.spgw_ingress.s1u_filter_table");
- public static final PiTableId FABRIC_EGRESS_PROCESS_INT_MAIN_PROCESS_INT_REPORT_TB_GENERATE_REPORT =
- PiTableId.of("FabricEgress.process_int_main.process_int_report.tb_generate_report");
- public static final PiTableId FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN =
- PiTableId.of("FabricIngress.filtering.ingress_port_vlan");
- public static final PiTableId FABRIC_INGRESS_SPGW_INGRESS_DL_SESS_LOOKUP =
- PiTableId.of("FabricIngress.spgw_ingress.dl_sess_lookup");
- public static final PiTableId FABRIC_EGRESS_EGRESS_NEXT_EGRESS_VLAN =
- PiTableId.of("FabricEgress.egress_next.egress_vlan");
+ public static final PiTableId FABRIC_INGRESS_NEXT_XCONNECT =
+ PiTableId.of("FabricIngress.next.xconnect");
public static final PiTableId FABRIC_INGRESS_NEXT_NEXT_VLAN =
PiTableId.of("FabricIngress.next.next_vlan");
public static final PiTableId FABRIC_INGRESS_NEXT_SIMPLE =
PiTableId.of("FabricIngress.next.simple");
+ public static final PiTableId FABRIC_INGRESS_NEXT_MULTICAST =
+ PiTableId.of("FabricIngress.next.multicast");
+ public static final PiTableId FABRIC_EGRESS_PROCESS_INT_MAIN_PROCESS_INT_SOURCE_TB_INT_SOURCE =
+ PiTableId.of("FabricEgress.process_int_main.process_int_source.tb_int_source");
public static final PiTableId FABRIC_INGRESS_FORWARDING_ROUTING_V6 =
PiTableId.of("FabricIngress.forwarding.routing_v6");
+ public static final PiTableId FABRIC_INGRESS_FORWARDING_MPLS =
+ PiTableId.of("FabricIngress.forwarding.mpls");
+ public static final PiTableId FABRIC_INGRESS_FORWARDING_ROUTING_V4 =
+ PiTableId.of("FabricIngress.forwarding.routing_v4");
+ public static final PiTableId FABRIC_INGRESS_ACL_ACL =
+ PiTableId.of("FabricIngress.acl.acl");
+ public static final PiTableId FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN =
+ PiTableId.of("FabricIngress.filtering.ingress_port_vlan");
+ public static final PiTableId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_T_PPPOE_CP =
+ PiTableId.of("FabricIngress.bng_ingress.upstream.t_pppoe_cp");
+ public static final PiTableId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_T_PPPOE_TERM_V4 =
+ PiTableId.of("FabricIngress.bng_ingress.upstream.t_pppoe_term_v4");
+ public static final PiTableId FABRIC_INGRESS_SPGW_INGRESS_S1U_FILTER_TABLE =
+ PiTableId.of("FabricIngress.spgw_ingress.s1u_filter_table");
+ public static final PiTableId FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_T_LINE_MAP_V6 =
+ PiTableId.of("FabricIngress.bng_ingress.downstream.t_line_map_v6");
+ public static final PiTableId FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_T_LINE_MAP_V4 =
+ PiTableId.of("FabricIngress.bng_ingress.downstream.t_line_map_v4");
+ public static final PiTableId FABRIC_INGRESS_FORWARDING_BRIDGING =
+ PiTableId.of("FabricIngress.forwarding.bridging");
+ public static final PiTableId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_T_LINE_MAP =
+ PiTableId.of("FabricIngress.bng_ingress.upstream.t_line_map");
+ public static final PiTableId FABRIC_INGRESS_SPGW_INGRESS_DL_SESS_LOOKUP =
+ PiTableId.of("FabricIngress.spgw_ingress.dl_sess_lookup");
+ public static final PiTableId FABRIC_EGRESS_EGRESS_NEXT_EGRESS_VLAN =
+ PiTableId.of("FabricEgress.egress_next.egress_vlan");
+ public static final PiTableId FABRIC_INGRESS_PROCESS_SET_SOURCE_SINK_TB_SET_SINK =
+ PiTableId.of("FabricIngress.process_set_source_sink.tb_set_sink");
+ public static final PiTableId FABRIC_EGRESS_PROCESS_INT_MAIN_PROCESS_INT_REPORT_TB_GENERATE_REPORT =
+ PiTableId.of("FabricEgress.process_int_main.process_int_report.tb_generate_report");
+ public static final PiTableId FABRIC_INGRESS_PROCESS_SET_SOURCE_SINK_TB_SET_SOURCE =
+ PiTableId.of("FabricIngress.process_set_source_sink.tb_set_source");
+ public static final PiTableId FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_T_QOS_V6 =
+ PiTableId.of("FabricIngress.bng_ingress.downstream.t_qos_v6");
+ public static final PiTableId FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_T_QOS_V4 =
+ PiTableId.of("FabricIngress.bng_ingress.downstream.t_qos_v4");
+ public static final PiTableId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_T_PPPOE_TERM_V6 =
+ PiTableId.of("FabricIngress.bng_ingress.upstream.t_pppoe_term_v6");
// Indirect Counter IDs
+ public static final PiCounterId FABRIC_EGRESS_BNG_EGRESS_DOWNSTREAM_C_LINE_TX =
+ PiCounterId.of("FabricEgress.bng_egress.downstream.c_line_tx");
public static final PiCounterId FABRIC_INGRESS_PORT_COUNTERS_CONTROL_EGRESS_PORT_COUNTER =
PiCounterId.of("FabricIngress.port_counters_control.egress_port_counter");
+ public static final PiCounterId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_C_DROPPED =
+ PiCounterId.of("FabricIngress.bng_ingress.upstream.c_dropped");
+ public static final PiCounterId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_C_CONTROL =
+ PiCounterId.of("FabricIngress.bng_ingress.upstream.c_control");
+ public static final PiCounterId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_C_TERMINATED =
+ PiCounterId.of("FabricIngress.bng_ingress.upstream.c_terminated");
+ public static final PiCounterId FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_C_LINE_RX =
+ PiCounterId.of("FabricIngress.bng_ingress.downstream.c_line_rx");
public static final PiCounterId FABRIC_INGRESS_PORT_COUNTERS_CONTROL_INGRESS_PORT_COUNTER =
PiCounterId.of("FabricIngress.port_counters_control.ingress_port_counter");
// Direct Counter IDs
@@ -159,6 +209,8 @@
PiActionId.of("FabricIngress.next.set_next_id_xconnect");
public static final PiActionId FABRIC_INGRESS_FORWARDING_NOP_ROUTING_V4 =
PiActionId.of("FabricIngress.forwarding.nop_routing_v4");
+ public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_QOS_BESTEFF =
+ PiActionId.of("FabricIngress.bng_ingress.downstream.qos_besteff");
public static final PiActionId FABRIC_INGRESS_FILTERING_PERMIT_WITH_INTERNAL_VLAN =
PiActionId.of("FabricIngress.filtering.permit_with_internal_vlan");
public static final PiActionId FABRIC_INGRESS_NEXT_ROUTING_HASHED =
@@ -171,12 +223,14 @@
PiActionId.of("FabricEgress.process_int_main.process_int_transit.init_metadata");
public static final PiActionId FABRIC_INGRESS_ACL_DROP =
PiActionId.of("FabricIngress.acl.drop");
- public static final PiActionId FABRIC_INGRESS_NEXT_SET_VLAN =
- PiActionId.of("FabricIngress.next.set_vlan");
+ public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_PUNT_TO_CPU =
+ PiActionId.of("FabricIngress.bng_ingress.upstream.punt_to_cpu");
+ public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_SET_LINE =
+ PiActionId.of("FabricIngress.bng_ingress.upstream.set_line");
public static final PiActionId FABRIC_INGRESS_ACL_NOP_ACL =
PiActionId.of("FabricIngress.acl.nop_acl");
- public static final PiActionId FABRIC_INGRESS_NEXT_OUTPUT_XCONNECT =
- PiActionId.of("FabricIngress.next.output_xconnect");
+ public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_TERM_DISABLED =
+ PiActionId.of("FabricIngress.bng_ingress.upstream.term_disabled");
public static final PiActionId FABRIC_INGRESS_ACL_SET_NEXT_ID_ACL =
PiActionId.of("FabricIngress.acl.set_next_id_acl");
public static final PiActionId FABRIC_INGRESS_FILTERING_PERMIT =
@@ -189,20 +243,34 @@
PiActionId.of("FabricIngress.next.routing_simple");
public static final PiActionId FABRIC_INGRESS_SPGW_INGRESS_SET_DL_SESS_INFO =
PiActionId.of("FabricIngress.spgw_ingress.set_dl_sess_info");
+ public static final PiActionId FABRIC_EGRESS_BNG_EGRESS_DOWNSTREAM_ENCAP_V4 =
+ PiActionId.of("FabricEgress.bng_egress.downstream.encap_v4");
public static final PiActionId FABRIC_INGRESS_NEXT_OUTPUT_HASHED =
PiActionId.of("FabricIngress.next.output_hashed");
public static final PiActionId FABRIC_INGRESS_FORWARDING_POP_MPLS_AND_NEXT =
PiActionId.of("FabricIngress.forwarding.pop_mpls_and_next");
+ public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_SET_LINE_NEXT =
+ PiActionId.of("FabricIngress.bng_ingress.downstream.set_line_next");
+ public static final PiActionId FABRIC_EGRESS_BNG_EGRESS_DOWNSTREAM_ENCAP_V6 =
+ PiActionId.of("FabricEgress.bng_egress.downstream.encap_v6");
public static final PiActionId FABRIC_INGRESS_NEXT_MPLS_ROUTING_SIMPLE =
PiActionId.of("FabricIngress.next.mpls_routing_simple");
public static final PiActionId FABRIC_INGRESS_ACL_PUNT_TO_CPU =
PiActionId.of("FabricIngress.acl.punt_to_cpu");
+ public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_QOS_PRIO =
+ PiActionId.of("FabricIngress.bng_ingress.downstream.qos_prio");
+ public static final PiActionId FABRIC_INGRESS_NEXT_SET_VLAN =
+ PiActionId.of("FabricIngress.next.set_vlan");
public static final PiActionId FABRIC_EGRESS_EGRESS_NEXT_POP_VLAN =
PiActionId.of("FabricEgress.egress_next.pop_vlan");
public static final PiActionId FABRIC_INGRESS_PROCESS_SET_SOURCE_SINK_INT_SET_SINK =
PiActionId.of("FabricIngress.process_set_source_sink.int_set_sink");
public static final PiActionId FABRIC_INGRESS_NEXT_MPLS_ROUTING_HASHED =
PiActionId.of("FabricIngress.next.mpls_routing_hashed");
+ public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_TERM_ENABLED_V6 =
+ PiActionId.of("FabricIngress.bng_ingress.upstream.term_enabled_v6");
+ public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_UPSTREAM_TERM_ENABLED_V4 =
+ PiActionId.of("FabricIngress.bng_ingress.upstream.term_enabled_v4");
public static final PiActionId FABRIC_INGRESS_PROCESS_SET_SOURCE_SINK_INT_SET_SOURCE =
PiActionId.of("FabricIngress.process_set_source_sink.int_set_source");
public static final PiActionId NOP = PiActionId.of("nop");
@@ -212,44 +280,52 @@
PiActionId.of("FabricIngress.acl.clone_to_cpu");
public static final PiActionId FABRIC_INGRESS_FILTERING_DENY =
PiActionId.of("FabricIngress.filtering.deny");
+ public static final PiActionId FABRIC_INGRESS_NEXT_SET_MCAST_GROUP_ID =
+ PiActionId.of("FabricIngress.next.set_mcast_group_id");
public static final PiActionId FABRIC_INGRESS_FILTERING_SET_FORWARDING_TYPE =
PiActionId.of("FabricIngress.filtering.set_forwarding_type");
+ public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_SET_LINE_DROP =
+ PiActionId.of("FabricIngress.bng_ingress.downstream.set_line_drop");
public static final PiActionId FABRIC_EGRESS_PROCESS_INT_MAIN_PROCESS_INT_REPORT_DO_REPORT_ENCAPSULATION =
PiActionId.of("FabricEgress.process_int_main.process_int_report.do_report_encapsulation");
public static final PiActionId NO_ACTION = PiActionId.of("NoAction");
- public static final PiActionId FABRIC_INGRESS_NEXT_SET_MCAST_GROUP_ID =
- PiActionId.of("FabricIngress.next.set_mcast_group_id");
+ public static final PiActionId FABRIC_INGRESS_NEXT_OUTPUT_XCONNECT =
+ PiActionId.of("FabricIngress.next.output_xconnect");
// Action Param IDs
- public static final PiActionParamId DMAC = PiActionParamId.of("dmac");
+ public static final PiActionParamId MON_PORT =
+ PiActionParamId.of("mon_port");
+ public static final PiActionParamId C_TAG = PiActionParamId.of("c_tag");
+ public static final PiActionParamId S1U_SGW_ADDR =
+ PiActionParamId.of("s1u_sgw_addr");
+ public static final PiActionParamId SMAC = PiActionParamId.of("smac");
+ public static final PiActionParamId VLAN_ID = PiActionParamId.of("vlan_id");
+ public static final PiActionParamId LABEL = PiActionParamId.of("label");
+ public static final PiActionParamId SRC_IP = PiActionParamId.of("src_ip");
+ public static final PiActionParamId NEXT_ID = PiActionParamId.of("next_id");
public static final PiActionParamId INS_CNT = PiActionParamId.of("ins_cnt");
+ public static final PiActionParamId SRC_MAC = PiActionParamId.of("src_mac");
+ public static final PiActionParamId DMAC = PiActionParamId.of("dmac");
+ public static final PiActionParamId PPPOE_SESSION_ID =
+ PiActionParamId.of("pppoe_session_id");
+ public static final PiActionParamId MON_MAC = PiActionParamId.of("mon_mac");
public static final PiActionParamId MON_IP = PiActionParamId.of("mon_ip");
- public static final PiActionParamId TEID = PiActionParamId.of("teid");
- public static final PiActionParamId INS_MASK0407 =
- PiActionParamId.of("ins_mask0407");
+ public static final PiActionParamId SWITCH_ID =
+ PiActionParamId.of("switch_id");
public static final PiActionParamId INS_MASK0003 =
PiActionParamId.of("ins_mask0003");
+ public static final PiActionParamId LINE_ID = PiActionParamId.of("line_id");
+ public static final PiActionParamId FWD_TYPE =
+ PiActionParamId.of("fwd_type");
+ public static final PiActionParamId INS_MASK0407 =
+ PiActionParamId.of("ins_mask0407");
+ public static final PiActionParamId TEID = PiActionParamId.of("teid");
public static final PiActionParamId S1U_ENB_ADDR =
PiActionParamId.of("s1u_enb_addr");
public static final PiActionParamId PORT_NUM =
PiActionParamId.of("port_num");
- public static final PiActionParamId S1U_SGW_ADDR =
- PiActionParamId.of("s1u_sgw_addr");
- public static final PiActionParamId LABEL = PiActionParamId.of("label");
- public static final PiActionParamId SMAC = PiActionParamId.of("smac");
- public static final PiActionParamId MON_PORT =
- PiActionParamId.of("mon_port");
- public static final PiActionParamId FWD_TYPE =
- PiActionParamId.of("fwd_type");
- public static final PiActionParamId MON_MAC = PiActionParamId.of("mon_mac");
- public static final PiActionParamId SRC_MAC = PiActionParamId.of("src_mac");
- public static final PiActionParamId NEXT_ID = PiActionParamId.of("next_id");
public static final PiActionParamId GROUP_ID =
PiActionParamId.of("group_id");
- public static final PiActionParamId SWITCH_ID =
- PiActionParamId.of("switch_id");
public static final PiActionParamId MAX_HOP = PiActionParamId.of("max_hop");
- public static final PiActionParamId VLAN_ID = PiActionParamId.of("vlan_id");
- public static final PiActionParamId SRC_IP = PiActionParamId.of("src_ip");
// Action Profile IDs
public static final PiActionProfileId FABRIC_INGRESS_NEXT_HASHED_SELECTOR =
PiActionProfileId.of("FabricIngress.next.hashed_selector");
@@ -258,4 +334,4 @@
PiPacketMetadataId.of("ingress_port");
public static final PiPacketMetadataId EGRESS_PORT =
PiPacketMetadataId.of("egress_port");
-}
+}
\ No newline at end of file