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