Improvement in fabric.p4 and bng.p4

- fabric.p4 now supports double tagged hosts
- bng.p4 now only manages PPPoE termination
- bng_ingress moved at the end of the fabric pipeline

Change-Id: Iff62238fde9ec6ddf7311312a98c041e3ab3aa8d
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
index 37c1144..10538ac 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
@@ -12,50 +12,57 @@
         ["tmp_3", 32, false],
         ["spgw_ingress_tmp", 1, false],
         ["spgw_ingress_tmp_0", 1, false],
-        ["bng_ingress_upstream_drop", 1, false],
+        ["bng_ingress_s_tag", 12, false],
+        ["bng_ingress_c_tag", 12, false],
         ["bng_ingress_upstream_tmp", 1, false],
-        ["bng_ingress_downstream_prio", 1, false],
         ["bng_ingress_downstream_tmp", 1, false],
-        ["bng_ingress_downstream_tmp_0", 1, false],
         ["spgw_normalizer_hasReturned", 1, false],
         ["spgw_ingress_hasReturned", 1, false],
         ["bng_ingress_upstream_hasReturned", 1, false],
         ["key_0", 64, false],
-        ["key_1", 64, false],
         ["egress_next_tmp", 1, false],
         ["process_int_main_process_int_transit_hasReturned", 1, false],
