eth_type moved outside ethernet header in fabric.p4

Change-Id: I3ae0813c5e8aba48767d5bb235fbbcfb75954010
(cherry picked from commit 693d76f189c59579837b559975c0ba767335dfc0)
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
index 0f6a839..c8cfde6 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
@@ -4,40 +4,38 @@
       "name" : "scalars_0",
       "id" : 0,
       "fields" : [
-        ["tmp_0", 4, false],
+        ["tmp_2", 16, false],
+        ["tmp_3", 16, false],
+        ["tmp_4", 4, false],
         ["tmp", 8, false],
+        ["tmp_0", 32, false],
         ["tmp_1", 32, false],
-        ["tmp_2", 32, false],
         ["spgw_ingress_tmp", 1, false],
         ["spgw_ingress_tmp_0", 1, false],
         ["spgw_normalizer_hasReturned", 1, false],
         ["spgw_ingress_hasReturned", 1, false],
         ["egress_next_tmp", 1, 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._mpls_label8", 20, false],
-        ["fabric_metadata_t._mpls_ttl9", 8, false],
-        ["fabric_metadata_t._skip_forwarding10", 1, false],
-        ["fabric_metadata_t._skip_next11", 1, false],
-        ["fabric_metadata_t._fwd_type12", 3, false],
-        ["fabric_metadata_t._next_id13", 32, false],
-        ["fabric_metadata_t._is_multicast14", 1, false],
-        ["fabric_metadata_t._is_controller_packet_out15", 1, false],
-        ["fabric_metadata_t._ip_proto16", 8, false],
-        ["fabric_metadata_t._l4_sport17", 16, false],
-        ["fabric_metadata_t._l4_dport18", 16, false],
-        ["fabric_metadata_t._spgw_direction19", 2, false],
-        ["fabric_metadata_t._spgw_ipv4_len20", 16, false],
-        ["fabric_metadata_t._spgw_teid21", 32, false],
-        ["fabric_metadata_t._spgw_s1u_enb_addr22", 32, false],
-        ["fabric_metadata_t._spgw_s1u_sgw_addr23", 32, false],
-        ["_padding_0", 7, false]
+        ["fabric_metadata_t._ip_eth_type0", 16, false],
+        ["fabric_metadata_t._vlan_id1", 12, false],
+        ["fabric_metadata_t._vlan_pri2", 3, false],
+        ["fabric_metadata_t._vlan_cfi3", 1, false],
+        ["fabric_metadata_t._mpls_label4", 20, false],
+        ["fabric_metadata_t._mpls_ttl5", 8, false],
+        ["fabric_metadata_t._skip_forwarding6", 1, false],
+        ["fabric_metadata_t._skip_next7", 1, false],
+        ["fabric_metadata_t._fwd_type8", 3, false],
+        ["fabric_metadata_t._next_id9", 32, false],
+        ["fabric_metadata_t._is_multicast10", 1, false],
+        ["fabric_metadata_t._is_controller_packet_out11", 1, false],
+        ["fabric_metadata_t._ip_proto12", 8, false],
+        ["fabric_metadata_t._l4_sport13", 16, false],
+        ["fabric_metadata_t._l4_dport14", 16, false],
+        ["fabric_metadata_t._spgw_direction15", 2, false],
+        ["fabric_metadata_t._spgw_ipv4_len16", 16, false],
+        ["fabric_metadata_t._spgw_teid17", 32, false],
+        ["fabric_metadata_t._spgw_s1u_enb_addr18", 32, false],
+        ["fabric_metadata_t._spgw_s1u_sgw_addr19", 32, false],
+        ["_padding_0", 2, false]
       ]
     },
     {
@@ -74,23 +72,29 @@
       "id" : 2,
       "fields" : [
         ["dst_addr", 48, false],
-        ["src_addr", 48, false],
-        ["eth_type", 16, false]
+        ["src_addr", 48, false]
       ]
     },
     {
       "name" : "vlan_tag_t",
       "id" : 3,
       "fields" : [
+        ["eth_type", 16, false],
         ["pri", 3, false],
         ["cfi", 1, false],
-        ["vlan_id", 12, false],
-        ["eth_type", 16, false]
+        ["vlan_id", 12, false]
+      ]
+    },
+    {
+      "name" : "eth_type_t",
+      "id" : 4,
+      "fields" : [
+        ["value", 16, false]
       ]
     },
     {
       "name" : "mpls_t",
-      "id" : 4,
+      "id" : 5,
       "fields" : [
         ["label", 20, false],
         ["tc", 3, false],
@@ -100,7 +104,7 @@
     },
     {
       "name" : "ipv4_t",
-      "id" : 5,
+      "id" : 6,
       "fields" : [
         ["version", 4, false],
         ["ihl", 4, false],
@@ -119,7 +123,7 @@
     },
     {
       "name" : "udp_t",
-      "id" : 6,
+      "id" : 7,
       "fields" : [
         ["sport", 16, false],
         ["dport", 16, false],
@@ -129,7 +133,7 @@
     },
     {
       "name" : "gtpu_t",
-      "id" : 7,
+      "id" : 8,
       "fields" : [
         ["version", 3, false],
         ["pt", 1, false],
@@ -144,7 +148,7 @@
     },
     {
       "name" : "tcp_t",
-      "id" : 8,
+      "id" : 9,
       "fields" : [
         ["sport", 16, false],
         ["dport", 16, false],
@@ -161,7 +165,7 @@
     },
     {
       "name" : "icmp_t",
-      "id" : 9,
+      "id" : 10,
       "fields" : [
         ["icmp_type", 8, false],
         ["icmp_code", 8, false],
@@ -173,7 +177,7 @@
     },
     {
       "name" : "packet_out_header_t",
-      "id" : 10,
+      "id" : 11,
       "fields" : [
         ["egress_port", 9, false],
         ["_pad", 7, false]
@@ -181,7 +185,7 @@
     },
     {
       "name" : "packet_in_header_t",
-      "id" : 11,
+      "id" : 12,
       "fields" : [
         ["ingress_port", 9, false],
         ["_pad", 7, false]
@@ -225,85 +229,92 @@
       "pi_omit" : true
     },
     {
-      "name" : "mpls",
+      "name" : "eth_type",
       "id" : 5,
+      "header_type" : "eth_type_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "mpls",
+      "id" : 6,
       "header_type" : "mpls_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "gtpu_ipv4",
-      "id" : 6,
+      "id" : 7,
       "header_type" : "ipv4_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "gtpu_udp",
-      "id" : 7,
+      "id" : 8,
       "header_type" : "udp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "gtpu",
-      "id" : 8,
+      "id" : 9,
       "header_type" : "gtpu_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "inner_ipv4",
-      "id" : 9,
+      "id" : 10,
       "header_type" : "ipv4_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "inner_udp",
-      "id" : 10,
+      "id" : 11,
       "header_type" : "udp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "ipv4",
-      "id" : 11,
+      "id" : 12,
       "header_type" : "ipv4_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "tcp",
-      "id" : 12,
+      "id" : 13,
       "header_type" : "tcp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "udp",
-      "id" : 13,
+      "id" : 14,
       "header_type" : "udp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "icmp",
-      "id" : 14,
+      "id" : 15,
       "header_type" : "icmp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "packet_out",
-      "id" : 15,
+      "id" : 16,
       "header_type" : "packet_out_header_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "packet_in",
-      "id" : 16,
+      "id" : 17,
       "header_type" : "packet_in_header_t",
       "metadata" : false,
       "pi_omit" : true
@@ -411,11 +422,11 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+                  "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
                 },
                 {
-                  "type" : "field",
-                  "value" : ["ethernet", "eth_type"]
+                  "type" : "hexstr",
+                  "value" : "0x0ffe"
                 }
               ],
               "op" : "set"
@@ -424,11 +435,11 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+                  "value" : ["scalars", "tmp_2"]
                 },
                 {
-                  "type" : "hexstr",
-                  "value" : "0x0ffe"
+                  "type" : "lookahead",
+                  "value" : [0, 16]
                 }
               ],
               "op" : "set"
@@ -454,27 +465,15 @@
               "next_state" : "parse_vlan_tag"
             },
             {
-              "type" : "hexstr",
-              "value" : "0x8847",
-              "mask" : null,
-              "next_state" : "parse_mpls"
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x0800",
-              "mask" : null,
-              "next_state" : "pre_parse_ipv4"
-            },
-            {
               "value" : "default",
               "mask" : null,
-              "next_state" : null
+              "next_state" : "parse_eth_type"
             }
           ],
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["ethernet", "eth_type"]
+              "value" : ["scalars", "tmp_2"]
             }
           ]
         },