-        ["fabric_metadata_t._eth_type0", 16, false],
-        ["fabric_metadata_t._ip_eth_type1", 16, false],
-        ["fabric_metadata_t._vlan_id2", 12, false],
-        ["fabric_metadata_t._vlan_pri3", 3, false],
-        ["fabric_metadata_t._vlan_cfi4", 1, false],
-        ["fabric_metadata_t._mpls_label5", 20, false],
-        ["fabric_metadata_t._mpls_ttl6", 8, false],
-        ["fabric_metadata_t._skip_forwarding7", 1, false],
-        ["fabric_metadata_t._skip_next8", 1, false],
-        ["fabric_metadata_t._fwd_type9", 3, false],
-        ["fabric_metadata_t._next_id10", 32, false],
-        ["fabric_metadata_t._is_multicast11", 1, false],
-        ["fabric_metadata_t._is_controller_packet_out12", 1, false],
-        ["fabric_metadata_t._ip_proto13", 8, false],
-        ["fabric_metadata_t._l4_sport14", 16, false],
-        ["fabric_metadata_t._l4_dport15", 16, false],
-        ["fabric_metadata_t._spgw_direction16", 2, false],
-        ["fabric_metadata_t._spgw_ipv4_len17", 16, false],
-        ["fabric_metadata_t._spgw_teid18", 32, false],
-        ["fabric_metadata_t._spgw_s1u_enb_addr19", 32, false],
-        ["fabric_metadata_t._spgw_s1u_sgw_addr20", 32, false],
-        ["fabric_metadata_t._bng_type21", 2, false],
-        ["fabric_metadata_t._bng_line_id22", 32, false],
-        ["fabric_metadata_t._bng_ds_meter_result23", 32, false],
-        ["fabric_metadata_t._int_meta_source24", 1, false],
-        ["fabric_metadata_t._int_meta_transit25", 1, false],
-        ["fabric_metadata_t._int_meta_sink26", 1, false],
-        ["fabric_metadata_t._int_meta_switch_id27", 32, false],
-        ["fabric_metadata_t._int_meta_new_words28", 8, false],
-        ["fabric_metadata_t._int_meta_new_bytes29", 16, false],
-        ["fabric_metadata_t._int_meta_ig_tstamp30", 32, false],
-        ["fabric_metadata_t._int_meta_eg_tstamp31", 32, false]
+        ["fabric_metadata_t._last_eth_type0", 16, false],
+        ["fabric_metadata_t._is_ipv41", 1, false],
+        ["fabric_metadata_t._is_ipv62", 1, false],
+        ["fabric_metadata_t._is_mpls3", 1, false],
+        ["fabric_metadata_t._ip_eth_type4", 16, false],
+        ["fabric_metadata_t._vlan_id5", 12, false],
+        ["fabric_metadata_t._vlan_pri6", 3, false],
+        ["fabric_metadata_t._vlan_cfi7", 1, false],
+        ["fabric_metadata_t._push_double_vlan8", 1, false],
+        ["fabric_metadata_t._inner_vlan_id9", 12, false],
+        ["fabric_metadata_t._inner_vlan_pri10", 3, false],
+        ["fabric_metadata_t._inner_vlan_cfi11", 1, false],
+        ["fabric_metadata_t._mpls_label12", 20, false],
+        ["fabric_metadata_t._mpls_ttl13", 8, false],
+        ["fabric_metadata_t._skip_forwarding14", 1, false],
+        ["fabric_metadata_t._skip_next15", 1, false],
+        ["fabric_metadata_t._fwd_type16", 3, false],
+        ["fabric_metadata_t._next_id17", 32, false],
+        ["fabric_metadata_t._is_multicast18", 1, false],
+        ["fabric_metadata_t._is_controller_packet_out19", 1, false],
+        ["fabric_metadata_t._ip_proto20", 8, false],
+        ["fabric_metadata_t._l4_sport21", 16, false],
+        ["fabric_metadata_t._l4_dport22", 16, false],
+        ["fabric_metadata_t._spgw_direction23", 2, false],
+        ["fabric_metadata_t._spgw_ipv4_len24", 16, false],
+        ["fabric_metadata_t._spgw_teid25", 32, false],
+        ["fabric_metadata_t._spgw_s1u_enb_addr26", 32, false],
+        ["fabric_metadata_t._spgw_s1u_sgw_addr27", 32, false],
+        ["fabric_metadata_t._bng_type28", 2, false],
+        ["fabric_metadata_t._bng_line_id29", 32, false],
+        ["fabric_metadata_t._bng_pppoe_session_id30", 16, false],
+        ["fabric_metadata_t._bng_ds_meter_result31", 32, false],
+        ["fabric_metadata_t._int_meta_source32", 1, false],
+        ["fabric_metadata_t._int_meta_transit33", 1, false],
+        ["fabric_metadata_t._int_meta_sink34", 1, false],
+        ["fabric_metadata_t._int_meta_switch_id35", 32, false],
+        ["fabric_metadata_t._int_meta_new_words36", 8, false],
+        ["fabric_metadata_t._int_meta_new_bytes37", 16, false],
+        ["fabric_metadata_t._int_meta_ig_tstamp38", 32, false],
+        ["fabric_metadata_t._int_meta_eg_tstamp39", 32, false],
+        ["_padding_0", 7, false]
       ]
     },
     {
@@ -721,7 +728,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._eth_type0"]
+                  "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
                 },
                 {
                   "type" : "field",
@@ -734,7 +741,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
+                  "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
                 },
                 {
                   "type" : "hexstr",
@@ -761,13 +768,13 @@
               "type" : "hexstr",
               "value" : "0x0800",
               "mask" : null,
-              "next_state" : "parse_ipv4"
+              "next_state" : "pre_parse_ipv4"
             },
             {
               "type" : "hexstr",
               "value" : "0x86dd",
               "mask" : null,
-              "next_state" : "parse_ipv6"
+              "next_state" : "pre_parse_ipv6"
             },
             {
               "value" : "default",
@@ -801,13 +808,13 @@
               "type" : "hexstr",
               "value" : "0x0800",
               "mask" : null,
-              "next_state" : "parse_ipv4"
+              "next_state" : "pre_parse_ipv4"
             },
             {
               "type" : "hexstr",
               "value" : "0x86dd",
               "mask" : null,
-              "next_state" : "parse_ipv6"
+              "next_state" : "pre_parse_ipv6"
             },
             {
               "type" : "hexstr",
@@ -822,6 +829,18 @@
               "next_state" : "parse_inner_vlan_tag"
             },
             {
+              "type" : "hexstr",
+              "value" : "0x88a8",
+              "mask" : null,
+              "next_state" : "parse_inner_vlan_tag"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x9100",
+              "mask" : null,
+              "next_state" : "parse_inner_vlan_tag"
+            },
+            {
               "value" : "default",
               "mask" : null,
               "next_state" : null
@@ -853,13 +872,13 @@
               "type" : "hexstr",
               "value" : "0x0800",
               "mask" : null,
-              "next_state" : "parse_ipv4"
+              "next_state" : "pre_parse_ipv4"
             },
             {
               "type" : "hexstr",
               "value" : "0x86dd",
               "mask" : null,
-              "next_state" : "parse_ipv6"
+              "next_state" : "pre_parse_ipv6"
             },
             {
               "type" : "hexstr",
@@ -917,13 +936,13 @@
               "type" : "hexstr",
               "value" : "0x0021",
               "mask" : null,
-              "next_state" : "parse_ipv4"
+              "next_state" : "pre_parse_ipv4"
             },
             {
               "type" : "hexstr",
               "value" : "0x0057",
               "mask" : null,
-              "next_state" : "parse_ipv6"
+              "next_state" : "pre_parse_ipv6"
             },
             {
               "value" : "default",
@@ -955,7 +974,30 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
+                  "value" : ["scalars", "fabric_metadata_t._is_mpls3"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "b2d",
+                      "left" : null,
+                      "right" : {
+                        "type" : "bool",
+                        "value" : true
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "fabric_metadata_t._mpls_label12"]
                 },
                 {
                   "type" : "field",
@@ -968,7 +1010,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
+                  "value" : ["scalars", "fabric_metadata_t._mpls_ttl13"]
                 },
                 {
                   "type" : "field",
@@ -1018,12 +1060,49 @@
           ]
         },
         {
-          "name" : "parse_ipv4",
+          "name" : "pre_parse_ipv4",
           "id" : 7,
           "parser_ops" : [
             {
               "parameters" : [
                 {
+                  "type" : "field",
+                  "value" : ["scalars", "fabric_metadata_t._is_ipv41"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "b2d",
+                      "left" : null,
+                      "right" : {
+                        "type" : "bool",
+                        "value" : true
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "value" : "default",
+              "mask" : null,
+              "next_state" : "parse_ipv4"
+            }
+          ],
+          "transition_key" : []
+        },
+        {
+          "name" : "parse_ipv4",
+          "id" : 8,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
                   "type" : "regular",
                   "value" : "ipv4"
                 }
@@ -1034,7 +1113,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_proto13"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_proto20"]
                 },
                 {
                   "type" : "field",
@@ -1047,7 +1126,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type1"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"]
                 },
                 {
                   "type" : "hexstr",
@@ -1103,8 +1182,45 @@
           ]
         },
         {
+          "name" : "pre_parse_ipv6",
+          "id" : 9,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "fabric_metadata_t._is_ipv62"]
+                },
+                {
+                  "type" : "expression",
+                  "value" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "b2d",
+                      "left" : null,
+                      "right" : {
+                        "type" : "bool",
+                        "value" : true
+                      }
+                    }
+                  }
+                }
+              ],
+              "op" : "set"
+            }
+          ],
+          "transitions" : [
+            {
+              "value" : "default",
+              "mask" : null,
+              "next_state" : "parse_ipv6"
+            }
+          ],
+          "transition_key" : []
+        },
+        {
           "name" : "parse_ipv6",
-          "id" : 8,
+          "id" : 10,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1119,7 +1235,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_proto13"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_proto20"]
                 },
                 {
                   "type" : "field",
@@ -1132,7 +1248,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type1"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"]
                 },
                 {
                   "type" : "hexstr",
@@ -1176,7 +1292,7 @@
         },
         {
           "name" : "parse_tcp",
-          "id" : 9,
+          "id" : 11,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1191,7 +1307,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport14"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport21"]
                 },
                 {
                   "type" : "field",
@@ -1204,7 +1320,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport22"]
                 },
                 {
                   "type" : "field",
@@ -1225,7 +1341,7 @@
         },
         {
           "name" : "parse_udp",
-          "id" : 10,
+          "id" : 12,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1240,7 +1356,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport14"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport21"]
                 },
                 {
                   "type" : "field",
@@ -1253,7 +1369,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport22"]
                 },
                 {
                   "type" : "field",
@@ -1285,7 +1401,7 @@
         },
         {
           "name" : "parse_icmp",
-          "id" : 11,
+          "id" : 13,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1308,7 +1424,7 @@
         },
         {
           "name" : "parse_gtpu",
-          "id" : 12,
+          "id" : 14,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1379,7 +1495,7 @@
         },
         {
           "name" : "do_parse_gtpu",
-          "id" : 13,
+          "id" : 15,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1447,7 +1563,7 @@
         },
         {
           "name" : "parse_inner_udp",
-          "id" : 14,
+          "id" : 16,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1462,7 +1578,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport14"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport21"]
                 },
                 {
                   "type" : "field",
@@ -1475,7 +1591,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport22"]
                 },
                 {
                   "type" : "field",
@@ -1496,7 +1612,7 @@
         },
         {
           "name" : "parse_int",
-          "id" : 15,
+          "id" : 17,
           "parser_ops" : [],
           "transitions" : [
             {
@@ -1520,7 +1636,7 @@
         },
         {
           "name" : "parse_intl4_shim",
-          "id" : 16,
+          "id" : 18,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1563,7 +1679,7 @@
         },
         {
           "name" : "parse_int_data",
-          "id" : 17,
+          "id" : 19,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1659,7 +1775,7 @@
         },
         {
           "name" : "parse_intl4_tail",
-          "id" : 18,
+          "id" : 20,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1690,7 +1806,7 @@
       "id" : 0,
       "source_info" : {
         "filename" : "include/parser.p4",
-        "line" : 261,
+        "line" : 276,
         "column" : 8,
         "source_fragment" : "FabricDeparser"
       },
@@ -1703,7 +1819,7 @@
       "id" : 0,
       "source_info" : {
         "filename" : "include/bng.p4",
-        "line" : 184,
+        "line" : 152,
         "column" : 33,
         "source_fragment" : "m_besteff"
       },
@@ -1717,7 +1833,7 @@
       "id" : 1,
       "source_info" : {
         "filename" : "include/bng.p4",
-        "line" : 185,
+        "line" : 153,
         "column" : 33,
         "source_fragment" : "m_prio"
       },
@@ -1741,56 +1857,8 @@
       }
     },
     {
-      "name" : "FabricIngress.bng_ingress.upstream.c_terminated",
-      "id" : 1,
-      "source_info" : {
-        "filename" : "include/bng.p4",
-        "line" : 40,
-        "column" : 39,
-        "source_fragment" : "c_terminated"
-      },
-      "size" : 8192,
-      "is_direct" : false
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.upstream.c_dropped",
-      "id" : 2,
-      "source_info" : {
-        "filename" : "include/bng.p4",
-        "line" : 41,
-        "column" : 39,
-        "source_fragment" : "c_dropped"
-      },
-      "size" : 8192,
-      "is_direct" : false
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.upstream.c_control",
-      "id" : 3,
-      "source_info" : {
-        "filename" : "include/bng.p4",
-        "line" : 42,
-        "column" : 39,
-        "source_fragment" : "c_control"
-      },
-      "size" : 8192,
-      "is_direct" : false
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.downstream.c_line_rx",
-      "id" : 4,
-      "source_info" : {
-        "filename" : "include/bng.p4",
-        "line" : 182,
-        "column" : 49,
-        "source_fragment" : "c_line_rx"
-      },
-      "size" : 8192,
-      "is_direct" : false
-    },
-    {
       "name" : "FabricIngress.process_set_source_sink.counter_set_source",
-      "id" : 5,
+      "id" : 1,
       "is_direct" : true,
       "binding" : "FabricIngress.process_set_source_sink.tb_set_source",
       "source_info" : {
@@ -1802,7 +1870,7 @@
     },
     {
       "name" : "FabricIngress.process_set_source_sink.counter_set_sink",
-      "id" : 6,
+      "id" : 2,
       "is_direct" : true,
       "binding" : "FabricIngress.process_set_source_sink.tb_set_sink",
       "source_info" : {
@@ -1813,6 +1881,54 @@
       }
     },
     {
+      "name" : "FabricIngress.bng_ingress.upstream.c_terminated",
+      "id" : 3,
+      "source_info" : {
+        "filename" : "include/bng.p4",
+        "line" : 36,
+        "column" : 39,
+        "source_fragment" : "c_terminated"
+      },
+      "size" : 8192,
+      "is_direct" : false
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.upstream.c_dropped",
+      "id" : 4,
+      "source_info" : {
+        "filename" : "include/bng.p4",
+        "line" : 37,
+        "column" : 39,
+        "source_fragment" : "c_dropped"
+      },
+      "size" : 8192,
+      "is_direct" : false
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.upstream.c_control",
+      "id" : 5,
+      "source_info" : {
+        "filename" : "include/bng.p4",
+        "line" : 38,
+        "column" : 39,
+        "source_fragment" : "c_control"
+      },
+      "size" : 8192,
+      "is_direct" : false
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.downstream.c_line_rx",
+      "id" : 6,
+      "source_info" : {
+        "filename" : "include/bng.p4",
+        "line" : 150,
+        "column" : 49,
+        "source_fragment" : "c_line_rx"
+      },
+      "size" : 8192,
+      "is_direct" : false
+    },
+    {
       "name" : "FabricIngress.filtering.ingress_port_vlan_counter",
       "id" : 7,
       "is_direct" : true,
@@ -1831,7 +1947,7 @@
       "binding" : "FabricIngress.filtering.fwd_classifier",
       "source_info" : {
         "filename" : "include/control/filtering.p4",
-        "line" : 80,
+        "line" : 83,
         "column" : 50,
         "source_fragment" : "fwd_classifier_counter"
       }
@@ -1915,7 +2031,7 @@
       "binding" : "FabricIngress.next.xconnect",
       "source_info" : {
         "filename" : "include/control/next.p4",
-        "line" : 92,
+        "line" : 103,
         "column" : 50,
         "source_fragment" : "xconnect_counter"
       }
@@ -1927,7 +2043,7 @@
       "binding" : "FabricIngress.next.simple",
       "source_info" : {
         "filename" : "include/control/next.p4",
-        "line" : 125,
+        "line" : 137,
         "column" : 50,
         "source_fragment" : "simple_counter"
       }
@@ -1939,7 +2055,7 @@
       "binding" : "FabricIngress.next.hashed",
       "source_info" : {
         "filename" : "include/control/next.p4",
-        "line" : 166,
+        "line" : 178,
         "column" : 50,
         "source_fragment" : "hashed_counter"
       }
@@ -1951,7 +2067,7 @@
       "binding" : "FabricIngress.next.multicast",
       "source_info" : {
         "filename" : "include/control/next.p4",
-        "line" : 210,
+        "line" : 222,
         "column" : 50,
         "source_fragment" : "multicast_counter"
       }
@@ -1985,7 +2101,7 @@
       "id" : 21,
       "source_info" : {
         "filename" : "include/bng.p4",
-        "line" : 324,
+        "line" : 265,
         "column" : 49,
         "source_fragment" : "c_line_tx"
       },
@@ -2011,7 +2127,7 @@
       "binding" : "FabricEgress.egress_next.egress_vlan",
       "source_info" : {
         "filename" : "include/control/next.p4",
-        "line" : 283,
+        "line" : 309,
         "column" : 50,
         "source_fragment" : "egress_vlan_counter"
       }
@@ -2302,14 +2418,8 @@
       "primitives" : []
     },
     {
-      "name" : "nop",
-      "id" : 16,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricIngress.spgw_ingress.gtpu_decap",
-      "id" : 17,
+      "id" : 16,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2361,7 +2471,7 @@
     },
     {
       "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
-      "id" : 18,
+      "id" : 17,
       "runtime_data" : [
         {
           "name" : "teid",
@@ -2382,7 +2492,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_teid18"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_teid25"]
             },
             {
               "type" : "runtime_data",
@@ -2401,7 +2511,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr19"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr26"]
             },
             {
               "type" : "runtime_data",
@@ -2420,7 +2530,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr20"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr27"]
             },
             {
               "type" : "runtime_data",
@@ -2437,1226 +2547,8 @@
       ]
     },
     {
-      "name" : "FabricIngress.bng_ingress.upstream.set_line",
-      "id" : 19,
-      "runtime_data" : [
-        {
-          "name" : "line_id",
-          "bitwidth" : 32
-        }
-      ],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 53,
-            "column" : 26,
-            "source_fragment" : "= line_id; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.upstream.punt_to_cpu",
-      "id" : 20,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "egress_spec"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00ff"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 73,
-            "column" : 8,
-            "source_fragment" : "smeta.egress_spec = 255"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 74,
-            "column" : 30,
-            "source_fragment" : "= true; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next8"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 75,
-            "column" : 24,
-            "source_fragment" : "= true; ..."
-          }
-        },
-        {
-          "op" : "count",
-          "parameters" : [
-            {
-              "type" : "counter_array",
-              "value" : "FabricIngress.bng_ingress.upstream.c_control"
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 76,
-            "column" : 8,
-            "source_fragment" : "c_control.count(fmeta.bng.line_id)"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.upstream.term_disabled",
-      "id" : 21,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type21"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../header.p4",
-            "line" : 155,
-            "column" : 36,
-            "source_fragment" : "2w0x0; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 108,
-            "column" : 30,
-            "source_fragment" : "= true; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next8"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 109,
-            "column" : 24,
-            "source_fragment" : "= true; ..."
-          }
-        },
-        {
-          "op" : "mark_to_drop",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "standard_metadata"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 110,
-            "column" : 8,
-            "source_fragment" : "mark_to_drop(smeta)"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "bng_ingress_upstream_drop"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 111,
-            "column" : 8,
-            "source_fragment" : "drop=true"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.upstream.term_disabled",
-      "id" : 22,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type21"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../header.p4",
-            "line" : 155,
-            "column" : 36,
-            "source_fragment" : "2w0x0; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 108,
-            "column" : 30,
-            "source_fragment" : "= true; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next8"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 109,
-            "column" : 24,
-            "source_fragment" : "= true; ..."
-          }
-        },
-        {
-          "op" : "mark_to_drop",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "standard_metadata"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 110,
-            "column" : 8,
-            "source_fragment" : "mark_to_drop(smeta)"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "bng_ingress_upstream_drop"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 111,
-            "column" : 8,
-            "source_fragment" : "drop=true"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.upstream.term_enabled_v4",
-      "id" : 23,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["ethernet", "eth_type"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x0800"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 110,
-            "column" : 31,
-            "source_fragment" : "0x0800; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._eth_type0"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x0800"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 110,
-            "column" : 31,
-            "source_fragment" : "0x0800; ..."
-          }
-        },
-        {
-          "op" : "remove_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "pppoe"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 100,
-            "column" : 8,
-            "source_fragment" : "hdr.pppoe.setInvalid()"
-          }
-        },
-        {
-          "op" : "remove_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "vlan_tag"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 101,
-            "column" : 8,
-            "source_fragment" : "hdr.vlan_tag.setInvalid()"
-          }
-        },
-        {
-          "op" : "remove_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "inner_vlan_tag"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 102,
-            "column" : 8,
-            "source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
-          }
-        },
-        {
-          "op" : "count",
-          "parameters" : [
-            {
-              "type" : "counter_array",
-              "value" : "FabricIngress.bng_ingress.upstream.c_terminated"
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 103,
-            "column" : 8,
-            "source_fragment" : "c_terminated.count(fmeta.bng.line_id)"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.upstream.term_enabled_v6",
-      "id" : 24,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["ethernet", "eth_type"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x86dd"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 111,
-            "column" : 31,
-            "source_fragment" : "0x86dd; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._eth_type0"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x86dd"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 111,
-            "column" : 31,
-            "source_fragment" : "0x86dd; ..."
-          }
-        },
-        {
-          "op" : "remove_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "pppoe"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 100,
-            "column" : 8,
-            "source_fragment" : "hdr.pppoe.setInvalid()"
-          }
-        },
-        {
-          "op" : "remove_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "vlan_tag"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 101,
-            "column" : 8,
-            "source_fragment" : "hdr.vlan_tag.setInvalid()"
-          }
-        },
-        {
-          "op" : "remove_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "inner_vlan_tag"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 102,
-            "column" : 8,
-            "source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
-          }
-        },
-        {
-          "op" : "count",
-          "parameters" : [
-            {
-              "type" : "counter_array",
-              "value" : "FabricIngress.bng_ingress.upstream.c_terminated"
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 103,
-            "column" : 8,
-            "source_fragment" : "c_terminated.count(fmeta.bng.line_id)"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.downstream.set_line_next",
-      "id" : 25,
-      "runtime_data" : [
-        {
-          "name" : "line_id",
-          "bitwidth" : 32
-        },
-        {
-          "name" : "next_id",
-          "bitwidth" : 32
-        }
-      ],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type21"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x02"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../header.p4",
-            "line" : 157,
-            "column" : 39,
-            "source_fragment" : "2w0x2;; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 195,
-            "column" : 26,
-            "source_fragment" : "= line_id; ..."
-          }
-        },
-        {
-          "op" : "count",
-          "parameters" : [
-            {
-              "type" : "counter_array",
-              "value" : "FabricIngress.bng_ingress.downstream.c_line_rx"
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 196,
-            "column" : 8,
-            "source_fragment" : "c_line_rx.count(line_id)"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id10"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 1
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 201,
-            "column" : 22,
-            "source_fragment" : "= next_id; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 202,
-            "column" : 30,
-            "source_fragment" : "= true; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.downstream.set_line_next",
-      "id" : 26,
-      "runtime_data" : [
-        {
-          "name" : "line_id",
-          "bitwidth" : 32
-        },
-        {
-          "name" : "next_id",
-          "bitwidth" : 32
-        }
-      ],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type21"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x02"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../header.p4",
-            "line" : 157,
-            "column" : 39,
-            "source_fragment" : "2w0x2;; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 195,
-            "column" : 26,
-            "source_fragment" : "= line_id; ..."
-          }
-        },
-        {
-          "op" : "count",
-          "parameters" : [
-            {
-              "type" : "counter_array",
-              "value" : "FabricIngress.bng_ingress.downstream.c_line_rx"
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 196,
-            "column" : 8,
-            "source_fragment" : "c_line_rx.count(line_id)"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id10"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 1
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 201,
-            "column" : 22,
-            "source_fragment" : "= next_id; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 202,
-            "column" : 30,
-            "source_fragment" : "= true; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.downstream.set_line_drop",
-      "id" : 27,
-      "runtime_data" : [
-        {
-          "name" : "line_id",
-          "bitwidth" : 32
-        }
-      ],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type21"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x02"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../header.p4",
-            "line" : 157,
-            "column" : 39,
-            "source_fragment" : "2w0x2;; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 195,
-            "column" : 26,
-            "source_fragment" : "= line_id; ..."
-          }
-        },
-        {
-          "op" : "count",
-          "parameters" : [
-            {
-              "type" : "counter_array",
-              "value" : "FabricIngress.bng_ingress.downstream.c_line_rx"
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 196,
-            "column" : 8,
-            "source_fragment" : "c_line_rx.count(line_id)"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 207,
-            "column" : 30,
-            "source_fragment" : "= true; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next8"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 208,
-            "column" : 24,
-            "source_fragment" : "= true; ..."
-          }
-        },
-        {
-          "op" : "mark_to_drop",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "standard_metadata"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 209,
-            "column" : 8,
-            "source_fragment" : "mark_to_drop(smeta)"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.downstream.set_line_drop",
-      "id" : 28,
-      "runtime_data" : [
-        {
-          "name" : "line_id",
-          "bitwidth" : 32
-        }
-      ],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type21"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x02"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../header.p4",
-            "line" : 157,
-            "column" : 39,
-            "source_fragment" : "2w0x2;; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 195,
-            "column" : 26,
-            "source_fragment" : "= line_id; ..."
-          }
-        },
-        {
-          "op" : "count",
-          "parameters" : [
-            {
-              "type" : "counter_array",
-              "value" : "FabricIngress.bng_ingress.downstream.c_line_rx"
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 196,
-            "column" : 8,
-            "source_fragment" : "c_line_rx.count(line_id)"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 207,
-            "column" : 30,
-            "source_fragment" : "= true; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next8"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 208,
-            "column" : 24,
-            "source_fragment" : "= true; ..."
-          }
-        },
-        {
-          "op" : "mark_to_drop",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "standard_metadata"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 209,
-            "column" : 8,
-            "source_fragment" : "mark_to_drop(smeta)"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.downstream.qos_prio",
-      "id" : 29,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "bng_ingress_downstream_prio"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 245,
-            "column" : 8,
-            "source_fragment" : "prio=true"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.downstream.qos_prio",
-      "id" : 30,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "bng_ingress_downstream_prio"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 245,
-            "column" : 8,
-            "source_fragment" : "prio=true"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.downstream.qos_besteff",
-      "id" : 31,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.downstream.qos_besteff",
-      "id" : 32,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricIngress.process_set_source_sink.int_set_source",
-      "id" : 33,
+      "id" : 18,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3664,7 +2556,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_source24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_source32"]
             },
             {
               "type" : "expression",
@@ -3692,7 +2584,7 @@
     },
     {
       "name" : "FabricIngress.process_set_source_sink.int_set_sink",
-      "id" : 34,
+      "id" : 19,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3700,7 +2592,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_sink26"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_sink34"]
             },
             {
               "type" : "expression",
@@ -3727,8 +2619,8 @@
       ]
     },
     {
-      "name" : "FabricIngress.filtering.deny",
-      "id" : 35,
+      "name" : "FabricIngress.bng_ingress.upstream.punt_to_cpu",
+      "id" : 20,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3736,7 +2628,476 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
+              "value" : ["standard_metadata", "egress_spec"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00ff"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "smeta.egress_spec = 255"
+          }
+        },
+        {
+          "op" : "count",
+          "parameters" : [
+            {
+              "type" : "counter_array",
+              "value" : "FabricIngress.bng_ingress.upstream.c_control"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 45,
+            "column" : 8,
+            "source_fragment" : "c_control.count(fmeta.bng.line_id)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.upstream.term_disabled",
+      "id" : 21,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_type28"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../header.p4",
+            "line" : 155,
+            "column" : 36,
+            "source_fragment" : "2w0x0; ..."
+          }
+        },
+        {
+          "op" : "mark_to_drop",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "standard_metadata"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 75,
+            "column" : 8,
+            "source_fragment" : "mark_to_drop(smeta)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.upstream.term_disabled",
+      "id" : 22,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_type28"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../header.p4",
+            "line" : 155,
+            "column" : 36,
+            "source_fragment" : "2w0x0; ..."
+          }
+        },
+        {
+          "op" : "mark_to_drop",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "standard_metadata"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 75,
+            "column" : 8,
+            "source_fragment" : "mark_to_drop(smeta)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.upstream.term_enabled_v4",
+      "id" : 23,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["inner_vlan_tag", "eth_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0800"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../define.p4",
+            "line" : 110,
+            "column" : 31,
+            "source_fragment" : "0x0800; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x0800"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../define.p4",
+            "line" : 110,
+            "column" : 31,
+            "source_fragment" : "0x0800; ..."
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "pppoe"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 69,
+            "column" : 8,
+            "source_fragment" : "hdr.pppoe.setInvalid()"
+          }
+        },
+        {
+          "op" : "count",
+          "parameters" : [
+            {
+              "type" : "counter_array",
+              "value" : "FabricIngress.bng_ingress.upstream.c_terminated"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 70,
+            "column" : 8,
+            "source_fragment" : "c_terminated.count(fmeta.bng.line_id)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.upstream.term_enabled_v6",
+      "id" : 24,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["inner_vlan_tag", "eth_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x86dd"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../define.p4",
+            "line" : 111,
+            "column" : 31,
+            "source_fragment" : "0x86dd; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x86dd"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../define.p4",
+            "line" : 111,
+            "column" : 31,
+            "source_fragment" : "0x86dd; ..."
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "pppoe"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 69,
+            "column" : 8,
+            "source_fragment" : "hdr.pppoe.setInvalid()"
+          }
+        },
+        {
+          "op" : "count",
+          "parameters" : [
+            {
+              "type" : "counter_array",
+              "value" : "FabricIngress.bng_ingress.upstream.c_terminated"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 70,
+            "column" : 8,
+            "source_fragment" : "c_terminated.count(fmeta.bng.line_id)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.downstream.set_session",
+      "id" : 25,
+      "runtime_data" : [
+        {
+          "name" : "pppoe_session_id",
+          "bitwidth" : 16
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_type28"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x02"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../header.p4",
+            "line" : 157,
+            "column" : 39,
+            "source_fragment" : "2w0x2;; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id30"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 157,
+            "column" : 35,
+            "source_fragment" : "= pppoe_session_id; ..."
+          }
+        },
+        {
+          "op" : "count",
+          "parameters" : [
+            {
+              "type" : "counter_array",
+              "value" : "FabricIngress.bng_ingress.downstream.c_line_rx"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 158,
+            "column" : 8,
+            "source_fragment" : "c_line_rx.count(fmeta.bng.line_id)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.downstream.drop",
+      "id" : 26,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_type28"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x02"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../header.p4",
+            "line" : 157,
+            "column" : 39,
+            "source_fragment" : "2w0x2;; ..."
+          }
+        },
+        {
+          "op" : "count",
+          "parameters" : [
+            {
+              "type" : "counter_array",
+              "value" : "FabricIngress.bng_ingress.downstream.c_line_rx"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 163,
+            "column" : 8,
+            "source_fragment" : "c_line_rx.count(fmeta.bng.line_id)"
+          }
+        },
+        {
+          "op" : "mark_to_drop",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "standard_metadata"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 164,
+            "column" : 8,
+            "source_fragment" : "mark_to_drop(smeta)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.downstream.qos_prio",
+      "id" : 27,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.downstream.qos_prio",
+      "id" : 28,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.downstream.qos_besteff",
+      "id" : 29,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.downstream.qos_besteff",
+      "id" : 30,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.set_line",
+      "id" : 31,
+      "runtime_data" : [
+        {
+          "name" : "line_id",
+          "bitwidth" : 32
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 321,
+            "column" : 30,
+            "source_fragment" : "= line_id; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.filtering.deny",
+      "id" : 32,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._skip_forwarding14"]
             },
             {
               "type" : "expression",
@@ -3765,7 +3126,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next8"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next15"]
             },
             {
               "type" : "expression",
@@ -3793,13 +3154,13 @@
     },
     {
       "name" : "FabricIngress.filtering.permit",
-      "id" : 36,
+      "id" : 33,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricIngress.filtering.permit_with_internal_vlan",
-      "id" : 37,
+      "id" : 34,
       "runtime_data" : [
         {
           "name" : "vlan_id",
@@ -3812,7 +3173,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
             },
             {
               "type" : "runtime_data",
@@ -3830,7 +3191,7 @@
     },
     {
       "name" : "FabricIngress.filtering.set_forwarding_type",
-      "id" : 38,
+      "id" : 35,
       "runtime_data" : [
         {
           "name" : "fwd_type",
@@ -3843,7 +3204,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
+              "value" : ["scalars", "fabric_metadata_t._fwd_type16"]
             },
             {
               "type" : "runtime_data",
@@ -3852,7 +3213,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 83,
+            "line" : 86,
             "column" : 33,
             "source_fragment" : "= fwd_type; ..."
           }
@@ -3861,7 +3222,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_bridging",
-      "id" : 39,
+      "id" : 36,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -3874,7 +3235,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id10"]
+              "value" : ["scalars", "fabric_metadata_t._next_id17"]
             },
             {
               "type" : "runtime_data",
@@ -3892,7 +3253,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.pop_mpls_and_next",
-      "id" : 40,
+      "id" : 37,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -3905,7 +3266,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label12"]
             },
             {
               "type" : "hexstr",
@@ -3924,7 +3285,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id10"]
+              "value" : ["scalars", "fabric_metadata_t._next_id17"]
             },
             {
               "type" : "runtime_data",
@@ -3942,7 +3303,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
-      "id" : 41,
+      "id" : 38,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -3955,7 +3316,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id10"]
+              "value" : ["scalars", "fabric_metadata_t._next_id17"]
             },
             {
               "type" : "runtime_data",
@@ -3973,13 +3334,13 @@
     },
     {
       "name" : "FabricIngress.forwarding.nop_routing_v4",
-      "id" : 42,
+      "id" : 39,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_routing_v6",
-      "id" : 43,
+      "id" : 40,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -3992,7 +3353,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id10"]
+              "value" : ["scalars", "fabric_metadata_t._next_id17"]
             },
             {
               "type" : "runtime_data",
@@ -4010,7 +3371,7 @@
     },
     {
       "name" : "FabricIngress.acl.set_next_id_acl",
-      "id" : 44,
+      "id" : 41,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -4023,7 +3384,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id10"]
+              "value" : ["scalars", "fabric_metadata_t._next_id17"]
             },
             {
               "type" : "runtime_data",
@@ -4041,7 +3402,7 @@
     },
     {
       "name" : "FabricIngress.acl.punt_to_cpu",
-      "id" : 45,
+      "id" : 42,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4068,7 +3429,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next8"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next15"]
             },
             {
               "type" : "expression",
@@ -4096,7 +3457,7 @@
     },
     {
       "name" : "FabricIngress.acl.set_clone_session_id",
-      "id" : 46,
+      "id" : 43,
       "runtime_data" : [
         {
           "name" : "clone_id",
@@ -4127,7 +3488,7 @@
     },
     {
       "name" : "FabricIngress.acl.drop",
-      "id" : 47,
+      "id" : 44,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4150,7 +3511,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next8"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next15"]
             },
             {
               "type" : "expression",
@@ -4178,13 +3539,13 @@
     },
     {
       "name" : "FabricIngress.acl.nop_acl",
-      "id" : 48,
+      "id" : 45,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricIngress.next.set_vlan",
-      "id" : 49,
+      "id" : 46,
       "runtime_data" : [
         {
           "name" : "vlan_id",
@@ -4197,7 +3558,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
             },
             {
               "type" : "runtime_data",
@@ -4214,7 +3575,171 @@
       ]
     },
     {
+      "name" : "FabricIngress.next.set_double_vlan",
+      "id" : 47,
+      "runtime_data" : [
+        {
+          "name" : "outer_vlan_id",
+          "bitwidth" : 12
+        },
+        {
+          "name" : "inner_vlan_id",
+          "bitwidth" : 12
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 70,
+            "column" : 32,
+            "source_fragment" : "= vlan_id; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._push_double_vlan8"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 77,
+            "column" : 41,
+            "source_fragment" : "= true; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 1
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 78,
+            "column" : 38,
+            "source_fragment" : "= inner_vlan_id; ..."
+          }
+        }
+      ]
+    },
+    {
       "name" : "FabricIngress.next.output_xconnect",
+      "id" : 48,
+      "runtime_data" : [
+        {
+          "name" : "port_num",
+          "bitwidth" : 9
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "egress_spec"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 31,
+            "column" : 5,
+            "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x8100"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../define.p4",
+            "line" : 107,
+            "column" : 31,
+            "source_fragment" : "0x8100; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.next.set_next_id_xconnect",
+      "id" : 49,
+      "runtime_data" : [
+        {
+          "name" : "next_id",
+          "bitwidth" : 32
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._next_id17"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 112,
+            "column" : 32,
+            "source_fragment" : "= next_id; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.next.output_simple",
       "id" : 50,
       "runtime_data" : [
         {
@@ -4245,70 +3770,8 @@
       ]
     },
     {
-      "name" : "FabricIngress.next.set_next_id_xconnect",
-      "id" : 51,
-      "runtime_data" : [
-        {
-          "name" : "next_id",
-          "bitwidth" : 32
-        }
-      ],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id10"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 100,
-            "column" : 32,
-            "source_fragment" : "= next_id; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.next.output_simple",
-      "id" : 52,
-      "runtime_data" : [
-        {
-          "name" : "port_num",
-          "bitwidth" : 9
-        }
-      ],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "egress_spec"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 31,
-            "column" : 5,
-            "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
-          }
-        }
-      ]
-    },
-    {
       "name" : "FabricIngress.next.routing_simple",
-      "id" : 53,
+      "id" : 51,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -4385,7 +3848,7 @@
     },
     {
       "name" : "FabricIngress.next.mpls_routing_simple",
-      "id" : 54,
+      "id" : 52,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -4410,7 +3873,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label12"]
             },
             {
               "type" : "runtime_data",
@@ -4485,7 +3948,7 @@
     },
     {
       "name" : "FabricIngress.next.output_hashed",
-      "id" : 55,
+      "id" : 53,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -4516,7 +3979,7 @@
     },
     {
       "name" : "FabricIngress.next.routing_hashed",
-      "id" : 56,
+      "id" : 54,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -4593,7 +4056,7 @@
     },
     {
       "name" : "FabricIngress.next.mpls_routing_hashed",
-      "id" : 57,
+      "id" : 55,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -4618,7 +4081,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label12"]
             },
             {
               "type" : "runtime_data",
@@ -4693,7 +4156,7 @@
     },
     {
       "name" : "FabricIngress.next.set_mcast_group_id",
-      "id" : 58,
+      "id" : 56,
       "runtime_data" : [
         {
           "name" : "group_id",
@@ -4715,7 +4178,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 213,
+            "line" : 225,
             "column" : 8,
             "source_fragment" : "standard_metadata.mcast_grp = group_id"
           }
@@ -4725,7 +4188,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
+              "value" : ["scalars", "fabric_metadata_t._is_multicast18"]
             },
             {
               "type" : "expression",
@@ -4744,7 +4207,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 214,
+            "line" : 226,
             "column" : 37,
             "source_fragment" : "= true; ..."
           }
@@ -4753,7 +4216,7 @@
     },
     {
       "name" : "act",
-      "id" : 59,
+      "id" : 57,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4789,7 +4252,7 @@
     },
     {
       "name" : "act_0",
-      "id" : 60,
+      "id" : 58,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4849,7 +4312,7 @@
     },
     {
       "name" : "act_1",
-      "id" : 61,
+      "id" : 59,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4875,7 +4338,7 @@
     },
     {
       "name" : "act_2",
-      "id" : 62,
+      "id" : 60,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4897,7 +4360,7 @@
     },
     {
       "name" : "act_3",
-      "id" : 63,
+      "id" : 61,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4961,7 +4424,7 @@
     },
     {
       "name" : "act_4",
-      "id" : 64,
+      "id" : 62,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5003,7 +4466,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out12"]
+              "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out19"]
             },
             {
               "type" : "expression",
@@ -5041,7 +4504,7 @@
     },
     {
       "name" : "act_5",
-      "id" : 65,
+      "id" : 63,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5049,26 +4512,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._eth_type0"]
-            },
-            {
-              "type" : "field",
-              "value" : ["vlan_tag", "eth_type"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 105,
-            "column" : 37,
-            "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
             },
             {
               "type" : "field",
@@ -5077,7 +4521,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 106,
+            "line" : 110,
             "column" : 36,
             "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
           }
@@ -5087,7 +4531,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_pri3"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_pri6"]
             },
             {
               "type" : "field",
@@ -5096,7 +4540,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 107,
+            "line" : 111,
             "column" : 37,
             "source_fragment" : "= hdr.vlan_tag.pri; ..."
           }
@@ -5106,7 +4550,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_cfi4"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"]
             },
             {
               "type" : "field",
@@ -5115,7 +4559,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 108,
+            "line" : 112,
             "column" : 37,
             "source_fragment" : "= hdr.vlan_tag.cfi; ..."
           }
@@ -5124,7 +4568,7 @@
     },
     {
       "name" : "act_6",
-      "id" : 66,
+      "id" : 64,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5132,7 +4576,71 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"]
+            },
+            {
+              "type" : "field",
+              "value" : ["inner_vlan_tag", "vlan_id"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/filtering.p4",
+            "line" : 116,
+            "column" : 42,
+            "source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri10"]
+            },
+            {
+              "type" : "field",
+              "value" : ["inner_vlan_tag", "pri"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/filtering.p4",
+            "line" : 117,
+            "column" : 43,
+            "source_fragment" : "= hdr.inner_vlan_tag.pri; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi11"]
+            },
+            {
+              "type" : "field",
+              "value" : ["inner_vlan_tag", "cfi"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/filtering.p4",
+            "line" : 118,
+            "column" : 43,
+            "source_fragment" : "= hdr.inner_vlan_tag.cfi; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_7",
+      "id" : 65,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._mpls_ttl13"]
             },
             {
               "type" : "hexstr",
@@ -5141,7 +4649,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 115,
+            "line" : 126,
             "column" : 37,
             "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
           }
@@ -5149,7 +4657,33 @@
       ]
     },
     {
-      "name" : "act_7",
+      "name" : "act_8",
+      "id" : 66,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x8847"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../define.p4",
+            "line" : 108,
+            "column" : 31,
+            "source_fragment" : "0x8847; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_9",
       "id" : 67,
       "runtime_data" : [],
       "primitives" : [
@@ -5158,6 +4692,84 @@
           "parameters" : [
             {
               "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+            },
+            {
+              "type" : "field",
+              "value" : ["inner_vlan_tag", "eth_type"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/filtering.p4",
+            "line" : 136,
+            "column" : 50,
+            "source_fragment" : "= hdr.inner_vlan_tag.eth_type; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_10",
+      "id" : 68,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+            },
+            {
+              "type" : "field",
+              "value" : ["vlan_tag", "eth_type"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/filtering.p4",
+            "line" : 139,
+            "column" : 50,
+            "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_11",
+      "id" : 69,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+            },
+            {
+              "type" : "field",
+              "value" : ["ethernet", "eth_type"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/filtering.p4",
+            "line" : 141,
+            "column" : 46,
+            "source_fragment" : "= hdr.ethernet.eth_type; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_12",
+      "id" : 70,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
               "value" : ["scalars", "spgw_ingress_tmp"]
             },
             {
@@ -5179,8 +4791,8 @@
       ]
     },
     {
-      "name" : "act_8",
-      "id" : 68,
+      "name" : "act_13",
+      "id" : 71,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5209,8 +4821,8 @@
       ]
     },
     {
-      "name" : "act_9",
-      "id" : 69,
+      "name" : "act_14",
+      "id" : 72,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5231,8 +4843,8 @@
       ]
     },
     {
-      "name" : "act_10",
-      "id" : 70,
+      "name" : "act_15",
+      "id" : 73,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5240,7 +4852,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_direction16"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_direction23"]
             },
             {
               "type" : "hexstr",
@@ -5257,8 +4869,8 @@
       ]
     },
     {
-      "name" : "act_11",
-      "id" : 71,
+      "name" : "act_16",
+      "id" : 74,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5287,8 +4899,8 @@
       ]
     },
     {
-      "name" : "act_12",
-      "id" : 72,
+      "name" : "act_17",
+      "id" : 75,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5317,8 +4929,8 @@
       ]
     },
     {
-      "name" : "act_13",
-      "id" : 73,
+      "name" : "act_18",
+      "id" : 76,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5326,7 +4938,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_direction16"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_direction23"]
             },
             {
               "type" : "hexstr",
@@ -5343,8 +4955,8 @@
       ]
     },
     {
-      "name" : "act_14",
-      "id" : 74,
+      "name" : "act_19",
+      "id" : 77,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5352,7 +4964,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_direction16"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_direction23"]
             },
             {
               "type" : "hexstr",
@@ -5398,8 +5010,8 @@
       ]
     },
     {
-      "name" : "act_15",
-      "id" : 75,
+      "name" : "act_20",
+      "id" : 78,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5428,8 +5040,8 @@
       ]
     },
     {
-      "name" : "act_16",
-      "id" : 76,
+      "name" : "act_21",
+      "id" : 79,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5437,7 +5049,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len17"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len24"]
             },
             {
               "type" : "field",
@@ -5454,628 +5066,8 @@
       ]
     },
     {
-      "name" : "act_17",
-      "id" : 77,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type21"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x01"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../header.p4",
-            "line" : 156,
-            "column" : 37,
-            "source_fragment" : "2w0x1; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "bng_ingress_upstream_hasReturned"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : false
-                  }
-                }
-              }
-            }
-          ]
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "bng_ingress_upstream_drop"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : false
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 47,
-            "column" : 4,
-            "source_fragment" : "bool drop = false;"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_18",
-      "id" : 78,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "bng_ingress_upstream_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_19",
-      "id" : 79,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "bng_ingress_upstream_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : false
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_20",
-      "id" : 80,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "bng_ingress_upstream_hasReturned"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 157,
-            "column" : 12,
-            "source_fragment" : "return"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_21",
-      "id" : 81,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "count",
-          "parameters" : [
-            {
-              "type" : "counter_array",
-              "value" : "FabricIngress.bng_ingress.upstream.c_dropped"
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 163,
-            "column" : 16,
-            "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
-          }
-        }
-      ]
-    },
-    {
       "name" : "act_22",
-      "id" : 82,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "key_0"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "&",
-                      "left" : {
-                        "type" : "expression",
-                        "value" : {
-                          "op" : ">>",
-                          "left" : {
-                            "type" : "field",
-                            "value" : ["ipv6", "src_addr"]
-                          },
-                          "right" : {
-                            "type" : "hexstr",
-                            "value" : "0x40"
-                          }
-                        }
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0xffffffffffffffffffffffffffffffff"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffffffffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 140,
-            "column" : 12,
-            "source_fragment" : "hdr.ipv6.src_addr[127:64]"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_23",
-      "id" : 83,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "count",
-          "parameters" : [
-            {
-              "type" : "counter_array",
-              "value" : "FabricIngress.bng_ingress.upstream.c_dropped"
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 170,
-            "column" : 16,
-            "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_24",
-      "id" : 84,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "bng_ingress_downstream_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_25",
-      "id" : 85,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "bng_ingress_downstream_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : false
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_26",
-      "id" : 86,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "execute_meter",
-          "parameters" : [
-            {
-              "type" : "meter_array",
-              "value" : "FabricIngress.bng_ingress.downstream.m_prio"
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result23"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 293,
-            "column" : 20,
-            "source_fragment" : "m_prio.execute_meter((bit<32>)fmeta.bng.line_id, ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_27",
-      "id" : 87,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "execute_meter",
-          "parameters" : [
-            {
-              "type" : "meter_array",
-              "value" : "FabricIngress.bng_ingress.downstream.m_besteff"
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result23"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 296,
-            "column" : 20,
-            "source_fragment" : "m_besteff.execute_meter((bit<32>)fmeta.bng.line_id, ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_28",
-      "id" : 88,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "bng_ingress_downstream_tmp_0"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_29",
-      "id" : 89,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "bng_ingress_downstream_tmp_0"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : false
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_30",
-      "id" : 90,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "key_1"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "&",
-                      "left" : {
-                        "type" : "expression",
-                        "value" : {
-                          "op" : ">>",
-                          "left" : {
-                            "type" : "field",
-                            "value" : ["ipv6", "dst_addr"]
-                          },
-                          "right" : {
-                            "type" : "hexstr",
-                            "value" : "0x40"
-                          }
-                        }
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0xffffffffffffffffffffffffffffffff"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffffffffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 228,
-            "column" : 12,
-            "source_fragment" : "hdr.ipv6.dst_addr[127:64]"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_31",
-      "id" : 91,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "execute_meter",
-          "parameters" : [
-            {
-              "type" : "meter_array",
-              "value" : "FabricIngress.bng_ingress.downstream.m_prio"
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result23"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 307,
-            "column" : 20,
-            "source_fragment" : "m_prio.execute_meter((bit<32>)fmeta.bng.line_id, ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_32",
-      "id" : 92,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "execute_meter",
-          "parameters" : [
-            {
-              "type" : "meter_array",
-              "value" : "FabricIngress.bng_ingress.downstream.m_besteff"
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result23"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 310,
-            "column" : 20,
-            "source_fragment" : "m_besteff.execute_meter((bit<32>)fmeta.bng.line_id, ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_33",
-      "id" : 93,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "bng_ingress_downstream_prio"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : false
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 190,
-            "column" : 4,
-            "source_fragment" : "bool prio = false;"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_34",
-      "id" : 94,
+      "id" : 80,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6132,8 +5124,8 @@
       ]
     },
     {
-      "name" : "act_35",
-      "id" : 95,
+      "name" : "act_23",
+      "id" : 81,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6190,8 +5182,8 @@
       ]
     },
     {
-      "name" : "act_36",
-      "id" : 96,
+      "name" : "act_24",
+      "id" : 82,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6216,10 +5208,530 @@
       ]
     },
     {
-      "name" : "nop",
+      "name" : "act_25",
+      "id" : 83,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "bng_ingress_s_tag"]
+            },
+            {
+              "type" : "field",
+              "value" : ["vlan_tag", "vlan_id"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 339,
+            "column" : 16,
+            "source_fragment" : "s_tag = hdr.vlan_tag.vlan_id"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "bng_ingress_c_tag"]
+            },
+            {
+              "type" : "field",
+              "value" : ["inner_vlan_tag", "vlan_id"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 340,
+            "column" : 16,
+            "source_fragment" : "c_tag = hdr.inner_vlan_tag.vlan_id"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_26",
+      "id" : 84,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "bng_ingress_s_tag"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 344,
+            "column" : 16,
+            "source_fragment" : "s_tag = fmeta.vlan_id; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "bng_ingress_c_tag"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 345,
+            "column" : 16,
+            "source_fragment" : "c_tag = fmeta.inner_vlan_id; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_27",
+      "id" : 85,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "bng_ingress_upstream_tmp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "name" : "act_28",
+      "id" : 86,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "bng_ingress_upstream_tmp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : false
+                  }
+                }
+              }
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "name" : "act_29",
+      "id" : 87,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_type28"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../header.p4",
+            "line" : 156,
+            "column" : 37,
+            "source_fragment" : "2w0x1; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "bng_ingress_upstream_hasReturned"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : false
+                  }
+                }
+              }
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "name" : "act_30",
+      "id" : 88,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "bng_ingress_upstream_hasReturned"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 124,
+            "column" : 12,
+            "source_fragment" : "return"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_31",
+      "id" : 89,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "count",
+          "parameters" : [
+            {
+              "type" : "counter_array",
+              "value" : "FabricIngress.bng_ingress.upstream.c_dropped"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 129,
+            "column" : 20,
+            "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_32",
+      "id" : 90,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "count",
+          "parameters" : [
+            {
+              "type" : "counter_array",
+              "value" : "FabricIngress.bng_ingress.upstream.c_dropped"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 137,
+            "column" : 19,
+            "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_33",
+      "id" : 91,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "key_0"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "&",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : ">>",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["ipv6", "src_addr"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0x40"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xffffffffffffffffffffffffffffffff"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffffffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 110,
+            "column" : 12,
+            "source_fragment" : "hdr.ipv6.src_addr[127:64]"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_34",
+      "id" : 92,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "bng_ingress_downstream_tmp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "name" : "act_35",
+      "id" : 93,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "bng_ingress_downstream_tmp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : false
+                  }
+                }
+              }
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "name" : "act_36",
+      "id" : 94,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "execute_meter",
+          "parameters" : [
+            {
+              "type" : "meter_array",
+              "value" : "FabricIngress.bng_ingress.downstream.m_prio"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result31"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 236,
+            "column" : 24,
+            "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_37",
+      "id" : 95,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "execute_meter",
+          "parameters" : [
+            {
+              "type" : "meter_array",
+              "value" : "FabricIngress.bng_ingress.downstream.m_besteff"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result31"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 239,
+            "column" : 24,
+            "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_38",
+      "id" : 96,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "execute_meter",
+          "parameters" : [
+            {
+              "type" : "meter_array",
+              "value" : "FabricIngress.bng_ingress.downstream.m_prio"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result31"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 248,
+            "column" : 24,
+            "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_39",
       "id" : 97,
       "runtime_data" : [],
-      "primitives" : []
+      "primitives" : [
+        {
+          "op" : "execute_meter",
+          "parameters" : [
+            {
+              "type" : "meter_array",
+              "value" : "FabricIngress.bng_ingress.downstream.m_besteff"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result31"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 251,
+            "column" : 24,
+            "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
+          }
+        }
+      ]
     },
     {
       "name" : "nop",
@@ -6499,7 +6011,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr19"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr26"]
             }
           ],
           "source_info" : {
@@ -6518,7 +6030,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr20"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr27"]
             }
           ],
           "source_info" : {
@@ -6619,7 +6131,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len17"]
+                        "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len24"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -6818,7 +6330,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len17"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len24"]
             }
           ],
           "source_info" : {
@@ -6837,7 +6349,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_teid18"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_teid25"]
             }
           ],
           "source_info" : {
@@ -6852,75 +6364,13 @@
     {
       "name" : "FabricEgress.bng_egress.downstream.encap_v4",
       "id" : 105,
-      "runtime_data" : [
-        {
-          "name" : "c_tag",
-          "bitwidth" : 12
-        },
-        {
-          "name" : "pppoe_session_id",
-          "bitwidth" : 16
-        }
-      ],
+      "runtime_data" : [],
       "primitives" : [
         {
           "op" : "assign",
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["vlan_tag", "eth_type"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x8100"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 107,
-            "column" : 31,
-            "source_fragment" : "0x8100; ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "inner_vlan_tag"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 331,
-            "column" : 8,
-            "source_fragment" : "hdr.inner_vlan_tag.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["inner_vlan_tag", "vlan_id"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 332,
-            "column" : 8,
-            "source_fragment" : "hdr.inner_vlan_tag.vlan_id = c_tag; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
               "value" : ["inner_vlan_tag", "eth_type"]
             },
             {
@@ -6945,7 +6395,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 334,
+            "line" : 271,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.setValid()"
           }
@@ -6964,7 +6414,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 335,
+            "line" : 272,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.version = 4w1"
           }
@@ -6983,7 +6433,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 336,
+            "line" : 273,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.type_id = 4w1"
           }
@@ -7002,7 +6452,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 337,
+            "line" : 274,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.code = 8w0"
           }
@@ -7015,15 +6465,15 @@
               "value" : ["pppoe", "session_id"]
             },
             {
-              "type" : "runtime_data",
-              "value" : 1
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id30"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 338,
+            "line" : 275,
             "column" : 8,
-            "source_fragment" : "hdr.pppoe.session_id = pppoe_session_id; ..."
+            "source_fragment" : "hdr.pppoe.session_id = fmeta.bng.pppoe_session_id; ..."
           }
         },
         {
@@ -7035,12 +6485,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 339,
+            "line" : 276,
             "column" : 8,
             "source_fragment" : "c_line_tx.count(fmeta.bng.line_id)"
           }
@@ -7082,7 +6532,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 344,
+            "line" : 281,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.length = hdr.ipv4.total_len + 16w2"
           }
@@ -7111,75 +6561,13 @@
     {
       "name" : "FabricEgress.bng_egress.downstream.encap_v6",
       "id" : 106,
-      "runtime_data" : [
-        {
-          "name" : "c_tag",
-          "bitwidth" : 12
-        },
-        {
-          "name" : "pppoe_session_id",
-          "bitwidth" : 16
-        }
-      ],
+      "runtime_data" : [],
       "primitives" : [
         {
           "op" : "assign",
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["vlan_tag", "eth_type"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x8100"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 107,
-            "column" : 31,
-            "source_fragment" : "0x8100; ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "inner_vlan_tag"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 331,
-            "column" : 8,
-            "source_fragment" : "hdr.inner_vlan_tag.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["inner_vlan_tag", "vlan_id"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 332,
-            "column" : 8,
-            "source_fragment" : "hdr.inner_vlan_tag.vlan_id = c_tag; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
               "value" : ["inner_vlan_tag", "eth_type"]
             },
             {
@@ -7204,7 +6592,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 334,
+            "line" : 271,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.setValid()"
           }
@@ -7223,7 +6611,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 335,
+            "line" : 272,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.version = 4w1"
           }
@@ -7242,7 +6630,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 336,
+            "line" : 273,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.type_id = 4w1"
           }
@@ -7261,7 +6649,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 337,
+            "line" : 274,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.code = 8w0"
           }
@@ -7274,15 +6662,15 @@
               "value" : ["pppoe", "session_id"]
             },
             {
-              "type" : "runtime_data",
-              "value" : 1
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id30"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 338,
+            "line" : 275,
             "column" : 8,
-            "source_fragment" : "hdr.pppoe.session_id = pppoe_session_id; ..."
+            "source_fragment" : "hdr.pppoe.session_id = fmeta.bng.pppoe_session_id; ..."
           }
         },
         {
@@ -7294,12 +6682,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id22"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 339,
+            "line" : 276,
             "column" : 8,
             "source_fragment" : "c_line_tx.count(fmeta.bng.line_id)"
           }