@@ -490,23 +489,24 @@
                 }
               ],
               "op" : "extract"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_3"]
+                },
+                {
+                  "type" : "lookahead",
+                  "value" : [0, 16]
+                }
+              ],
+              "op" : "set"
             }
           ],
           "transitions" : [
             {
               "type" : "hexstr",
-              "value" : "0x0800",
-              "mask" : null,
-              "next_state" : "pre_parse_ipv4"
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x8847",
-              "mask" : null,
-              "next_state" : "parse_mpls"
-            },
-            {
-              "type" : "hexstr",
               "value" : "0x8100",
               "mask" : null,
               "next_state" : "parse_inner_vlan_tag"
@@ -514,13 +514,13 @@
             {
               "value" : "default",
               "mask" : null,
-              "next_state" : null
+              "next_state" : "parse_eth_type"
             }
           ],
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["vlan_tag", "eth_type"]
+              "value" : ["scalars", "tmp_3"]
             }
           ]
         },
@@ -540,11 +540,28 @@
           ],
           "transitions" : [
             {
-              "type" : "hexstr",
-              "value" : "0x0800",
+              "value" : "default",
               "mask" : null,
-              "next_state" : "pre_parse_ipv4"
-            },
+              "next_state" : "parse_eth_type"
+            }
+          ],
+          "transition_key" : []
+        },
+        {
+          "name" : "parse_eth_type",
+          "id" : 5,
+          "parser_ops" : [
+            {
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "eth_type"
+                }
+              ],
+              "op" : "extract"
+            }
+          ],
+          "transitions" : [
             {
               "type" : "hexstr",
               "value" : "0x8847",
@@ -552,6 +569,12 @@
               "next_state" : "parse_mpls"
             },
             {
+              "type" : "hexstr",
+              "value" : "0x0800",
+              "mask" : null,
+              "next_state" : "parse_ipv4"
+            },
+            {
               "value" : "default",
               "mask" : null,
               "next_state" : null
@@ -560,13 +583,13 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["inner_vlan_tag", "eth_type"]
+              "value" : ["eth_type", "value"]
             }
           ]
         },
         {
           "name" : "parse_mpls",
-          "id" : 5,
+          "id" : 6,
           "parser_ops" : [
             {
               "parameters" : [
@@ -581,30 +604,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "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_label8"]
+                  "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
                 },
                 {
                   "type" : "field",
@@ -617,7 +617,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
+                  "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
                 },
                 {
                   "type" : "field",
@@ -630,7 +630,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_0"]
+                  "value" : ["scalars", "tmp_4"]
                 },
                 {
                   "type" : "lookahead",
@@ -656,48 +656,11 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_0"]
+              "value" : ["scalars", "tmp_4"]
             }
           ]
         },
         {
-          "name" : "pre_parse_ipv4",
-          "id" : 6,
-          "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" : 7,
           "parser_ops" : [
@@ -714,7 +677,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_proto16"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
                 },
                 {
                   "type" : "field",
@@ -727,7 +690,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
                 },
                 {
                   "type" : "hexstr",
@@ -786,7 +749,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
                 },
                 {
                   "type" : "field",
@@ -799,7 +762,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
                 },
                 {
                   "type" : "field",
@@ -835,7 +798,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
                 },
                 {
                   "type" : "field",
@@ -848,7 +811,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
                 },
                 {
                   "type" : "field",
@@ -1044,7 +1007,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
                 },
                 {
                   "type" : "field",
@@ -1057,7 +1020,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
                 },
                 {
                   "type" : "field",
@@ -1086,11 +1049,11 @@
       "id" : 0,
       "source_info" : {
         "filename" : "include/parser.p4",
-        "line" : 276,
+        "line" : 259,
         "column" : 8,
         "source_fragment" : "FabricDeparser"
       },
-      "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "mpls", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
+      "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp"]
     }
   ],
   "meter_arrays" : [],
@@ -1156,20 +1119,8 @@
       }
     },
     {
-      "name" : "FabricIngress.forwarding.routing_v4_counter",
-      "id" : 5,
-      "is_direct" : true,
-      "binding" : "FabricIngress.forwarding.routing_v4",
-      "source_info" : {
-        "filename" : "include/control/forwarding.p4",
-        "line" : 87,
-        "column" : 50,
-        "source_fragment" : "routing_v4_counter"
-      }
-    },
-    {
       "name" : "FabricIngress.acl.acl_counter",
-      "id" : 6,
+      "id" : 5,
       "is_direct" : true,
       "binding" : "FabricIngress.acl.acl",
       "source_info" : {
@@ -1181,7 +1132,7 @@
     },
     {
       "name" : "FabricIngress.next.next_vlan_counter",
-      "id" : 7,
+      "id" : 6,
       "is_direct" : true,
       "binding" : "FabricIngress.next.next_vlan",
       "source_info" : {
@@ -1193,7 +1144,7 @@
     },
     {
       "name" : "FabricIngress.next.xconnect_counter",
-      "id" : 8,
+      "id" : 7,
       "is_direct" : true,
       "binding" : "FabricIngress.next.xconnect",
       "source_info" : {
@@ -1205,31 +1156,31 @@
     },
     {
       "name" : "FabricIngress.next.hashed_counter",
-      "id" : 9,
+      "id" : 8,
       "is_direct" : true,
       "binding" : "FabricIngress.next.hashed",
       "source_info" : {
         "filename" : "include/control/next.p4",
-        "line" : 178,
+        "line" : 180,
         "column" : 50,
         "source_fragment" : "hashed_counter"
       }
     },
     {
       "name" : "FabricIngress.next.multicast_counter",
-      "id" : 10,
+      "id" : 9,
       "is_direct" : true,
       "binding" : "FabricIngress.next.multicast",
       "source_info" : {
         "filename" : "include/control/next.p4",
-        "line" : 222,
+        "line" : 224,
         "column" : 50,
         "source_fragment" : "multicast_counter"
       }
     },
     {
       "name" : "FabricIngress.port_counters_control.egress_port_counter",
-      "id" : 11,
+      "id" : 10,
       "source_info" : {
         "filename" : "include/control/port_counter.p4",
         "line" : 26,
@@ -1241,7 +1192,7 @@
     },
     {
       "name" : "FabricIngress.port_counters_control.ingress_port_counter",
-      "id" : 12,
+      "id" : 11,
       "source_info" : {
         "filename" : "include/control/port_counter.p4",
         "line" : 27,
@@ -1253,12 +1204,12 @@
     },
     {
       "name" : "FabricEgress.egress_next.egress_vlan_counter",
-      "id" : 13,
+      "id" : 12,
       "is_direct" : true,
       "binding" : "FabricEgress.egress_next.egress_vlan",
       "source_info" : {
         "filename" : "include/control/next.p4",
-        "line" : 310,
+        "line" : 309,
         "column" : 50,
         "source_fragment" : "egress_vlan_counter"
       }
@@ -1581,7 +1532,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_teid21"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_teid17"]
             },
             {
               "type" : "runtime_data",
@@ -1600,7 +1551,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr22"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr18"]
             },
             {
               "type" : "runtime_data",
@@ -1619,7 +1570,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr23"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr19"]
             },
             {
               "type" : "runtime_data",
@@ -1645,7 +1596,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"]
+              "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
             },
             {
               "type" : "expression",
@@ -1674,7 +1625,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next11"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next7"]
             },
             {
               "type" : "expression",
@@ -1721,7 +1672,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "runtime_data",
@@ -1752,7 +1703,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
+              "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
             },
             {
               "type" : "runtime_data",
@@ -1783,7 +1734,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id13"]
+              "value" : ["scalars", "fabric_metadata_t._next_id9"]
             },
             {
               "type" : "runtime_data",
@@ -1814,7 +1765,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
             },
             {
               "type" : "hexstr",
@@ -1833,7 +1784,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id13"]
+              "value" : ["scalars", "fabric_metadata_t._next_id9"]
             },
             {
               "type" : "runtime_data",
@@ -1864,7 +1815,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id13"]
+              "value" : ["scalars", "fabric_metadata_t._next_id9"]
             },
             {
               "type" : "runtime_data",
@@ -1901,7 +1852,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id13"]
+              "value" : ["scalars", "fabric_metadata_t._next_id9"]
             },
             {
               "type" : "runtime_data",
@@ -1946,7 +1897,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next11"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next7"]
             },
             {
               "type" : "expression",
@@ -2028,7 +1979,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next11"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next7"]
             },
             {
               "type" : "expression",
@@ -2075,7 +2026,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "runtime_data",
@@ -2119,25 +2070,6 @@
             "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; ..."
-          }
         }
       ]
     },
@@ -2156,7 +2088,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id13"]
+              "value" : ["scalars", "fabric_metadata_t._next_id9"]
             },
             {
               "type" : "runtime_data",
@@ -2165,7 +2097,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 112,
+            "line" : 111,
             "column" : 32,
             "source_fragment" : "= next_id; ..."
           }
@@ -2307,7 +2239,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
             },
             {
               "type" : "runtime_data",
@@ -2404,7 +2336,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 225,
+            "line" : 227,
             "column" : 8,
             "source_fragment" : "standard_metadata.mcast_grp = group_id"
           }
@@ -2414,7 +2346,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._is_multicast14"]
+              "value" : ["scalars", "fabric_metadata_t._is_multicast10"]
             },
             {
               "type" : "expression",
@@ -2433,7 +2365,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 226,
+            "line" : 228,
             "column" : 37,
             "source_fragment" : "= true; ..."
           }
@@ -2692,7 +2624,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"]
+              "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"]
             },
             {
               "type" : "expression",
@@ -2738,7 +2670,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "field",
@@ -2747,7 +2679,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 110,
+            "line" : 109,
             "column" : 36,
             "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
           }
@@ -2757,7 +2689,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_pri6"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
             },
             {
               "type" : "field",
@@ -2766,7 +2698,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 111,
+            "line" : 110,
             "column" : 37,
             "source_fragment" : "= hdr.vlan_tag.pri; ..."
           }
@@ -2776,7 +2708,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
             },
             {
               "type" : "field",
@@ -2785,7 +2717,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 112,
+            "line" : 111,
             "column" : 37,
             "source_fragment" : "= hdr.vlan_tag.cfi; ..."
           }
@@ -2802,7 +2734,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
             },
             {
               "type" : "hexstr",
@@ -2811,7 +2743,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 126,
+            "line" : 125,
             "column" : 37,
             "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
           }
@@ -2828,19 +2760,23 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+              "value" : ["scalars", "spgw_ingress_tmp"]
             },
             {
-              "type" : "hexstr",
-              "value" : "0x8847"
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
             }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 108,
-            "column" : 31,
-            "source_fragment" : "0x8847; ..."
-          }
+          ]
         }
       ]
     },
@@ -2854,19 +2790,23 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+              "value" : ["scalars", "spgw_ingress_tmp"]
             },
             {
-              "type" : "field",
-              "value" : ["inner_vlan_tag", "eth_type"]
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : false
+                  }
+                }
+              }
             }
-          ],
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 136,
-            "column" : 50,
-            "source_fragment" : "= hdr.inner_vlan_tag.eth_type; ..."
-          }
+          ]
         }
       ]
     },
@@ -2876,22 +2816,18 @@
       "runtime_data" : [],
       "primitives" : [
         {
-          "op" : "assign",
+          "op" : "mark_to_drop",
           "parameters" : [
             {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "field",
-              "value" : ["vlan_tag", "eth_type"]
+              "type" : "header",
+              "value" : "standard_metadata"
             }
           ],
           "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 139,
-            "column" : 50,
-            "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
+            "filename" : "include/spgw.p4",
+            "line" : 149,
+            "column" : 16,
+            "source_fragment" : "mark_to_drop(standard_metadata)"
           }
         }
       ]
@@ -2906,18 +2842,18 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_direction15"]
             },
             {
-              "type" : "field",
-              "value" : ["ethernet", "eth_type"]
+              "type" : "hexstr",
+              "value" : "0x01"
             }
           ],
           "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 141,
-            "column" : 46,
-            "source_fragment" : "= hdr.ethernet.eth_type; ..."
+            "filename" : "include/control/../define.p4",
+            "line" : 147,
+            "column" : 36,
+            "source_fragment" : "2w1; ..."
           }
         }
       ]
@@ -2932,7 +2868,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "spgw_ingress_tmp"]
+              "value" : ["scalars", "spgw_ingress_tmp_0"]
             },
             {
               "type" : "expression",
@@ -2962,7 +2898,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "spgw_ingress_tmp"]
+              "value" : ["scalars", "spgw_ingress_tmp_0"]
             },
             {
               "type" : "expression",
@@ -2988,18 +2924,22 @@
       "runtime_data" : [],
       "primitives" : [
         {
-          "op" : "mark_to_drop",
+          "op" : "assign",
           "parameters" : [
             {
-              "type" : "header",
-              "value" : "standard_metadata"
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._spgw_direction15"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x02"
             }
           ],
           "source_info" : {
-            "filename" : "include/spgw.p4",
-            "line" : 149,
-            "column" : 16,
-            "source_fragment" : "mark_to_drop(standard_metadata)"
+            "filename" : "include/control/../define.p4",
+            "line" : 148,
+            "column" : 38,
+            "source_fragment" : "2w2; ..."
           }
         }
       ]
@@ -3014,119 +2954,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x01"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 143,
-            "column" : 36,
-            "source_fragment" : "2w1; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_15",
-      "id" : 47,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "spgw_ingress_tmp_0"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_16",
-      "id" : 48,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "spgw_ingress_tmp_0"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : false
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_17",
-      "id" : 49,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x02"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 144,
-            "column" : 38,
-            "source_fragment" : "2w2; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_18",
-      "id" : 50,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_direction15"]
             },
             {
               "type" : "hexstr",
@@ -3135,7 +2963,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 142,
+            "line" : 146,
             "column" : 37,
             "source_fragment" : "2w0; ..."
           }
@@ -3172,8 +3000,8 @@
       ]
     },
     {
-      "name" : "act_19",
-      "id" : 51,
+      "name" : "act_15",
+      "id" : 47,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3202,8 +3030,8 @@
       ]
     },
     {
-      "name" : "act_20",
-      "id" : 52,
+      "name" : "act_16",
+      "id" : 48,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3211,7 +3039,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len16"]
             },
             {
               "type" : "field",
@@ -3228,8 +3056,8 @@
       ]
     },
     {
-      "name" : "act_21",
-      "id" : 53,
+      "name" : "act_17",
+      "id" : 49,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3237,7 +3065,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_0"]
             },
             {
               "type" : "expression",
@@ -3273,7 +3101,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_0"]
             }
           ],
           "source_info" : {
@@ -3286,8 +3114,8 @@
       ]
     },
     {
-      "name" : "act_22",
-      "id" : 54,
+      "name" : "act_18",
+      "id" : 50,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3295,7 +3123,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_2"]
+              "value" : ["scalars", "tmp_1"]
             },
             {
               "type" : "expression",
@@ -3331,7 +3159,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_2"]
+              "value" : ["scalars", "tmp_1"]
             }
           ],
           "source_info" : {
@@ -3345,13 +3173,13 @@
     },
     {
       "name" : "nop",
-      "id" : 55,
+      "id" : 51,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.spgw_egress.gtpu_encap",
-      "id" : 56,
+      "id" : 52,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3402,7 +3230,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 125,
+            "line" : 129,
             "column" : 28,
             "source_fragment" : "5; ..."
           }