@@ -7341,7 +6729,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 351,
+            "line" : 288,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.length = hdr.ipv6.payload_len + 16w42"
           }
@@ -7728,7 +7116,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
+              "value" : ["scalars", "fabric_metadata_t._l4_dport22"]
             }
           ],
           "source_info" : {
@@ -7877,7 +7265,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_transit25"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_transit33"]
             },
             {
               "type" : "expression",
@@ -7906,7 +7294,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
             },
             {
               "type" : "runtime_data",
@@ -8004,7 +7392,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -8018,7 +7406,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8046,7 +7434,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -8060,7 +7448,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8129,7 +7517,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -8143,7 +7531,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8171,7 +7559,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -8185,7 +7573,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8320,7 +7708,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -8334,7 +7722,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8362,7 +7750,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -8376,7 +7764,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8490,7 +7878,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -8504,7 +7892,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8532,7 +7920,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -8546,7 +7934,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8726,7 +8114,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -8740,7 +8128,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8768,7 +8156,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -8782,7 +8170,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8930,7 +8318,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -8944,7 +8332,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8972,7 +8360,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -8986,7 +8374,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9200,7 +8588,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -9214,7 +8602,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9242,7 +8630,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -9256,7 +8644,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9310,7 +8698,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
             }
           ],
           "source_info" : {
@@ -9325,7 +8713,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -9339,7 +8727,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9367,7 +8755,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -9381,7 +8769,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9501,7 +8889,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
             }
           ],
           "source_info" : {
@@ -9516,7 +8904,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -9530,7 +8918,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9558,7 +8946,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -9572,7 +8960,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9660,7 +9048,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
             }
           ],
           "source_info" : {
@@ -9675,7 +9063,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -9689,7 +9077,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9717,7 +9105,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -9731,7 +9119,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9885,7 +9273,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
             }
           ],
           "source_info" : {
@@ -9900,7 +9288,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -9914,7 +9302,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9942,7 +9330,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -9956,7 +9344,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10089,7 +9477,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
             }
           ],
           "source_info" : {
@@ -10104,7 +9492,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -10118,7 +9506,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10146,7 +9534,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -10160,7 +9548,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10359,7 +9747,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
             }
           ],
           "source_info" : {
@@ -10374,7 +9762,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -10388,7 +9776,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10416,7 +9804,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -10430,7 +9818,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10597,7 +9985,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
             }
           ],
           "source_info" : {
@@ -10612,7 +10000,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -10626,7 +10014,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10654,7 +10042,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -10668,7 +10056,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10901,7 +10289,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
             }
           ],
           "source_info" : {
@@ -10916,7 +10304,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -10930,7 +10318,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10958,7 +10346,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -10972,7 +10360,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11047,7 +10435,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -11061,7 +10449,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11089,7 +10477,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -11103,7 +10491,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11191,7 +10579,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -11205,7 +10593,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11233,7 +10621,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -11247,7 +10635,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11369,7 +10757,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -11383,7 +10771,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11411,7 +10799,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -11425,7 +10813,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11517,7 +10905,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -11531,7 +10919,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11559,7 +10947,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -11573,7 +10961,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11699,7 +11087,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -11713,7 +11101,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11741,7 +11129,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -11755,7 +11143,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11900,7 +11288,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -11914,7 +11302,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11942,7 +11330,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -11956,7 +11344,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12135,7 +11523,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -12149,7 +11537,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12177,7 +11565,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -12191,7 +11579,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12260,7 +11648,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -12274,7 +11662,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12302,7 +11690,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -12316,7 +11704,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12419,7 +11807,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -12433,7 +11821,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12461,7 +11849,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -12475,7 +11863,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12597,7 +11985,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -12611,7 +11999,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12639,7 +12027,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -12653,7 +12041,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12809,7 +12197,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -12823,7 +12211,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12851,7 +12239,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -12865,7 +12253,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12991,7 +12379,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -13005,7 +12393,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -13033,7 +12421,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -13047,7 +12435,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -13207,7 +12595,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -13221,7 +12609,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -13249,7 +12637,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -13263,7 +12651,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -13442,7 +12830,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -13456,7 +12844,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -13484,7 +12872,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -13498,7 +12886,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -13711,7 +13099,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
             },
             {
               "type" : "expression",
@@ -13725,7 +13113,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -13753,7 +13141,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
             },
             {
               "type" : "expression",
@@ -13767,7 +13155,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -14830,7 +14218,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 252,
+            "line" : 264,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setInvalid()"
           }
@@ -14840,17 +14228,17 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._eth_type0"]
+              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._ip_eth_type1"]
+              "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 254,
-            "column" : 33,
+            "line" : 266,
+            "column" : 38,
             "source_fragment" : "= fabric_metadata.ip_eth_type; ..."
           }
         }
@@ -14871,7 +14259,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 259,
+            "line" : 271,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
           }
@@ -14885,12 +14273,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label12"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 260,
+            "line" : 272,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
           }
@@ -14909,7 +14297,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 261,
+            "line" : 273,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = 3w0"
           }
@@ -14928,7 +14316,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 262,
+            "line" : 274,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
           }
@@ -14942,12 +14330,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_ttl6"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_ttl13"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 263,
+            "line" : 275,
             "column" : 8,
             "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
           }
@@ -14957,7 +14345,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._eth_type0"]
+              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
             },
             {
               "type" : "hexstr",
@@ -14988,7 +14376,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 271,
+            "line" : 283,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setValid()"
           }
@@ -15002,12 +14390,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_cfi4"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 272,
+            "line" : 284,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
           }
@@ -15021,12 +14409,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_pri3"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_pri6"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 273,
+            "line" : 285,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
           }
@@ -15040,14 +14428,14 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._eth_type0"]
+              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 274,
+            "line" : 286,
             "column" : 8,
-            "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.eth_type; ..."
+            "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.last_eth_type; ..."
           }
         },
         {
@@ -15059,12 +14447,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 275,
+            "line" : 287,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
           }