@@ -3558,7 +3386,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 138,
+            "line" : 142,
             "column" : 32,
             "source_fragment" : "64; ..."
           }
@@ -3577,7 +3405,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 122,
+            "line" : 126,
             "column" : 25,
             "source_fragment" : "17; ..."
           }
@@ -3591,7 +3419,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr22"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr18"]
             }
           ],
           "source_info" : {
@@ -3610,7 +3438,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr23"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr19"]
             }
           ],
           "source_info" : {
@@ -3711,7 +3539,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
+                        "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len16"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -3910,7 +3738,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len16"]
             }
           ],
           "source_info" : {
@@ -3929,7 +3757,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_teid21"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_teid17"]
             }
           ],
           "source_info" : {
@@ -3943,7 +3771,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.pop_mpls_if_present",
-      "id" : 57,
+      "id" : 53,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3956,7 +3784,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 264,
+            "line" : 266,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setInvalid()"
           }
@@ -3966,25 +3794,25 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+              "value" : ["eth_type", "value"]
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"]
+              "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 266,
-            "column" : 38,
-            "source_fragment" : "= fabric_metadata.ip_eth_type; ..."
+            "line" : 268,
+            "column" : 8,
+            "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type; ..."
           }
         }
       ]
     },
     {
       "name" : "FabricEgress.egress_next.set_mpls",
-      "id" : 58,
+      "id" : 54,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3997,7 +3825,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 271,
+            "line" : 273,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
           }
@@ -4011,12 +3839,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 272,
+            "line" : 274,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
           }
@@ -4035,7 +3863,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 273,
+            "line" : 275,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = 3w0"
           }
@@ -4054,7 +3882,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 274,
+            "line" : 276,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
           }
@@ -4068,12 +3896,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 275,
+            "line" : 277,
             "column" : 8,
             "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push. ..."
           }
@@ -4083,7 +3911,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+              "value" : ["eth_type", "value"]
             },
             {
               "type" : "hexstr",
@@ -4092,7 +3920,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 108,
+            "line" : 112,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
           }
@@ -4101,7 +3929,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.push_vlan",
-      "id" : 59,
+      "id" : 55,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4114,7 +3942,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 283,
+            "line" : 285,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setValid()"
           }
@@ -4128,12 +3956,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 284,
+            "line" : 286,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
           }
@@ -4147,12 +3975,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_pri6"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 285,
+            "line" : 287,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
           }
@@ -4165,15 +3993,15 @@
               "value" : ["vlan_tag", "eth_type"]
             },
             {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+              "type" : "hexstr",
+              "value" : "0x8100"
             }
           ],
           "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 286,
-            "column" : 8,
-            "source_fragment" : "hdr.vlan_tag.eth_type = fabric_metadata.last_eth_type; ..."
+            "filename" : "include/control/../define.p4",
+            "line" : 111,
+            "column" : 31,
+            "source_fragment" : "0x8100; ..."
           }
         },
         {
@@ -4185,62 +4013,24 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 287,
+            "line" : 289,
             "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.pop_vlan",
-      "id" : 60,
+      "id" : 56,
       "runtime_data" : [],
       "primitives" : [
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["ethernet", "eth_type"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 313,
-            "column" : 8,
-            "source_fragment" : "hdr.ethernet.eth_type = fabric_metadata.last_eth_type; ..."
-          }
-        },
-        {
           "op" : "remove_header",
           "parameters" : [
             {
@@ -4250,7 +4040,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 314,
+            "line" : 312,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
           }
@@ -4258,8 +4048,8 @@
       ]
     },
     {
-      "name" : "act_23",
-      "id" : 61,
+      "name" : "act_19",
+      "id" : 57,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4275,8 +4065,8 @@
       ]
     },
     {
-      "name" : "act_24",
-      "id" : 62,
+      "name" : "act_20",
+      "id" : 58,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4326,8 +4116,8 @@
       ]
     },
     {
-      "name" : "act_25",
-      "id" : 63,
+      "name" : "act_21",
+      "id" : 59,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4340,7 +4130,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 333,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -4348,8 +4138,8 @@
       ]
     },
     {
-      "name" : "act_26",
-      "id" : 64,
+      "name" : "act_22",
+      "id" : 60,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4378,8 +4168,8 @@
       ]
     },
     {
-      "name" : "act_27",
-      "id" : 65,
+      "name" : "act_23",
+      "id" : 61,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4408,8 +4198,8 @@
       ]
     },
     {
-      "name" : "act_28",
-      "id" : 66,
+      "name" : "act_24",
+      "id" : 62,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4422,7 +4212,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -4430,8 +4220,8 @@
       ]
     },
     {
-      "name" : "act_29",
-      "id" : 67,
+      "name" : "act_25",
+      "id" : 63,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4471,7 +4261,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 367,
+            "line" : 365,
             "column" : 12,
             "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
           }
@@ -4479,8 +4269,8 @@
       ]
     },
     {
-      "name" : "act_30",
-      "id" : 68,
+      "name" : "act_26",
+      "id" : 64,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4493,7 +4283,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -4501,8 +4291,8 @@
       ]
     },
     {
-      "name" : "act_31",
-      "id" : 69,
+      "name" : "act_27",
+      "id" : 65,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4542,7 +4332,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 371,
+            "line" : 369,
             "column" : 16,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
           }
@@ -4741,7 +4531,7 @@
           "id" : 6,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 110,
+            "line" : 109,
             "column" : 36,
             "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
           },
@@ -4770,7 +4560,7 @@
           "id" : 7,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 126,
+            "line" : 125,
             "column" : 37,
             "source_fragment" : "="
           },
@@ -4783,9 +4573,9 @@
           "direct_meters" : null,
           "action_ids" : [38],
           "actions" : ["act_6"],
-          "base_default_next" : "node_16",
+          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
           "next_tables" : {
-            "act_6" : "node_16"
+            "act_6" : "FabricIngress.filtering.ingress_port_vlan"
           },
           "default_entry" : {
             "action_id" : 38,
@@ -4795,124 +4585,8 @@
           }
         },
         {
-          "name" : "tbl_act_7",
-          "id" : 8,
-          "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" : [39],
-          "actions" : ["act_7"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_7" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 39,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_8",
-          "id" : 9,
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "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" : [40],
-          "actions" : ["act_8"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_8" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 40,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_9",
-          "id" : 10,
-          "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" : [41],
-          "actions" : ["act_9"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_9" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 41,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_10",
-          "id" : 11,
-          "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" : [42],
-          "actions" : ["act_10"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_10" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 42,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
           "name" : "FabricIngress.filtering.ingress_port_vlan",
-          "id" : 12,
+          "id" : 8,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
             "line" : 53,
@@ -4968,7 +4642,7 @@
         },
         {
           "name" : "FabricIngress.filtering.fwd_classifier",
-          "id" : 13,
+          "id" : 9,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
             "line" : 90,
@@ -4989,21 +4663,15 @@
               "mask" : null
             },
             {
-              "match_type" : "exact",
-              "name" : "is_ipv4",
-              "target" : ["scalars", "fabric_metadata_t._is_ipv41"],
+              "match_type" : "ternary",
+              "name" : "eth_type",
+              "target" : ["eth_type", "value"],
               "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"],
+              "name" : "ip_eth_type",
+              "target" : ["scalars", "fabric_metadata_t._ip_eth_type0"],
               "mask" : null
             }
           ],
@@ -5015,9 +4683,9 @@
           "direct_meters" : null,
           "action_ids" : [14],
           "actions" : ["FabricIngress.filtering.set_forwarding_type"],
-          "base_default_next" : "tbl_act_11",
+          "base_default_next" : "tbl_act_7",
           "next_tables" : {
-            "FabricIngress.filtering.set_forwarding_type" : "tbl_act_11"
+            "FabricIngress.filtering.set_forwarding_type" : "tbl_act_7"
           },
           "default_entry" : {
             "action_id" : 14,
@@ -5027,8 +4695,8 @@
           }
         },
         {
-          "name" : "tbl_act_11",
-          "id" : 14,
+          "name" : "tbl_act_7",
+          "id" : 10,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -5036,14 +4704,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [51],
-          "actions" : ["act_19"],
-          "base_default_next" : "node_26",
+          "action_ids" : [47],
+          "actions" : ["act_15"],
+          "base_default_next" : "node_19",
           "next_tables" : {
-            "act_19" : "node_26"
+            "act_15" : "node_19"
           },
           "default_entry" : {
-            "action_id" : 51,
+            "action_id" : 47,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5051,7 +4719,7 @@
         },
         {
           "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
-          "id" : 15,
+          "id" : 11,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 83,
@@ -5076,8 +4744,8 @@
           "actions" : ["nop"],
           "base_default_next" : null,
           "next_tables" : {
-            "__HIT__" : "tbl_act_12",
-            "__MISS__" : "tbl_act_13"
+            "__HIT__" : "tbl_act_8",
+            "__MISS__" : "tbl_act_9"
           },
           "default_entry" : {
             "action_id" : 1,
@@ -5087,8 +4755,8 @@
           }
         },
         {
-          "name" : "tbl_act_12",
-          "id" : 16,
+          "name" : "tbl_act_8",
+          "id" : 12,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -5096,22 +4764,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [43],
-          "actions" : ["act_11"],
-          "base_default_next" : "node_30",
+          "action_ids" : [39],
+          "actions" : ["act_7"],
+          "base_default_next" : "node_23",
           "next_tables" : {
-            "act_11" : "node_30"
+            "act_7" : "node_23"
           },
           "default_entry" : {
-            "action_id" : 43,
+            "action_id" : 39,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_13",
-          "id" : 17,
+          "name" : "tbl_act_9",
+          "id" : 13,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -5119,22 +4787,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [44],
-          "actions" : ["act_12"],
-          "base_default_next" : "node_30",
+          "action_ids" : [40],
+          "actions" : ["act_8"],
+          "base_default_next" : "node_23",
           "next_tables" : {
-            "act_12" : "node_30"
+            "act_8" : "node_23"
           },
           "default_entry" : {
-            "action_id" : 44,
+            "action_id" : 40,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_14",
-          "id" : 18,
+          "name" : "tbl_act_10",
+          "id" : 14,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 149,
@@ -5148,22 +4816,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [45],
-          "actions" : ["act_13"],
-          "base_default_next" : "tbl_act_15",
+          "action_ids" : [41],
+          "actions" : ["act_9"],
+          "base_default_next" : "tbl_act_11",
           "next_tables" : {
-            "act_13" : "tbl_act_15"
+            "act_9" : "tbl_act_11"
           },
           "default_entry" : {
-            "action_id" : 45,
+            "action_id" : 41,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_15",
-          "id" : 19,
+          "name" : "tbl_act_11",
+          "id" : 15,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 151,
@@ -5177,14 +4845,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [46],
-          "actions" : ["act_14"],
+          "action_ids" : [42],
+          "actions" : ["act_10"],
           "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
           "next_tables" : {
-            "act_14" : "tbl_spgw_ingress_gtpu_decap"
+            "act_10" : "tbl_spgw_ingress_gtpu_decap"
           },
           "default_entry" : {
-            "action_id" : 46,
+            "action_id" : 42,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5192,7 +4860,7 @@
         },
         {
           "name" : "tbl_spgw_ingress_gtpu_decap",
-          "id" : 20,
+          "id" : 16,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 152,
@@ -5208,9 +4876,9 @@
           "direct_meters" : null,
           "action_ids" : [9],
           "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
-          "base_default_next" : "node_40",
+          "base_default_next" : "node_33",
           "next_tables" : {
-            "FabricIngress.spgw_ingress.gtpu_decap" : "node_40"
+            "FabricIngress.spgw_ingress.gtpu_decap" : "node_33"
           },
           "default_entry" : {
             "action_id" : 9,
@@ -5221,7 +4889,7 @@
         },
         {
           "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
-          "id" : 21,
+          "id" : 17,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 70,
@@ -5246,8 +4914,8 @@
           "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "nop"],
           "base_default_next" : null,
           "next_tables" : {
-            "__HIT__" : "tbl_act_16",
-            "__MISS__" : "tbl_act_17"
+            "__HIT__" : "tbl_act_12",
+            "__MISS__" : "tbl_act_13"
           },
           "default_entry" : {
             "action_id" : 0,
@@ -5257,8 +4925,8 @@
           }
         },
         {
-          "name" : "tbl_act_16",
-          "id" : 22,
+          "name" : "tbl_act_12",
+          "id" : 18,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -5266,22 +4934,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [47],
-          "actions" : ["act_15"],
-          "base_default_next" : "node_37",
+          "action_ids" : [43],
+          "actions" : ["act_11"],
+          "base_default_next" : "node_30",
           "next_tables" : {
-            "act_15" : "node_37"
+            "act_11" : "node_30"
           },
           "default_entry" : {
-            "action_id" : 47,
+            "action_id" : 43,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_17",
-          "id" : 23,
+          "name" : "tbl_act_13",
+          "id" : 19,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -5289,22 +4957,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [48],
-          "actions" : ["act_16"],
-          "base_default_next" : "node_37",
+          "action_ids" : [44],
+          "actions" : ["act_12"],
+          "base_default_next" : "node_30",
           "next_tables" : {
-            "act_16" : "node_37"
+            "act_12" : "node_30"
           },
           "default_entry" : {
-            "action_id" : 48,
+            "action_id" : 44,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_18",
-          "id" : 24,
+          "name" : "tbl_act_14",
+          "id" : 20,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 154,
@@ -5318,22 +4986,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [49],
-          "actions" : ["act_17"],
-          "base_default_next" : "node_40",
+          "action_ids" : [45],
+          "actions" : ["act_13"],
+          "base_default_next" : "node_33",
           "next_tables" : {
-            "act_17" : "node_40"
+            "act_13" : "node_33"
           },
           "default_entry" : {
-            "action_id" : 49,
+            "action_id" : 45,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_19",
-          "id" : 25,
+          "name" : "tbl_act_15",
+          "id" : 21,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 156,
@@ -5347,22 +5015,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [50],
-          "actions" : ["act_18"],
-          "base_default_next" : "node_40",
+          "action_ids" : [46],
+          "actions" : ["act_14"],
+          "base_default_next" : "node_33",
           "next_tables" : {
-            "act_18" : "node_40"
+            "act_14" : "node_33"
           },
           "default_entry" : {
-            "action_id" : 50,
+            "action_id" : 46,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_20",
-          "id" : 26,
+          "name" : "tbl_act_16",
+          "id" : 22,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 175,
@@ -5376,14 +5044,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [52],
-          "actions" : ["act_20"],
-          "base_default_next" : "node_42",
+          "action_ids" : [48],
+          "actions" : ["act_16"],
+          "base_default_next" : "node_35",
           "next_tables" : {
-            "act_20" : "node_42"
+            "act_16" : "node_35"
           },
           "default_entry" : {
-            "action_id" : 52,
+            "action_id" : 48,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5391,7 +5059,7 @@
         },
         {
           "name" : "FabricIngress.forwarding.bridging",
-          "id" : 27,
+          "id" : 23,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 46,
@@ -5402,7 +5070,7 @@
             {
               "match_type" : "exact",
               "name" : "vlan_id",
-              "target" : ["scalars", "fabric_metadata_t._vlan_id5"],
+              "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
               "mask" : null
             },
             {
@@ -5434,7 +5102,7 @@
         },
         {
           "name" : "FabricIngress.forwarding.mpls",
-          "id" : 28,
+          "id" : 24,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 71,
@@ -5445,7 +5113,7 @@
             {
               "match_type" : "exact",
               "name" : "mpls_label",
-              "target" : ["scalars", "fabric_metadata_t._mpls_label8"],
+              "target" : ["scalars", "fabric_metadata_t._mpls_label4"],
               "mask" : null
             }
           ],
@@ -5471,10 +5139,10 @@
         },
         {
           "name" : "FabricIngress.forwarding.routing_v4",
-          "id" : 29,
+          "id" : 25,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 101,
+            "line" : 108,
             "column" : 10,
             "source_fragment" : "routing_v4"
           },
@@ -5489,7 +5157,7 @@
           "match_type" : "lpm",
           "type" : "simple",
           "max_size" : 1024,
-          "with_counters" : true,
+          "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
           "action_ids" : [17, 18, 4],
@@ -5509,7 +5177,7 @@
         },
         {
           "name" : "FabricIngress.acl.acl",
-          "id" : 30,
+          "id" : 26,
           "source_info" : {
             "filename" : "include/control/acl.p4",
             "line" : 60,
@@ -5526,19 +5194,19 @@
             {
               "match_type" : "ternary",
               "name" : "ip_proto",
-              "target" : ["scalars", "fabric_metadata_t._ip_proto16"],
+              "target" : ["scalars", "fabric_metadata_t._ip_proto12"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
               "name" : "l4_sport",
-              "target" : ["scalars", "fabric_metadata_t._l4_sport17"],
+              "target" : ["scalars", "fabric_metadata_t._l4_sport13"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
               "name" : "l4_dport",
-              "target" : ["scalars", "fabric_metadata_t._l4_dport18"],
+              "target" : ["scalars", "fabric_metadata_t._l4_dport14"],
               "mask" : null
             },
             {
@@ -5562,7 +5230,7 @@
             {
               "match_type" : "ternary",
               "name" : "eth_type",
-              "target" : ["scalars", "fabric_metadata_t._last_eth_type0"],
+              "target" : ["eth_type", "value"],
               "mask" : null
             },
             {
@@ -5598,13 +5266,13 @@
           "direct_meters" : null,
           "action_ids" : [19, 20, 21, 22, 23],
           "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_50",
+          "base_default_next" : "node_43",
           "next_tables" : {
-            "FabricIngress.acl.set_next_id_acl" : "node_50",
-            "FabricIngress.acl.punt_to_cpu" : "node_50",
-            "FabricIngress.acl.set_clone_session_id" : "node_50",
-            "FabricIngress.acl.drop" : "node_50",
-            "FabricIngress.acl.nop_acl" : "node_50"
+            "FabricIngress.acl.set_next_id_acl" : "node_43",
+            "FabricIngress.acl.punt_to_cpu" : "node_43",
+            "FabricIngress.acl.set_clone_session_id" : "node_43",
+            "FabricIngress.acl.drop" : "node_43",
+            "FabricIngress.acl.nop_acl" : "node_43"
           },
           "default_entry" : {
             "action_id" : 23,
@@ -5615,10 +5283,10 @@
         },
         {
           "name" : "FabricIngress.next.xconnect",
-          "id" : 31,
+          "id" : 27,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 116,
+            "line" : 115,
             "column" : 10,
             "source_fragment" : "xconnect"
           },
@@ -5632,7 +5300,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id13"],
+              "target" : ["scalars", "fabric_metadata_t._next_id9"],
               "mask" : null
             }
           ],
@@ -5659,10 +5327,10 @@
         },
         {
           "name" : "FabricIngress.next.hashed",
-          "id" : 32,
+          "id" : 28,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 196,
+            "line" : 198,
             "column" : 10,
             "source_fragment" : "hashed"
           },
@@ -5670,7 +5338,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id13"],
+              "target" : ["scalars", "fabric_metadata_t._next_id9"],
               "mask" : null
             }
           ],
@@ -5693,10 +5361,10 @@
         },
         {
           "name" : "FabricIngress.next.multicast",
-          "id" : 33,
+          "id" : 29,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 230,
+            "line" : 232,
             "column" : 10,
             "source_fragment" : "multicast"
           },
@@ -5704,7 +5372,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id13"],
+              "target" : ["scalars", "fabric_metadata_t._next_id9"],
               "mask" : null
             }
           ],
@@ -5730,7 +5398,7 @@
         },
         {
           "name" : "FabricIngress.next.next_vlan",
-          "id" : 34,
+          "id" : 30,
           "source_info" : {
             "filename" : "include/control/next.p4",
             "line" : 82,
@@ -5741,7 +5409,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id13"],
+              "target" : ["scalars", "fabric_metadata_t._next_id9"],
               "mask" : null
             }
           ],
@@ -5753,10 +5421,10 @@
           "direct_meters" : null,
           "action_ids" : [24, 5],
           "actions" : ["FabricIngress.next.set_vlan", "nop"],
-          "base_default_next" : "node_55",
+          "base_default_next" : "node_48",
           "next_tables" : {
-            "FabricIngress.next.set_vlan" : "node_55",
-            "nop" : "node_55"
+            "FabricIngress.next.set_vlan" : "node_48",
+            "nop" : "node_48"
           },
           "default_entry" : {
             "action_id" : 5,
@@ -5766,8 +5434,8 @@
           }
         },
         {
-          "name" : "tbl_act_21",
-          "id" : 35,
+          "name" : "tbl_act_17",
+          "id" : 31,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 31,
@@ -5781,22 +5449,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [53],
-          "actions" : ["act_21"],
-          "base_default_next" : "node_57",
+          "action_ids" : [49],
+          "actions" : ["act_17"],
+          "base_default_next" : "node_50",
           "next_tables" : {
-            "act_21" : "node_57"
+            "act_17" : "node_50"
           },
           "default_entry" : {
-            "action_id" : 53,
+            "action_id" : 49,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_22",
-          "id" : 36,
+          "name" : "tbl_act_18",
+          "id" : 32,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 34,
@@ -5810,14 +5478,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [54],
-          "actions" : ["act_22"],
+          "action_ids" : [50],
+          "actions" : ["act_18"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_22" : null
+            "act_18" : null
           },
           "default_entry" : {
-            "action_id" : 54,
+            "action_id" : 50,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5830,7 +5498,7 @@
           "id" : 0,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 177,
+            "line" : 179,
             "column" : 57,
             "source_fragment" : "hashed_selector"
           },
@@ -5848,15 +5516,15 @@
               },
               {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._ip_proto16"]
+                "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
               },
               {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
+                "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
               },
               {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
+                "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
               }
             ]
           }
@@ -5968,7 +5636,7 @@
           "id" : 4,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 109,
+            "line" : 108,
             "column" : 12,
             "source_fragment" : "hdr.vlan_tag.isValid()"
           },
@@ -5991,7 +5659,7 @@
           "id" : 5,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 121,
+            "line" : 120,
             "column" : 12,
             "source_fragment" : "!hdr.mpls.isValid()"
           },
@@ -6014,80 +5682,11 @@
             }
           },
           "true_next" : "tbl_act_6",
-          "false_next" : "node_16"
-        },
-        {
-          "name" : "node_16",
-          "id" : 6,
-          "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_7",
-          "false_next" : "node_18"
-        },
-        {
-          "name" : "node_18",
-          "id" : 7,
-          "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_19",
-          "false_next" : "tbl_act_10"
+          "false_next" : "FabricIngress.filtering.ingress_port_vlan"
         },
         {
           "name" : "node_19",
-          "id" : 8,
-          "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_8",
-          "false_next" : "tbl_act_9"
-        },
-        {
-          "name" : "node_26",
-          "id" : 9,
+          "id" : 6,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 144,
@@ -6109,8 +5708,8 @@
           "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
         },
         {
-          "name" : "node_30",
-          "id" : 10,
+          "name" : "node_23",
+          "id" : 7,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 148,
@@ -6135,12 +5734,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_14",
-          "false_next" : "tbl_act_15"
+          "true_next" : "tbl_act_10",
+          "false_next" : "tbl_act_11"
         },
         {
-          "name" : "node_37",
-          "id" : 11,
+          "name" : "node_30",
+          "id" : 8,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -6152,12 +5751,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_18",
-          "false_next" : "tbl_act_19"
+          "true_next" : "tbl_act_14",
+          "false_next" : "tbl_act_15"
         },
         {
-          "name" : "node_40",
-          "id" : 12,
+          "name" : "node_33",
+          "id" : 9,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -6176,12 +5775,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_20",
-          "false_next" : "node_42"
+          "true_next" : "tbl_act_16",
+          "false_next" : "node_35"
         },
         {
-          "name" : "node_42",
-          "id" : 13,
+          "name" : "node_35",
+          "id" : 10,
           "source_info" : {
             "filename" : "fabric.p4",
             "line" : 71,
@@ -6199,7 +5798,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"]
+                    "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
                   }
                 }
               },