@@ -15091,11 +14479,245 @@
       ]
     },
     {
-      "name" : "FabricEgress.egress_next.pop_vlan",
+      "name" : "FabricEgress.egress_next.push_vlan",
       "id" : 147,
       "runtime_data" : [],
       "primitives" : [
         {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "vlan_tag"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 283,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["vlan_tag", "cfi"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 284,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["vlan_tag", "pri"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._vlan_pri6"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 285,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["vlan_tag", "eth_type"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 286,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.last_eth_type; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["vlan_tag", "vlan_id"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 287,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["ethernet", "eth_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x8100"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../define.p4",
+            "line" : 107,
+            "column" : 31,
+            "source_fragment" : "0x8100; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.egress_next.push_inner_vlan",
+      "id" : 148,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "inner_vlan_tag"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 296,
+            "column" : 8,
+            "source_fragment" : "hdr.inner_vlan_tag.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["inner_vlan_tag", "cfi"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi11"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 297,
+            "column" : 8,
+            "source_fragment" : "hdr.inner_vlan_tag.cfi = fabric_metadata.inner_vlan_cfi; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["inner_vlan_tag", "pri"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri10"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 298,
+            "column" : 8,
+            "source_fragment" : "hdr.inner_vlan_tag.pri = fabric_metadata.inner_vlan_pri; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["inner_vlan_tag", "vlan_id"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 299,
+            "column" : 8,
+            "source_fragment" : "hdr.inner_vlan_tag.vlan_id = fabric_metadata.inner_vlan_id; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["inner_vlan_tag", "eth_type"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 300,
+            "column" : 8,
+            "source_fragment" : "hdr.inner_vlan_tag.eth_type = fabric_metadata.last_eth_type; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["vlan_tag", "eth_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x8100"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../define.p4",
+            "line" : 107,
+            "column" : 31,
+            "source_fragment" : "0x8100; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.egress_next.pop_vlan",
+      "id" : 149,
+      "runtime_data" : [],
+      "primitives" : [
+        {
           "op" : "assign",
           "parameters" : [
             {
@@ -15104,14 +14726,14 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._eth_type0"]
+              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 286,
+            "line" : 312,
             "column" : 8,
-            "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.eth_type; ..."
+            "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.last_eth_type; ..."
           }
         },
         {
@@ -15124,7 +14746,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 287,
+            "line" : 313,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
           }
@@ -15132,8 +14754,8 @@
       ]
     },
     {
-      "name" : "act_37",
-      "id" : 148,
+      "name" : "act_40",
+      "id" : 150,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15149,8 +14771,8 @@
       ]
     },
     {
-      "name" : "act_38",
-      "id" : 149,
+      "name" : "act_41",
+      "id" : 151,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15200,8 +14822,8 @@
       ]
     },
     {
-      "name" : "act_39",
-      "id" : 150,
+      "name" : "act_42",
+      "id" : 152,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15214,7 +14836,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 308,
+            "line" : 334,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -15222,8 +14844,8 @@
       ]
     },
     {
-      "name" : "act_40",
-      "id" : 151,
+      "name" : "act_43",
+      "id" : 153,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15252,8 +14874,8 @@
       ]
     },
     {
-      "name" : "act_41",
-      "id" : 152,
+      "name" : "act_44",
+      "id" : 154,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15282,8 +14904,30 @@
       ]
     },
     {
-      "name" : "act_42",
-      "id" : 153,
+      "name" : "act_45",
+      "id" : 155,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "inner_vlan_tag"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 350,
+            "column" : 12,
+            "source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_46",
+      "id" : 156,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15296,7 +14940,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 327,
+            "line" : 367,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -15304,8 +14948,8 @@
       ]
     },
     {
-      "name" : "act_43",
-      "id" : 154,
+      "name" : "act_47",
+      "id" : 157,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15345,7 +14989,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 326,
+            "line" : 366,
             "column" : 12,
             "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
           }
@@ -15353,8 +14997,8 @@
       ]
     },
     {
-      "name" : "act_44",
-      "id" : 155,
+      "name" : "act_48",
+      "id" : 158,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15367,7 +15011,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 331,
+            "line" : 371,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -15375,8 +15019,8 @@
       ]
     },
     {
-      "name" : "act_45",
-      "id" : 156,
+      "name" : "act_49",
+      "id" : 159,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15416,7 +15060,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 330,
+            "line" : 370,
             "column" : 16,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
           }
@@ -15424,8 +15068,8 @@
       ]
     },
     {
-      "name" : "act_46",
-      "id" : 157,
+      "name" : "act_50",
+      "id" : 160,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15438,7 +15082,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 336,
+            "line" : 376,
             "column" : 45,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -15446,8 +15090,8 @@
       ]
     },
     {
-      "name" : "act_47",
-      "id" : 158,
+      "name" : "act_51",
+      "id" : 161,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15487,7 +15131,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 375,
             "column" : 16,
             "source_fragment" : "hdr.ipv6.hop_limit = hdr.ipv6.hop_limit - 1"
           }
@@ -15495,8 +15139,8 @@
       ]
     },
     {
-      "name" : "act_48",
-      "id" : 159,
+      "name" : "act_52",
+      "id" : 162,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15525,8 +15169,8 @@
       ]
     },
     {
-      "name" : "act_49",
-      "id" : 160,
+      "name" : "act_53",
+      "id" : 163,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15561,8 +15205,8 @@
       ]
     },
     {
-      "name" : "act_50",
-      "id" : 161,
+      "name" : "act_54",
+      "id" : 164,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15588,7 +15232,7 @@
                       },
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       }
                     }
                   },
@@ -15610,8 +15254,8 @@
       ]
     },
     {
-      "name" : "act_51",
-      "id" : 162,
+      "name" : "act_55",
+      "id" : 165,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15659,8 +15303,8 @@
       ]
     },
     {
-      "name" : "act_52",
-      "id" : 163,
+      "name" : "act_56",
+      "id" : 166,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15686,7 +15330,7 @@
                       },
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
                       }
                     }
                   },
@@ -15708,8 +15352,8 @@
       ]
     },
     {
-      "name" : "act_53",
-      "id" : 164,
+      "name" : "act_57",
+      "id" : 167,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15735,7 +15379,7 @@
                       },
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
                       }
                     }
                   },
@@ -15785,14 +15429,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [60],
+          "action_ids" : [58],
           "actions" : ["act_0"],
           "base_default_next" : "node_3",
           "next_tables" : {
             "act_0" : "node_3"
           },
           "default_entry" : {
-            "action_id" : 60,
+            "action_id" : 58,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15814,14 +15458,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [59],
+          "action_ids" : [57],
           "actions" : ["act"],
           "base_default_next" : "node_5",
           "next_tables" : {
             "act" : "node_5"
           },
           "default_entry" : {
-            "action_id" : 59,
+            "action_id" : 57,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15843,14 +15487,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [63],
+          "action_ids" : [61],
           "actions" : ["act_3"],
           "base_default_next" : "node_7",
           "next_tables" : {
             "act_3" : "node_7"
           },
           "default_entry" : {
-            "action_id" : 63,
+            "action_id" : 61,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15872,14 +15516,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [61],
+          "action_ids" : [59],
           "actions" : ["act_1"],
           "base_default_next" : "node_10",
           "next_tables" : {
             "act_1" : "node_10"
           },
           "default_entry" : {
-            "action_id" : 61,
+            "action_id" : 59,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15901,14 +15545,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [62],
+          "action_ids" : [60],
           "actions" : ["act_2"],
           "base_default_next" : "node_10",
           "next_tables" : {
             "act_2" : "node_10"
           },
           "default_entry" : {
-            "action_id" : 62,
+            "action_id" : 60,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15930,14 +15574,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [64],
+          "action_ids" : [62],
           "actions" : ["act_4"],
           "base_default_next" : "node_12",
           "next_tables" : {
             "act_4" : "node_12"
           },
           "default_entry" : {
-            "action_id" : 64,
+            "action_id" : 62,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15948,9 +15592,9 @@
           "id" : 6,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 105,
-            "column" : 37,
-            "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
+            "line" : 110,
+            "column" : 36,
+            "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
           },
           "key" : [],
           "match_type" : "exact",
@@ -15959,14 +15603,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [65],
+          "action_ids" : [63],
           "actions" : ["act_5"],
           "base_default_next" : "node_14",
           "next_tables" : {
             "act_5" : "node_14"
           },
           "default_entry" : {
-            "action_id" : 65,
+            "action_id" : 63,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15977,7 +15621,36 @@
           "id" : 7,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 115,
+            "line" : 116,
+            "column" : 42,
+            "source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [64],
+          "actions" : ["act_6"],
+          "base_default_next" : "node_16",
+          "next_tables" : {
+            "act_6" : "node_16"
+          },
+          "default_entry" : {
+            "action_id" : 64,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_7",
+          "id" : 8,
+          "source_info" : {
+            "filename" : "include/control/filtering.p4",
+            "line" : 126,
             "column" : 37,
             "source_fragment" : "="
           },
@@ -15988,11 +15661,40 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
+          "action_ids" : [65],
+          "actions" : ["act_7"],
+          "base_default_next" : "node_18",
+          "next_tables" : {
+            "act_7" : "node_18"
+          },
+          "default_entry" : {
+            "action_id" : 65,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_8",
+          "id" : 9,
+          "source_info" : {
+            "filename" : "include/control/filtering.p4",
+            "line" : 131,
+            "column" : 42,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
           "action_ids" : [66],
-          "actions" : ["act_6"],
+          "actions" : ["act_8"],
           "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
           "next_tables" : {
-            "act_6" : "FabricIngress.filtering.ingress_port_vlan"
+            "act_8" : "FabricIngress.filtering.ingress_port_vlan"
           },
           "default_entry" : {
             "action_id" : 66,
@@ -16002,11 +15704,98 @@
           }
         },
         {
-          "name" : "FabricIngress.filtering.ingress_port_vlan",
-          "id" : 8,
+          "name" : "tbl_act_9",
+          "id" : 10,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 51,
+            "line" : 136,
+            "column" : 50,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [67],
+          "actions" : ["act_9"],
+          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
+          "next_tables" : {
+            "act_9" : "FabricIngress.filtering.ingress_port_vlan"
+          },
+          "default_entry" : {
+            "action_id" : 67,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_10",
+          "id" : 11,
+          "source_info" : {
+            "filename" : "include/control/filtering.p4",
+            "line" : 139,
+            "column" : 50,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [68],
+          "actions" : ["act_10"],
+          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
+          "next_tables" : {
+            "act_10" : "FabricIngress.filtering.ingress_port_vlan"
+          },
+          "default_entry" : {
+            "action_id" : 68,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_11",
+          "id" : 12,
+          "source_info" : {
+            "filename" : "include/control/filtering.p4",
+            "line" : 141,
+            "column" : 46,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [69],
+          "actions" : ["act_11"],
+          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
+          "next_tables" : {
+            "act_11" : "FabricIngress.filtering.ingress_port_vlan"
+          },
+          "default_entry" : {
+            "action_id" : 69,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.filtering.ingress_port_vlan",
+          "id" : 13,
+          "source_info" : {
+            "filename" : "include/control/filtering.p4",
+            "line" : 53,
             "column" : 10,
             "source_fragment" : "ingress_port_vlan"
           },
@@ -16028,15 +15817,21 @@
               "name" : "vlan_id",
               "target" : ["vlan_tag", "vlan_id"],
               "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "inner_vlan_id",
+              "target" : ["inner_vlan_tag", "vlan_id"],
+              "mask" : null
             }
           ],
           "match_type" : "ternary",
           "type" : "simple",
-          "max_size" : 1024,
+          "max_size" : 8192,
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [35, 36, 37],
+          "action_ids" : [32, 33, 34],
           "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
           "base_default_next" : "FabricIngress.filtering.fwd_classifier",
           "next_tables" : {
@@ -16045,7 +15840,7 @@
             "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
           },
           "default_entry" : {
-            "action_id" : 35,
+            "action_id" : 32,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16053,10 +15848,10 @@
         },
         {
           "name" : "FabricIngress.filtering.fwd_classifier",
-          "id" : 9,
+          "id" : 14,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 87,
+            "line" : 90,
             "column" : 10,
             "source_fragment" : "fwd_classifier"
           },
@@ -16075,8 +15870,20 @@
             },
             {
               "match_type" : "exact",
-              "name" : "eth_type",
-              "target" : ["scalars", "fabric_metadata_t._eth_type0"],
+              "name" : "is_ipv4",
+              "target" : ["scalars", "fabric_metadata_t._is_ipv41"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "is_ipv6",
+              "target" : ["scalars", "fabric_metadata_t._is_ipv62"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "is_mpls",
+              "target" : ["scalars", "fabric_metadata_t._is_mpls3"],
               "mask" : null
             }
           ],
@@ -16086,22 +15893,22 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [38],
+          "action_ids" : [35],
           "actions" : ["FabricIngress.filtering.set_forwarding_type"],
-          "base_default_next" : "tbl_act_7",
+          "base_default_next" : "tbl_act_12",
           "next_tables" : {
-            "FabricIngress.filtering.set_forwarding_type" : "tbl_act_7"
+            "FabricIngress.filtering.set_forwarding_type" : "tbl_act_12"
           },
           "default_entry" : {
-            "action_id" : 38,
+            "action_id" : 35,
             "action_const" : true,
             "action_data" : ["0x0"],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_7",
-          "id" : 10,
+          "name" : "tbl_act_12",
+          "id" : 15,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -16109,14 +15916,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [75],
-          "actions" : ["act_15"],
-          "base_default_next" : "node_19",
+          "action_ids" : [78],
+          "actions" : ["act_20"],
+          "base_default_next" : "node_28",
           "next_tables" : {
-            "act_15" : "node_19"
+            "act_20" : "node_28"
           },
           "default_entry" : {
-            "action_id" : 75,
+            "action_id" : 78,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16124,7 +15931,7 @@
         },
         {
           "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
-          "id" : 11,
+          "id" : 16,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 83,
@@ -16149,8 +15956,8 @@
           "actions" : ["nop"],
           "base_default_next" : null,
           "next_tables" : {
-            "__HIT__" : "tbl_act_8",
-            "__MISS__" : "tbl_act_9"
+            "__HIT__" : "tbl_act_13",
+            "__MISS__" : "tbl_act_14"
           },
           "default_entry" : {
             "action_id" : 1,
@@ -16160,8 +15967,8 @@
           }
         },
         {
-          "name" : "tbl_act_8",
-          "id" : 12,
+          "name" : "tbl_act_13",
+          "id" : 17,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -16169,22 +15976,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [67],
-          "actions" : ["act_7"],
-          "base_default_next" : "node_23",
+          "action_ids" : [70],
+          "actions" : ["act_12"],
+          "base_default_next" : "node_32",
           "next_tables" : {
-            "act_7" : "node_23"
+            "act_12" : "node_32"
           },
           "default_entry" : {
-            "action_id" : 67,
+            "action_id" : 70,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_9",
-          "id" : 13,
+          "name" : "tbl_act_14",
+          "id" : 18,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -16192,22 +15999,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [68],
-          "actions" : ["act_8"],
-          "base_default_next" : "node_23",
+          "action_ids" : [71],
+          "actions" : ["act_13"],
+          "base_default_next" : "node_32",
           "next_tables" : {
-            "act_8" : "node_23"
+            "act_13" : "node_32"
           },
           "default_entry" : {
-            "action_id" : 68,
+            "action_id" : 71,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_10",
-          "id" : 14,
+          "name" : "tbl_act_15",
+          "id" : 19,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 149,
@@ -16221,22 +16028,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [69],
-          "actions" : ["act_9"],
-          "base_default_next" : "tbl_act_11",
+          "action_ids" : [72],
+          "actions" : ["act_14"],
+          "base_default_next" : "tbl_act_16",
           "next_tables" : {
-            "act_9" : "tbl_act_11"
+            "act_14" : "tbl_act_16"
           },
           "default_entry" : {
-            "action_id" : 69,
+            "action_id" : 72,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_11",
-          "id" : 15,
+          "name" : "tbl_act_16",
+          "id" : 20,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 151,
@@ -16250,14 +16057,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [70],
-          "actions" : ["act_10"],
+          "action_ids" : [73],
+          "actions" : ["act_15"],
           "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
           "next_tables" : {
-            "act_10" : "tbl_spgw_ingress_gtpu_decap"
+            "act_15" : "tbl_spgw_ingress_gtpu_decap"
           },
           "default_entry" : {
-            "action_id" : 70,
+            "action_id" : 73,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16265,7 +16072,7 @@
         },
         {
           "name" : "tbl_spgw_ingress_gtpu_decap",
-          "id" : 16,
+          "id" : 21,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 152,
@@ -16279,14 +16086,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [17],
+          "action_ids" : [16],
           "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
-          "base_default_next" : "node_33",
+          "base_default_next" : "node_42",
           "next_tables" : {
-            "FabricIngress.spgw_ingress.gtpu_decap" : "node_33"
+            "FabricIngress.spgw_ingress.gtpu_decap" : "node_42"
           },
           "default_entry" : {
-            "action_id" : 17,
+            "action_id" : 16,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16294,7 +16101,7 @@
         },
         {
           "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
-          "id" : 17,
+          "id" : 22,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 70,
@@ -16315,12 +16122,12 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [18, 0],
+          "action_ids" : [17, 0],
           "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "nop"],
           "base_default_next" : null,
           "next_tables" : {
-            "__HIT__" : "tbl_act_12",
-            "__MISS__" : "tbl_act_13"
+            "__HIT__" : "tbl_act_17",
+            "__MISS__" : "tbl_act_18"
           },
           "default_entry" : {
             "action_id" : 0,
@@ -16330,8 +16137,8 @@
           }
         },
         {
-          "name" : "tbl_act_12",
-          "id" : 18,
+          "name" : "tbl_act_17",
+          "id" : 23,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -16339,22 +16146,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [71],
-          "actions" : ["act_11"],
-          "base_default_next" : "node_30",
+          "action_ids" : [74],
+          "actions" : ["act_16"],
+          "base_default_next" : "node_39",
           "next_tables" : {
-            "act_11" : "node_30"
+            "act_16" : "node_39"
           },
           "default_entry" : {
-            "action_id" : 71,
+            "action_id" : 74,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_13",
-          "id" : 19,
+          "name" : "tbl_act_18",
+          "id" : 24,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -16362,22 +16169,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [72],
-          "actions" : ["act_12"],
-          "base_default_next" : "node_30",
+          "action_ids" : [75],
+          "actions" : ["act_17"],
+          "base_default_next" : "node_39",
           "next_tables" : {
-            "act_12" : "node_30"
+            "act_17" : "node_39"
           },
           "default_entry" : {
-            "action_id" : 72,
+            "action_id" : 75,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_14",
-          "id" : 20,
+          "name" : "tbl_act_19",
+          "id" : 25,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 154,
@@ -16391,22 +16198,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [73],
-          "actions" : ["act_13"],
-          "base_default_next" : "node_33",
+          "action_ids" : [76],
+          "actions" : ["act_18"],
+          "base_default_next" : "node_42",
           "next_tables" : {
-            "act_13" : "node_33"
+            "act_18" : "node_42"
           },
           "default_entry" : {
-            "action_id" : 73,
+            "action_id" : 76,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_15",
-          "id" : 21,
+          "name" : "tbl_act_20",
+          "id" : 26,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 156,
@@ -16420,22 +16227,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [74],
-          "actions" : ["act_14"],
-          "base_default_next" : "node_33",
+          "action_ids" : [77],
+          "actions" : ["act_19"],
+          "base_default_next" : "node_42",
           "next_tables" : {
-            "act_14" : "node_33"
+            "act_19" : "node_42"
           },
           "default_entry" : {
-            "action_id" : 74,
+            "action_id" : 77,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_16",
-          "id" : 22,
+          "name" : "tbl_act_21",
+          "id" : 27,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 175,
@@ -16449,172 +16256,11 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [76],
-          "actions" : ["act_16"],
-          "base_default_next" : "node_35",
-          "next_tables" : {
-            "act_16" : "node_35"
-          },
-          "default_entry" : {
-            "action_id" : 76,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_17",
-          "id" : 23,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 47,
-            "column" : 4,
-            "source_fragment" : "bool drop = false; ..."
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [77],
-          "actions" : ["act_17"],
-          "base_default_next" : "FabricIngress.bng_ingress.upstream.t_line_map",
-          "next_tables" : {
-            "act_17" : "FabricIngress.bng_ingress.upstream.t_line_map"
-          },
-          "default_entry" : {
-            "action_id" : 77,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "FabricIngress.bng_ingress.upstream.t_line_map",
-          "id" : 24,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 56,
-            "column" : 10,
-            "source_fragment" : "t_line_map"
-          },
-          "key" : [
-            {
-              "match_type" : "exact",
-              "name" : "s_tag",
-              "target" : ["vlan_tag", "vlan_id"],
-              "mask" : null
-            },
-            {
-              "match_type" : "exact",
-              "name" : "c_tag",
-              "target" : ["inner_vlan_tag", "vlan_id"],
-              "mask" : null
-            }
-          ],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 8192,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [2, 19],
-          "actions" : ["nop", "FabricIngress.bng_ingress.upstream.set_line"],
-          "base_default_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
-          "next_tables" : {
-            "nop" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
-            "FabricIngress.bng_ingress.upstream.set_line" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp"
-          },
-          "default_entry" : {
-            "action_id" : 2,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
-          "id" : 25,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 79,
-            "column" : 10,
-            "source_fragment" : "t_pppoe_cp"
-          },
-          "key" : [
-            {
-              "match_type" : "exact",
-              "name" : "pppoe_code",
-              "target" : ["pppoe", "code"],
-              "mask" : null
-            },
-            {
-              "match_type" : "ternary",
-              "name" : "pppoe_protocol",
-              "target" : ["pppoe", "protocol"],
-              "mask" : null
-            }
-          ],
-          "match_type" : "ternary",
-          "type" : "simple",
-          "max_size" : 16,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [20, 3],
-          "actions" : ["FabricIngress.bng_ingress.upstream.punt_to_cpu", "nop"],
-          "base_default_next" : null,
-          "next_tables" : {
-            "__HIT__" : "tbl_act_18",
-            "__MISS__" : "tbl_act_19"
-          },
-          "default_entry" : {
-            "action_id" : 3,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_18",
-          "id" : 26,
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [78],
-          "actions" : ["act_18"],
-          "base_default_next" : "node_41",
-          "next_tables" : {
-            "act_18" : "node_41"
-          },
-          "default_entry" : {
-            "action_id" : 78,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_19",
-          "id" : 27,
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
           "action_ids" : [79],
-          "actions" : ["act_19"],
-          "base_default_next" : "node_41",
+          "actions" : ["act_21"],
+          "base_default_next" : "node_44",
           "next_tables" : {
-            "act_19" : "node_41"
+            "act_21" : "node_44"
           },
           "default_entry" : {
             "action_id" : 79,
@@ -16624,666 +16270,8 @@
           }
         },
         {
-          "name" : "tbl_act_20",
-          "id" : 28,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 157,
-            "column" : 12,
-            "source_fragment" : "return"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [80],
-          "actions" : ["act_20"],
-          "base_default_next" : "node_43",
-          "next_tables" : {
-            "act_20" : "node_43"
-          },
-          "default_entry" : {
-            "action_id" : 80,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4",
-          "id" : 29,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 118,
-            "column" : 10,
-            "source_fragment" : "t_pppoe_term_v4"
-          },
-          "key" : [
-            {
-              "match_type" : "exact",
-              "name" : "line_id",
-              "target" : ["scalars", "fabric_metadata_t._bng_line_id22"],
-              "mask" : null
-            },
-            {
-              "match_type" : "exact",
-              "name" : "ipv4_src",
-              "target" : ["ipv4", "src_addr"],
-              "mask" : null
-            },
-            {
-              "match_type" : "exact",
-              "name" : "pppoe_session_id",
-              "target" : ["pppoe", "session_id"],
-              "mask" : null
-            }
-          ],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 32768,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [23, 21],
-          "actions" : ["FabricIngress.bng_ingress.upstream.term_enabled_v4", "FabricIngress.bng_ingress.upstream.term_disabled"],
-          "base_default_next" : "node_46",
-          "next_tables" : {
-            "FabricIngress.bng_ingress.upstream.term_enabled_v4" : "node_46",
-            "FabricIngress.bng_ingress.upstream.term_disabled" : "node_46"
-          },
-          "default_entry" : {
-            "action_id" : 21,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_21",
-          "id" : 30,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 163,
-            "column" : 16,
-            "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [81],
-          "actions" : ["act_21"],
-          "base_default_next" : "node_73",
-          "next_tables" : {
-            "act_21" : "node_73"
-          },
-          "default_entry" : {
-            "action_id" : 81,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_22",
-          "id" : 31,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 140,
-            "column" : 12,
-            "source_fragment" : "hdr.ipv6.src_addr[127:64]"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [82],
-          "actions" : ["act_22"],
-          "base_default_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v6",
-          "next_tables" : {
-            "act_22" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v6"
-          },
-          "default_entry" : {
-            "action_id" : 82,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v6",
-          "id" : 32,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 137,
-            "column" : 10,
-            "source_fragment" : "t_pppoe_term_v6"
-          },
-          "key" : [
-            {
-              "match_type" : "exact",
-              "name" : "line_id",
-              "target" : ["scalars", "fabric_metadata_t._bng_line_id22"],
-              "mask" : null
-            },
-            {
-              "match_type" : "exact",
-              "name" : "ipv6_src_net_id",
-              "target" : ["scalars", "key_0"],
-              "mask" : null
-            },
-            {
-              "match_type" : "exact",
-              "name" : "pppoe_session_id",
-              "target" : ["pppoe", "session_id"],
-              "mask" : null
-            }
-          ],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 32768,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [24, 22],
-          "actions" : ["FabricIngress.bng_ingress.upstream.term_enabled_v6", "FabricIngress.bng_ingress.upstream.term_disabled"],
-          "base_default_next" : "node_51",
-          "next_tables" : {
-            "FabricIngress.bng_ingress.upstream.term_enabled_v6" : "node_51",
-            "FabricIngress.bng_ingress.upstream.term_disabled" : "node_51"
-          },
-          "default_entry" : {
-            "action_id" : 22,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_23",
-          "id" : 33,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 170,
-            "column" : 16,
-            "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [83],
-          "actions" : ["act_23"],
-          "base_default_next" : "node_73",
-          "next_tables" : {
-            "act_23" : "node_73"
-          },
-          "default_entry" : {
-            "action_id" : 83,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_24",
-          "id" : 34,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 190,
-            "column" : 4,
-            "source_fragment" : "bool prio = false;"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [93],
-          "actions" : ["act_33"],
-          "base_default_next" : "node_54",
-          "next_tables" : {
-            "act_33" : "node_54"
-          },
-          "default_entry" : {
-            "action_id" : 93,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "FabricIngress.bng_ingress.downstream.t_line_map_v4",
-          "id" : 35,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 212,
-            "column" : 10,
-            "source_fragment" : "t_line_map_v4"
-          },
-          "key" : [
-            {
-              "match_type" : "exact",
-              "name" : "ipv4_dst",
-              "target" : ["ipv4", "dst_addr"],
-              "mask" : null
-            }
-          ],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 32768,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [4, 25, 27],
-          "actions" : ["nop", "FabricIngress.bng_ingress.downstream.set_line_next", "FabricIngress.bng_ingress.downstream.set_line_drop"],
-          "base_default_next" : null,
-          "next_tables" : {
-            "__HIT__" : "tbl_act_25",
-            "__MISS__" : "tbl_act_26"
-          },
-          "default_entry" : {
-            "action_id" : 4,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_25",
-          "id" : 36,
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [84],
-          "actions" : ["act_24"],
-          "base_default_next" : "node_58",
-          "next_tables" : {
-            "act_24" : "node_58"
-          },
-          "default_entry" : {
-            "action_id" : 84,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_26",
-          "id" : 37,
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [85],
-          "actions" : ["act_25"],
-          "base_default_next" : "node_58",
-          "next_tables" : {
-            "act_25" : "node_58"
-          },
-          "default_entry" : {
-            "action_id" : 85,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "FabricIngress.bng_ingress.downstream.t_qos_v4",
-          "id" : 38,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 252,
-            "column" : 10,
-            "source_fragment" : "t_qos_v4"
-          },
-          "key" : [
-            {
-              "match_type" : "ternary",
-              "name" : "line_id",
-              "target" : ["scalars", "fabric_metadata_t._bng_line_id22"],
-              "mask" : null
-            },
-            {
-              "match_type" : "lpm",
-              "name" : "ipv4_src",
-              "target" : ["ipv4", "src_addr"],
-              "mask" : null
-            },
-            {
-              "match_type" : "ternary",
-              "name" : "ipv4_dscp",
-              "target" : ["ipv4", "dscp"],
-              "mask" : null
-            },
-            {
-              "match_type" : "ternary",
-              "name" : "ipv4_ecn",
-              "target" : ["ipv4", "ecn"],
-              "mask" : null
-            }
-          ],
-          "match_type" : "ternary",
-          "type" : "simple",
-          "max_size" : 256,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [29, 31],
-          "actions" : ["FabricIngress.bng_ingress.downstream.qos_prio", "FabricIngress.bng_ingress.downstream.qos_besteff"],
-          "base_default_next" : "node_60",
-          "next_tables" : {
-            "FabricIngress.bng_ingress.downstream.qos_prio" : "node_60",
-            "FabricIngress.bng_ingress.downstream.qos_besteff" : "node_60"
-          },
-          "default_entry" : {
-            "action_id" : 31,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_27",
-          "id" : 39,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 293,
-            "column" : 20,
-            "source_fragment" : "m_prio.execute_meter((bit<32>)fmeta.bng.line_id, ..."
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [86],
-          "actions" : ["act_26"],
-          "base_default_next" : "node_73",
-          "next_tables" : {
-            "act_26" : "node_73"
-          },
-          "default_entry" : {
-            "action_id" : 86,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_28",
-          "id" : 40,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 296,
-            "column" : 20,
-            "source_fragment" : "m_besteff.execute_meter((bit<32>)fmeta.bng.line_id, ..."
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [87],
-          "actions" : ["act_27"],
-          "base_default_next" : "node_73",
-          "next_tables" : {
-            "act_27" : "node_73"
-          },
-          "default_entry" : {
-            "action_id" : 87,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_29",
-          "id" : 41,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 228,
-            "column" : 12,
-            "source_fragment" : "hdr.ipv6.dst_addr[127:64]"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [90],
-          "actions" : ["act_30"],
-          "base_default_next" : "FabricIngress.bng_ingress.downstream.t_line_map_v6",
-          "next_tables" : {
-            "act_30" : "FabricIngress.bng_ingress.downstream.t_line_map_v6"
-          },
-          "default_entry" : {
-            "action_id" : 90,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "FabricIngress.bng_ingress.downstream.t_line_map_v6",
-          "id" : 42,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 226,
-            "column" : 10,
-            "source_fragment" : "t_line_map_v6"
-          },
-          "key" : [
-            {
-              "match_type" : "exact",
-              "name" : "ipv6_dst_net_id",
-              "target" : ["scalars", "key_1"],
-              "mask" : null
-            }
-          ],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 32768,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [5, 26, 28],
-          "actions" : ["nop", "FabricIngress.bng_ingress.downstream.set_line_next", "FabricIngress.bng_ingress.downstream.set_line_drop"],
-          "base_default_next" : null,
-          "next_tables" : {
-            "__HIT__" : "tbl_act_30",
-            "__MISS__" : "tbl_act_31"
-          },
-          "default_entry" : {
-            "action_id" : 5,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_30",
-          "id" : 43,
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [88],
-          "actions" : ["act_28"],
-          "base_default_next" : "node_68",
-          "next_tables" : {
-            "act_28" : "node_68"
-          },
-          "default_entry" : {
-            "action_id" : 88,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_31",
-          "id" : 44,
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [89],
-          "actions" : ["act_29"],
-          "base_default_next" : "node_68",
-          "next_tables" : {
-            "act_29" : "node_68"
-          },
-          "default_entry" : {
-            "action_id" : 89,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "FabricIngress.bng_ingress.downstream.t_qos_v6",
-          "id" : 45,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 268,
-            "column" : 10,
-            "source_fragment" : "t_qos_v6"
-          },
-          "key" : [
-            {
-              "match_type" : "ternary",
-              "name" : "line_id",
-              "target" : ["scalars", "fabric_metadata_t._bng_line_id22"],
-              "mask" : null
-            },
-            {
-              "match_type" : "lpm",
-              "name" : "ipv6_src",
-              "target" : ["ipv6", "src_addr"],
-              "mask" : null
-            },
-            {
-              "match_type" : "ternary",
-              "name" : "ipv6_traffic_class",
-              "target" : ["ipv6", "traffic_class"],
-              "mask" : null
-            }
-          ],
-          "match_type" : "ternary",
-          "type" : "simple",
-          "max_size" : 256,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [30, 32],
-          "actions" : ["FabricIngress.bng_ingress.downstream.qos_prio", "FabricIngress.bng_ingress.downstream.qos_besteff"],
-          "base_default_next" : "node_70",
-          "next_tables" : {
-            "FabricIngress.bng_ingress.downstream.qos_prio" : "node_70",
-            "FabricIngress.bng_ingress.downstream.qos_besteff" : "node_70"
-          },
-          "default_entry" : {
-            "action_id" : 32,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_32",
-          "id" : 46,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 307,
-            "column" : 20,
-            "source_fragment" : "m_prio.execute_meter((bit<32>)fmeta.bng.line_id, ..."
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [91],
-          "actions" : ["act_31"],
-          "base_default_next" : "node_73",
-          "next_tables" : {
-            "act_31" : "node_73"
-          },
-          "default_entry" : {
-            "action_id" : 91,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_33",
-          "id" : 47,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 310,
-            "column" : 20,
-            "source_fragment" : "m_besteff.execute_meter((bit<32>)fmeta.bng.line_id, ..."
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [92],
-          "actions" : ["act_32"],
-          "base_default_next" : "node_73",
-          "next_tables" : {
-            "act_32" : "node_73"
-          },
-          "default_entry" : {
-            "action_id" : 92,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
           "name" : "FabricIngress.forwarding.bridging",
-          "id" : 48,
+          "id" : 28,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 46,
@@ -17294,7 +16282,7 @@
             {
               "match_type" : "exact",
               "name" : "vlan_id",
-              "target" : ["scalars", "fabric_metadata_t._vlan_id2"],
+              "target" : ["scalars", "fabric_metadata_t._vlan_id5"],
               "mask" : null
             },
             {
@@ -17310,7 +16298,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [39, 8],
+          "action_ids" : [36, 7],
           "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
           "base_default_next" : "FabricIngress.acl.acl",
           "next_tables" : {
@@ -17318,7 +16306,7 @@
             "nop" : "FabricIngress.acl.acl"
           },
           "default_entry" : {
-            "action_id" : 8,
+            "action_id" : 7,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17326,7 +16314,7 @@
         },
         {
           "name" : "FabricIngress.forwarding.mpls",
-          "id" : 49,
+          "id" : 29,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 71,
@@ -17337,7 +16325,7 @@
             {
               "match_type" : "exact",
               "name" : "mpls_label",
-              "target" : ["scalars", "fabric_metadata_t._mpls_label5"],
+              "target" : ["scalars", "fabric_metadata_t._mpls_label12"],
               "mask" : null
             }
           ],
@@ -17347,7 +16335,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [40, 9],
+          "action_ids" : [37, 8],
           "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
           "base_default_next" : "FabricIngress.acl.acl",
           "next_tables" : {
@@ -17355,7 +16343,7 @@
             "nop" : "FabricIngress.acl.acl"
           },
           "default_entry" : {
-            "action_id" : 9,
+            "action_id" : 8,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17363,7 +16351,7 @@
         },
         {
           "name" : "FabricIngress.forwarding.routing_v4",
-          "id" : 50,
+          "id" : 30,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 101,
@@ -17384,7 +16372,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [41, 42, 10],
+          "action_ids" : [38, 39, 9],
           "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
           "base_default_next" : "FabricIngress.acl.acl",
           "next_tables" : {
@@ -17393,7 +16381,7 @@
             "nop" : "FabricIngress.acl.acl"
           },
           "default_entry" : {
-            "action_id" : 10,
+            "action_id" : 9,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17401,7 +16389,7 @@
         },
         {
           "name" : "FabricIngress.forwarding.routing_v6",
-          "id" : 51,
+          "id" : 31,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 126,
@@ -17422,7 +16410,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [43, 11],
+          "action_ids" : [40, 10],
           "actions" : ["FabricIngress.forwarding.set_next_id_routing_v6", "nop"],
           "base_default_next" : "FabricIngress.acl.acl",
           "next_tables" : {
@@ -17430,7 +16418,7 @@
             "nop" : "FabricIngress.acl.acl"
           },
           "default_entry" : {
-            "action_id" : 11,
+            "action_id" : 10,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17438,7 +16426,7 @@
         },
         {
           "name" : "FabricIngress.acl.acl",
-          "id" : 52,
+          "id" : 32,
           "source_info" : {
             "filename" : "include/control/acl.p4",
             "line" : 60,
@@ -17455,19 +16443,19 @@
             {
               "match_type" : "ternary",
               "name" : "ip_proto",
-              "target" : ["scalars", "fabric_metadata_t._ip_proto13"],
+              "target" : ["scalars", "fabric_metadata_t._ip_proto20"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
               "name" : "l4_sport",
-              "target" : ["scalars", "fabric_metadata_t._l4_sport14"],
+              "target" : ["scalars", "fabric_metadata_t._l4_sport21"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
               "name" : "l4_dport",
-              "target" : ["scalars", "fabric_metadata_t._l4_dport15"],
+              "target" : ["scalars", "fabric_metadata_t._l4_dport22"],
               "mask" : null
             },
             {
@@ -17491,7 +16479,7 @@
             {
               "match_type" : "ternary",
               "name" : "eth_type",
-              "target" : ["scalars", "fabric_metadata_t._eth_type0"],
+              "target" : ["scalars", "fabric_metadata_t._last_eth_type0"],
               "mask" : null
             },
             {
@@ -17525,18 +16513,18 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [44, 45, 46, 47, 48],
+          "action_ids" : [41, 42, 43, 44, 45],
           "actions" : ["FabricIngress.acl.set_next_id_acl", "FabricIngress.acl.punt_to_cpu", "FabricIngress.acl.set_clone_session_id", "FabricIngress.acl.drop", "FabricIngress.acl.nop_acl"],
-          "base_default_next" : "node_83",
+          "base_default_next" : "node_54",
           "next_tables" : {
-            "FabricIngress.acl.set_next_id_acl" : "node_83",
-            "FabricIngress.acl.punt_to_cpu" : "node_83",
-            "FabricIngress.acl.set_clone_session_id" : "node_83",
-            "FabricIngress.acl.drop" : "node_83",
-            "FabricIngress.acl.nop_acl" : "node_83"
+            "FabricIngress.acl.set_next_id_acl" : "node_54",
+            "FabricIngress.acl.punt_to_cpu" : "node_54",
+            "FabricIngress.acl.set_clone_session_id" : "node_54",
+            "FabricIngress.acl.drop" : "node_54",
+            "FabricIngress.acl.nop_acl" : "node_54"
           },
           "default_entry" : {
-            "action_id" : 48,
+            "action_id" : 45,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17544,10 +16532,10 @@
         },
         {
           "name" : "FabricIngress.next.xconnect",
-          "id" : 53,
+          "id" : 33,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 104,
+            "line" : 116,
             "column" : 10,
             "source_fragment" : "xconnect"
           },
@@ -17561,7 +16549,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id10"],
+              "target" : ["scalars", "fabric_metadata_t._next_id17"],
               "mask" : null
             }
           ],
@@ -17571,7 +16559,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [50, 51, 13],
+          "action_ids" : [48, 49, 12],
           "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
           "base_default_next" : "FabricIngress.next.simple",
           "next_tables" : {
@@ -17580,7 +16568,7 @@
             "nop" : "FabricIngress.next.simple"
           },
           "default_entry" : {
-            "action_id" : 13,
+            "action_id" : 12,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17588,10 +16576,10 @@
         },
         {
           "name" : "FabricIngress.next.simple",
-          "id" : 54,
+          "id" : 34,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 143,
+            "line" : 155,
             "column" : 10,
             "source_fragment" : "simple"
           },
@@ -17599,7 +16587,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id10"],
+              "target" : ["scalars", "fabric_metadata_t._next_id17"],
               "mask" : null
             }
           ],
@@ -17609,7 +16597,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [52, 53, 54, 14],
+          "action_ids" : [50, 51, 52, 13],
           "actions" : ["FabricIngress.next.output_simple", "FabricIngress.next.routing_simple", "FabricIngress.next.mpls_routing_simple", "nop"],
           "base_default_next" : "FabricIngress.next.hashed",
           "next_tables" : {
@@ -17619,7 +16607,7 @@
             "nop" : "FabricIngress.next.hashed"
           },
           "default_entry" : {
-            "action_id" : 14,
+            "action_id" : 13,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17627,10 +16615,10 @@
         },
         {
           "name" : "FabricIngress.next.hashed",
-          "id" : 55,
+          "id" : 35,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 184,
+            "line" : 196,
             "column" : 10,
             "source_fragment" : "hashed"
           },
@@ -17638,7 +16626,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id10"],
+              "target" : ["scalars", "fabric_metadata_t._next_id17"],
               "mask" : null
             }
           ],
@@ -17649,7 +16637,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [55, 56, 57, 15],
+          "action_ids" : [53, 54, 55, 14],
           "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
           "base_default_next" : "FabricIngress.next.multicast",
           "next_tables" : {
@@ -17661,10 +16649,10 @@
         },
         {
           "name" : "FabricIngress.next.multicast",
-          "id" : 56,
+          "id" : 36,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 218,
+            "line" : 230,
             "column" : 10,
             "source_fragment" : "multicast"
           },
@@ -17672,7 +16660,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id10"],
+              "target" : ["scalars", "fabric_metadata_t._next_id17"],
               "mask" : null
             }
           ],
@@ -17682,7 +16670,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [58, 16],
+          "action_ids" : [56, 15],
           "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
           "base_default_next" : "FabricIngress.next.next_vlan",
           "next_tables" : {
@@ -17690,7 +16678,7 @@
             "nop" : "FabricIngress.next.next_vlan"
           },
           "default_entry" : {
-            "action_id" : 16,
+            "action_id" : 15,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17698,10 +16686,10 @@
         },
         {
           "name" : "FabricIngress.next.next_vlan",
-          "id" : 57,
+          "id" : 37,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 74,
+            "line" : 82,
             "column" : 10,
             "source_fragment" : "next_vlan"
           },
@@ -17709,7 +16697,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id10"],
+              "target" : ["scalars", "fabric_metadata_t._next_id17"],
               "mask" : null
             }
           ],
@@ -17719,23 +16707,24 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [49, 12],
-          "actions" : ["FabricIngress.next.set_vlan", "nop"],
-          "base_default_next" : "node_89",
+          "action_ids" : [46, 47, 11],
+          "actions" : ["FabricIngress.next.set_vlan", "FabricIngress.next.set_double_vlan", "nop"],
+          "base_default_next" : "node_60",
           "next_tables" : {
-            "FabricIngress.next.set_vlan" : "node_89",
-            "nop" : "node_89"
+            "FabricIngress.next.set_vlan" : "node_60",
+            "FabricIngress.next.set_double_vlan" : "node_60",
+            "nop" : "node_60"
           },
           "default_entry" : {
-            "action_id" : 12,
+            "action_id" : 11,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_34",
-          "id" : 58,
+          "name" : "tbl_act_22",
+          "id" : 38,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 31,
@@ -17749,22 +16738,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [94],
-          "actions" : ["act_34"],
-          "base_default_next" : "node_91",
+          "action_ids" : [80],
+          "actions" : ["act_22"],
+          "base_default_next" : "node_62",
           "next_tables" : {
-            "act_34" : "node_91"
+            "act_22" : "node_62"
           },
           "default_entry" : {
-            "action_id" : 94,
+            "action_id" : 80,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_35",
-          "id" : 59,
+          "name" : "tbl_act_23",
+          "id" : 39,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 34,
@@ -17778,14 +16767,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [95],
-          "actions" : ["act_35"],
+          "action_ids" : [81],
+          "actions" : ["act_23"],
           "base_default_next" : "FabricIngress.process_set_source_sink.tb_set_source",
           "next_tables" : {
-            "act_35" : "FabricIngress.process_set_source_sink.tb_set_source"
+            "act_23" : "FabricIngress.process_set_source_sink.tb_set_source"
           },
           "default_entry" : {
-            "action_id" : 95,
+            "action_id" : 81,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17793,7 +16782,7 @@
         },
         {
           "name" : "FabricIngress.process_set_source_sink.tb_set_source",
-          "id" : 60,
+          "id" : 40,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 46,
@@ -17814,7 +16803,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [33, 6],
+          "action_ids" : [18, 2],
           "actions" : ["FabricIngress.process_set_source_sink.int_set_source", "nop"],
           "base_default_next" : "FabricIngress.process_set_source_sink.tb_set_sink",
           "next_tables" : {
@@ -17822,7 +16811,7 @@
             "nop" : "FabricIngress.process_set_source_sink.tb_set_sink"
           },
           "default_entry" : {
-            "action_id" : 6,
+            "action_id" : 2,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17830,7 +16819,7 @@
         },
         {
           "name" : "FabricIngress.process_set_source_sink.tb_set_sink",
-          "id" : 61,
+          "id" : 41,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 67,
@@ -17851,23 +16840,23 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [34, 7],
+          "action_ids" : [19, 3],
           "actions" : ["FabricIngress.process_set_source_sink.int_set_sink", "nop"],
-          "base_default_next" : "node_95",
+          "base_default_next" : "node_66",
           "next_tables" : {
-            "FabricIngress.process_set_source_sink.int_set_sink" : "node_95",
-            "nop" : "node_95"
+            "FabricIngress.process_set_source_sink.int_set_sink" : "node_66",
+            "nop" : "node_66"
           },
           "default_entry" : {
-            "action_id" : 7,
+            "action_id" : 3,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_36",
-          "id" : 62,
+          "name" : "tbl_act_24",
+          "id" : 42,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 89,
@@ -17881,18 +16870,754 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [96],
+          "action_ids" : [82],
+          "actions" : ["act_24"],
+          "base_default_next" : "node_68",
+          "next_tables" : {
+            "act_24" : "node_68"
+          },
+          "default_entry" : {
+            "action_id" : 82,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_25",
+          "id" : 43,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 339,
+            "column" : 22,
+            "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [83],
+          "actions" : ["act_25"],
+          "base_default_next" : "FabricIngress.bng_ingress.t_line_map",
+          "next_tables" : {
+            "act_25" : "FabricIngress.bng_ingress.t_line_map"
+          },
+          "default_entry" : {
+            "action_id" : 83,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_26",
+          "id" : 44,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 344,
+            "column" : 22,
+            "source_fragment" : "= fmeta.vlan_id; ..."
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [84],
+          "actions" : ["act_26"],
+          "base_default_next" : "FabricIngress.bng_ingress.t_line_map",
+          "next_tables" : {
+            "act_26" : "FabricIngress.bng_ingress.t_line_map"
+          },
+          "default_entry" : {
+            "action_id" : 84,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.bng_ingress.t_line_map",
+          "id" : 45,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 324,
+            "column" : 14,
+            "source_fragment" : "t_line_map"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "s_tag",
+              "target" : ["scalars", "bng_ingress_s_tag"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "c_tag",
+              "target" : ["scalars", "bng_ingress_c_tag"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 8192,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [6, 31],
+          "actions" : ["nop", "FabricIngress.bng_ingress.set_line"],
+          "base_default_next" : "node_72",
+          "next_tables" : {
+            "nop" : "node_72",
+            "FabricIngress.bng_ingress.set_line" : "node_72"
+          },
+          "default_entry" : {
+            "action_id" : 6,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_27",
+          "id" : 46,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 353,
+            "column" : 31,
+            "source_fragment" : "="
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [87],
+          "actions" : ["act_29"],
+          "base_default_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
+          "next_tables" : {
+            "act_29" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp"
+          },
+          "default_entry" : {
+            "action_id" : 87,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
+          "id" : 47,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 48,
+            "column" : 10,
+            "source_fragment" : "t_pppoe_cp"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "pppoe_code",
+              "target" : ["pppoe", "code"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "pppoe_protocol",
+              "target" : ["pppoe", "protocol"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "ternary",
+          "type" : "simple",
+          "max_size" : 16,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [20, 4],
+          "actions" : ["FabricIngress.bng_ingress.upstream.punt_to_cpu", "nop"],
+          "base_default_next" : null,
+          "next_tables" : {
+            "__HIT__" : "tbl_act_28",
+            "__MISS__" : "tbl_act_29"
+          },
+          "default_entry" : {
+            "action_id" : 4,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_28",
+          "id" : 48,
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [85],
+          "actions" : ["act_27"],
+          "base_default_next" : "node_77",
+          "next_tables" : {
+            "act_27" : "node_77"
+          },
+          "default_entry" : {
+            "action_id" : 85,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_29",
+          "id" : 49,
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [86],
+          "actions" : ["act_28"],
+          "base_default_next" : "node_77",
+          "next_tables" : {
+            "act_28" : "node_77"
+          },
+          "default_entry" : {
+            "action_id" : 86,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_30",
+          "id" : 50,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 124,
+            "column" : 12,
+            "source_fragment" : "return"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [88],
+          "actions" : ["act_30"],
+          "base_default_next" : "node_79",
+          "next_tables" : {
+            "act_30" : "node_79"
+          },
+          "default_entry" : {
+            "action_id" : 88,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4",
+          "id" : 51,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 85,
+            "column" : 10,
+            "source_fragment" : "t_pppoe_term_v4"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "line_id",
+              "target" : ["scalars", "fabric_metadata_t._bng_line_id29"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "ipv4_src",
+              "target" : ["ipv4", "src_addr"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "pppoe_session_id",
+              "target" : ["pppoe", "session_id"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 32768,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [23, 21],
+          "actions" : ["FabricIngress.bng_ingress.upstream.term_enabled_v4", "FabricIngress.bng_ingress.upstream.term_disabled"],
+          "base_default_next" : null,
+          "next_tables" : {
+            "FabricIngress.bng_ingress.upstream.term_disabled" : "tbl_act_31",
+            "FabricIngress.bng_ingress.upstream.term_enabled_v4" : null
+          },
+          "default_entry" : {
+            "action_id" : 21,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_31",
+          "id" : 52,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 129,
+            "column" : 20,
+            "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [89],
+          "actions" : ["act_31"],
+          "base_default_next" : null,
+          "next_tables" : {
+            "act_31" : null
+          },
+          "default_entry" : {
+            "action_id" : 89,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_32",
+          "id" : 53,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 110,
+            "column" : 12,
+            "source_fragment" : "hdr.ipv6.src_addr[127:64]"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [91],
+          "actions" : ["act_33"],
+          "base_default_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v6",
+          "next_tables" : {
+            "act_33" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v6"
+          },
+          "default_entry" : {
+            "action_id" : 91,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v6",
+          "id" : 54,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 107,
+            "column" : 10,
+            "source_fragment" : "t_pppoe_term_v6"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "line_id",
+              "target" : ["scalars", "fabric_metadata_t._bng_line_id29"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "ipv6_src_net_id",
+              "target" : ["scalars", "key_0"],
+              "mask" : null
+            },
+            {
+              "match_type" : "exact",
+              "name" : "pppoe_session_id",
+              "target" : ["pppoe", "session_id"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 32768,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [24, 22],
+          "actions" : ["FabricIngress.bng_ingress.upstream.term_enabled_v6", "FabricIngress.bng_ingress.upstream.term_disabled"],
+          "base_default_next" : null,
+          "next_tables" : {
+            "FabricIngress.bng_ingress.upstream.term_disabled" : "tbl_act_33",
+            "FabricIngress.bng_ingress.upstream.term_enabled_v6" : null
+          },
+          "default_entry" : {
+            "action_id" : 22,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_33",
+          "id" : 55,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 137,
+            "column" : 19,
+            "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [90],
+          "actions" : ["act_32"],
+          "base_default_next" : null,
+          "next_tables" : {
+            "act_32" : null
+          },
+          "default_entry" : {
+            "action_id" : 90,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.bng_ingress.downstream.t_line_session_map",
+          "id" : 56,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 167,
+            "column" : 10,
+            "source_fragment" : "t_line_session_map"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "line_id",
+              "target" : ["scalars", "fabric_metadata_t._bng_line_id29"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 8192,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [5, 25, 26],
+          "actions" : ["nop", "FabricIngress.bng_ingress.downstream.set_session", "FabricIngress.bng_ingress.downstream.drop"],
+          "base_default_next" : null,
+          "next_tables" : {
+            "__HIT__" : "tbl_act_34",
+            "__MISS__" : "tbl_act_35"
+          },
+          "default_entry" : {
+            "action_id" : 5,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_34",
+          "id" : 57,
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [92],
+          "actions" : ["act_34"],
+          "base_default_next" : "node_90",
+          "next_tables" : {
+            "act_34" : "node_90"
+          },
+          "default_entry" : {
+            "action_id" : 92,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_35",
+          "id" : 58,
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [93],
+          "actions" : ["act_35"],
+          "base_default_next" : "node_90",
+          "next_tables" : {
+            "act_35" : "node_90"
+          },
+          "default_entry" : {
+            "action_id" : 93,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.bng_ingress.downstream.t_qos_v4",
+          "id" : 59,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 192,
+            "column" : 10,
+            "source_fragment" : "t_qos_v4"
+          },
+          "key" : [
+            {
+              "match_type" : "ternary",
+              "name" : "line_id",
+              "target" : ["scalars", "fabric_metadata_t._bng_line_id29"],
+              "mask" : null
+            },
+            {
+              "match_type" : "lpm",
+              "name" : "ipv4_src",
+              "target" : ["ipv4", "src_addr"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "ipv4_dscp",
+              "target" : ["ipv4", "dscp"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "ipv4_ecn",
+              "target" : ["ipv4", "ecn"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "ternary",
+          "type" : "simple",
+          "max_size" : 256,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [27, 29],
+          "actions" : ["FabricIngress.bng_ingress.downstream.qos_prio", "FabricIngress.bng_ingress.downstream.qos_besteff"],
+          "base_default_next" : null,
+          "next_tables" : {
+            "FabricIngress.bng_ingress.downstream.qos_prio" : "tbl_act_36",
+            "FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_act_37"
+          },
+          "default_entry" : {
+            "action_id" : 29,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_36",
+          "id" : 60,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 236,
+            "column" : 24,
+            "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [94],
           "actions" : ["act_36"],
           "base_default_next" : null,
           "next_tables" : {
             "act_36" : null
           },
           "default_entry" : {
+            "action_id" : 94,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_37",
+          "id" : 61,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 239,
+            "column" : 24,
+            "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [95],
+          "actions" : ["act_37"],
+          "base_default_next" : null,
+          "next_tables" : {
+            "act_37" : null
+          },
+          "default_entry" : {
+            "action_id" : 95,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricIngress.bng_ingress.downstream.t_qos_v6",
+          "id" : 62,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 208,
+            "column" : 10,
+            "source_fragment" : "t_qos_v6"
+          },
+          "key" : [
+            {
+              "match_type" : "ternary",
+              "name" : "line_id",
+              "target" : ["scalars", "fabric_metadata_t._bng_line_id29"],
+              "mask" : null
+            },
+            {
+              "match_type" : "lpm",
+              "name" : "ipv6_src",
+              "target" : ["ipv6", "src_addr"],
+              "mask" : null
+            },
+            {
+              "match_type" : "ternary",
+              "name" : "ipv6_traffic_class",
+              "target" : ["ipv6", "traffic_class"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "ternary",
+          "type" : "simple",
+          "max_size" : 256,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [28, 30],
+          "actions" : ["FabricIngress.bng_ingress.downstream.qos_prio", "FabricIngress.bng_ingress.downstream.qos_besteff"],
+          "base_default_next" : null,
+          "next_tables" : {
+            "FabricIngress.bng_ingress.downstream.qos_prio" : "tbl_act_38",
+            "FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_act_39"
+          },
+          "default_entry" : {
+            "action_id" : 30,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_38",
+          "id" : 63,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 248,
+            "column" : 24,
+            "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [96],
+          "actions" : ["act_38"],
+          "base_default_next" : null,
+          "next_tables" : {
+            "act_38" : null
+          },
+          "default_entry" : {
             "action_id" : 96,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
+        },
+        {
+          "name" : "tbl_act_39",
+          "id" : 64,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 251,
+            "column" : 24,
+            "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [97],
+          "actions" : ["act_39"],
+          "base_default_next" : null,
+          "next_tables" : {
+            "act_39" : null
+          },
+          "default_entry" : {
+            "action_id" : 97,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
         }
       ],
       "action_profiles" : [
@@ -17901,7 +17626,7 @@
           "id" : 0,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 165,
+            "line" : 177,
             "column" : 57,
             "source_fragment" : "hashed_selector"
           },
@@ -17919,15 +17644,15 @@
               },
               {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._ip_proto13"]
+                "value" : ["scalars", "fabric_metadata_t._ip_proto20"]
               },
               {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._l4_sport14"]
+                "value" : ["scalars", "fabric_metadata_t._l4_sport21"]
               },
               {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._l4_dport15"]
+                "value" : ["scalars", "fabric_metadata_t._l4_dport22"]
               }
             ]
           }
@@ -18039,7 +17764,7 @@
           "id" : 4,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 104,
+            "line" : 109,
             "column" : 12,
             "source_fragment" : "hdr.vlan_tag.isValid()"
           },
@@ -18062,7 +17787,30 @@
           "id" : 5,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 110,
+            "line" : 115,
+            "column" : 12,
+            "source_fragment" : "hdr.inner_vlan_tag.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["inner_vlan_tag", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_act_6",
+          "false_next" : "node_16"
+        },
+        {
+          "name" : "node_16",
+          "id" : 6,
+          "source_info" : {
+            "filename" : "include/control/filtering.p4",
+            "line" : 121,
             "column" : 12,
             "source_fragment" : "!hdr.mpls.isValid()"
           },
@@ -18084,12 +17832,81 @@
               }
             }
           },
-          "true_next" : "tbl_act_6",
-          "false_next" : "FabricIngress.filtering.ingress_port_vlan"
+          "true_next" : "tbl_act_7",
+          "false_next" : "node_18"
         },
         {
-          "name" : "node_19",
-          "id" : 6,
+          "name" : "node_18",
+          "id" : 7,
+          "source_info" : {
+            "filename" : "include/control/filtering.p4",
+            "line" : 130,
+            "column" : 12,
+            "source_fragment" : "hdr.mpls.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["mpls", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_act_8",
+          "false_next" : "node_20"
+        },
+        {
+          "name" : "node_20",
+          "id" : 8,
+          "source_info" : {
+            "filename" : "include/control/filtering.p4",
+            "line" : 133,
+            "column" : 16,
+            "source_fragment" : "hdr.vlan_tag.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["vlan_tag", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "node_21",
+          "false_next" : "tbl_act_11"
+        },
+        {
+          "name" : "node_21",
+          "id" : 9,
+          "source_info" : {
+            "filename" : "include/control/filtering.p4",
+            "line" : 135,
+            "column" : 19,
+            "source_fragment" : "hdr.inner_vlan_tag.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["inner_vlan_tag", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_act_9",
+          "false_next" : "tbl_act_10"
+        },
+        {
+          "name" : "node_28",
+          "id" : 10,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 144,
@@ -18111,8 +17928,8 @@
           "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
         },
         {
-          "name" : "node_23",
-          "id" : 7,
+          "name" : "node_32",
+          "id" : 11,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 148,
@@ -18137,12 +17954,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_10",
-          "false_next" : "tbl_act_11"
+          "true_next" : "tbl_act_15",
+          "false_next" : "tbl_act_16"
         },
         {
-          "name" : "node_30",
-          "id" : 8,
+          "name" : "node_39",
+          "id" : 12,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -18154,12 +17971,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_14",
-          "false_next" : "tbl_act_15"
+          "true_next" : "tbl_act_19",
+          "false_next" : "tbl_act_20"
         },
         {
-          "name" : "node_33",
-          "id" : 9,
+          "name" : "node_42",
+          "id" : 13,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -18178,337 +17995,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_16",
-          "false_next" : "node_35"
-        },
-        {
-          "name" : "node_35",
-          "id" : 10,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 385,
-            "column" : 12,
-            "source_fragment" : "hdr.pppoe.isValid()"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "d2b",
-              "left" : null,
-              "right" : {
-                "type" : "field",
-                "value" : ["pppoe", "$valid$"]
-              }
-            }
-          },
-          "true_next" : "tbl_act_17",
-          "false_next" : "tbl_act_24"
-        },
-        {
-          "name" : "node_41",
-          "id" : 11,
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "d2b",
-              "left" : null,
-              "right" : {
-                "type" : "field",
-                "value" : ["scalars", "bng_ingress_upstream_tmp"]
-              }
-            }
-          },
-          "true_next" : "tbl_act_20",
-          "false_next" : "node_43"
-        },
-        {
-          "name" : "node_43",
-          "id" : 12,
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "not",
-              "left" : null,
-              "right" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "d2b",
-                  "left" : null,
-                  "right" : {
-                    "type" : "field",
-                    "value" : ["scalars", "bng_ingress_upstream_hasReturned"]
-                  }
-                }
-              }
-            }
-          },
-          "true_next" : "node_44",
-          "false_next" : "node_73"
+          "true_next" : "tbl_act_21",
+          "false_next" : "node_44"
         },
         {
           "name" : "node_44",
-          "id" : 13,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 160,
-            "column" : 12,
-            "source_fragment" : "hdr.ipv4.isValid()"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "d2b",
-              "left" : null,
-              "right" : {
-                "type" : "field",
-                "value" : ["ipv4", "$valid$"]
-              }
-            }
-          },
-          "true_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4",
-          "false_next" : "node_48"
-        },
-        {
-          "name" : "node_46",
           "id" : 14,
           "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 162,
-            "column" : 15,
-            "source_fragment" : "drop == true"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "==",
-              "left" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "d2b",
-                  "left" : null,
-                  "right" : {
-                    "type" : "field",
-                    "value" : ["scalars", "bng_ingress_upstream_drop"]
-                  }
-                }
-              },
-              "right" : {
-                "type" : "bool",
-                "value" : true
-              }
-            }
-          },
-          "true_next" : "tbl_act_21",
-          "false_next" : "node_73"
-        },
-        {
-          "name" : "node_48",
-          "id" : 15,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 167,
-            "column" : 17,
-            "source_fragment" : "hdr.ipv6.isValid()"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "d2b",
-              "left" : null,
-              "right" : {
-                "type" : "field",
-                "value" : ["ipv6", "$valid$"]
-              }
-            }
-          },
-          "true_next" : "tbl_act_22",
-          "false_next" : "node_73"
-        },
-        {
-          "name" : "node_51",
-          "id" : 16,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 169,
-            "column" : 15,
-            "source_fragment" : "drop == true"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "==",
-              "left" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "d2b",
-                  "left" : null,
-                  "right" : {
-                    "type" : "field",
-                    "value" : ["scalars", "bng_ingress_upstream_drop"]
-                  }
-                }
-              },
-              "right" : {
-                "type" : "bool",
-                "value" : true
-              }
-            }
-          },
-          "true_next" : "tbl_act_23",
-          "false_next" : "node_73"
-        },
-        {
-          "name" : "node_54",
-          "id" : 17,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 285,
-            "column" : 12,
-            "source_fragment" : "hdr.ipv4.isValid()"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "d2b",
-              "left" : null,
-              "right" : {
-                "type" : "field",
-                "value" : ["ipv4", "$valid$"]
-              }
-            }
-          },
-          "true_next" : "FabricIngress.bng_ingress.downstream.t_line_map_v4",
-          "false_next" : "node_63"
-        },
-        {
-          "name" : "node_58",
-          "id" : 18,
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "d2b",
-              "left" : null,
-              "right" : {
-                "type" : "field",
-                "value" : ["scalars", "bng_ingress_downstream_tmp"]
-              }
-            }
-          },
-          "true_next" : "FabricIngress.bng_ingress.downstream.t_qos_v4",
-          "false_next" : "node_73"
-        },
-        {
-          "name" : "node_60",
-          "id" : 19,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 292,
-            "column" : 20,
-            "source_fragment" : "prio==true"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "==",
-              "left" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "d2b",
-                  "left" : null,
-                  "right" : {
-                    "type" : "field",
-                    "value" : ["scalars", "bng_ingress_downstream_prio"]
-                  }
-                }
-              },
-              "right" : {
-                "type" : "bool",
-                "value" : true
-              }
-            }
-          },
-          "true_next" : "tbl_act_27",
-          "false_next" : "tbl_act_28"
-        },
-        {
-          "name" : "node_63",
-          "id" : 20,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 303,
-            "column" : 17,
-            "source_fragment" : "hdr.ipv6.isValid()"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "d2b",
-              "left" : null,
-              "right" : {
-                "type" : "field",
-                "value" : ["ipv6", "$valid$"]
-              }
-            }
-          },
-          "true_next" : "tbl_act_29",
-          "false_next" : "node_73"
-        },
-        {
-          "name" : "node_68",
-          "id" : 21,
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "d2b",
-              "left" : null,
-              "right" : {
-                "type" : "field",
-                "value" : ["scalars", "bng_ingress_downstream_tmp_0"]
-              }
-            }
-          },
-          "true_next" : "FabricIngress.bng_ingress.downstream.t_qos_v6",
-          "false_next" : "node_73"
-        },
-        {
-          "name" : "node_70",
-          "id" : 22,
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 306,
-            "column" : 20,
-            "source_fragment" : "prio==true"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "==",
-              "left" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "d2b",
-                  "left" : null,
-                  "right" : {
-                    "type" : "field",
-                    "value" : ["scalars", "bng_ingress_downstream_prio"]
-                  }
-                }
-              },
-              "right" : {
-                "type" : "bool",
-                "value" : true
-              }
-            }
-          },
-          "true_next" : "tbl_act_32",
-          "false_next" : "tbl_act_33"
-        },
-        {
-          "name" : "node_73",
-          "id" : 23,
-          "source_info" : {
             "filename" : "fabric.p4",
-            "line" : 74,
+            "line" : 71,
             "column" : 12,
             "source_fragment" : "fabric_metadata.skip_forwarding == false"
           },
@@ -18523,7 +18018,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._skip_forwarding7"]
+                    "value" : ["scalars", "fabric_metadata_t._skip_forwarding14"]
                   }
                 }
               },
@@ -18533,12 +18028,12 @@
               }
             }
           },
-          "true_next" : "node_74",
+          "true_next" : "node_45",
           "false_next" : "FabricIngress.acl.acl"
         },
         {
-          "name" : "node_74",
-          "id" : 24,
+          "name" : "node_45",
+          "id" : 15,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 141,
@@ -18551,7 +18046,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type16"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -18560,11 +18055,11 @@
             }
           },
           "true_next" : "FabricIngress.forwarding.bridging",
-          "false_next" : "node_76"
+          "false_next" : "node_47"
         },
         {
-          "name" : "node_76",
-          "id" : 25,
+          "name" : "node_47",
+          "id" : 16,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 142,
@@ -18577,7 +18072,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type16"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -18586,11 +18081,11 @@
             }
           },
           "true_next" : "FabricIngress.forwarding.mpls",
-          "false_next" : "node_78"
+          "false_next" : "node_49"
         },
         {
-          "name" : "node_78",
-          "id" : 26,
+          "name" : "node_49",
+          "id" : 17,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 143,
@@ -18603,7 +18098,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type16"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -18612,11 +18107,11 @@
             }
           },
           "true_next" : "FabricIngress.forwarding.routing_v4",
-          "false_next" : "node_80"
+          "false_next" : "node_51"
         },
         {
-          "name" : "node_80",
-          "id" : 27,
+          "name" : "node_51",
+          "id" : 18,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 145,
@@ -18629,7 +18124,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type9"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type16"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -18641,11 +18136,11 @@
           "false_next" : "FabricIngress.acl.acl"
         },
         {
-          "name" : "node_83",
-          "id" : 28,
+          "name" : "node_54",
+          "id" : 19,
           "source_info" : {
             "filename" : "fabric.p4",
-            "line" : 78,
+            "line" : 75,
             "column" : 12,
             "source_fragment" : "fabric_metadata.skip_next == false"
           },
@@ -18660,7 +18155,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._skip_next8"]
+                    "value" : ["scalars", "fabric_metadata_t._skip_next15"]
                   }
                 }
               },
@@ -18670,12 +18165,12 @@
               }
             }
           },
-          "false_next" : null,
-          "true_next" : "FabricIngress.next.xconnect"
+          "true_next" : "FabricIngress.next.xconnect",
+          "false_next" : "node_68"
         },
         {
-          "name" : "node_89",
-          "id" : 29,
+          "name" : "node_60",
+          "id" : 20,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 30,
@@ -18696,12 +18191,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_34",
-          "false_next" : "node_91"
+          "true_next" : "tbl_act_22",
+          "false_next" : "node_62"
         },
         {
-          "name" : "node_91",
-          "id" : 30,
+          "name" : "node_62",
+          "id" : 21,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 33,
@@ -18722,12 +18217,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_35",
+          "true_next" : "tbl_act_23",
           "false_next" : "FabricIngress.process_set_source_sink.tb_set_source"
         },
         {
-          "name" : "node_95",
-          "id" : 31,
+          "name" : "node_66",
+          "id" : 22,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 86,
@@ -18745,7 +18240,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._int_meta_sink26"]
+                    "value" : ["scalars", "fabric_metadata_t._int_meta_sink34"]
                   }
                 }
               },
@@ -18755,8 +18250,204 @@
               }
             }
           },
+          "true_next" : "tbl_act_24",
+          "false_next" : "node_68"
+        },
+        {
+          "name" : "node_68",
+          "id" : 23,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 338,
+            "column" : 15,
+            "source_fragment" : "hdr.pppoe.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["pppoe", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_act_25",
+          "false_next" : "tbl_act_26"
+        },
+        {
+          "name" : "node_72",
+          "id" : 24,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 352,
+            "column" : 16,
+            "source_fragment" : "hdr.pppoe.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["pppoe", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_act_27",
+          "false_next" : "FabricIngress.bng_ingress.downstream.t_line_session_map"
+        },
+        {
+          "name" : "node_77",
+          "id" : 25,
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["scalars", "bng_ingress_upstream_tmp"]
+              }
+            }
+          },
+          "true_next" : "tbl_act_30",
+          "false_next" : "node_79"
+        },
+        {
+          "name" : "node_79",
+          "id" : 26,
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "not",
+              "left" : null,
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["scalars", "bng_ingress_upstream_hasReturned"]
+                  }
+                }
+              }
+            }
+          },
           "false_next" : null,
-          "true_next" : "tbl_act_36"
+          "true_next" : "node_80"
+        },
+        {
+          "name" : "node_80",
+          "id" : 27,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 126,
+            "column" : 12,
+            "source_fragment" : "hdr.ipv4.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["ipv4", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4",
+          "false_next" : "node_83"
+        },
+        {
+          "name" : "node_83",
+          "id" : 28,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 134,
+            "column" : 17,
+            "source_fragment" : "hdr.ipv6.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["ipv6", "$valid$"]
+              }
+            }
+          },
+          "false_next" : null,
+          "true_next" : "tbl_act_32"
+        },
+        {
+          "name" : "node_90",
+          "id" : 29,
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["scalars", "bng_ingress_downstream_tmp"]
+              }
+            }
+          },
+          "false_next" : null,
+          "true_next" : "node_91"
+        },
+        {
+          "name" : "node_91",
+          "id" : 30,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 233,
+            "column" : 16,
+            "source_fragment" : "hdr.ipv4.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["ipv4", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "FabricIngress.bng_ingress.downstream.t_qos_v4",
+          "false_next" : "node_95"
+        },
+        {
+          "name" : "node_95",
+          "id" : 31,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 245,
+            "column" : 21,
+            "source_fragment" : "hdr.ipv6.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["ipv6", "$valid$"]
+              }
+            }
+          },
+          "false_next" : null,
+          "true_next" : "FabricIngress.bng_ingress.downstream.t_qos_v6"
         }
       ]
     },