@@ -6209,15 +5808,15 @@
               }
             }
           },
-          "true_next" : "node_43",
+          "true_next" : "node_36",
           "false_next" : "FabricIngress.acl.acl"
         },
         {
-          "name" : "node_43",
-          "id" : 14,
+          "name" : "node_36",
+          "id" : 11,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 141,
+            "line" : 150,
             "column" : 12,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
           },
@@ -6227,7 +5826,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -6236,14 +5835,14 @@
             }
           },
           "true_next" : "FabricIngress.forwarding.bridging",
-          "false_next" : "node_45"
+          "false_next" : "node_38"
         },
         {
-          "name" : "node_45",
-          "id" : 15,
+          "name" : "node_38",
+          "id" : 12,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 142,
+            "line" : 151,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
           },
@@ -6253,7 +5852,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -6262,14 +5861,14 @@
             }
           },
           "true_next" : "FabricIngress.forwarding.mpls",
-          "false_next" : "node_47"
+          "false_next" : "node_40"
         },
         {
-          "name" : "node_47",
-          "id" : 16,
+          "name" : "node_40",
+          "id" : 13,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 143,
+            "line" : 152,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
           },
@@ -6279,7 +5878,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -6291,8 +5890,8 @@
           "false_next" : "FabricIngress.acl.acl"
         },
         {
-          "name" : "node_50",
-          "id" : 17,
+          "name" : "node_43",
+          "id" : 14,
           "source_info" : {
             "filename" : "fabric.p4",
             "line" : 75,
@@ -6310,7 +5909,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._skip_next11"]
+                    "value" : ["scalars", "fabric_metadata_t._skip_next7"]
                   }
                 }
               },