@@ -18765,15 +18456,15 @@
       "id" : 1,
       "source_info" : {
         "filename" : "fabric.p4",
-        "line" : 92,
+        "line" : 93,
         "column" : 8,
         "source_fragment" : "FabricEgress"
       },
-      "init_table" : "node_99",
+      "init_table" : "node_101",
       "tables" : [
         {
-          "name" : "tbl_act_37",
-          "id" : 63,
+          "name" : "tbl_act_40",
+          "id" : 65,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 41,
@@ -18787,22 +18478,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [148],
-          "actions" : ["act_37"],
-          "base_default_next" : "node_101",
+          "action_ids" : [150],
+          "actions" : ["act_40"],
+          "base_default_next" : "node_103",
           "next_tables" : {
-            "act_37" : "node_101"
+            "act_40" : "node_103"
           },
           "default_entry" : {
-            "action_id" : 148,
+            "action_id" : 150,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_38",
-          "id" : 64,
+          "name" : "tbl_act_41",
+          "id" : 66,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 44,
@@ -18816,25 +18507,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [149],
-          "actions" : ["act_38"],
-          "base_default_next" : "node_103",
+          "action_ids" : [151],
+          "actions" : ["act_41"],
+          "base_default_next" : "node_105",
           "next_tables" : {
-            "act_38" : "node_103"
+            "act_41" : "node_105"
           },
           "default_entry" : {
-            "action_id" : 149,
+            "action_id" : 151,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_39",
-          "id" : 65,
+          "name" : "tbl_act_42",
+          "id" : 67,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 308,
+            "line" : 334,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -18845,14 +18536,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [150],
-          "actions" : ["act_39"],
-          "base_default_next" : "node_105",
+          "action_ids" : [152],
+          "actions" : ["act_42"],
+          "base_default_next" : "node_107",
           "next_tables" : {
-            "act_39" : "node_105"
+            "act_42" : "node_107"
           },
           "default_entry" : {
-            "action_id" : 150,
+            "action_id" : 152,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -18860,10 +18551,10 @@
         },
         {
           "name" : "tbl_egress_next_pop_mpls_if_present",
-          "id" : 66,
+          "id" : 68,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 312,
+            "line" : 338,
             "column" : 36,
             "source_fragment" : "pop_mpls_if_present()"
           },
@@ -18876,9 +18567,9 @@
           "direct_meters" : null,
           "action_ids" : [144],
           "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
-          "base_default_next" : "FabricEgress.egress_next.egress_vlan",
+          "base_default_next" : "node_111",
           "next_tables" : {
-            "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
+            "FabricEgress.egress_next.pop_mpls_if_present" : "node_111"
           },
           "default_entry" : {
             "action_id" : 144,
@@ -18889,10 +18580,10 @@
         },
         {
           "name" : "tbl_egress_next_set_mpls",
-          "id" : 67,
+          "id" : 69,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 314,
+            "line" : 340,
             "column" : 12,
             "source_fragment" : "set_mpls()"
           },
@@ -18905,9 +18596,9 @@
           "direct_meters" : null,
           "action_ids" : [145],
           "actions" : ["FabricEgress.egress_next.set_mpls"],
-          "base_default_next" : "FabricEgress.egress_next.egress_vlan",
+          "base_default_next" : "node_111",
           "next_tables" : {
-            "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
+            "FabricEgress.egress_next.set_mpls" : "node_111"
           },
           "default_entry" : {
             "action_id" : 145,
@@ -18917,11 +18608,98 @@
           }
         },
         {
-          "name" : "FabricEgress.egress_next.egress_vlan",
-          "id" : 68,
+          "name" : "tbl_egress_next_push_vlan",
+          "id" : 70,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 291,
+            "line" : 346,
+            "column" : 12,
+            "source_fragment" : "push_vlan()"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [146],
+          "actions" : ["FabricEgress.egress_next.push_vlan"],
+          "base_default_next" : "tbl_egress_next_push_inner_vlan",
+          "next_tables" : {
+            "FabricEgress.egress_next.push_vlan" : "tbl_egress_next_push_inner_vlan"
+          },
+          "default_entry" : {
+            "action_id" : 146,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_egress_next_push_inner_vlan",
+          "id" : 71,
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 347,
+            "column" : 12,
+            "source_fragment" : "push_inner_vlan()"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [148],
+          "actions" : ["FabricEgress.egress_next.push_inner_vlan"],
+          "base_default_next" : "node_121",
+          "next_tables" : {
+            "FabricEgress.egress_next.push_inner_vlan" : "node_121"
+          },
+          "default_entry" : {
+            "action_id" : 148,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_43",
+          "id" : 72,
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 350,
+            "column" : 12,
+            "source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [155],
+          "actions" : ["act_45"],
+          "base_default_next" : "FabricEgress.egress_next.egress_vlan",
+          "next_tables" : {
+            "act_45" : "FabricEgress.egress_next.egress_vlan"
+          },
+          "default_entry" : {
+            "action_id" : 155,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "FabricEgress.egress_next.egress_vlan",
+          "id" : 73,
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 317,
             "column" : 10,
             "source_fragment" : "egress_vlan"
           },
@@ -18929,7 +18707,7 @@
             {
               "match_type" : "exact",
               "name" : "vlan_id",
-              "target" : ["scalars", "fabric_metadata_t._vlan_id2"],
+              "target" : ["scalars", "fabric_metadata_t._vlan_id5"],
               "mask" : null
             },
             {
@@ -18945,12 +18723,12 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [147, 101],
+          "action_ids" : [149, 101],
           "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
           "base_default_next" : null,
           "next_tables" : {
-            "__HIT__" : "tbl_act_40",
-            "__MISS__" : "tbl_act_41"
+            "__HIT__" : "tbl_act_44",
+            "__MISS__" : "tbl_act_45"
           },
           "default_entry" : {
             "action_id" : 101,
@@ -18960,8 +18738,8 @@
           }
         },
         {
-          "name" : "tbl_act_40",
-          "id" : 69,
+          "name" : "tbl_act_44",
+          "id" : 74,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -18969,22 +18747,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [151],
-          "actions" : ["act_40"],
-          "base_default_next" : "node_112",
+          "action_ids" : [153],
+          "actions" : ["act_43"],
+          "base_default_next" : "node_118",
           "next_tables" : {
-            "act_40" : "node_112"
+            "act_43" : "node_118"
           },
           "default_entry" : {
-            "action_id" : 151,
+            "action_id" : 153,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_41",
-          "id" : 70,
+          "name" : "tbl_act_45",
+          "id" : 75,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -18992,26 +18770,26 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [152],
-          "actions" : ["act_41"],
-          "base_default_next" : "node_112",
+          "action_ids" : [154],
+          "actions" : ["act_44"],
+          "base_default_next" : "node_118",
           "next_tables" : {
-            "act_41" : "node_112"
+            "act_44" : "node_118"
           },
           "default_entry" : {
-            "action_id" : 152,
+            "action_id" : 154,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_egress_next_push_vlan",
-          "id" : 71,
+          "name" : "tbl_egress_next_push_vlan_0",
+          "id" : 76,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 320,
-            "column" : 16,
+            "line" : 357,
+            "column" : 20,
             "source_fragment" : "push_vlan()"
           },
           "key" : [],
@@ -19021,25 +18799,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [146],
+          "action_ids" : [147],
           "actions" : ["FabricEgress.egress_next.push_vlan"],
-          "base_default_next" : "node_115",
+          "base_default_next" : "node_121",
           "next_tables" : {
-            "FabricEgress.egress_next.push_vlan" : "node_115"
+            "FabricEgress.egress_next.push_vlan" : "node_121"
           },
           "default_entry" : {
-            "action_id" : 146,
+            "action_id" : 147,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_42",
-          "id" : 72,
+          "name" : "tbl_act_46",
+          "id" : 77,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 326,
+            "line" : 366,
             "column" : 25,
             "source_fragment" : "="
           },
@@ -19050,25 +18828,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [154],
-          "actions" : ["act_43"],
-          "base_default_next" : "node_117",
+          "action_ids" : [157],
+          "actions" : ["act_47"],
+          "base_default_next" : "node_123",
           "next_tables" : {
-            "act_43" : "node_117"
+            "act_47" : "node_123"
           },
           "default_entry" : {
-            "action_id" : 154,
+            "action_id" : 157,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_43",
-          "id" : 73,
+          "name" : "tbl_act_47",
+          "id" : 78,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 327,
+            "line" : 367,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -19079,25 +18857,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [153],
-          "actions" : ["act_42"],
-          "base_default_next" : "node_127",
+          "action_ids" : [156],
+          "actions" : ["act_46"],
+          "base_default_next" : "node_133",
           "next_tables" : {
-            "act_42" : "node_127"
+            "act_46" : "node_133"
           },
           "default_entry" : {
-            "action_id" : 153,
+            "action_id" : 156,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_44",
-          "id" : 74,
+          "name" : "tbl_act_48",
+          "id" : 79,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 330,
+            "line" : 370,
             "column" : 29,
             "source_fragment" : "="
           },
@@ -19108,25 +18886,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [156],
-          "actions" : ["act_45"],
-          "base_default_next" : "node_121",
+          "action_ids" : [159],
+          "actions" : ["act_49"],
+          "base_default_next" : "node_127",
           "next_tables" : {
-            "act_45" : "node_121"
+            "act_49" : "node_127"
           },
           "default_entry" : {
-            "action_id" : 156,
+            "action_id" : 159,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_45",
-          "id" : 75,
+          "name" : "tbl_act_49",
+          "id" : 80,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 331,
+            "line" : 371,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -19137,25 +18915,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [155],
-          "actions" : ["act_44"],
-          "base_default_next" : "node_127",
+          "action_ids" : [158],
+          "actions" : ["act_48"],
+          "base_default_next" : "node_133",
           "next_tables" : {
-            "act_44" : "node_127"
+            "act_48" : "node_133"
           },
           "default_entry" : {
-            "action_id" : 155,
+            "action_id" : 158,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_46",
-          "id" : 76,
+          "name" : "tbl_act_50",
+          "id" : 81,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 375,
             "column" : 35,
             "source_fragment" : "="
           },
@@ -19166,25 +18944,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [158],
-          "actions" : ["act_47"],
-          "base_default_next" : "node_125",
+          "action_ids" : [161],
+          "actions" : ["act_51"],
+          "base_default_next" : "node_131",
           "next_tables" : {
-            "act_47" : "node_125"
+            "act_51" : "node_131"
           },
           "default_entry" : {
-            "action_id" : 158,
+            "action_id" : 161,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_47",
-          "id" : 77,
+          "name" : "tbl_act_51",
+          "id" : 82,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 336,
+            "line" : 376,
             "column" : 45,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -19195,14 +18973,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [157],
-          "actions" : ["act_46"],
-          "base_default_next" : "node_127",
+          "action_ids" : [160],
+          "actions" : ["act_50"],
+          "base_default_next" : "node_133",
           "next_tables" : {
-            "act_46" : "node_127"
+            "act_50" : "node_133"
           },
           "default_entry" : {
-            "action_id" : 157,
+            "action_id" : 160,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -19210,7 +18988,7 @@
         },
         {
           "name" : "tbl_spgw_egress_gtpu_encap",
-          "id" : 78,
+          "id" : 83,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 228,
@@ -19226,9 +19004,9 @@
           "direct_meters" : null,
           "action_ids" : [104],
           "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
-          "base_default_next" : "node_129",
+          "base_default_next" : "node_135",
           "next_tables" : {
-            "FabricEgress.spgw_egress.gtpu_encap" : "node_129"
+            "FabricEgress.spgw_egress.gtpu_encap" : "node_135"
           },
           "default_entry" : {
             "action_id" : 104,
@@ -19238,38 +19016,58 @@
           }
         },
         {
-          "name" : "FabricEgress.bng_egress.downstream.t_session_encap",
-          "id" : 79,
+          "name" : "tbl_bng_egress_downstream_encap_v4",
+          "id" : 84,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 356,
-            "column" : 10,
-            "source_fragment" : "t_session_encap"
+            "line" : 295,
+            "column" : 12,
+            "source_fragment" : "encap_v4()"
           },
-          "key" : [
-            {
-              "match_type" : "exact",
-              "name" : "line_id",
-              "target" : ["scalars", "fabric_metadata_t._bng_line_id22"],
-              "mask" : null
-            }
-          ],
+          "key" : [],
           "match_type" : "exact",
           "type" : "simple",
-          "max_size" : 8192,
+          "max_size" : 1024,
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [97, 105, 106],
-          "actions" : ["nop", "FabricEgress.bng_egress.downstream.encap_v4", "FabricEgress.bng_egress.downstream.encap_v6"],
-          "base_default_next" : "node_131",
+          "action_ids" : [105],
+          "actions" : ["FabricEgress.bng_egress.downstream.encap_v4"],
+          "base_default_next" : "node_140",
           "next_tables" : {
-            "nop" : "node_131",
-            "FabricEgress.bng_egress.downstream.encap_v4" : "node_131",
-            "FabricEgress.bng_egress.downstream.encap_v6" : "node_131"
+            "FabricEgress.bng_egress.downstream.encap_v4" : "node_140"
           },
           "default_entry" : {
-            "action_id" : 97,
+            "action_id" : 105,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_bng_egress_downstream_encap_v6",
+          "id" : 85,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 300,
+            "column" : 12,
+            "source_fragment" : "encap_v6()"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [106],
+          "actions" : ["FabricEgress.bng_egress.downstream.encap_v6"],
+          "base_default_next" : "node_140",
+          "next_tables" : {
+            "FabricEgress.bng_egress.downstream.encap_v6" : "node_140"
+          },
+          "default_entry" : {
+            "action_id" : 106,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -19277,7 +19075,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
-          "id" : 80,
+          "id" : 86,
           "source_info" : {
             "filename" : "include/int/int_source.p4",
             "line" : 66,
@@ -19300,13 +19098,13 @@
             {
               "match_type" : "ternary",
               "name" : "l4_sport",
-              "target" : ["scalars", "fabric_metadata_t._l4_sport14"],
+              "target" : ["scalars", "fabric_metadata_t._l4_sport21"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
               "name" : "l4_dport",
-              "target" : ["scalars", "fabric_metadata_t._l4_dport15"],
+              "target" : ["scalars", "fabric_metadata_t._l4_dport22"],
               "mask" : null
             }
           ],
@@ -19318,10 +19116,10 @@
           "direct_meters" : null,
           "action_ids" : [107, 98],
           "actions" : ["FabricEgress.process_int_main.process_int_source.int_source_dscp", "nop"],
-          "base_default_next" : "node_134",
+          "base_default_next" : "node_143",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_134",
-            "nop" : "node_134"
+            "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_143",
+            "nop" : "node_143"
           },
           "default_entry" : {
             "action_id" : 98,
@@ -19331,8 +19129,8 @@
           }
         },
         {
-          "name" : "tbl_act_48",
-          "id" : 81,
+          "name" : "tbl_act_52",
+          "id" : 87,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -19340,14 +19138,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [159],
-          "actions" : ["act_48"],
+          "action_ids" : [162],
+          "actions" : ["act_52"],
           "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
           "next_tables" : {
-            "act_48" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
+            "act_52" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
           },
           "default_entry" : {
-            "action_id" : 159,
+            "action_id" : 162,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -19355,7 +19153,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
-          "id" : 82,
+          "id" : 88,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 315,
@@ -19378,10 +19176,10 @@
           "direct_meters" : null,
           "action_ids" : [108, 99],
           "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"],
-          "base_default_next" : "node_137",
+          "base_default_next" : "node_146",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_137",
-            "nop" : "node_137"
+            "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_146",
+            "nop" : "node_146"
           },
           "default_entry" : {
             "action_id" : 99,
@@ -19391,8 +19189,8 @@
           }
         },
         {
-          "name" : "tbl_act_49",
-          "id" : 83,
+          "name" : "tbl_act_53",
+          "id" : 89,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 420,
@@ -19406,14 +19204,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [160],
-          "actions" : ["act_49"],
-          "base_default_next" : "node_139",
+          "action_ids" : [163],
+          "actions" : ["act_53"],
+          "base_default_next" : "node_148",
           "next_tables" : {
-            "act_49" : "node_139"
+            "act_53" : "node_148"
           },
           "default_entry" : {
-            "action_id" : 160,
+            "action_id" : 163,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -19421,7 +19219,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003",
-          "id" : 84,
+          "id" : 90,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 331,
@@ -19779,7 +19577,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407",
-          "id" : 85,
+          "id" : 91,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 375,
@@ -19802,25 +19600,25 @@
           "direct_meters" : null,
           "action_ids" : [125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 103],
           "actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15", "NoAction"],
-          "base_default_next" : "tbl_act_50",
+          "base_default_next" : "tbl_act_54",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_50",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_50",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_50",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_50",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_50",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_50",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_50",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_50",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_50",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_50",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_50",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_50",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_50",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_50",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_50",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_50",
-            "NoAction" : "tbl_act_50"
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_54",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_54",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_54",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_54",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_54",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_54",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_54",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_54",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_54",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_54",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_54",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_54",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_54",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_54",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_54",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_54",
+            "NoAction" : "tbl_act_54"
           },
           "default_entry" : {
             "action_id" : 103,
@@ -20136,8 +19934,8 @@
           ]
         },
         {
-          "name" : "tbl_act_50",
-          "id" : 86,
+          "name" : "tbl_act_54",
+          "id" : 92,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 425,
@@ -20151,22 +19949,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [162],
-          "actions" : ["act_51"],
-          "base_default_next" : "node_143",
+          "action_ids" : [165],
+          "actions" : ["act_55"],
+          "base_default_next" : "node_152",
           "next_tables" : {
-            "act_51" : "node_143"
+            "act_55" : "node_152"
           },
           "default_entry" : {
-            "action_id" : 162,
+            "action_id" : 165,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_51",
-          "id" : 87,
+          "name" : "tbl_act_55",
+          "id" : 93,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 428,
@@ -20180,22 +19978,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [161],
-          "actions" : ["act_50"],
-          "base_default_next" : "node_145",
+          "action_ids" : [164],
+          "actions" : ["act_54"],
+          "base_default_next" : "node_154",
           "next_tables" : {
-            "act_50" : "node_145"
+            "act_54" : "node_154"
           },
           "default_entry" : {
-            "action_id" : 161,
+            "action_id" : 164,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_52",
-          "id" : 88,
+          "name" : "tbl_act_56",
+          "id" : 94,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 431,
@@ -20209,22 +20007,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [163],
-          "actions" : ["act_52"],
-          "base_default_next" : "node_147",
+          "action_ids" : [166],
+          "actions" : ["act_56"],
+          "base_default_next" : "node_156",
           "next_tables" : {
-            "act_52" : "node_147"
+            "act_56" : "node_156"
           },
           "default_entry" : {
-            "action_id" : 163,
+            "action_id" : 166,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_53",
-          "id" : 89,
+          "name" : "tbl_act_57",
+          "id" : 95,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 434,
@@ -20238,14 +20036,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [164],
-          "actions" : ["act_53"],
-          "base_default_next" : "node_149",
+          "action_ids" : [167],
+          "actions" : ["act_57"],
+          "base_default_next" : "node_158",
           "next_tables" : {
-            "act_53" : "node_149"
+            "act_57" : "node_158"
           },
           "default_entry" : {
-            "action_id" : 164,
+            "action_id" : 167,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -20253,7 +20051,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_report.tb_generate_report",
-          "id" : 90,
+          "id" : 96,
           "source_info" : {
             "filename" : "include/int/int_report.p4",
             "line" : 86,
@@ -20269,10 +20067,10 @@
           "direct_meters" : null,
           "action_ids" : [141, 100],
           "actions" : ["FabricEgress.process_int_main.process_int_report.do_report_encapsulation", "nop"],
-          "base_default_next" : "node_151",
+          "base_default_next" : "node_160",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_report.do_report_encapsulation" : "node_151",
-            "nop" : "node_151"
+            "FabricEgress.process_int_main.process_int_report.do_report_encapsulation" : "node_160",
+            "nop" : "node_160"
           },
           "default_entry" : {
             "action_id" : 100,
@@ -20283,7 +20081,7 @@
         },
         {
           "name" : "tbl_process_int_main_process_int_sink_restore_header",
-          "id" : 91,
+          "id" : 97,
           "source_info" : {
             "filename" : "include/int/int_sink.p4",
             "line" : 53,
@@ -20312,7 +20110,7 @@
         },
         {
           "name" : "tbl_process_int_main_process_int_sink_int_sink",
-          "id" : 92,
+          "id" : 98,
           "source_info" : {
             "filename" : "include/int/int_sink.p4",
             "line" : 54,
@@ -20343,7 +20141,7 @@
       "action_profiles" : [],
       "conditionals" : [
         {
-          "name" : "node_99",
+          "name" : "node_101",
           "id" : 32,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
@@ -20362,7 +20160,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out12"]
+                    "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out19"]
                   }
                 }
               },
@@ -20372,11 +20170,11 @@
               }
             }
           },
-          "true_next" : "tbl_act_37",
-          "false_next" : "node_101"
+          "true_next" : "tbl_act_40",
+          "false_next" : "node_103"
         },
         {
-          "name" : "node_101",
+          "name" : "node_103",
           "id" : 33,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
@@ -20398,15 +20196,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_38",
-          "false_next" : "node_103"
+          "true_next" : "tbl_act_41",
+          "false_next" : "node_105"
         },
         {
-          "name" : "node_103",
+          "name" : "node_105",
           "id" : 34,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 306,
+            "line" : 332,
             "column" : 12,
             "source_fragment" : "fabric_metadata.is_multicast == true ..."
           },
@@ -20425,7 +20223,7 @@
                       "left" : null,
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._is_multicast11"]
+                        "value" : ["scalars", "fabric_metadata_t._is_multicast18"]
                       }
                     }
                   },
@@ -20451,15 +20249,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_39",
-          "false_next" : "node_105"
+          "true_next" : "tbl_act_42",
+          "false_next" : "node_107"
         },
         {
-          "name" : "node_105",
+          "name" : "node_107",
           "id" : 35,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 311,
+            "line" : 337,
             "column" : 12,
             "source_fragment" : "fabric_metadata.mpls_label == 0"
           },
@@ -20469,7 +20267,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._mpls_label5"]
+                "value" : ["scalars", "fabric_metadata_t._mpls_label12"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -20477,15 +20275,15 @@
               }
             }
           },
-          "true_next" : "node_106",
+          "true_next" : "node_108",
           "false_next" : "tbl_egress_next_set_mpls"
         },
         {
-          "name" : "node_106",
+          "name" : "node_108",
           "id" : 36,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 312,
+            "line" : 338,
             "column" : 16,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -20501,15 +20299,48 @@
             }
           },
           "true_next" : "tbl_egress_next_pop_mpls_if_present",
-          "false_next" : "FabricEgress.egress_next.egress_vlan"
+          "false_next" : "node_111"
         },
         {
-          "name" : "node_112",
+          "name" : "node_111",
           "id" : 37,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 317,
+            "line" : 344,
             "column" : 12,
+            "source_fragment" : "fabric_metadata.push_double_vlan == true"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["scalars", "fabric_metadata_t._push_double_vlan8"]
+                  }
+                }
+              },
+              "right" : {
+                "type" : "bool",
+                "value" : true
+              }
+            }
+          },
+          "true_next" : "tbl_egress_next_push_vlan",
+          "false_next" : "tbl_act_43"
+        },
+        {
+          "name" : "node_118",
+          "id" : 38,
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 354,
+            "column" : 16,
             "source_fragment" : "!egress_vlan.apply().hit"
           },
           "expression" : {
@@ -20530,16 +20361,16 @@
               }
             }
           },
-          "true_next" : "node_113",
-          "false_next" : "node_115"
+          "true_next" : "node_119",
+          "false_next" : "node_121"
         },
         {
-          "name" : "node_113",
-          "id" : 38,
+          "name" : "node_119",
+          "id" : 39,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 319,
-            "column" : 16,
+            "line" : 356,
+            "column" : 20,
             "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
           },
           "expression" : {
@@ -20548,7 +20379,7 @@
               "op" : "!=",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._vlan_id2"]
+                "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -20556,15 +20387,15 @@
               }
             }
           },
-          "true_next" : "tbl_egress_next_push_vlan",
-          "false_next" : "node_115"
+          "true_next" : "tbl_egress_next_push_vlan_0",
+          "false_next" : "node_121"
         },
         {
-          "name" : "node_115",
-          "id" : 39,
+          "name" : "node_121",
+          "id" : 40,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 325,
+            "line" : 365,
             "column" : 12,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -20579,15 +20410,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_42",
-          "false_next" : "node_119"
+          "true_next" : "tbl_act_46",
+          "false_next" : "node_125"
         },
         {
-          "name" : "node_117",
-          "id" : 40,
+          "name" : "node_123",
+          "id" : 41,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 327,
+            "line" : 367,
             "column" : 16,
             "source_fragment" : "hdr.mpls.ttl == 0"
           },