@@ -6324,8 +5923,8 @@
           "true_next" : "FabricIngress.next.xconnect"
         },
         {
-          "name" : "node_55",
-          "id" : 18,
+          "name" : "node_48",
+          "id" : 15,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 30,
@@ -6346,12 +5945,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_21",
-          "false_next" : "node_57"
+          "true_next" : "tbl_act_17",
+          "false_next" : "node_50"
         },
         {
-          "name" : "node_57",
-          "id" : 19,
+          "name" : "node_50",
+          "id" : 16,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 33,
@@ -6373,7 +5972,7 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_22"
+          "true_next" : "tbl_act_18"
         }
       ]
     },
@@ -6386,11 +5985,11 @@
         "column" : 8,
         "source_fragment" : "FabricEgress"
       },
-      "init_table" : "node_61",
+      "init_table" : "node_54",
       "tables" : [
         {
-          "name" : "tbl_act_23",
-          "id" : 37,
+          "name" : "tbl_act_19",
+          "id" : 33,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 41,
@@ -6404,22 +6003,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [61],
-          "actions" : ["act_23"],
-          "base_default_next" : "node_63",
+          "action_ids" : [57],
+          "actions" : ["act_19"],
+          "base_default_next" : "node_56",
           "next_tables" : {
-            "act_23" : "node_63"
+            "act_19" : "node_56"
           },
           "default_entry" : {
-            "action_id" : 61,
+            "action_id" : 57,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_24",
-          "id" : 38,
+          "name" : "tbl_act_20",
+          "id" : 34,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 44,
@@ -6433,25 +6032,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [62],
-          "actions" : ["act_24"],
-          "base_default_next" : "node_65",
+          "action_ids" : [58],
+          "actions" : ["act_20"],
+          "base_default_next" : "node_58",
           "next_tables" : {
-            "act_24" : "node_65"
+            "act_20" : "node_58"
           },
           "default_entry" : {
-            "action_id" : 62,
+            "action_id" : 58,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_25",
-          "id" : 39,
+          "name" : "tbl_act_21",
+          "id" : 35,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 333,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -6462,14 +6061,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [63],
-          "actions" : ["act_25"],
-          "base_default_next" : "node_67",
+          "action_ids" : [59],
+          "actions" : ["act_21"],
+          "base_default_next" : "node_60",
           "next_tables" : {
-            "act_25" : "node_67"
+            "act_21" : "node_60"
           },
           "default_entry" : {
-            "action_id" : 63,
+            "action_id" : 59,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6477,10 +6076,10 @@
         },
         {
           "name" : "tbl_egress_next_pop_mpls_if_present",
-          "id" : 40,
+          "id" : 36,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 339,
+            "line" : 337,
             "column" : 36,
             "source_fragment" : "pop_mpls_if_present()"
           },
@@ -6491,14 +6090,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [57],
+          "action_ids" : [53],
           "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
           "base_default_next" : "FabricEgress.egress_next.egress_vlan",
           "next_tables" : {
             "FabricEgress.egress_next.pop_mpls_if_present" : "FabricEgress.egress_next.egress_vlan"
           },
           "default_entry" : {
-            "action_id" : 57,
+            "action_id" : 53,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6506,10 +6105,10 @@
         },
         {
           "name" : "tbl_egress_next_set_mpls",
-          "id" : 41,
+          "id" : 37,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 339,
             "column" : 12,
             "source_fragment" : "set_mpls()"
           },
@@ -6520,14 +6119,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [58],
+          "action_ids" : [54],
           "actions" : ["FabricEgress.egress_next.set_mpls"],
           "base_default_next" : "FabricEgress.egress_next.egress_vlan",
           "next_tables" : {
             "FabricEgress.egress_next.set_mpls" : "FabricEgress.egress_next.egress_vlan"
           },
           "default_entry" : {
-            "action_id" : 58,
+            "action_id" : 54,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6535,10 +6134,10 @@
         },
         {
           "name" : "FabricEgress.egress_next.egress_vlan",
-          "id" : 42,
+          "id" : 38,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 318,
+            "line" : 316,
             "column" : 10,
             "source_fragment" : "egress_vlan"
           },
@@ -6546,7 +6145,7 @@
             {
               "match_type" : "exact",
               "name" : "vlan_id",
-              "target" : ["scalars", "fabric_metadata_t._vlan_id5"],
+              "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
               "mask" : null
             },
             {
@@ -6562,23 +6161,23 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [60, 55],
+          "action_ids" : [56, 51],
           "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
           "base_default_next" : null,
           "next_tables" : {
-            "__HIT__" : "tbl_act_26",
-            "__MISS__" : "tbl_act_27"
+            "__HIT__" : "tbl_act_22",
+            "__MISS__" : "tbl_act_23"
           },
           "default_entry" : {
-            "action_id" : 55,
+            "action_id" : 51,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_26",
-          "id" : 43,
+          "name" : "tbl_act_22",
+          "id" : 39,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -6586,22 +6185,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [64],
-          "actions" : ["act_26"],
-          "base_default_next" : "node_74",
+          "action_ids" : [60],
+          "actions" : ["act_22"],
+          "base_default_next" : "node_67",
           "next_tables" : {
-            "act_26" : "node_74"
+            "act_22" : "node_67"
           },
           "default_entry" : {
-            "action_id" : 64,
+            "action_id" : 60,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_27",
-          "id" : 44,
+          "name" : "tbl_act_23",
+          "id" : 40,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -6609,14 +6208,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [65],
-          "actions" : ["act_27"],
-          "base_default_next" : "node_74",
+          "action_ids" : [61],
+          "actions" : ["act_23"],
+          "base_default_next" : "node_67",
           "next_tables" : {
-            "act_27" : "node_74"
+            "act_23" : "node_67"
           },
           "default_entry" : {
-            "action_id" : 65,
+            "action_id" : 61,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6624,10 +6223,10 @@
         },
         {
           "name" : "tbl_egress_next_push_vlan",
-          "id" : 45,
+          "id" : 41,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 358,
+            "line" : 356,
             "column" : 20,
             "source_fragment" : "push_vlan()"
           },
@@ -6638,25 +6237,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [59],
+          "action_ids" : [55],
           "actions" : ["FabricEgress.egress_next.push_vlan"],
-          "base_default_next" : "node_77",
+          "base_default_next" : "node_70",
           "next_tables" : {
-            "FabricEgress.egress_next.push_vlan" : "node_77"
+            "FabricEgress.egress_next.push_vlan" : "node_70"
           },
           "default_entry" : {
-            "action_id" : 59,
+            "action_id" : 55,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_28",
-          "id" : 46,
+          "name" : "tbl_act_24",
+          "id" : 42,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 367,
+            "line" : 365,
             "column" : 25,
             "source_fragment" : "="
           },
@@ -6667,25 +6266,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [67],
-          "actions" : ["act_29"],
-          "base_default_next" : "node_79",
+          "action_ids" : [63],
+          "actions" : ["act_25"],
+          "base_default_next" : "node_72",
           "next_tables" : {
-            "act_29" : "node_79"
+            "act_25" : "node_72"
           },
           "default_entry" : {
-            "action_id" : 67,
+            "action_id" : 63,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_29",
-          "id" : 47,
+          "name" : "tbl_act_25",
+          "id" : 43,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -6696,25 +6295,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [66],
-          "actions" : ["act_28"],
-          "base_default_next" : "node_85",
+          "action_ids" : [62],
+          "actions" : ["act_24"],
+          "base_default_next" : "node_78",
           "next_tables" : {
-            "act_28" : "node_85"
+            "act_24" : "node_78"
           },
           "default_entry" : {
-            "action_id" : 66,
+            "action_id" : 62,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_30",
-          "id" : 48,
+          "name" : "tbl_act_26",
+          "id" : 44,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 371,
+            "line" : 369,
             "column" : 29,
             "source_fragment" : "="
           },
@@ -6725,25 +6324,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [69],
-          "actions" : ["act_31"],
-          "base_default_next" : "node_83",
+          "action_ids" : [65],
+          "actions" : ["act_27"],
+          "base_default_next" : "node_76",
           "next_tables" : {
-            "act_31" : "node_83"
+            "act_27" : "node_76"
           },
           "default_entry" : {
-            "action_id" : 69,
+            "action_id" : 65,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_31",
-          "id" : 49,
+          "name" : "tbl_act_27",
+          "id" : 45,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -6754,14 +6353,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [68],
-          "actions" : ["act_30"],
-          "base_default_next" : "node_85",
+          "action_ids" : [64],
+          "actions" : ["act_26"],
+          "base_default_next" : "node_78",
           "next_tables" : {
-            "act_30" : "node_85"
+            "act_26" : "node_78"
           },
           "default_entry" : {
-            "action_id" : 68,
+            "action_id" : 64,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6769,7 +6368,7 @@
         },
         {
           "name" : "tbl_spgw_egress_gtpu_encap",
-          "id" : 50,
+          "id" : 46,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 228,
@@ -6783,14 +6382,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [56],
+          "action_ids" : [52],
           "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
           "base_default_next" : null,
           "next_tables" : {
             "FabricEgress.spgw_egress.gtpu_encap" : null
           },
           "default_entry" : {
-            "action_id" : 56,
+            "action_id" : 52,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6800,8 +6399,8 @@
       "action_profiles" : [],
       "conditionals" : [
         {
-          "name" : "node_61",
-          "id" : 20,
+          "name" : "node_54",
+          "id" : 17,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 39,
@@ -6819,7 +6418,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"]
+                    "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"]
                   }
                 }
               },
@@ -6829,12 +6428,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_23",
-          "false_next" : "node_63"
+          "true_next" : "tbl_act_19",
+          "false_next" : "node_56"
         },
         {
-          "name" : "node_63",
-          "id" : 21,
+          "name" : "node_56",
+          "id" : 18,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 43,
@@ -6855,15 +6454,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_24",
-          "false_next" : "node_65"
+          "true_next" : "tbl_act_20",
+          "false_next" : "node_58"
         },
         {
-          "name" : "node_65",
-          "id" : 22,
+          "name" : "node_58",
+          "id" : 19,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 333,
+            "line" : 331,
             "column" : 12,
             "source_fragment" : "fabric_metadata.is_multicast == true ..."
           },
@@ -6882,7 +6481,7 @@
                       "left" : null,
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._is_multicast14"]
+                        "value" : ["scalars", "fabric_metadata_t._is_multicast10"]
                       }
                     }
                   },
@@ -6908,15 +6507,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_25",
-          "false_next" : "node_67"
+          "true_next" : "tbl_act_21",
+          "false_next" : "node_60"
         },
         {
-          "name" : "node_67",
-          "id" : 23,
+          "name" : "node_60",
+          "id" : 20,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 338,
+            "line" : 336,
             "column" : 12,
             "source_fragment" : "fabric_metadata.mpls_label == 0"
           },
@@ -6926,7 +6525,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
+                "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -6934,15 +6533,15 @@
               }
             }
           },
-          "true_next" : "node_68",
+          "true_next" : "node_61",
           "false_next" : "tbl_egress_next_set_mpls"
         },
         {
-          "name" : "node_68",
-          "id" : 24,
+          "name" : "node_61",
+          "id" : 21,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 339,
+            "line" : 337,
             "column" : 16,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -6961,11 +6560,11 @@
           "false_next" : "FabricEgress.egress_next.egress_vlan"
         },
         {
-          "name" : "node_74",
-          "id" : 25,
+          "name" : "node_67",
+          "id" : 22,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 355,
+            "line" : 353,
             "column" : 16,
             "source_fragment" : "!egress_vlan.apply().hit"
           },