@@ -20605,15 +20436,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_43",
-          "false_next" : "node_127"
+          "true_next" : "tbl_act_47",
+          "false_next" : "node_133"
         },
         {
-          "name" : "node_119",
-          "id" : 41,
+          "name" : "node_125",
+          "id" : 42,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 329,
+            "line" : 369,
             "column" : 15,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -20628,15 +20459,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_44",
-          "false_next" : "node_123"
+          "true_next" : "tbl_act_48",
+          "false_next" : "node_129"
         },
         {
-          "name" : "node_121",
-          "id" : 42,
+          "name" : "node_127",
+          "id" : 43,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 331,
+            "line" : 371,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl == 0"
           },
@@ -20654,15 +20485,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_45",
-          "false_next" : "node_127"
+          "true_next" : "tbl_act_49",
+          "false_next" : "node_133"
         },
         {
-          "name" : "node_123",
-          "id" : 43,
+          "name" : "node_129",
+          "id" : 44,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 334,
+            "line" : 374,
             "column" : 21,
             "source_fragment" : "hdr.ipv6.isValid()"
           },
@@ -20677,15 +20508,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_46",
-          "false_next" : "node_127"
+          "true_next" : "tbl_act_50",
+          "false_next" : "node_133"
         },
         {
-          "name" : "node_125",
-          "id" : 44,
+          "name" : "node_131",
+          "id" : 45,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 336,
+            "line" : 376,
             "column" : 20,
             "source_fragment" : "hdr.ipv6.hop_limit == 0"
           },
@@ -20703,12 +20534,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_47",
-          "false_next" : "node_127"
+          "true_next" : "tbl_act_51",
+          "false_next" : "node_133"
         },
         {
-          "name" : "node_127",
-          "id" : 45,
+          "name" : "node_133",
+          "id" : 46,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 227,
@@ -20721,7 +20552,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._spgw_direction16"]
+                "value" : ["scalars", "fabric_metadata_t._spgw_direction23"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -20730,14 +20561,14 @@
             }
           },
           "true_next" : "tbl_spgw_egress_gtpu_encap",
-          "false_next" : "node_129"
+          "false_next" : "node_135"
         },
         {
-          "name" : "node_129",
-          "id" : 46,
+          "name" : "node_135",
+          "id" : 47,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 405,
+            "line" : 369,
             "column" : 12,
             "source_fragment" : "fmeta.bng.type == BNG_TYPE_DOWNSTREAM"
           },
@@ -20747,7 +20578,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._bng_type21"]
+                "value" : ["scalars", "fabric_metadata_t._bng_type28"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -20755,12 +20586,58 @@
               }
             }
           },
-          "true_next" : "FabricEgress.bng_egress.downstream.t_session_encap",
-          "false_next" : "node_131"
+          "true_next" : "node_136",
+          "false_next" : "node_140"
         },
         {
-          "name" : "node_131",
-          "id" : 47,
+          "name" : "node_136",
+          "id" : 48,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 294,
+            "column" : 12,
+            "source_fragment" : "hdr.ipv4.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["ipv4", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_bng_egress_downstream_encap_v4",
+          "false_next" : "node_138"
+        },
+        {
+          "name" : "node_138",
+          "id" : 49,
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 299,
+            "column" : 17,
+            "source_fragment" : "hdr.ipv6.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["ipv6", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_bng_egress_downstream_encap_v6",
+          "false_next" : "node_140"
+        },
+        {
+          "name" : "node_140",
+          "id" : 50,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 102,
@@ -20836,11 +20713,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "node_132"
+          "true_next" : "node_141"
         },
         {
-          "name" : "node_132",
-          "id" : 48,
+          "name" : "node_141",
+          "id" : 51,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 106,
@@ -20858,7 +20735,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._int_meta_source24"]
+                    "value" : ["scalars", "fabric_metadata_t._int_meta_source32"]
                   }
                 }
               },
@@ -20869,11 +20746,11 @@
             }
           },
           "true_next" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
-          "false_next" : "node_134"
+          "false_next" : "node_143"
         },
         {
-          "name" : "node_134",
-          "id" : 49,
+          "name" : "node_143",
+          "id" : 52,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 110,
@@ -20892,11 +20769,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_48"
+          "true_next" : "tbl_act_52"
         },
         {
-          "name" : "node_137",
-          "id" : 50,
+          "name" : "node_146",
+          "id" : 53,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 419,
@@ -20914,7 +20791,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._int_meta_transit25"]
+                    "value" : ["scalars", "fabric_metadata_t._int_meta_transit33"]
                   }
                 }
               },
@@ -20924,12 +20801,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_49",
-          "false_next" : "node_139"
+          "true_next" : "tbl_act_53",
+          "false_next" : "node_148"
         },
         {
-          "name" : "node_139",
-          "id" : 51,
+          "name" : "node_148",
+          "id" : 54,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -20949,11 +20826,11 @@
             }
           },
           "true_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003",
-          "false_next" : "node_149"
+          "false_next" : "node_158"
         },
         {
-          "name" : "node_143",
-          "id" : 52,
+          "name" : "node_152",
+          "id" : 55,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 427,
@@ -20971,12 +20848,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_51",
-          "false_next" : "node_145"
+          "true_next" : "tbl_act_55",
+          "false_next" : "node_154"
         },
         {
-          "name" : "node_145",
-          "id" : 53,
+          "name" : "node_154",
+          "id" : 56,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 430,
@@ -20994,12 +20871,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_52",
-          "false_next" : "node_147"
+          "true_next" : "tbl_act_56",
+          "false_next" : "node_156"
         },
         {
-          "name" : "node_147",
-          "id" : 54,
+          "name" : "node_156",
+          "id" : 57,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 433,
@@ -21017,12 +20894,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_53",
-          "false_next" : "node_149"
+          "true_next" : "tbl_act_57",
+          "false_next" : "node_158"
         },
         {
-          "name" : "node_149",
-          "id" : 55,
+          "name" : "node_158",
+          "id" : 58,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 115,
@@ -21044,11 +20921,11 @@
             }
           },
           "true_next" : "FabricEgress.process_int_main.process_int_report.tb_generate_report",
-          "false_next" : "node_151"
+          "false_next" : "node_160"
         },
         {
-          "name" : "node_151",
-          "id" : 56,
+          "name" : "node_160",
+          "id" : 59,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 119,
@@ -21066,7 +20943,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._int_meta_sink26"]
+                    "value" : ["scalars", "fabric_metadata_t._int_meta_sink34"]
                   }
                 }
               },
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt b/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt
index c3e7b90..2a1ca9e 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt
@@ -45,32 +45,51 @@
 }
 tables {
   preamble {
-    id: 33584710
-    name: "FabricIngress.bng_ingress.upstream.t_line_map"
-    alias: "t_line_map"
+    id: 33581620
+    name: "FabricIngress.process_set_source_sink.tb_set_source"
+    alias: "tb_set_source"
   }
   match_fields {
     id: 1
-    name: "s_tag"
-    bitwidth: 12
+    name: "ig_port"
+    bitwidth: 9
     match_type: EXACT
   }
-  match_fields {
-    id: 2
-    name: "c_tag"
-    bitwidth: 12
-    match_type: EXACT
+  action_refs {
+    id: 16778827
   }
   action_refs {
     id: 16819938
     annotations: "@defaultonly"
     scope: DEFAULT_ONLY
   }
+  const_default_action_id: 16819938
+  direct_resource_ids: 318787614
+  size: 511
+}
+tables {
+  preamble {
+    id: 33561619
+    name: "FabricIngress.process_set_source_sink.tb_set_sink"
+    alias: "tb_set_sink"
+  }
+  match_fields {
+    id: 1
+    name: "eg_spec"
+    bitwidth: 9
+    match_type: EXACT
+  }
   action_refs {
-    id: 16829434
+    id: 16788951
+  }
+  action_refs {
+    id: 16819938
+    annotations: "@defaultonly"
+    scope: DEFAULT_ONLY
   }
   const_default_action_id: 16819938
-  size: 8192
+  direct_resource_ids: 318770551
+  size: 511
 }
 tables {
   preamble {
@@ -173,13 +192,13 @@
 }
 tables {
   preamble {
-    id: 33555367
-    name: "FabricIngress.bng_ingress.downstream.t_line_map_v4"
-    alias: "t_line_map_v4"
+    id: 33594775
+    name: "FabricIngress.bng_ingress.downstream.t_line_session_map"
+    alias: "t_line_session_map"
   }
   match_fields {
     id: 1
-    name: "ipv4_dst"
+    name: "line_id"
     bitwidth: 32
     match_type: EXACT
   }
@@ -189,39 +208,13 @@
     scope: DEFAULT_ONLY
   }
   action_refs {
-    id: 16798636
+    id: 16795395
   }
   action_refs {
-    id: 16842299
+    id: 16822844
   }
   const_default_action_id: 16819938
-  size: 32768
-}
-tables {
-  preamble {
-    id: 33572185
-    name: "FabricIngress.bng_ingress.downstream.t_line_map_v6"
-    alias: "t_line_map_v6"
-  }
-  match_fields {
-    id: 1
-    name: "ipv6_dst_net_id"
-    bitwidth: 64
-    match_type: EXACT
-  }
-  action_refs {
-    id: 16819938
-    annotations: "@defaultonly"
-    scope: DEFAULT_ONLY
-  }
-  action_refs {
-    id: 16798636
-  }
-  action_refs {
-    id: 16842299
-  }
-  const_default_action_id: 16819938
-  size: 32768
+  size: 8192
 }
 tables {
   preamble {
@@ -297,51 +290,32 @@
 }
 tables {
   preamble {
-    id: 33581620
-    name: "FabricIngress.process_set_source_sink.tb_set_source"
-    alias: "tb_set_source"
+    id: 33592041
+    name: "FabricIngress.bng_ingress.t_line_map"
+    alias: "t_line_map"
   }
   match_fields {
     id: 1
-    name: "ig_port"
-    bitwidth: 9
+    name: "s_tag"
+    bitwidth: 12
     match_type: EXACT
   }
-  action_refs {
-    id: 16778827
+  match_fields {
+    id: 2
+    name: "c_tag"
+    bitwidth: 12
+    match_type: EXACT
   }
   action_refs {
     id: 16819938
     annotations: "@defaultonly"
     scope: DEFAULT_ONLY
   }
-  const_default_action_id: 16819938
-  direct_resource_ids: 318787614
-  size: 511
-}
-tables {
-  preamble {
-    id: 33561619
-    name: "FabricIngress.process_set_source_sink.tb_set_sink"
-    alias: "tb_set_sink"
-  }
-  match_fields {
-    id: 1
-    name: "eg_spec"
-    bitwidth: 9
-    match_type: EXACT
-  }
   action_refs {
-    id: 16788951
-  }
-  action_refs {
-    id: 16819938
-    annotations: "@defaultonly"
-    scope: DEFAULT_ONLY
+    id: 16829385
   }
   const_default_action_id: 16819938
-  direct_resource_ids: 318770551
-  size: 511
+  size: 8192
 }
 tables {
   preamble {
@@ -367,6 +341,12 @@
     bitwidth: 12
     match_type: TERNARY
   }
+  match_fields {
+    id: 4
+    name: "inner_vlan_id"
+    bitwidth: 12
+    match_type: TERNARY
+  }
   action_refs {
     id: 16836487
   }
@@ -378,7 +358,7 @@
   }
   const_default_action_id: 16836487
   direct_resource_ids: 318815501
-  size: 1024
+  size: 8192
 }
 tables {
   preamble {
@@ -400,8 +380,20 @@
   }
   match_fields {
     id: 3
-    name: "eth_type"
-    bitwidth: 16
+    name: "is_ipv4"
+    bitwidth: 1
+    match_type: EXACT
+  }
+  match_fields {
+    id: 4
+    name: "is_ipv6"
+    bitwidth: 1
+    match_type: EXACT
+  }
+  match_fields {
+    id: 5
+    name: "is_mpls"
+    bitwidth: 1
     match_type: EXACT
   }
   action_refs {
@@ -629,6 +621,9 @@
     id: 16790685
   }
   action_refs {
+    id: 16803337
+  }
+  action_refs {
     id: 16819938
     annotations: "@defaultonly"
     scope: DEFAULT_ONLY
@@ -757,32 +752,6 @@
 }
 tables {
   preamble {
-    id: 33576241
-    name: "FabricEgress.bng_egress.downstream.t_session_encap"
-    alias: "t_session_encap"
-  }
-  match_fields {
-    id: 1
-    name: "line_id"
-    bitwidth: 32
-    match_type: EXACT
-  }
-  action_refs {
-    id: 16819938
-    annotations: "@defaultonly"
-    scope: DEFAULT_ONLY
-  }
-  action_refs {
-    id: 16784000
-  }
-  action_refs {
-    id: 16801306
-  }
-  const_default_action_id: 16819938
-  size: 8192
-}
-tables {
-  preamble {
     id: 33612258
     name: "FabricEgress.process_int_main.process_int_source.tb_int_source"
     alias: "tb_int_source"
@@ -923,14 +892,16 @@
 }
 actions {
   preamble {
-    id: 16829434
-    name: "FabricIngress.bng_ingress.upstream.set_line"
-    alias: "set_line"
+    id: 16778827
+    name: "FabricIngress.process_set_source_sink.int_set_source"
+    alias: "int_set_source"
   }
-  params {
-    id: 1
-    name: "line_id"
-    bitwidth: 32
+}
+actions {
+  preamble {
+    id: 16788951
+    name: "FabricIngress.process_set_source_sink.int_set_sink"
+    alias: "int_set_sink"
   }
 }
 actions {
@@ -963,31 +934,21 @@
 }
 actions {
   preamble {
-    id: 16798636
-    name: "FabricIngress.bng_ingress.downstream.set_line_next"
-    alias: "set_line_next"
+    id: 16795395
+    name: "FabricIngress.bng_ingress.downstream.set_session"
+    alias: "set_session"
   }
   params {
     id: 1
-    name: "line_id"
-    bitwidth: 32
-  }
-  params {
-    id: 2
-    name: "next_id"
-    bitwidth: 32
+    name: "pppoe_session_id"
+    bitwidth: 16
   }
 }
 actions {
   preamble {
-    id: 16842299
-    name: "FabricIngress.bng_ingress.downstream.set_line_drop"
-    alias: "set_line_drop"
-  }
-  params {
-    id: 1
-    name: "line_id"
-    bitwidth: 32
+    id: 16822844
+    name: "FabricIngress.bng_ingress.downstream.drop"
+    alias: "downstream.drop"
   }
 }
 actions {
@@ -1006,16 +967,14 @@
 }
 actions {
   preamble {
-    id: 16778827
-    name: "FabricIngress.process_set_source_sink.int_set_source"
-    alias: "int_set_source"
+    id: 16829385
+    name: "FabricIngress.bng_ingress.set_line"
+    alias: "set_line"
   }
-}
-actions {
-  preamble {
-    id: 16788951
-    name: "FabricIngress.process_set_source_sink.int_set_sink"
-    alias: "int_set_sink"
+  params {
+    id: 1
+    name: "line_id"
+    bitwidth: 32
   }
 }
 actions {
@@ -1146,7 +1105,7 @@
   preamble {
     id: 16820765
     name: "FabricIngress.acl.drop"
-    alias: "drop"
+    alias: "acl.drop"
   }
 }
 actions {
@@ -1170,6 +1129,23 @@
 }
 actions {
   preamble {
+    id: 16803337
+    name: "FabricIngress.next.set_double_vlan"
+    alias: "set_double_vlan"
+  }
+  params {
+    id: 1
+    name: "outer_vlan_id"
+    bitwidth: 12
+  }
+  params {
+    id: 2
+    name: "inner_vlan_id"
+    bitwidth: 12
+  }
+}
+actions {
+  preamble {
     id: 16842190
     name: "FabricIngress.next.output_xconnect"
     alias: "output_xconnect"
@@ -1339,16 +1315,6 @@
     name: "FabricEgress.bng_egress.downstream.encap_v4"
     alias: "encap_v4"
   }
-  params {
-    id: 1
-    name: "c_tag"
-    bitwidth: 12
-  }
-  params {
-    id: 2
-    name: "pppoe_session_id"
-    bitwidth: 16
-  }
 }
 actions {
   preamble {
@@ -1356,16 +1322,6 @@
     name: "FabricEgress.bng_egress.downstream.encap_v6"
     alias: "encap_v6"
   }
-  params {
-    id: 1
-    name: "c_tag"
-    bitwidth: 12
-  }
-  params {
-    id: 2
-    name: "pppoe_session_id"
-    bitwidth: 16
-  }
 }
 actions {
   preamble {