@@ -6987,15 +6586,15 @@
               }
             }
           },
-          "true_next" : "node_75",
-          "false_next" : "node_77"
+          "true_next" : "node_68",
+          "false_next" : "node_70"
         },
         {
-          "name" : "node_75",
-          "id" : 26,
+          "name" : "node_68",
+          "id" : 23,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 357,
+            "line" : 355,
             "column" : 20,
             "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
           },
@@ -7005,7 +6604,7 @@
               "op" : "!=",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+                "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -7014,14 +6613,14 @@
             }
           },
           "true_next" : "tbl_egress_next_push_vlan",
-          "false_next" : "node_77"
+          "false_next" : "node_70"
         },
         {
-          "name" : "node_77",
-          "id" : 27,
+          "name" : "node_70",
+          "id" : 24,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 366,
+            "line" : 364,
             "column" : 12,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -7036,15 +6635,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_28",
-          "false_next" : "node_81"
+          "true_next" : "tbl_act_24",
+          "false_next" : "node_74"
         },
         {
-          "name" : "node_79",
-          "id" : 28,
+          "name" : "node_72",
+          "id" : 25,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 16,
             "source_fragment" : "hdr.mpls.ttl == 0"
           },
@@ -7062,15 +6661,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_29",
-          "false_next" : "node_85"
+          "true_next" : "tbl_act_25",
+          "false_next" : "node_78"
         },
         {
-          "name" : "node_81",
-          "id" : 29,
+          "name" : "node_74",
+          "id" : 26,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 368,
             "column" : 15,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -7085,15 +6684,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_30",
-          "false_next" : "node_85"
+          "true_next" : "tbl_act_26",
+          "false_next" : "node_78"
         },
         {
-          "name" : "node_83",
-          "id" : 30,
+          "name" : "node_76",
+          "id" : 27,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl == 0"
           },
@@ -7111,12 +6710,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_31",
-          "false_next" : "node_85"
+          "true_next" : "tbl_act_27",
+          "false_next" : "node_78"
         },
         {
-          "name" : "node_85",
-          "id" : 31,
+          "name" : "node_78",
+          "id" : 28,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 227,
@@ -7129,7 +6728,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
+                "value" : ["scalars", "fabric_metadata_t._spgw_direction15"]
               },
               "right" : {
                 "type" : "hexstr",