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/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricConstants.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricConstants.java
index c10f3f5..952df6f 100644
--- a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricConstants.java
+++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricConstants.java
@@ -19,10 +19,10 @@
 import org.onosproject.net.pi.model.PiActionId;
 import org.onosproject.net.pi.model.PiActionParamId;
 import org.onosproject.net.pi.model.PiActionProfileId;
-import org.onosproject.net.pi.model.PiCounterId;
-import org.onosproject.net.pi.model.PiMatchFieldId;
 import org.onosproject.net.pi.model.PiMeterId;
 import org.onosproject.net.pi.model.PiPacketMetadataId;
+import org.onosproject.net.pi.model.PiCounterId;
+import org.onosproject.net.pi.model.PiMatchFieldId;
 import org.onosproject.net.pi.model.PiTableId;
 /**
  * Constants for fabric pipeline.
@@ -38,8 +38,6 @@
             PiMatchFieldId.of("ig_port");
     public static final PiMatchFieldId HDR_VLAN_IS_VALID =
             PiMatchFieldId.of("vlan_is_valid");
-    public static final PiMatchFieldId HDR_EG_PORT =
-            PiMatchFieldId.of("eg_port");
     public static final PiMatchFieldId HDR_IPV6_SRC_NET_ID =
             PiMatchFieldId.of("ipv6_src_net_id");
     public static final PiMatchFieldId HDR_C_TAG = PiMatchFieldId.of("c_tag");
@@ -47,8 +45,6 @@
             PiMatchFieldId.of("ipv4_src");
     public static final PiMatchFieldId HDR_IPV6_DST =
             PiMatchFieldId.of("ipv6_dst");
-    public static final PiMatchFieldId HDR_IS_MPLS =
-            PiMatchFieldId.of("is_mpls");
     public static final PiMatchFieldId HDR_L4_DPORT =
             PiMatchFieldId.of("l4_dport");
     public static final PiMatchFieldId HDR_PPPOE_CODE =
@@ -72,6 +68,8 @@
             PiMatchFieldId.of("eth_type");
     public static final PiMatchFieldId HDR_NEXT_ID =
             PiMatchFieldId.of("next_id");
+    public static final PiMatchFieldId HDR_IP_ETH_TYPE =
+            PiMatchFieldId.of("ip_eth_type");
     public static final PiMatchFieldId HDR_L4_SPORT =
             PiMatchFieldId.of("l4_sport");
     public static final PiMatchFieldId HDR_ICMP_CODE =
@@ -88,10 +86,8 @@
             PiMatchFieldId.of("line_id");
     public static final PiMatchFieldId HDR_IPV4_DSCP =
             PiMatchFieldId.of("ipv4_dscp");
-    public static final PiMatchFieldId HDR_IS_IPV4 =
-            PiMatchFieldId.of("is_ipv4");
-    public static final PiMatchFieldId HDR_IS_IPV6 =
-            PiMatchFieldId.of("is_ipv6");
+    public static final PiMatchFieldId HDR_EG_PORT =
+            PiMatchFieldId.of("eg_port");
     public static final PiMatchFieldId HDR_GTP_IPV4_DST =
             PiMatchFieldId.of("gtp_ipv4_dst");
     public static final PiMatchFieldId HDR_INT_IS_VALID =
@@ -181,8 +177,8 @@
             PiCounterId.of("FabricIngress.filtering.fwd_classifier_counter");
     public static final PiCounterId FABRIC_INGRESS_FORWARDING_BRIDGING_COUNTER =
             PiCounterId.of("FabricIngress.forwarding.bridging_counter");
-    public static final PiCounterId FABRIC_INGRESS_FORWARDING_ROUTING_V4_COUNTER =
-            PiCounterId.of("FabricIngress.forwarding.routing_v4_counter");
+    public static final PiCounterId FABRIC_INGRESS_NEXT_HASHED_COUNTER =
+            PiCounterId.of("FabricIngress.next.hashed_counter");
     public static final PiCounterId FABRIC_INGRESS_PROCESS_SET_SOURCE_SINK_COUNTER_SET_SOURCE =
             PiCounterId.of("FabricIngress.process_set_source_sink.counter_set_source");
     public static final PiCounterId FABRIC_EGRESS_PROCESS_INT_MAIN_PROCESS_INT_SOURCE_COUNTER_INT_SOURCE =
@@ -205,8 +201,6 @@
             PiCounterId.of("FabricIngress.filtering.ingress_port_vlan_counter");
     public static final PiCounterId FABRIC_INGRESS_FORWARDING_MPLS_COUNTER =
             PiCounterId.of("FabricIngress.forwarding.mpls_counter");
-    public static final PiCounterId FABRIC_INGRESS_NEXT_HASHED_COUNTER =
-            PiCounterId.of("FabricIngress.next.hashed_counter");
     // Action IDs
     public static final PiActionId FABRIC_INGRESS_NEXT_SET_NEXT_ID_XCONNECT =
             PiActionId.of("FabricIngress.next.set_next_id_xconnect");
diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/AbstractObjectiveTranslator.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/AbstractObjectiveTranslator.java
index 5b9671f..c630131 100644
--- a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/AbstractObjectiveTranslator.java
+++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/AbstractObjectiveTranslator.java
@@ -70,12 +70,18 @@
     public FlowRule flowRule(T obj, PiTableId tableId, TrafficSelector selector,
                              TrafficTreatment treatment)
             throws FabricPipelinerException {
+        return flowRule(obj, tableId, selector, treatment, obj.priority());
+    }
+
+    public FlowRule flowRule(T obj, PiTableId tableId, TrafficSelector selector,
+                             TrafficTreatment treatment, Integer priority)
+            throws FabricPipelinerException {
         return DefaultFlowRule.builder()
                 .withSelector(selector)
                 .withTreatment(mapTreatmentToPiIfNeeded(treatment, tableId))
                 .forTable(tableId)
                 .makePermanent()
-                .withPriority(obj.priority())
+                .withPriority(priority)
                 .forDevice(deviceId)
                 .fromApp(obj.appId())
                 .build();
diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FilteringObjectiveTranslator.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FilteringObjectiveTranslator.java
index d682d8c..a6f0e81 100644
--- a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FilteringObjectiveTranslator.java
+++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FilteringObjectiveTranslator.java
@@ -17,7 +17,6 @@
 package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner;
 
 import com.google.common.collect.Lists;
-import org.onlab.packet.EthType;
 import org.onlab.packet.Ethernet;
 import org.onlab.packet.MacAddress;
 import org.onlab.packet.VlanId;
@@ -60,6 +59,8 @@
     private static final byte[] ONE = new byte[]{1};
     private static final byte[] ZERO = new byte[]{0};
 
+    private static final short ETH_TYPE_EXACT_MASK = (short) 0xFFFF;
+
     private static final PiAction DENY = PiAction.builder()
             .withId(FabricConstants.FABRIC_INGRESS_FILTERING_DENY)
             .build();
@@ -163,7 +164,7 @@
         } else {
             final MacAddress dstMac = ethDstCriterion.mac();
             flowRules.addAll(ipFwdClassifierRules(inPort, dstMac, obj));
-            flowRules.add(mplsFwdClassifierRule(inPort, dstMac, obj));
+            flowRules.addAll(mplsFwdClassifierRules(inPort, dstMac, obj));
         }
 
         for (FlowRule f : flowRules) {
@@ -207,21 +208,58 @@
         return flowRules;
     }
 
-    private FlowRule mplsFwdClassifierRule(
+    private Collection<FlowRule> mplsFwdClassifierRules(
             PortNumber inPort, MacAddress dstMac, FilteringObjective obj)
             throws FabricPipelinerException {
-        return fwdClassifierRule(
-                inPort, Ethernet.MPLS_UNICAST, dstMac, null,
-                fwdClassifierTreatment(FWD_MPLS), obj);
+        // Forwarding classifier for MPLS is composed of 2 rules
+        // with higher priority wrt standard forwarding classifier rules,
+        // this is due to overlap on ternary matching.
+        TrafficTreatment treatment = fwdClassifierTreatment(FWD_MPLS);
+        final PiCriterion ethTypeMplsIpv4 = PiCriterion.builder()
+                .matchTernary(FabricConstants.HDR_ETH_TYPE,
+                              Ethernet.MPLS_UNICAST, ETH_TYPE_EXACT_MASK)
+                .matchExact(FabricConstants.HDR_IP_ETH_TYPE,
+                            Ethernet.TYPE_IPV4)
+                .build();
+        final TrafficSelector selectorMplsIpv4 = DefaultTrafficSelector.builder()
+                .matchInPort(inPort)
+                .matchPi(ethTypeMplsIpv4)
+                .matchEthDstMasked(dstMac, MacAddress.EXACT_MASK)
+                .build();
+
+        final PiCriterion ethTypeMplsIpv6 = PiCriterion.builder()
+                .matchTernary(FabricConstants.HDR_ETH_TYPE,
+                              Ethernet.MPLS_UNICAST, ETH_TYPE_EXACT_MASK)
+                .matchExact(FabricConstants.HDR_IP_ETH_TYPE,
+                            Ethernet.TYPE_IPV6)
+                .build();
+        final TrafficSelector selectorMplsIpv6 = DefaultTrafficSelector.builder()
+                .matchInPort(inPort)
+                .matchPi(ethTypeMplsIpv6)
+                .matchEthDstMasked(dstMac, MacAddress.EXACT_MASK)
+                .build();
+
+        return List.of(
+                flowRule(obj, FabricConstants.FABRIC_INGRESS_FILTERING_FWD_CLASSIFIER,
+                         selectorMplsIpv4, treatment, obj.priority() + 1),
+                flowRule(obj, FabricConstants.FABRIC_INGRESS_FILTERING_FWD_CLASSIFIER,
+                         selectorMplsIpv6, treatment, obj.priority() + 1)
+        );
     }
 
     private FlowRule fwdClassifierRule(
             PortNumber inPort, short ethType, MacAddress dstMac, MacAddress dstMacMask,
             TrafficTreatment treatment, FilteringObjective obj)
             throws FabricPipelinerException {
+        // Match on ip_eth_type that is the eth_type of the L3 protocol.
+        // i.e., if the packet has an IP header, ip_eth_type should
+        // contain the corresponding eth_type (for IPv4 or IPv6)
+        final PiCriterion ethTypeCriterion = PiCriterion.builder()
+                .matchExact(FabricConstants.HDR_IP_ETH_TYPE, ethType)
+                .build();
         final TrafficSelector selector = DefaultTrafficSelector.builder()
                 .matchInPort(inPort)
-                .matchPi(mapEthTypeFwdClassifier(ethType))
+                .matchPi(ethTypeCriterion)
                 .matchEthDstMasked(dstMac, dstMacMask == null
                         ? MacAddress.EXACT_MASK : dstMacMask)
                 .build();
@@ -241,38 +279,4 @@
                 .build();
 
     }
-
-    static PiCriterion mapEthTypeFwdClassifier(short ethType) {
-        // Map the Ethernet type to the validity bits of the fabric pipeline
-        switch (EthType.EtherType.lookup(ethType)) {
-            case IPV4: {
-                return PiCriterion.builder()
-                        .matchExact(FabricConstants.HDR_IS_IPV4, ONE)
-                        .matchExact(FabricConstants.HDR_IS_IPV6, ZERO)
-                        .matchExact(FabricConstants.HDR_IS_MPLS, ZERO)
-                        .build();
-            }
-            case IPV6: {
-                return PiCriterion.builder()
-                        .matchExact(FabricConstants.HDR_IS_IPV4, ZERO)
-                        .matchExact(FabricConstants.HDR_IS_IPV6, ONE)
-                        .matchExact(FabricConstants.HDR_IS_MPLS, ZERO)
-                        .build();
-            }
-            case MPLS_UNICAST: {
-                return PiCriterion.builder()
-                        .matchExact(FabricConstants.HDR_IS_IPV4, ZERO)
-                        .matchExact(FabricConstants.HDR_IS_IPV6, ZERO)
-                        .matchExact(FabricConstants.HDR_IS_MPLS, ONE)
-                        .build();
-            }
-            default: {
-                return PiCriterion.builder()
-                        .matchExact(FabricConstants.HDR_IS_IPV4, ZERO)
-                        .matchExact(FabricConstants.HDR_IS_IPV6, ZERO)
-                        .matchExact(FabricConstants.HDR_IS_MPLS, ZERO)
-                        .build();
-            }
-        }
-    }
 }
diff --git a/pipelines/fabric/impl/src/main/resources/Makefile b/pipelines/fabric/impl/src/main/resources/Makefile
index 784cc6d..586319c 100644
--- a/pipelines/fabric/impl/src/main/resources/Makefile
+++ b/pipelines/fabric/impl/src/main/resources/Makefile
@@ -7,7 +7,7 @@
 	@./bmv2-compile.sh "fabric-spgw" "-DWITH_SPGW"
 
 fabric-bng:
-	@./bmv2-compile.sh "fabric-bng" "-DWITH_BNG -DWITH_DOUBLE_VLAN_TERMINATION -DWITHOUT_XCONNECT"
+	@./bmv2-compile.sh "fabric-bng" "-DWITH_BNG -DWITHOUT_XCONNECT"
 
 fabric-int:
 	@./bmv2-compile.sh "fabric-int" "-DWITH_INT_SOURCE -DWITH_INT_TRANSIT"
@@ -18,7 +18,7 @@
 fabric-full:
 	@./bmv2-compile.sh "fabric-full" " -DWITH_MULTICAST -DWITH_IPV6 \
 		-DWITH_SIMPLE_NEXT -DWITH_HASHED_NEXT -DWITH_BNG -DWITH_SPGW \
-		-DWITH_INT_SOURCE -DWITH_INT_TRANSIT -DWITH_INT_SINK -DWITH_DOUBLE_VLAN_TERMINATION"
+		-DWITH_INT_SOURCE -DWITH_INT_TRANSIT -DWITH_INT_SINK"
 
 constants:
 	docker run -v $(ONOS_ROOT):/onos -w /onos/tools/dev/bin \
diff --git a/pipelines/fabric/impl/src/main/resources/bmv2-compile.sh b/pipelines/fabric/impl/src/main/resources/bmv2-compile.sh
index 9f2c558..2cc8a3f 100755
--- a/pipelines/fabric/impl/src/main/resources/bmv2-compile.sh
+++ b/pipelines/fabric/impl/src/main/resources/bmv2-compile.sh
@@ -3,7 +3,7 @@
 set -e
 
 BMV2_CPU_PORT="255"
-BMV2_PP_FLAGS="-DTARGET_BMV2 -DCPU_PORT=${BMV2_CPU_PORT} -DWITH_PORT_COUNTER"
+BMV2_PP_FLAGS="-DTARGET_BMV2 -DCPU_PORT=${BMV2_CPU_PORT} -DWITH_PORT_COUNTER -DWITH_DEBUG"
 
 PROFILE=$1
 OTHER_PP_FLAGS=$2
diff --git a/pipelines/fabric/impl/src/main/resources/include/bng.p4 b/pipelines/fabric/impl/src/main/resources/include/bng.p4
index ede0001..5df18d5 100644
--- a/pipelines/fabric/impl/src/main/resources/include/bng.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/bng.p4
@@ -64,8 +64,7 @@
 
     @hidden
     action term_enabled(bit<16> eth_type) {
-        hdr.inner_vlan_tag.eth_type = eth_type;
-        fmeta.last_eth_type = eth_type;
+        hdr.eth_type.value = eth_type;
         hdr.pppoe.setInvalid();
         c_terminated.count(fmeta.bng.line_id);
     }
@@ -266,8 +265,8 @@
 
     @hidden
     action encap() {
-        // Here we add PPPoE and modify the inner_vlan_tag Ethernet Type.
-        hdr.inner_vlan_tag.eth_type = ETHERTYPE_PPPOES;
+        // Here we add PPPoE and modify the Ethernet Type.
+        hdr.eth_type.value = ETHERTYPE_PPPOES;
         hdr.pppoe.setValid();
         hdr.pppoe.version = 4w1;
         hdr.pppoe.type_id = 4w1;
@@ -327,11 +326,11 @@
                 c_tag : exact @name("c_tag");
             }
              actions = {
-                @defaultonly nop;
                 set_line;
             }
             size = BNG_MAX_SUBSC;
-            const default_action = nop;
+            // By default set the line ID to 0
+            const default_action = set_line(0);
         }
 
         apply {
diff --git a/pipelines/fabric/impl/src/main/resources/include/control/acl.p4 b/pipelines/fabric/impl/src/main/resources/include/control/acl.p4
index 4c2df67..26267e9 100644
--- a/pipelines/fabric/impl/src/main/resources/include/control/acl.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/control/acl.p4
@@ -66,7 +66,7 @@
             hdr.ethernet.dst_addr: ternary @name("eth_src"); // 48
             hdr.ethernet.src_addr: ternary @name("eth_dst"); // 48
             hdr.vlan_tag.vlan_id: ternary @name("vlan_id"); // 12
-            fabric_metadata.last_eth_type: ternary @name("eth_type"); //16
+            hdr.eth_type.value: ternary @name("eth_type"); //16
             hdr.ipv4.src_addr: ternary @name("ipv4_src"); // 32
             hdr.ipv4.dst_addr: ternary @name("ipv4_dst"); // 32
             hdr.icmp.icmp_type: ternary @name("icmp_type"); // 8
diff --git a/pipelines/fabric/impl/src/main/resources/include/control/filtering.p4 b/pipelines/fabric/impl/src/main/resources/include/control/filtering.p4
index a3213e9..17dba78 100644
--- a/pipelines/fabric/impl/src/main/resources/include/control/filtering.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/control/filtering.p4
@@ -91,9 +91,8 @@
         key = {
             standard_metadata.ingress_port : exact @name("ig_port");
             hdr.ethernet.dst_addr          : ternary @name("eth_dst");
-            fabric_metadata.is_ipv4        : exact @name("is_ipv4");
-            fabric_metadata.is_ipv6        : exact @name("is_ipv6");
-            fabric_metadata.is_mpls        : exact @name("is_mpls");
+            hdr.eth_type.value             : ternary @name("eth_type");
+            fabric_metadata.ip_eth_type    : exact @name("ip_eth_type");
         }
         actions = {
             set_forwarding_type;
@@ -126,22 +125,6 @@
             fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1;
         }
 
-        // Set last_eth_type checking the validity of the L2.5 headers
-        if (hdr.mpls.isValid()) {
-            fabric_metadata.last_eth_type = ETHERTYPE_MPLS;
-        } else {
-            if (hdr.vlan_tag.isValid()) {
-#if defined(WITH_XCONNECT) || defined(WITH_BNG) || defined(WITH_DOUBLE_VLAN_TERMINATION)
-                if(hdr.inner_vlan_tag.isValid()) {
-                    fabric_metadata.last_eth_type = hdr.inner_vlan_tag.eth_type;
-                } else
-#endif //  WITH_XCONNECT || WITH_BNG || WITH_DOUBLE_VLAN_TERMINATION
-                    fabric_metadata.last_eth_type = hdr.vlan_tag.eth_type;
-            } else {
-                fabric_metadata.last_eth_type = hdr.ethernet.eth_type;
-            }
-        }
-
         ingress_port_vlan.apply();
         fwd_classifier.apply();
     }
diff --git a/pipelines/fabric/impl/src/main/resources/include/control/forwarding.p4 b/pipelines/fabric/impl/src/main/resources/include/control/forwarding.p4
index 89544ea..7348c59 100644
--- a/pipelines/fabric/impl/src/main/resources/include/control/forwarding.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/control/forwarding.p4
@@ -84,15 +84,22 @@
     /*
      * IPv4 Routing Table.
      */
+#ifdef WTIH_DEBUG
     direct_counter(CounterType.packets_and_bytes) routing_v4_counter;
+#endif // WITH_DEBUG
 
     action set_next_id_routing_v4(next_id_t next_id) {
         set_next_id(next_id);
+#ifdef WTIH_DEBUG
         routing_v4_counter.count();
+#endif // WITH_DEBUG
     }
 
     action nop_routing_v4() {
+        // no-op
+#ifdef WTIH_DEBUG
         routing_v4_counter.count();
+#endif // WITH_DEBUG
     }
 
     #ifdef _ROUTING_V4_TABLE_ANNOT
@@ -108,7 +115,9 @@
             @defaultonly nop;
         }
         const default_action = nop();
+#ifdef WTIH_DEBUG
         counters = routing_v4_counter;
+#endif // WITH_DEBUG
         size = ROUTING_V4_TABLE_SIZE;
     }
 
diff --git a/pipelines/fabric/impl/src/main/resources/include/control/next.p4 b/pipelines/fabric/impl/src/main/resources/include/control/next.p4
index e7f6e44..2ea719a 100644
--- a/pipelines/fabric/impl/src/main/resources/include/control/next.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/control/next.p4
@@ -104,7 +104,6 @@
 
     action output_xconnect(port_num_t port_num) {
         output(port_num);
-        fabric_metadata.last_eth_type = ETHERTYPE_VLAN;
         xconnect_counter.count();
     }
 
@@ -174,6 +173,9 @@
      * Execute an action profile selector based on next id.
      */
     @max_group_size(HASHED_SELECTOR_MAX_GROUP_SIZE)
+    #ifdef _CUSTOM_HASHED_SELECTOR_ANNOTATION
+        _CUSTOM_HASHED_SELECTOR_ANNOTATION
+    #endif
     action_selector(HashAlgorithm.crc16, HASHED_ACT_PROFILE_SIZE, 32w16) hashed_selector;
     direct_counter(CounterType.packets_and_bytes) hashed_counter;
 
@@ -263,7 +265,7 @@
     action pop_mpls_if_present() {
         hdr.mpls.setInvalid();
         // Assuming there's an IP header after the MPLS one.
-        fabric_metadata.last_eth_type = fabric_metadata.ip_eth_type;
+        hdr.eth_type.value = fabric_metadata.ip_eth_type;
     }
 
     @hidden
@@ -273,7 +275,7 @@
         hdr.mpls.tc = 3w0;
         hdr.mpls.bos = 1w1; // BOS = TRUE
         hdr.mpls.ttl = fabric_metadata.mpls_ttl; // Decrement after push.
-        fabric_metadata.last_eth_type = ETHERTYPE_MPLS;
+        hdr.eth_type.value = ETHERTYPE_MPLS;
     }
 
     @hidden
@@ -283,23 +285,20 @@
         hdr.vlan_tag.setValid();
         hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi;
         hdr.vlan_tag.pri = fabric_metadata.vlan_pri;
-        hdr.vlan_tag.eth_type = fabric_metadata.last_eth_type;
+        hdr.vlan_tag.eth_type = ETHERTYPE_VLAN;
         hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id;
-        hdr.ethernet.eth_type = ETHERTYPE_VLAN;
     }
 
 #ifdef WITH_DOUBLE_VLAN_TERMINATION
     @hidden
     action push_inner_vlan() {
-        // Then push inner VLAN TAG, rewriting correclty the outer vlan eth_type
-        // and the ethernet eth_type
+        // Push inner VLAN TAG, rewriting correclty the outer vlan eth_type
         hdr.inner_vlan_tag.setValid();
         hdr.inner_vlan_tag.cfi = fabric_metadata.inner_vlan_cfi;
         hdr.inner_vlan_tag.pri = fabric_metadata.inner_vlan_pri;
         hdr.inner_vlan_tag.vlan_id = fabric_metadata.inner_vlan_id;
-        hdr.inner_vlan_tag.eth_type = fabric_metadata.last_eth_type;
+        hdr.inner_vlan_tag.eth_type = ETHERTYPE_VLAN;
         hdr.vlan_tag.eth_type = ETHERTYPE_VLAN;
-        hdr.ethernet.eth_type = ETHERTYPE_QINQ;
     }
 #endif // WITH_DOUBLE_VLAN_TERMINATION
 
@@ -310,7 +309,6 @@
     direct_counter(CounterType.packets_and_bytes) egress_vlan_counter;
 
     action pop_vlan() {
-        hdr.ethernet.eth_type = fabric_metadata.last_eth_type;
         hdr.vlan_tag.setInvalid();
         egress_vlan_counter.count();
     }
diff --git a/pipelines/fabric/impl/src/main/resources/include/define.p4 b/pipelines/fabric/impl/src/main/resources/include/define.p4
index 8058416..92aa182 100644
--- a/pipelines/fabric/impl/src/main/resources/include/define.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/define.p4
@@ -23,6 +23,10 @@
 #define WITH_INT
 #endif
 
+#if defined(WITH_BNG)
+#define WITH_DOUBLE_VLAN_TERMINATION
+#endif
+
 #ifndef WITHOUT_XCONNECT
 #define WITH_XCONNECT
 #endif
diff --git a/pipelines/fabric/impl/src/main/resources/include/header.p4 b/pipelines/fabric/impl/src/main/resources/include/header.p4
index 09df685..b87237b 100644
--- a/pipelines/fabric/impl/src/main/resources/include/header.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/header.p4
@@ -36,14 +36,19 @@
 header ethernet_t {
     mac_addr_t dst_addr;
     mac_addr_t src_addr;
-    bit<16> eth_type;
+}
+
+// NOTE: splitting the eth_type from the ethernet header helps to match on
+//  the actual eth_type without checking validity bit of the VLAN tags.
+header eth_type_t {
+    bit<16> value;
 }
 
 header vlan_tag_t {
+    bit<16> eth_type;
     bit<3> pri;
     bit<1> cfi;
     vlan_id_t vlan_id;
-    bit<16> eth_type;
 }
 
 header mpls_t {
@@ -166,10 +171,6 @@
 
 //Custom metadata definition
 struct fabric_metadata_t {
-    bit<16>       last_eth_type;
-    _BOOL         is_ipv4;
-    _BOOL         is_ipv6;
-    _BOOL         is_mpls;
     bit<16>       ip_eth_type;
     vlan_id_t     vlan_id;
     bit<3>        vlan_pri;
@@ -205,9 +206,10 @@
 struct parsed_headers_t {
     ethernet_t ethernet;
     vlan_tag_t vlan_tag;
-#if defined(WITH_XCONNECT) || defined(WITH_BNG) || defined(WITH_DOUBLE_VLAN_TERMINATION)
+#if defined(WITH_XCONNECT) || defined(WITH_DOUBLE_VLAN_TERMINATION)
     vlan_tag_t inner_vlan_tag;
-#endif // WITH_XCONNECT || WITH_BNG || WITH_DOUBLE_VLAN_TERMINATION
+#endif // WITH_XCONNECT || WITH_DOUBLE_VLAN_TERMINATION
+    eth_type_t eth_type;
 #ifdef WITH_BNG
     pppoe_t pppoe;
 #endif // WITH_BNG
@@ -231,6 +233,7 @@
 #ifdef WITH_INT_SINK
     // INT Report encap
     ethernet_t report_ethernet;
+    eth_type_t report_eth_type;
     ipv4_t report_ipv4;
     udp_t report_udp;
     // INT Report header (support only fixed)
diff --git a/pipelines/fabric/impl/src/main/resources/include/int/int_report.p4 b/pipelines/fabric/impl/src/main/resources/include/int/int_report.p4
index 8c48ba2..aaec185 100644
--- a/pipelines/fabric/impl/src/main/resources/include/int/int_report.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/int/int_report.p4
@@ -50,7 +50,7 @@
         hdr.report_ethernet.setValid();
         hdr.report_ethernet.dst_addr = mon_mac;
         hdr.report_ethernet.src_addr = src_mac;
-        hdr.report_ethernet.eth_type = ETHERTYPE_IPV4;
+        hdr.report_eth_type.value = ETHERTYPE_IPV4;
 
         //Report IPV4 Header
         hdr.report_ipv4.setValid();
diff --git a/pipelines/fabric/impl/src/main/resources/include/parser.p4 b/pipelines/fabric/impl/src/main/resources/include/parser.p4
index 3fadebf..ee6b13c 100644
--- a/pipelines/fabric/impl/src/main/resources/include/parser.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/parser.p4
@@ -40,45 +40,40 @@
 
     state parse_ethernet {
         packet.extract(hdr.ethernet);
-        fabric_metadata.last_eth_type = hdr.ethernet.eth_type;
         fabric_metadata.vlan_id = DEFAULT_VLAN_ID;
-        transition select(hdr.ethernet.eth_type){
+        transition select(packet.lookahead<bit<16>>()){
             ETHERTYPE_QINQ: parse_vlan_tag;
             ETHERTYPE_QINQ_NON_STD: parse_vlan_tag;
             ETHERTYPE_VLAN: parse_vlan_tag;
-            ETHERTYPE_MPLS: parse_mpls;
-            ETHERTYPE_IPV4: pre_parse_ipv4;
-#ifdef WITH_IPV6
-            ETHERTYPE_IPV6: pre_parse_ipv6;
-#endif // WITH_IPV6
-            default: accept;
+            default: parse_eth_type;
         }
     }
 
     state parse_vlan_tag {
         packet.extract(hdr.vlan_tag);
-        transition select(hdr.vlan_tag.eth_type){
-            ETHERTYPE_IPV4: pre_parse_ipv4;
-#ifdef WITH_IPV6
-            ETHERTYPE_IPV6: pre_parse_ipv6;
-#endif // WITH_IPV6
-            ETHERTYPE_MPLS: parse_mpls;
-#if defined(WITH_XCONNECT) || defined(WITH_BNG) || defined(WITH_DOUBLE_VLAN_TERMINATION)
+        transition select(packet.lookahead<bit<16>>()){
+#if defined(WITH_XCONNECT) || defined(WITH_DOUBLE_VLAN_TERMINATION)
             ETHERTYPE_VLAN: parse_inner_vlan_tag;
-#endif // WITH_XCONNECT
-            default: accept;
+#endif // WITH_XCONNECT || WITH_DOUBLE_VLAN_TERMINATION
+            default: parse_eth_type;
         }
     }
 
-#if defined(WITH_XCONNECT) || defined(WITH_BNG) || defined(WITH_DOUBLE_VLAN_TERMINATION)
+#if defined(WITH_XCONNECT) || defined(WITH_DOUBLE_VLAN_TERMINATION)
     state parse_inner_vlan_tag {
         packet.extract(hdr.inner_vlan_tag);
-        transition select(hdr.inner_vlan_tag.eth_type){
-            ETHERTYPE_IPV4: pre_parse_ipv4;
-#ifdef WITH_IPV6
-            ETHERTYPE_IPV6: pre_parse_ipv6;
-#endif // WITH_IPV6
+        transition parse_eth_type;
+    }
+#endif // WITH_XCONNECT || WITH_DOUBLE_VLAN_TERMINATION
+
+    state parse_eth_type {
+        packet.extract(hdr.eth_type);
+        transition select(hdr.eth_type.value) {
             ETHERTYPE_MPLS: parse_mpls;
+            ETHERTYPE_IPV4: parse_ipv4;
+#ifdef WITH_IPV6
+            ETHERTYPE_IPV6: parse_ipv6;
+#endif // WITH_IPV6
 #ifdef WITH_BNG
             ETHERTYPE_PPPOED: parse_pppoe;
             ETHERTYPE_PPPOES: parse_pppoe;
@@ -86,16 +81,15 @@
             default: accept;
         }
     }
-#endif // WITH_XCONNECT || WITH_BNG || WITH_DOUBLE_VLAN_TERMINATION
 
 #ifdef WITH_BNG
     state parse_pppoe {
         packet.extract(hdr.pppoe);
         transition select(hdr.pppoe.protocol) {
             PPPOE_PROTOCOL_MPLS: parse_mpls;
-            PPPOE_PROTOCOL_IP4: pre_parse_ipv4;
+            PPPOE_PROTOCOL_IP4: parse_ipv4;
 #ifdef WITH_IPV6
-            PPPOE_PROTOCOL_IP6: pre_parse_ipv6;
+            PPPOE_PROTOCOL_IP6: parse_ipv6;
 #endif // WITH_IPV6
             default: accept;
         }
@@ -104,7 +98,6 @@
 
     state parse_mpls {
         packet.extract(hdr.mpls);
-        fabric_metadata.is_mpls = _TRUE;
         fabric_metadata.mpls_label = hdr.mpls.label;
         fabric_metadata.mpls_ttl = hdr.mpls.ttl;
         // There is only one MPLS label for this fabric.
@@ -122,11 +115,6 @@
         }
     }
 
-    // Intermediate state to set is_ipv4
-    state pre_parse_ipv4 {
-        fabric_metadata.is_ipv4 = _TRUE;
-        transition parse_ipv4;
-    }
     state parse_ipv4 {
         packet.extract(hdr.ipv4);
         fabric_metadata.ip_proto = hdr.ipv4.protocol;
@@ -142,11 +130,6 @@
     }
 
 #ifdef WITH_IPV6
-    // Intermediate state to set is_ipv6
-    state pre_parse_ipv6 {
-        fabric_metadata.is_ipv6 = _TRUE;
-        transition parse_ipv6;
-    }
     state parse_ipv6 {
         packet.extract(hdr.ipv6);
         fabric_metadata.ip_proto = hdr.ipv6.next_hdr;
@@ -279,15 +262,17 @@
         packet.emit(hdr.packet_in);
 #ifdef WITH_INT_SINK
         packet.emit(hdr.report_ethernet);
+        packet.emit(hdr.report_eth_type);
         packet.emit(hdr.report_ipv4);
         packet.emit(hdr.report_udp);
         packet.emit(hdr.report_fixed_header);
 #endif // WITH_INT_SINK
         packet.emit(hdr.ethernet);
         packet.emit(hdr.vlan_tag);
-#if defined(WITH_XCONNECT) || defined(WITH_BNG) || defined(WITH_DOUBLE_VLAN_TERMINATION)
+#if defined(WITH_XCONNECT) || defined(WITH_DOUBLE_VLAN_TERMINATION)
         packet.emit(hdr.inner_vlan_tag);
-#endif // WITH_XCONNECT || WITH_BNG || WITH_DOUBLE_VLAN_TERMINATION
+#endif // WITH_XCONNECT || WITH_DOUBLE_VLAN_TERMINATION
+        packet.emit(hdr.eth_type);
 #ifdef WITH_BNG
         packet.emit(hdr.pppoe);
 #endif // WITH_BNG
@@ -325,4 +310,4 @@
     }
 }
 
-#endif
+#endif
\ No newline at end of file
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/bmv2.json
index 933529d..502ccc9 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/bmv2.json
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/bmv2.json
@@ -4,43 +4,41 @@
       "name" : "scalars_0",
       "id" : 0,
       "fields" : [
-        ["tmp_0", 4, false],
+        ["tmp_0", 16, false],
+        ["tmp_1", 16, false],
+        ["tmp_2", 4, false],
         ["tmp", 32, false],
-        ["tmp_1", 32, false],
+        ["tmp_3", 32, false],
         ["bng_ingress_s_tag", 12, false],
         ["bng_ingress_c_tag", 12, false],
         ["bng_ingress_upstream_tmp", 1, false],
         ["bng_ingress_downstream_tmp", 1, false],
         ["bng_ingress_upstream_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._push_double_vlan8", 1, false],
-        ["fabric_metadata_t._inner_vlan_id9", 12, false],
-        ["fabric_metadata_t._inner_vlan_pri10", 3, false],
-        ["fabric_metadata_t._inner_vlan_cfi11", 1, false],
-        ["fabric_metadata_t._mpls_label12", 20, false],
-        ["fabric_metadata_t._mpls_ttl13", 8, false],
-        ["fabric_metadata_t._skip_forwarding14", 1, false],
-        ["fabric_metadata_t._skip_next15", 1, false],
-        ["fabric_metadata_t._fwd_type16", 3, false],
-        ["fabric_metadata_t._next_id17", 32, false],
-        ["fabric_metadata_t._is_multicast18", 1, false],
-        ["fabric_metadata_t._is_controller_packet_out19", 1, false],
-        ["fabric_metadata_t._ip_proto20", 8, false],
-        ["fabric_metadata_t._l4_sport21", 16, false],
-        ["fabric_metadata_t._l4_dport22", 16, false],
-        ["fabric_metadata_t._bng_type23", 2, false],
-        ["fabric_metadata_t._bng_line_id24", 32, false],
-        ["fabric_metadata_t._bng_pppoe_session_id25", 16, false],
-        ["fabric_metadata_t._bng_ds_meter_result26", 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._push_double_vlan4", 1, false],
+        ["fabric_metadata_t._inner_vlan_id5", 12, false],
+        ["fabric_metadata_t._inner_vlan_pri6", 3, false],
+        ["fabric_metadata_t._inner_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._bng_type19", 2, false],
+        ["fabric_metadata_t._bng_line_id20", 32, false],
+        ["fabric_metadata_t._bng_pppoe_session_id21", 16, false],
+        ["fabric_metadata_t._bng_ds_meter_result22", 32, false],
+        ["_padding_0", 2, false]
       ]
     },
     {
@@ -77,23 +75,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" : "pppoe_t",
-      "id" : 4,
+      "id" : 5,
       "fields" : [
         ["version", 4, false],
         ["type_id", 4, false],
@@ -105,7 +109,7 @@
     },
     {
       "name" : "mpls_t",
-      "id" : 5,
+      "id" : 6,
       "fields" : [
         ["label", 20, false],
         ["tc", 3, false],
@@ -115,7 +119,7 @@
     },
     {
       "name" : "ipv4_t",
-      "id" : 6,
+      "id" : 7,
       "fields" : [
         ["version", 4, false],
         ["ihl", 4, false],
@@ -134,7 +138,7 @@
     },
     {
       "name" : "tcp_t",
-      "id" : 7,
+      "id" : 8,
       "fields" : [
         ["sport", 16, false],
         ["dport", 16, false],
@@ -151,7 +155,7 @@
     },
     {
       "name" : "udp_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,57 +229,64 @@
       "pi_omit" : true
     },
     {
-      "name" : "pppoe",
+      "name" : "eth_type",
       "id" : 5,
+      "header_type" : "eth_type_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "pppoe",
+      "id" : 6,
       "header_type" : "pppoe_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "mpls",
-      "id" : 6,
+      "id" : 7,
       "header_type" : "mpls_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "ipv4",
-      "id" : 7,
+      "id" : 8,
       "header_type" : "ipv4_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "tcp",
-      "id" : 8,
+      "id" : 9,
       "header_type" : "tcp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "udp",
-      "id" : 9,
+      "id" : 10,
       "header_type" : "udp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "icmp",
-      "id" : 10,
+      "id" : 11,
       "header_type" : "icmp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "packet_out",
-      "id" : 11,
+      "id" : 12,
       "header_type" : "packet_out_header_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "packet_in",
-      "id" : 12,
+      "id" : 13,
       "header_type" : "packet_in_header_t",
       "metadata" : false,
       "pi_omit" : true
@@ -383,11 +394,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"
@@ -396,11 +407,11 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+                  "value" : ["scalars", "tmp_0"]
                 },
                 {
-                  "type" : "hexstr",
-                  "value" : "0x0ffe"
+                  "type" : "lookahead",
+                  "value" : [0, 16]
                 }
               ],
               "op" : "set"
@@ -426,27 +437,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_0"]
             }
           ]
         },
@@ -462,23 +461,24 @@
                 }
               ],
               "op" : "extract"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_1"]
+                },
+                {
+                  "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"
@@ -486,13 +486,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_1"]
             }
           ]
         },
@@ -512,11 +512,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",
@@ -525,6 +542,12 @@
             },
             {
               "type" : "hexstr",
+              "value" : "0x0800",
+              "mask" : null,
+              "next_state" : "parse_ipv4"
+            },
+            {
+              "type" : "hexstr",
               "value" : "0x8863",
               "mask" : null,
               "next_state" : "parse_pppoe"
@@ -544,13 +567,13 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["inner_vlan_tag", "eth_type"]
+              "value" : ["eth_type", "value"]
             }
           ]
         },
         {
           "name" : "parse_pppoe",
-          "id" : 5,
+          "id" : 6,
           "parser_ops" : [
             {
               "parameters" : [
@@ -573,7 +596,7 @@
               "type" : "hexstr",
               "value" : "0x0021",
               "mask" : null,
-              "next_state" : "pre_parse_ipv4"
+              "next_state" : "parse_ipv4"
             },
             {
               "value" : "default",
@@ -590,7 +613,7 @@
         },
         {
           "name" : "parse_mpls",
-          "id" : 6,
+          "id" : 7,
           "parser_ops" : [
             {
               "parameters" : [
@@ -605,30 +628,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_label12"]
+                  "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
                 },
                 {
                   "type" : "field",
@@ -641,7 +641,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._mpls_ttl13"]
+                  "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
                 },
                 {
                   "type" : "field",
@@ -654,7 +654,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_0"]
+                  "value" : ["scalars", "tmp_2"]
                 },
                 {
                   "type" : "lookahead",
@@ -680,48 +680,11 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_0"]
+              "value" : ["scalars", "tmp_2"]
             }
           ]
         },
         {
-          "name" : "pre_parse_ipv4",
-          "id" : 7,
-          "parser_ops" : [
-            {
-              "parameters" : [
-                {
-                  "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._is_ipv41"]
-                },
-                {
-                  "type" : "expression",
-                  "value" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "b2d",
-                      "left" : null,
-                      "right" : {
-                        "type" : "bool",
-                        "value" : true
-                      }
-                    }
-                  }
-                }
-              ],
-              "op" : "set"
-            }
-          ],
-          "transitions" : [
-            {
-              "value" : "default",
-              "mask" : null,
-              "next_state" : "parse_ipv4"
-            }
-          ],
-          "transition_key" : []
-        },
-        {
           "name" : "parse_ipv4",
           "id" : 8,
           "parser_ops" : [
@@ -738,7 +701,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_proto20"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_proto16"]
                 },
                 {
                   "type" : "field",
@@ -751,7 +714,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
                 },
                 {
                   "type" : "hexstr",
@@ -810,7 +773,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport21"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
                 },
                 {
                   "type" : "field",
@@ -823,7 +786,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport22"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
                 },
                 {
                   "type" : "field",
@@ -859,7 +822,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport21"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
                 },
                 {
                   "type" : "field",
@@ -872,7 +835,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport22"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
                 },
                 {
                   "type" : "field",
@@ -929,11 +892,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", "pppoe", "mpls", "ipv4", "tcp", "udp", "icmp"]
+      "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "pppoe", "mpls", "ipv4", "tcp", "udp", "icmp"]
     }
   ],
   "meter_arrays" : [
@@ -942,7 +905,7 @@
       "id" : 0,
       "source_info" : {
         "filename" : "include/bng.p4",
-        "line" : 152,
+        "line" : 151,
         "column" : 33,
         "source_fragment" : "m_besteff"
       },
@@ -956,7 +919,7 @@
       "id" : 1,
       "source_info" : {
         "filename" : "include/bng.p4",
-        "line" : 153,
+        "line" : 152,
         "column" : 33,
         "source_fragment" : "m_prio"
       },
@@ -1008,7 +971,7 @@
       "id" : 3,
       "source_info" : {
         "filename" : "include/bng.p4",
-        "line" : 150,
+        "line" : 149,
         "column" : 49,
         "source_fragment" : "c_line_rx"
       },
@@ -1064,20 +1027,8 @@
       }
     },
     {
-      "name" : "FabricIngress.forwarding.routing_v4_counter",
-      "id" : 8,
-      "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" : 9,
+      "id" : 8,
       "is_direct" : true,
       "binding" : "FabricIngress.acl.acl",
       "source_info" : {
@@ -1089,7 +1040,7 @@
     },
     {
       "name" : "FabricIngress.next.next_vlan_counter",
-      "id" : 10,
+      "id" : 9,
       "is_direct" : true,
       "binding" : "FabricIngress.next.next_vlan",
       "source_info" : {
@@ -1101,31 +1052,31 @@
     },
     {
       "name" : "FabricIngress.next.hashed_counter",
-      "id" : 11,
+      "id" : 10,
       "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" : 12,
+      "id" : 11,
       "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" : 13,
+      "id" : 12,
       "source_info" : {
         "filename" : "include/control/port_counter.p4",
         "line" : 26,
@@ -1137,7 +1088,7 @@
     },
     {
       "name" : "FabricIngress.port_counters_control.ingress_port_counter",
-      "id" : 14,
+      "id" : 13,
       "source_info" : {
         "filename" : "include/control/port_counter.p4",
         "line" : 27,
@@ -1149,10 +1100,10 @@
     },
     {
       "name" : "FabricEgress.bng_egress.downstream.c_line_tx",
-      "id" : 15,
+      "id" : 14,
       "source_info" : {
         "filename" : "include/bng.p4",
-        "line" : 265,
+        "line" : 264,
         "column" : 49,
         "source_fragment" : "c_line_tx"
       },
@@ -1161,12 +1112,12 @@
     },
     {
       "name" : "FabricEgress.egress_next.egress_vlan_counter",
-      "id" : 16,
+      "id" : 15,
       "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"
       }
@@ -1348,14 +1299,8 @@
       "primitives" : []
     },
     {
-      "name" : "nop",
-      "id" : 8,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricIngress.bng_ingress.upstream.punt_to_cpu",
-      "id" : 9,
+      "id" : 8,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1386,7 +1331,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id24"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
             }
           ],
           "source_info" : {
@@ -1400,7 +1345,7 @@
     },
     {
       "name" : "FabricIngress.bng_ingress.upstream.term_disabled",
-      "id" : 10,
+      "id" : 9,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1408,7 +1353,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type23"]
+              "value" : ["scalars", "fabric_metadata_t._bng_type19"]
             },
             {
               "type" : "hexstr",
@@ -1417,7 +1362,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../header.p4",
-            "line" : 155,
+            "line" : 160,
             "column" : 36,
             "source_fragment" : "2w0x0; ..."
           }
@@ -1432,7 +1377,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 75,
+            "line" : 74,
             "column" : 8,
             "source_fragment" : "mark_to_drop(smeta)"
           }
@@ -1441,7 +1386,7 @@
     },
     {
       "name" : "FabricIngress.bng_ingress.upstream.term_enabled_v4",
-      "id" : 11,
+      "id" : 10,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1449,7 +1394,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["inner_vlan_tag", "eth_type"]
+              "value" : ["eth_type", "value"]
             },
             {
               "type" : "hexstr",
@@ -1458,26 +1403,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 110,
-            "column" : 31,
-            "source_fragment" : "0x0800; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x0800"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 110,
+            "line" : 114,
             "column" : 31,
             "source_fragment" : "0x0800; ..."
           }
@@ -1492,7 +1418,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 69,
+            "line" : 68,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.setInvalid()"
           }
@@ -1506,12 +1432,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id24"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 70,
+            "line" : 69,
             "column" : 8,
             "source_fragment" : "c_terminated.count(fmeta.bng.line_id)"
           }
@@ -1520,7 +1446,7 @@
     },
     {
       "name" : "FabricIngress.bng_ingress.downstream.set_session",
-      "id" : 12,
+      "id" : 11,
       "runtime_data" : [
         {
           "name" : "pppoe_session_id",
@@ -1533,7 +1459,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type23"]
+              "value" : ["scalars", "fabric_metadata_t._bng_type19"]
             },
             {
               "type" : "hexstr",
@@ -1542,7 +1468,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../header.p4",
-            "line" : 157,
+            "line" : 162,
             "column" : 39,
             "source_fragment" : "2w0x2;; ..."
           }
@@ -1552,7 +1478,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id25"]
+              "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id21"]
             },
             {
               "type" : "runtime_data",
@@ -1561,7 +1487,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 157,
+            "line" : 156,
             "column" : 35,
             "source_fragment" : "= pppoe_session_id; ..."
           }
@@ -1575,12 +1501,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id24"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 158,
+            "line" : 157,
             "column" : 8,
             "source_fragment" : "c_line_rx.count(fmeta.bng.line_id)"
           }
@@ -1589,7 +1515,7 @@
     },
     {
       "name" : "FabricIngress.bng_ingress.downstream.drop",
-      "id" : 13,
+      "id" : 12,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1597,7 +1523,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type23"]
+              "value" : ["scalars", "fabric_metadata_t._bng_type19"]
             },
             {
               "type" : "hexstr",
@@ -1606,7 +1532,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../header.p4",
-            "line" : 157,
+            "line" : 162,
             "column" : 39,
             "source_fragment" : "2w0x2;; ..."
           }
@@ -1620,12 +1546,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id24"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 163,
+            "line" : 162,
             "column" : 8,
             "source_fragment" : "c_line_rx.count(fmeta.bng.line_id)"
           }
@@ -1640,7 +1566,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 164,
+            "line" : 163,
             "column" : 8,
             "source_fragment" : "mark_to_drop(smeta)"
           }
@@ -1649,19 +1575,19 @@
     },
     {
       "name" : "FabricIngress.bng_ingress.downstream.qos_prio",
-      "id" : 14,
+      "id" : 13,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricIngress.bng_ingress.downstream.qos_besteff",
-      "id" : 15,
+      "id" : 14,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricIngress.bng_ingress.set_line",
-      "id" : 16,
+      "id" : 15,
       "runtime_data" : [
         {
           "name" : "line_id",
@@ -1674,7 +1600,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id24"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
             },
             {
               "type" : "runtime_data",
@@ -1683,7 +1609,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 321,
+            "line" : 320,
             "column" : 30,
             "source_fragment" : "= line_id; ..."
           }
@@ -1692,7 +1618,7 @@
     },
     {
       "name" : "FabricIngress.filtering.deny",
-      "id" : 17,
+      "id" : 16,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1700,7 +1626,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_forwarding14"]
+              "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"]
             },
             {
               "type" : "expression",
@@ -1729,7 +1655,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next15"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next11"]
             },
             {
               "type" : "expression",
@@ -1757,13 +1683,13 @@
     },
     {
       "name" : "FabricIngress.filtering.permit",
-      "id" : 18,
+      "id" : 17,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricIngress.filtering.permit_with_internal_vlan",
-      "id" : 19,
+      "id" : 18,
       "runtime_data" : [
         {
           "name" : "vlan_id",
@@ -1776,7 +1702,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "runtime_data",
@@ -1794,7 +1720,7 @@
     },
     {
       "name" : "FabricIngress.filtering.set_forwarding_type",
-      "id" : 20,
+      "id" : 19,
       "runtime_data" : [
         {
           "name" : "fwd_type",
@@ -1807,7 +1733,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._fwd_type16"]
+              "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
             },
             {
               "type" : "runtime_data",
@@ -1825,7 +1751,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_bridging",
-      "id" : 21,
+      "id" : 20,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -1838,7 +1764,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id17"]
+              "value" : ["scalars", "fabric_metadata_t._next_id13"]
             },
             {
               "type" : "runtime_data",
@@ -1856,7 +1782,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.pop_mpls_and_next",
-      "id" : 22,
+      "id" : 21,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -1869,7 +1795,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label12"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
             },
             {
               "type" : "hexstr",
@@ -1888,7 +1814,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id17"]
+              "value" : ["scalars", "fabric_metadata_t._next_id13"]
             },
             {
               "type" : "runtime_data",
@@ -1906,7 +1832,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
-      "id" : 23,
+      "id" : 22,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -1919,7 +1845,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id17"]
+              "value" : ["scalars", "fabric_metadata_t._next_id13"]
             },
             {
               "type" : "runtime_data",
@@ -1937,13 +1863,13 @@
     },
     {
       "name" : "FabricIngress.forwarding.nop_routing_v4",
-      "id" : 24,
+      "id" : 23,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricIngress.acl.set_next_id_acl",
-      "id" : 25,
+      "id" : 24,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -1956,7 +1882,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id17"]
+              "value" : ["scalars", "fabric_metadata_t._next_id13"]
             },
             {
               "type" : "runtime_data",
@@ -1974,7 +1900,7 @@
     },
     {
       "name" : "FabricIngress.acl.punt_to_cpu",
-      "id" : 26,
+      "id" : 25,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2001,7 +1927,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next15"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next11"]
             },
             {
               "type" : "expression",
@@ -2029,7 +1955,7 @@
     },
     {
       "name" : "FabricIngress.acl.set_clone_session_id",
-      "id" : 27,
+      "id" : 26,
       "runtime_data" : [
         {
           "name" : "clone_id",
@@ -2060,7 +1986,7 @@
     },
     {
       "name" : "FabricIngress.acl.drop",
-      "id" : 28,
+      "id" : 27,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2083,7 +2009,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next15"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next11"]
             },
             {
               "type" : "expression",
@@ -2111,13 +2037,13 @@
     },
     {
       "name" : "FabricIngress.acl.nop_acl",
-      "id" : 29,
+      "id" : 28,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricIngress.next.set_vlan",
-      "id" : 30,
+      "id" : 29,
       "runtime_data" : [
         {
           "name" : "vlan_id",
@@ -2130,7 +2056,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "runtime_data",
@@ -2148,7 +2074,7 @@
     },
     {
       "name" : "FabricIngress.next.set_double_vlan",
-      "id" : 31,
+      "id" : 30,
       "runtime_data" : [
         {
           "name" : "outer_vlan_id",
@@ -2165,7 +2091,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "runtime_data",
@@ -2184,7 +2110,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._push_double_vlan8"]
+              "value" : ["scalars", "fabric_metadata_t._push_double_vlan4"]
             },
             {
               "type" : "expression",
@@ -2213,7 +2139,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"]
             },
             {
               "type" : "runtime_data",
@@ -2231,7 +2157,7 @@
     },
     {
       "name" : "FabricIngress.next.output_hashed",
-      "id" : 32,
+      "id" : 31,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -2262,7 +2188,7 @@
     },
     {
       "name" : "FabricIngress.next.routing_hashed",
-      "id" : 33,
+      "id" : 32,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -2339,7 +2265,7 @@
     },
     {
       "name" : "FabricIngress.next.mpls_routing_hashed",
-      "id" : 34,
+      "id" : 33,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -2364,7 +2290,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label12"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
             },
             {
               "type" : "runtime_data",
@@ -2439,7 +2365,7 @@
     },
     {
       "name" : "FabricIngress.next.set_mcast_group_id",
-      "id" : 35,
+      "id" : 34,
       "runtime_data" : [
         {
           "name" : "group_id",
@@ -2461,7 +2387,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 225,
+            "line" : 227,
             "column" : 8,
             "source_fragment" : "standard_metadata.mcast_grp = group_id"
           }
@@ -2471,7 +2397,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._is_multicast18"]
+              "value" : ["scalars", "fabric_metadata_t._is_multicast14"]
             },
             {
               "type" : "expression",
@@ -2490,7 +2416,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 226,
+            "line" : 228,
             "column" : 37,
             "source_fragment" : "= true; ..."
           }
@@ -2499,7 +2425,7 @@
     },
     {
       "name" : "act",
-      "id" : 36,
+      "id" : 35,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2541,7 +2467,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out19"]
+              "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"]
             },
             {
               "type" : "expression",
@@ -2579,7 +2505,7 @@
     },
     {
       "name" : "act_0",
-      "id" : 37,
+      "id" : 36,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2587,7 +2513,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "field",
@@ -2596,7 +2522,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 110,
+            "line" : 109,
             "column" : 36,
             "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
           }
@@ -2606,7 +2532,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_pri6"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
             },
             {
               "type" : "field",
@@ -2615,7 +2541,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 111,
+            "line" : 110,
             "column" : 37,
             "source_fragment" : "= hdr.vlan_tag.pri; ..."
           }
@@ -2625,7 +2551,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
             },
             {
               "type" : "field",
@@ -2634,7 +2560,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 112,
+            "line" : 111,
             "column" : 37,
             "source_fragment" : "= hdr.vlan_tag.cfi; ..."
           }
@@ -2643,7 +2569,7 @@
     },
     {
       "name" : "act_1",
-      "id" : 38,
+      "id" : 37,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2651,7 +2577,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"]
             },
             {
               "type" : "field",
@@ -2660,7 +2586,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 116,
+            "line" : 115,
             "column" : 42,
             "source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..."
           }
@@ -2670,7 +2596,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri10"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri6"]
             },
             {
               "type" : "field",
@@ -2679,7 +2605,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 117,
+            "line" : 116,
             "column" : 43,
             "source_fragment" : "= hdr.inner_vlan_tag.pri; ..."
           }
@@ -2689,7 +2615,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi11"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi7"]
             },
             {
               "type" : "field",
@@ -2698,7 +2624,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 118,
+            "line" : 117,
             "column" : 43,
             "source_fragment" : "= hdr.inner_vlan_tag.cfi; ..."
           }
@@ -2707,7 +2633,7 @@
     },
     {
       "name" : "act_2",
-      "id" : 39,
+      "id" : 38,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2715,7 +2641,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_ttl13"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
             },
             {
               "type" : "hexstr",
@@ -2724,7 +2650,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 126,
+            "line" : 125,
             "column" : 37,
             "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
           }
@@ -2733,111 +2659,7 @@
     },
     {
       "name" : "act_3",
-      "id" : 40,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x8847"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 108,
-            "column" : 31,
-            "source_fragment" : "0x8847; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_4",
-      "id" : 41,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "field",
-              "value" : ["inner_vlan_tag", "eth_type"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 136,
-            "column" : 50,
-            "source_fragment" : "= hdr.inner_vlan_tag.eth_type; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_5",
-      "id" : 42,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "field",
-              "value" : ["vlan_tag", "eth_type"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 139,
-            "column" : 50,
-            "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_6",
-      "id" : 43,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "field",
-              "value" : ["ethernet", "eth_type"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 141,
-            "column" : 46,
-            "source_fragment" : "= hdr.ethernet.eth_type; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_7",
-      "id" : 44,
+      "id" : 39,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2894,8 +2716,8 @@
       ]
     },
     {
-      "name" : "act_8",
-      "id" : 45,
+      "name" : "act_4",
+      "id" : 40,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2903,7 +2725,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_3"]
             },
             {
               "type" : "expression",
@@ -2939,7 +2761,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_3"]
             }
           ],
           "source_info" : {
@@ -2952,8 +2774,8 @@
       ]
     },
     {
-      "name" : "act_9",
-      "id" : 46,
+      "name" : "act_5",
+      "id" : 41,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2970,7 +2792,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 339,
+            "line" : 338,
             "column" : 16,
             "source_fragment" : "s_tag = hdr.vlan_tag.vlan_id"
           }
@@ -2989,7 +2811,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 340,
+            "line" : 339,
             "column" : 16,
             "source_fragment" : "c_tag = hdr.inner_vlan_tag.vlan_id"
           }
@@ -2997,8 +2819,8 @@
       ]
     },
     {
-      "name" : "act_10",
-      "id" : 47,
+      "name" : "act_6",
+      "id" : 42,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3010,12 +2832,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 344,
+            "line" : 343,
             "column" : 16,
             "source_fragment" : "s_tag = fmeta.vlan_id; ..."
           }
@@ -3029,12 +2851,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 345,
+            "line" : 344,
             "column" : 16,
             "source_fragment" : "c_tag = fmeta.inner_vlan_id; ..."
           }
@@ -3042,8 +2864,8 @@
       ]
     },
     {
-      "name" : "act_11",
-      "id" : 48,
+      "name" : "act_7",
+      "id" : 43,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3072,8 +2894,8 @@
       ]
     },
     {
-      "name" : "act_12",
-      "id" : 49,
+      "name" : "act_8",
+      "id" : 44,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3102,8 +2924,8 @@
       ]
     },
     {
-      "name" : "act_13",
-      "id" : 50,
+      "name" : "act_9",
+      "id" : 45,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3111,7 +2933,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type23"]
+              "value" : ["scalars", "fabric_metadata_t._bng_type19"]
             },
             {
               "type" : "hexstr",
@@ -3120,7 +2942,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../header.p4",
-            "line" : 156,
+            "line" : 161,
             "column" : 37,
             "source_fragment" : "2w0x1; ..."
           }
@@ -3151,8 +2973,8 @@
       ]
     },
     {
-      "name" : "act_14",
-      "id" : 51,
+      "name" : "act_10",
+      "id" : 46,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3179,7 +3001,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 124,
+            "line" : 123,
             "column" : 12,
             "source_fragment" : "return"
           }
@@ -3187,8 +3009,8 @@
       ]
     },
     {
-      "name" : "act_15",
-      "id" : 52,
+      "name" : "act_11",
+      "id" : 47,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3200,12 +3022,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id24"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 129,
+            "line" : 128,
             "column" : 20,
             "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
           }
@@ -3213,8 +3035,8 @@
       ]
     },
     {
-      "name" : "act_16",
-      "id" : 53,
+      "name" : "act_12",
+      "id" : 48,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3243,8 +3065,8 @@
       ]
     },
     {
-      "name" : "act_17",
-      "id" : 54,
+      "name" : "act_13",
+      "id" : 49,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3273,8 +3095,8 @@
       ]
     },
     {
-      "name" : "act_18",
-      "id" : 55,
+      "name" : "act_14",
+      "id" : 50,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3286,16 +3108,16 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id24"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result26"]
+              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result22"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 236,
+            "line" : 235,
             "column" : 24,
             "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
           }
@@ -3303,8 +3125,8 @@
       ]
     },
     {
-      "name" : "act_19",
-      "id" : 56,
+      "name" : "act_15",
+      "id" : 51,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3316,16 +3138,16 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id24"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result26"]
+              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result22"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 239,
+            "line" : 238,
             "column" : 24,
             "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
           }
@@ -3334,13 +3156,13 @@
     },
     {
       "name" : "nop",
-      "id" : 57,
+      "id" : 52,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.bng_egress.downstream.encap_v4",
-      "id" : 58,
+      "id" : 53,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3348,7 +3170,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["inner_vlan_tag", "eth_type"]
+              "value" : ["eth_type", "value"]
             },
             {
               "type" : "hexstr",
@@ -3357,7 +3179,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 114,
+            "line" : 118,
             "column" : 33,
             "source_fragment" : "0x8864; ..."
           }
@@ -3372,7 +3194,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 271,
+            "line" : 270,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.setValid()"
           }
@@ -3391,7 +3213,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 272,
+            "line" : 271,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.version = 4w1"
           }
@@ -3410,7 +3232,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 273,
+            "line" : 272,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.type_id = 4w1"
           }
@@ -3429,7 +3251,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 274,
+            "line" : 273,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.code = 8w0"
           }
@@ -3443,12 +3265,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id25"]
+              "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id21"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 275,
+            "line" : 274,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.session_id = fmeta.bng.pppoe_session_id; ..."
           }
@@ -3462,12 +3284,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id24"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id20"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 276,
+            "line" : 275,
             "column" : 8,
             "source_fragment" : "c_line_tx.count(fmeta.bng.line_id)"
           }
@@ -3509,7 +3331,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 281,
+            "line" : 280,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.length = hdr.ipv4.total_len + 16w2"
           }
@@ -3528,7 +3350,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 116,
+            "line" : 120,
             "column" : 35,
             "source_fragment" : "0x0021; ..."
           }
@@ -3537,7 +3359,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.pop_mpls_if_present",
-      "id" : 59,
+      "id" : 54,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3550,7 +3372,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 264,
+            "line" : 266,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setInvalid()"
           }
@@ -3560,25 +3382,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" : 60,
+      "id" : 55,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3591,7 +3413,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 271,
+            "line" : 273,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
           }
@@ -3605,12 +3427,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label12"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 272,
+            "line" : 274,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
           }
@@ -3629,7 +3451,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 273,
+            "line" : 275,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = 3w0"
           }
@@ -3648,7 +3470,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 274,
+            "line" : 276,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
           }
@@ -3662,12 +3484,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_ttl13"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
             }
           ],
           "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. ..."
           }
@@ -3677,7 +3499,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+              "value" : ["eth_type", "value"]
             },
             {
               "type" : "hexstr",
@@ -3686,7 +3508,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 108,
+            "line" : 112,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
           }
@@ -3695,7 +3517,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.push_vlan",
-      "id" : 61,
+      "id" : 56,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3708,7 +3530,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 283,
+            "line" : 285,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setValid()"
           }
@@ -3722,12 +3544,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; ..."
           }
@@ -3741,12 +3563,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; ..."
           }
@@ -3759,15 +3581,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; ..."
           }
         },
         {
@@ -3779,40 +3601,21 @@
             },
             {
               "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.push_vlan",
-      "id" : 62,
+      "id" : 57,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3825,7 +3628,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 283,
+            "line" : 285,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setValid()"
           }
@@ -3839,12 +3642,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; ..."
           }
@@ -3858,12 +3661,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; ..."
           }
@@ -3876,15 +3679,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; ..."
           }
         },
         {
@@ -3896,40 +3699,21 @@
             },
             {
               "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.push_inner_vlan",
-      "id" : 63,
+      "id" : 58,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3956,7 +3740,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi11"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi7"]
             }
           ],
           "source_info" : {
@@ -3975,7 +3759,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri10"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri6"]
             }
           ],
           "source_info" : {
@@ -3994,7 +3778,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"]
             }
           ],
           "source_info" : {
@@ -4012,15 +3796,15 @@
               "value" : ["inner_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" : 300,
-            "column" : 8,
-            "source_fragment" : "hdr.inner_vlan_tag.eth_type = fabric_metadata.last_eth_type; ..."
+            "filename" : "include/control/../define.p4",
+            "line" : 111,
+            "column" : 31,
+            "source_fragment" : "0x8100; ..."
           }
         },
         {
@@ -4037,57 +3821,19 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 107,
+            "line" : 111,
             "column" : 31,
             "source_fragment" : "0x8100; ..."
           }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["ethernet", "eth_type"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x88a8"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 105,
-            "column" : 31,
-            "source_fragment" : "0x88A8; ..."
-          }
         }
       ]
     },
     {
       "name" : "FabricEgress.egress_next.pop_vlan",
-      "id" : 64,
+      "id" : 59,
       "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" : [
             {
@@ -4097,7 +3843,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 314,
+            "line" : 312,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
           }
@@ -4105,8 +3851,8 @@
       ]
     },
     {
-      "name" : "act_20",
-      "id" : 65,
+      "name" : "act_16",
+      "id" : 60,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4122,8 +3868,8 @@
       ]
     },
     {
-      "name" : "act_21",
-      "id" : 66,
+      "name" : "act_17",
+      "id" : 61,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4173,8 +3919,8 @@
       ]
     },
     {
-      "name" : "act_22",
-      "id" : 67,
+      "name" : "act_18",
+      "id" : 62,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4187,7 +3933,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 333,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -4195,8 +3941,8 @@
       ]
     },
     {
-      "name" : "act_23",
-      "id" : 68,
+      "name" : "act_19",
+      "id" : 63,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4225,8 +3971,8 @@
       ]
     },
     {
-      "name" : "act_24",
-      "id" : 69,
+      "name" : "act_20",
+      "id" : 64,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4255,8 +4001,8 @@
       ]
     },
     {
-      "name" : "act_25",
-      "id" : 70,
+      "name" : "act_21",
+      "id" : 65,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4269,7 +4015,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 351,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
           }
@@ -4277,8 +4023,8 @@
       ]
     },
     {
-      "name" : "act_26",
-      "id" : 71,
+      "name" : "act_22",
+      "id" : 66,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4291,7 +4037,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -4299,8 +4045,8 @@
       ]
     },
     {
-      "name" : "act_27",
-      "id" : 72,
+      "name" : "act_23",
+      "id" : 67,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4340,7 +4086,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 367,
+            "line" : 365,
             "column" : 12,
             "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
           }
@@ -4348,8 +4094,8 @@
       ]
     },
     {
-      "name" : "act_28",
-      "id" : 73,
+      "name" : "act_24",
+      "id" : 68,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4362,7 +4108,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -4370,8 +4116,8 @@
       ]
     },
     {
-      "name" : "act_29",
-      "id" : 74,
+      "name" : "act_25",
+      "id" : 69,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4411,7 +4157,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 371,
+            "line" : 369,
             "column" : 16,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
           }
@@ -4447,14 +4193,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [36],
+          "action_ids" : [35],
           "actions" : ["act"],
           "base_default_next" : "node_4",
           "next_tables" : {
             "act" : "node_4"
           },
           "default_entry" : {
-            "action_id" : 36,
+            "action_id" : 35,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4465,7 +4211,7 @@
           "id" : 1,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 110,
+            "line" : 109,
             "column" : 36,
             "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
           },
@@ -4476,14 +4222,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [37],
+          "action_ids" : [36],
           "actions" : ["act_0"],
           "base_default_next" : "node_6",
           "next_tables" : {
             "act_0" : "node_6"
           },
           "default_entry" : {
-            "action_id" : 37,
+            "action_id" : 36,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4494,7 +4240,7 @@
           "id" : 2,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 116,
+            "line" : 115,
             "column" : 42,
             "source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..."
           },
@@ -4505,14 +4251,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [38],
+          "action_ids" : [37],
           "actions" : ["act_1"],
           "base_default_next" : "node_8",
           "next_tables" : {
             "act_1" : "node_8"
           },
           "default_entry" : {
-            "action_id" : 38,
+            "action_id" : 37,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4523,7 +4269,7 @@
           "id" : 3,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 126,
+            "line" : 125,
             "column" : 37,
             "source_fragment" : "="
           },
@@ -4534,130 +4280,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [39],
+          "action_ids" : [38],
           "actions" : ["act_2"],
-          "base_default_next" : "node_10",
-          "next_tables" : {
-            "act_2" : "node_10"
-          },
-          "default_entry" : {
-            "action_id" : 39,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_3",
-          "id" : 4,
-          "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" : [40],
-          "actions" : ["act_3"],
           "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
           "next_tables" : {
-            "act_3" : "FabricIngress.filtering.ingress_port_vlan"
+            "act_2" : "FabricIngress.filtering.ingress_port_vlan"
           },
           "default_entry" : {
-            "action_id" : 40,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_4",
-          "id" : 5,
-          "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" : [41],
-          "actions" : ["act_4"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_4" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 41,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_5",
-          "id" : 6,
-          "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" : [42],
-          "actions" : ["act_5"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_5" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 42,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_6",
-          "id" : 7,
-          "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" : [43],
-          "actions" : ["act_6"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_6" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 43,
+            "action_id" : 38,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4665,7 +4295,7 @@
         },
         {
           "name" : "FabricIngress.filtering.ingress_port_vlan",
-          "id" : 8,
+          "id" : 4,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
             "line" : 53,
@@ -4704,7 +4334,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [17, 18, 19],
+          "action_ids" : [16, 17, 18],
           "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
           "base_default_next" : "FabricIngress.filtering.fwd_classifier",
           "next_tables" : {
@@ -4713,7 +4343,7 @@
             "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
           },
           "default_entry" : {
-            "action_id" : 17,
+            "action_id" : 16,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4721,7 +4351,7 @@
         },
         {
           "name" : "FabricIngress.filtering.fwd_classifier",
-          "id" : 9,
+          "id" : 5,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
             "line" : 90,
@@ -4742,21 +4372,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
             }
           ],
@@ -4766,14 +4390,14 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [20],
+          "action_ids" : [19],
           "actions" : ["FabricIngress.filtering.set_forwarding_type"],
-          "base_default_next" : "node_19",
+          "base_default_next" : "node_12",
           "next_tables" : {
-            "FabricIngress.filtering.set_forwarding_type" : "node_19"
+            "FabricIngress.filtering.set_forwarding_type" : "node_12"
           },
           "default_entry" : {
-            "action_id" : 20,
+            "action_id" : 19,
             "action_const" : true,
             "action_data" : ["0x0"],
             "action_entry_const" : true
@@ -4781,7 +4405,7 @@
         },
         {
           "name" : "FabricIngress.forwarding.bridging",
-          "id" : 10,
+          "id" : 6,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 46,
@@ -4792,7 +4416,7 @@
             {
               "match_type" : "exact",
               "name" : "vlan_id",
-              "target" : ["scalars", "fabric_metadata_t._vlan_id5"],
+              "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
               "mask" : null
             },
             {
@@ -4808,7 +4432,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [21, 3],
+          "action_ids" : [20, 2],
           "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
           "base_default_next" : "FabricIngress.acl.acl",
           "next_tables" : {
@@ -4816,7 +4440,7 @@
             "nop" : "FabricIngress.acl.acl"
           },
           "default_entry" : {
-            "action_id" : 3,
+            "action_id" : 2,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4824,7 +4448,7 @@
         },
         {
           "name" : "FabricIngress.forwarding.mpls",
-          "id" : 11,
+          "id" : 7,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 71,
@@ -4835,7 +4459,7 @@
             {
               "match_type" : "exact",
               "name" : "mpls_label",
-              "target" : ["scalars", "fabric_metadata_t._mpls_label12"],
+              "target" : ["scalars", "fabric_metadata_t._mpls_label8"],
               "mask" : null
             }
           ],
@@ -4845,7 +4469,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [22, 4],
+          "action_ids" : [21, 3],
           "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
           "base_default_next" : "FabricIngress.acl.acl",
           "next_tables" : {
@@ -4853,7 +4477,7 @@
             "nop" : "FabricIngress.acl.acl"
           },
           "default_entry" : {
-            "action_id" : 4,
+            "action_id" : 3,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4861,10 +4485,10 @@
         },
         {
           "name" : "FabricIngress.forwarding.routing_v4",
-          "id" : 12,
+          "id" : 8,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 101,
+            "line" : 108,
             "column" : 10,
             "source_fragment" : "routing_v4"
           },
@@ -4879,10 +4503,10 @@
           "match_type" : "lpm",
           "type" : "simple",
           "max_size" : 1024,
-          "with_counters" : true,
+          "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [23, 24, 5],
+          "action_ids" : [22, 23, 4],
           "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
           "base_default_next" : "FabricIngress.acl.acl",
           "next_tables" : {
@@ -4891,7 +4515,7 @@
             "nop" : "FabricIngress.acl.acl"
           },
           "default_entry" : {
-            "action_id" : 5,
+            "action_id" : 4,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4899,7 +4523,7 @@
         },
         {
           "name" : "FabricIngress.acl.acl",
-          "id" : 13,
+          "id" : 9,
           "source_info" : {
             "filename" : "include/control/acl.p4",
             "line" : 60,
@@ -4916,19 +4540,19 @@
             {
               "match_type" : "ternary",
               "name" : "ip_proto",
-              "target" : ["scalars", "fabric_metadata_t._ip_proto20"],
+              "target" : ["scalars", "fabric_metadata_t._ip_proto16"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
               "name" : "l4_sport",
-              "target" : ["scalars", "fabric_metadata_t._l4_sport21"],
+              "target" : ["scalars", "fabric_metadata_t._l4_sport17"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
               "name" : "l4_dport",
-              "target" : ["scalars", "fabric_metadata_t._l4_dport22"],
+              "target" : ["scalars", "fabric_metadata_t._l4_dport18"],
               "mask" : null
             },
             {
@@ -4952,7 +4576,7 @@
             {
               "match_type" : "ternary",
               "name" : "eth_type",
-              "target" : ["scalars", "fabric_metadata_t._last_eth_type0"],
+              "target" : ["eth_type", "value"],
               "mask" : null
             },
             {
@@ -4986,18 +4610,18 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [25, 26, 27, 28, 29],
+          "action_ids" : [24, 25, 26, 27, 28],
           "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_27",
+          "base_default_next" : "node_20",
           "next_tables" : {
-            "FabricIngress.acl.set_next_id_acl" : "node_27",
-            "FabricIngress.acl.punt_to_cpu" : "node_27",
-            "FabricIngress.acl.set_clone_session_id" : "node_27",
-            "FabricIngress.acl.drop" : "node_27",
-            "FabricIngress.acl.nop_acl" : "node_27"
+            "FabricIngress.acl.set_next_id_acl" : "node_20",
+            "FabricIngress.acl.punt_to_cpu" : "node_20",
+            "FabricIngress.acl.set_clone_session_id" : "node_20",
+            "FabricIngress.acl.drop" : "node_20",
+            "FabricIngress.acl.nop_acl" : "node_20"
           },
           "default_entry" : {
-            "action_id" : 29,
+            "action_id" : 28,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5005,10 +4629,10 @@
         },
         {
           "name" : "FabricIngress.next.hashed",
-          "id" : 14,
+          "id" : 10,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 196,
+            "line" : 198,
             "column" : 10,
             "source_fragment" : "hashed"
           },
@@ -5016,7 +4640,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id17"],
+              "target" : ["scalars", "fabric_metadata_t._next_id13"],
               "mask" : null
             }
           ],
@@ -5027,7 +4651,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [32, 33, 34, 7],
+          "action_ids" : [31, 32, 33, 6],
           "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
           "base_default_next" : "FabricIngress.next.multicast",
           "next_tables" : {
@@ -5039,10 +4663,10 @@
         },
         {
           "name" : "FabricIngress.next.multicast",
-          "id" : 15,
+          "id" : 11,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 230,
+            "line" : 232,
             "column" : 10,
             "source_fragment" : "multicast"
           },
@@ -5050,7 +4674,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id17"],
+              "target" : ["scalars", "fabric_metadata_t._next_id13"],
               "mask" : null
             }
           ],
@@ -5060,7 +4684,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [35, 8],
+          "action_ids" : [34, 7],
           "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
           "base_default_next" : "FabricIngress.next.next_vlan",
           "next_tables" : {
@@ -5068,7 +4692,7 @@
             "nop" : "FabricIngress.next.next_vlan"
           },
           "default_entry" : {
-            "action_id" : 8,
+            "action_id" : 7,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5076,7 +4700,7 @@
         },
         {
           "name" : "FabricIngress.next.next_vlan",
-          "id" : 16,
+          "id" : 12,
           "source_info" : {
             "filename" : "include/control/next.p4",
             "line" : 82,
@@ -5087,7 +4711,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id17"],
+              "target" : ["scalars", "fabric_metadata_t._next_id13"],
               "mask" : null
             }
           ],
@@ -5097,24 +4721,24 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [30, 31, 6],
+          "action_ids" : [29, 30, 5],
           "actions" : ["FabricIngress.next.set_vlan", "FabricIngress.next.set_double_vlan", "nop"],
-          "base_default_next" : "node_31",
+          "base_default_next" : "node_24",
           "next_tables" : {
-            "FabricIngress.next.set_vlan" : "node_31",
-            "FabricIngress.next.set_double_vlan" : "node_31",
-            "nop" : "node_31"
+            "FabricIngress.next.set_vlan" : "node_24",
+            "FabricIngress.next.set_double_vlan" : "node_24",
+            "nop" : "node_24"
           },
           "default_entry" : {
-            "action_id" : 6,
+            "action_id" : 5,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_7",
-          "id" : 17,
+          "name" : "tbl_act_3",
+          "id" : 13,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 31,
@@ -5128,22 +4752,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [44],
-          "actions" : ["act_7"],
-          "base_default_next" : "node_33",
+          "action_ids" : [39],
+          "actions" : ["act_3"],
+          "base_default_next" : "node_26",
           "next_tables" : {
-            "act_7" : "node_33"
+            "act_3" : "node_26"
           },
           "default_entry" : {
-            "action_id" : 44,
+            "action_id" : 39,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_8",
-          "id" : 18,
+          "name" : "tbl_act_4",
+          "id" : 14,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 34,
@@ -5157,25 +4781,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [45],
-          "actions" : ["act_8"],
-          "base_default_next" : "node_35",
+          "action_ids" : [40],
+          "actions" : ["act_4"],
+          "base_default_next" : "node_28",
           "next_tables" : {
-            "act_8" : "node_35"
+            "act_4" : "node_28"
           },
           "default_entry" : {
-            "action_id" : 45,
+            "action_id" : 40,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_9",
-          "id" : 19,
+          "name" : "tbl_act_5",
+          "id" : 15,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 339,
+            "line" : 338,
             "column" : 22,
             "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
           },
@@ -5186,25 +4810,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [46],
-          "actions" : ["act_9"],
+          "action_ids" : [41],
+          "actions" : ["act_5"],
           "base_default_next" : "FabricIngress.bng_ingress.t_line_map",
           "next_tables" : {
-            "act_9" : "FabricIngress.bng_ingress.t_line_map"
+            "act_5" : "FabricIngress.bng_ingress.t_line_map"
           },
           "default_entry" : {
-            "action_id" : 46,
+            "action_id" : 41,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_10",
-          "id" : 20,
+          "name" : "tbl_act_6",
+          "id" : 16,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 344,
+            "line" : 343,
             "column" : 22,
             "source_fragment" : "= fmeta.vlan_id; ..."
           },
@@ -5215,14 +4839,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [47],
-          "actions" : ["act_10"],
+          "action_ids" : [42],
+          "actions" : ["act_6"],
           "base_default_next" : "FabricIngress.bng_ingress.t_line_map",
           "next_tables" : {
-            "act_10" : "FabricIngress.bng_ingress.t_line_map"
+            "act_6" : "FabricIngress.bng_ingress.t_line_map"
           },
           "default_entry" : {
-            "action_id" : 47,
+            "action_id" : 42,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5230,10 +4854,10 @@
         },
         {
           "name" : "FabricIngress.bng_ingress.t_line_map",
-          "id" : 21,
+          "id" : 17,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 324,
+            "line" : 323,
             "column" : 14,
             "source_fragment" : "t_line_map"
           },
@@ -5257,26 +4881,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [2, 16],
-          "actions" : ["nop", "FabricIngress.bng_ingress.set_line"],
-          "base_default_next" : "node_39",
+          "action_ids" : [15],
+          "actions" : ["FabricIngress.bng_ingress.set_line"],
+          "base_default_next" : "node_32",
           "next_tables" : {
-            "nop" : "node_39",
-            "FabricIngress.bng_ingress.set_line" : "node_39"
+            "FabricIngress.bng_ingress.set_line" : "node_32"
           },
           "default_entry" : {
-            "action_id" : 2,
+            "action_id" : 15,
             "action_const" : true,
-            "action_data" : [],
+            "action_data" : ["0x0"],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_11",
-          "id" : 22,
+          "name" : "tbl_act_7",
+          "id" : 18,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 353,
+            "line" : 352,
             "column" : 31,
             "source_fragment" : "="
           },
@@ -5287,14 +4910,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [50],
-          "actions" : ["act_13"],
+          "action_ids" : [45],
+          "actions" : ["act_9"],
           "base_default_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
           "next_tables" : {
-            "act_13" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp"
+            "act_9" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp"
           },
           "default_entry" : {
-            "action_id" : 50,
+            "action_id" : 45,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5302,7 +4925,7 @@
         },
         {
           "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
-          "id" : 23,
+          "id" : 19,
           "source_info" : {
             "filename" : "include/bng.p4",
             "line" : 48,
@@ -5329,12 +4952,12 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [9, 0],
+          "action_ids" : [8, 0],
           "actions" : ["FabricIngress.bng_ingress.upstream.punt_to_cpu", "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" : 0,
@@ -5344,8 +4967,8 @@
           }
         },
         {
-          "name" : "tbl_act_12",
-          "id" : 24,
+          "name" : "tbl_act_8",
+          "id" : 20,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -5353,22 +4976,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [48],
-          "actions" : ["act_11"],
-          "base_default_next" : "node_44",
+          "action_ids" : [43],
+          "actions" : ["act_7"],
+          "base_default_next" : "node_37",
           "next_tables" : {
-            "act_11" : "node_44"
+            "act_7" : "node_37"
           },
           "default_entry" : {
-            "action_id" : 48,
+            "action_id" : 43,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_13",
-          "id" : 25,
+          "name" : "tbl_act_9",
+          "id" : 21,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -5376,25 +4999,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [49],
-          "actions" : ["act_12"],
-          "base_default_next" : "node_44",
+          "action_ids" : [44],
+          "actions" : ["act_8"],
+          "base_default_next" : "node_37",
           "next_tables" : {
-            "act_12" : "node_44"
+            "act_8" : "node_37"
           },
           "default_entry" : {
-            "action_id" : 49,
+            "action_id" : 44,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_14",
-          "id" : 26,
+          "name" : "tbl_act_10",
+          "id" : 22,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 124,
+            "line" : 123,
             "column" : 12,
             "source_fragment" : "return"
           },
@@ -5405,14 +5028,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [51],
-          "actions" : ["act_14"],
-          "base_default_next" : "node_46",
+          "action_ids" : [46],
+          "actions" : ["act_10"],
+          "base_default_next" : "node_39",
           "next_tables" : {
-            "act_14" : "node_46"
+            "act_10" : "node_39"
           },
           "default_entry" : {
-            "action_id" : 51,
+            "action_id" : 46,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5420,10 +5043,10 @@
         },
         {
           "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4",
-          "id" : 27,
+          "id" : 23,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 85,
+            "line" : 84,
             "column" : 10,
             "source_fragment" : "t_pppoe_term_v4"
           },
@@ -5431,7 +5054,7 @@
             {
               "match_type" : "exact",
               "name" : "line_id",
-              "target" : ["scalars", "fabric_metadata_t._bng_line_id24"],
+              "target" : ["scalars", "fabric_metadata_t._bng_line_id20"],
               "mask" : null
             },
             {
@@ -5453,26 +5076,26 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [11, 10],
+          "action_ids" : [10, 9],
           "actions" : ["FabricIngress.bng_ingress.upstream.term_enabled_v4", "FabricIngress.bng_ingress.upstream.term_disabled"],
           "base_default_next" : null,
           "next_tables" : {
-            "FabricIngress.bng_ingress.upstream.term_disabled" : "tbl_act_15",
+            "FabricIngress.bng_ingress.upstream.term_disabled" : "tbl_act_11",
             "FabricIngress.bng_ingress.upstream.term_enabled_v4" : null
           },
           "default_entry" : {
-            "action_id" : 10,
+            "action_id" : 9,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_15",
-          "id" : 28,
+          "name" : "tbl_act_11",
+          "id" : 24,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 129,
+            "line" : 128,
             "column" : 20,
             "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
           },
@@ -5483,14 +5106,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [52],
-          "actions" : ["act_15"],
+          "action_ids" : [47],
+          "actions" : ["act_11"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_15" : null
+            "act_11" : null
           },
           "default_entry" : {
-            "action_id" : 52,
+            "action_id" : 47,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5498,10 +5121,10 @@
         },
         {
           "name" : "FabricIngress.bng_ingress.downstream.t_line_session_map",
-          "id" : 29,
+          "id" : 25,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 167,
+            "line" : 166,
             "column" : 10,
             "source_fragment" : "t_line_session_map"
           },
@@ -5509,7 +5132,7 @@
             {
               "match_type" : "exact",
               "name" : "line_id",
-              "target" : ["scalars", "fabric_metadata_t._bng_line_id24"],
+              "target" : ["scalars", "fabric_metadata_t._bng_line_id20"],
               "mask" : null
             }
           ],
@@ -5519,12 +5142,12 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [1, 12, 13],
+          "action_ids" : [1, 11, 12],
           "actions" : ["nop", "FabricIngress.bng_ingress.downstream.set_session", "FabricIngress.bng_ingress.downstream.drop"],
           "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" : 1,
@@ -5534,8 +5157,8 @@
           }
         },
         {
-          "name" : "tbl_act_16",
-          "id" : 30,
+          "name" : "tbl_act_12",
+          "id" : 26,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -5543,22 +5166,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [53],
-          "actions" : ["act_16"],
-          "base_default_next" : "node_53",
+          "action_ids" : [48],
+          "actions" : ["act_12"],
+          "base_default_next" : "node_46",
           "next_tables" : {
-            "act_16" : "node_53"
+            "act_12" : "node_46"
           },
           "default_entry" : {
-            "action_id" : 53,
+            "action_id" : 48,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_17",
-          "id" : 31,
+          "name" : "tbl_act_13",
+          "id" : 27,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -5566,14 +5189,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [54],
-          "actions" : ["act_17"],
-          "base_default_next" : "node_53",
+          "action_ids" : [49],
+          "actions" : ["act_13"],
+          "base_default_next" : "node_46",
           "next_tables" : {
-            "act_17" : "node_53"
+            "act_13" : "node_46"
           },
           "default_entry" : {
-            "action_id" : 54,
+            "action_id" : 49,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5581,10 +5204,10 @@
         },
         {
           "name" : "FabricIngress.bng_ingress.downstream.t_qos_v4",
-          "id" : 32,
+          "id" : 28,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 192,
+            "line" : 191,
             "column" : 10,
             "source_fragment" : "t_qos_v4"
           },
@@ -5592,7 +5215,7 @@
             {
               "match_type" : "ternary",
               "name" : "line_id",
-              "target" : ["scalars", "fabric_metadata_t._bng_line_id24"],
+              "target" : ["scalars", "fabric_metadata_t._bng_line_id20"],
               "mask" : null
             },
             {
@@ -5620,26 +5243,26 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [14, 15],
+          "action_ids" : [13, 14],
           "actions" : ["FabricIngress.bng_ingress.downstream.qos_prio", "FabricIngress.bng_ingress.downstream.qos_besteff"],
           "base_default_next" : null,
           "next_tables" : {
-            "FabricIngress.bng_ingress.downstream.qos_prio" : "tbl_act_18",
-            "FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_act_19"
+            "FabricIngress.bng_ingress.downstream.qos_prio" : "tbl_act_14",
+            "FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_act_15"
           },
           "default_entry" : {
-            "action_id" : 15,
+            "action_id" : 14,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_18",
-          "id" : 33,
+          "name" : "tbl_act_14",
+          "id" : 29,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 236,
+            "line" : 235,
             "column" : 24,
             "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
           },
@@ -5650,25 +5273,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [55],
-          "actions" : ["act_18"],
+          "action_ids" : [50],
+          "actions" : ["act_14"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_18" : null
+            "act_14" : null
           },
           "default_entry" : {
-            "action_id" : 55,
+            "action_id" : 50,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_19",
-          "id" : 34,
+          "name" : "tbl_act_15",
+          "id" : 30,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 239,
+            "line" : 238,
             "column" : 24,
             "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
           },
@@ -5679,14 +5302,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [56],
-          "actions" : ["act_19"],
+          "action_ids" : [51],
+          "actions" : ["act_15"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_19" : null
+            "act_15" : null
           },
           "default_entry" : {
-            "action_id" : 56,
+            "action_id" : 51,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5699,7 +5322,7 @@
           "id" : 0,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 177,
+            "line" : 179,
             "column" : 57,
             "source_fragment" : "hashed_selector"
           },
@@ -5717,15 +5340,15 @@
               },
               {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._ip_proto20"]
+                "value" : ["scalars", "fabric_metadata_t._ip_proto16"]
               },
               {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._l4_sport21"]
+                "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
               },
               {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._l4_dport22"]
+                "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
               }
             ]
           }
@@ -5760,7 +5383,7 @@
           "id" : 1,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 109,
+            "line" : 108,
             "column" : 12,
             "source_fragment" : "hdr.vlan_tag.isValid()"
           },
@@ -5783,7 +5406,7 @@
           "id" : 2,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 115,
+            "line" : 114,
             "column" : 12,
             "source_fragment" : "hdr.inner_vlan_tag.isValid()"
           },
@@ -5806,7 +5429,7 @@
           "id" : 3,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 121,
+            "line" : 120,
             "column" : 12,
             "source_fragment" : "!hdr.mpls.isValid()"
           },
@@ -5829,80 +5452,11 @@
             }
           },
           "true_next" : "tbl_act_2",
-          "false_next" : "node_10"
-        },
-        {
-          "name" : "node_10",
-          "id" : 4,
-          "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_3",
-          "false_next" : "node_12"
+          "false_next" : "FabricIngress.filtering.ingress_port_vlan"
         },
         {
           "name" : "node_12",
-          "id" : 5,
-          "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_13",
-          "false_next" : "tbl_act_6"
-        },
-        {
-          "name" : "node_13",
-          "id" : 6,
-          "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_4",
-          "false_next" : "tbl_act_5"
-        },
-        {
-          "name" : "node_19",
-          "id" : 7,
+          "id" : 4,
           "source_info" : {
             "filename" : "fabric.p4",
             "line" : 71,
@@ -5920,7 +5474,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._skip_forwarding14"]
+                    "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"]
                   }
                 }
               },
@@ -5930,15 +5484,15 @@
               }
             }
           },
-          "true_next" : "node_20",
+          "true_next" : "node_13",
           "false_next" : "FabricIngress.acl.acl"
         },
         {
-          "name" : "node_20",
-          "id" : 8,
+          "name" : "node_13",
+          "id" : 5,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 141,
+            "line" : 150,
             "column" : 12,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
           },
@@ -5948,7 +5502,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type16"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -5957,14 +5511,14 @@
             }
           },
           "true_next" : "FabricIngress.forwarding.bridging",
-          "false_next" : "node_22"
+          "false_next" : "node_15"
         },
         {
-          "name" : "node_22",
-          "id" : 9,
+          "name" : "node_15",
+          "id" : 6,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 142,
+            "line" : 151,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
           },
@@ -5974,7 +5528,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type16"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -5983,14 +5537,14 @@
             }
           },
           "true_next" : "FabricIngress.forwarding.mpls",
-          "false_next" : "node_24"
+          "false_next" : "node_17"
         },
         {
-          "name" : "node_24",
-          "id" : 10,
+          "name" : "node_17",
+          "id" : 7,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 143,
+            "line" : 152,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
           },
@@ -6000,7 +5554,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type16"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -6012,8 +5566,8 @@
           "false_next" : "FabricIngress.acl.acl"
         },
         {
-          "name" : "node_27",
-          "id" : 11,
+          "name" : "node_20",
+          "id" : 8,
           "source_info" : {
             "filename" : "fabric.p4",
             "line" : 75,
@@ -6031,7 +5585,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._skip_next15"]
+                    "value" : ["scalars", "fabric_metadata_t._skip_next11"]
                   }
                 }
               },
@@ -6042,11 +5596,11 @@
             }
           },
           "true_next" : "FabricIngress.next.hashed",
-          "false_next" : "node_35"
+          "false_next" : "node_28"
         },
         {
-          "name" : "node_31",
-          "id" : 12,
+          "name" : "node_24",
+          "id" : 9,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 30,
@@ -6067,12 +5621,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_7",
-          "false_next" : "node_33"
+          "true_next" : "tbl_act_3",
+          "false_next" : "node_26"
         },
         {
-          "name" : "node_33",
-          "id" : 13,
+          "name" : "node_26",
+          "id" : 10,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 33,
@@ -6093,15 +5647,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_8",
-          "false_next" : "node_35"
+          "true_next" : "tbl_act_4",
+          "false_next" : "node_28"
         },
         {
-          "name" : "node_35",
-          "id" : 14,
+          "name" : "node_28",
+          "id" : 11,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 338,
+            "line" : 337,
             "column" : 15,
             "source_fragment" : "hdr.pppoe.isValid()"
           },
@@ -6116,15 +5670,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_9",
-          "false_next" : "tbl_act_10"
+          "true_next" : "tbl_act_5",
+          "false_next" : "tbl_act_6"
         },
         {
-          "name" : "node_39",
-          "id" : 15,
+          "name" : "node_32",
+          "id" : 12,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 352,
+            "line" : 351,
             "column" : 16,
             "source_fragment" : "hdr.pppoe.isValid()"
           },
@@ -6139,12 +5693,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_11",
+          "true_next" : "tbl_act_7",
           "false_next" : "FabricIngress.bng_ingress.downstream.t_line_session_map"
         },
         {
-          "name" : "node_44",
-          "id" : 16,
+          "name" : "node_37",
+          "id" : 13,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -6156,12 +5710,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_14",
-          "false_next" : "node_46"
+          "true_next" : "tbl_act_10",
+          "false_next" : "node_39"
         },
         {
-          "name" : "node_46",
-          "id" : 17,
+          "name" : "node_39",
+          "id" : 14,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -6181,14 +5735,14 @@
             }
           },
           "false_next" : null,
-          "true_next" : "node_47"
+          "true_next" : "node_40"
         },
         {
-          "name" : "node_47",
-          "id" : 18,
+          "name" : "node_40",
+          "id" : 15,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 126,
+            "line" : 125,
             "column" : 12,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -6207,8 +5761,8 @@
           "true_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4"
         },
         {
-          "name" : "node_53",
-          "id" : 19,
+          "name" : "node_46",
+          "id" : 16,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -6221,14 +5775,14 @@
             }
           },
           "false_next" : null,
-          "true_next" : "node_54"
+          "true_next" : "node_47"
         },
         {
-          "name" : "node_54",
-          "id" : 20,
+          "name" : "node_47",
+          "id" : 17,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 233,
+            "line" : 232,
             "column" : 16,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -6257,11 +5811,11 @@
         "column" : 8,
         "source_fragment" : "FabricEgress"
       },
-      "init_table" : "node_60",
+      "init_table" : "node_53",
       "tables" : [
         {
-          "name" : "tbl_act_20",
-          "id" : 35,
+          "name" : "tbl_act_16",
+          "id" : 31,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 41,
@@ -6275,22 +5829,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [65],
-          "actions" : ["act_20"],
-          "base_default_next" : "node_62",
+          "action_ids" : [60],
+          "actions" : ["act_16"],
+          "base_default_next" : "node_55",
           "next_tables" : {
-            "act_20" : "node_62"
+            "act_16" : "node_55"
           },
           "default_entry" : {
-            "action_id" : 65,
+            "action_id" : 60,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_21",
-          "id" : 36,
+          "name" : "tbl_act_17",
+          "id" : 32,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 44,
@@ -6304,25 +5858,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [66],
-          "actions" : ["act_21"],
-          "base_default_next" : "node_64",
+          "action_ids" : [61],
+          "actions" : ["act_17"],
+          "base_default_next" : "node_57",
           "next_tables" : {
-            "act_21" : "node_64"
+            "act_17" : "node_57"
           },
           "default_entry" : {
-            "action_id" : 66,
+            "action_id" : 61,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_22",
-          "id" : 37,
+          "name" : "tbl_act_18",
+          "id" : 33,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 333,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -6333,14 +5887,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [67],
-          "actions" : ["act_22"],
-          "base_default_next" : "node_66",
+          "action_ids" : [62],
+          "actions" : ["act_18"],
+          "base_default_next" : "node_59",
           "next_tables" : {
-            "act_22" : "node_66"
+            "act_18" : "node_59"
           },
           "default_entry" : {
-            "action_id" : 67,
+            "action_id" : 62,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6348,10 +5902,10 @@
         },
         {
           "name" : "tbl_egress_next_pop_mpls_if_present",
-          "id" : 38,
+          "id" : 34,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 339,
+            "line" : 337,
             "column" : 36,
             "source_fragment" : "pop_mpls_if_present()"
           },
@@ -6362,14 +5916,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [59],
+          "action_ids" : [54],
           "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
-          "base_default_next" : "node_70",
+          "base_default_next" : "node_63",
           "next_tables" : {
-            "FabricEgress.egress_next.pop_mpls_if_present" : "node_70"
+            "FabricEgress.egress_next.pop_mpls_if_present" : "node_63"
           },
           "default_entry" : {
-            "action_id" : 59,
+            "action_id" : 54,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6377,10 +5931,10 @@
         },
         {
           "name" : "tbl_egress_next_set_mpls",
-          "id" : 39,
+          "id" : 35,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 339,
             "column" : 12,
             "source_fragment" : "set_mpls()"
           },
@@ -6391,14 +5945,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [60],
+          "action_ids" : [55],
           "actions" : ["FabricEgress.egress_next.set_mpls"],
-          "base_default_next" : "node_70",
+          "base_default_next" : "node_63",
           "next_tables" : {
-            "FabricEgress.egress_next.set_mpls" : "node_70"
+            "FabricEgress.egress_next.set_mpls" : "node_63"
           },
           "default_entry" : {
-            "action_id" : 60,
+            "action_id" : 55,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6406,10 +5960,10 @@
         },
         {
           "name" : "tbl_egress_next_push_vlan",
-          "id" : 40,
+          "id" : 36,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 347,
+            "line" : 345,
             "column" : 12,
             "source_fragment" : "push_vlan()"
           },
@@ -6420,14 +5974,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [61],
+          "action_ids" : [56],
           "actions" : ["FabricEgress.egress_next.push_vlan"],
           "base_default_next" : "tbl_egress_next_push_inner_vlan",
           "next_tables" : {
             "FabricEgress.egress_next.push_vlan" : "tbl_egress_next_push_inner_vlan"
           },
           "default_entry" : {
-            "action_id" : 61,
+            "action_id" : 56,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6435,10 +5989,10 @@
         },
         {
           "name" : "tbl_egress_next_push_inner_vlan",
-          "id" : 41,
+          "id" : 37,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 348,
+            "line" : 346,
             "column" : 12,
             "source_fragment" : "push_inner_vlan()"
           },
@@ -6449,25 +6003,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [63],
+          "action_ids" : [58],
           "actions" : ["FabricEgress.egress_next.push_inner_vlan"],
-          "base_default_next" : "node_80",
+          "base_default_next" : "node_73",
           "next_tables" : {
-            "FabricEgress.egress_next.push_inner_vlan" : "node_80"
+            "FabricEgress.egress_next.push_inner_vlan" : "node_73"
           },
           "default_entry" : {
-            "action_id" : 63,
+            "action_id" : 58,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_23",
-          "id" : 42,
+          "name" : "tbl_act_19",
+          "id" : 38,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 351,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
           },
@@ -6478,14 +6032,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [70],
-          "actions" : ["act_25"],
+          "action_ids" : [65],
+          "actions" : ["act_21"],
           "base_default_next" : "FabricEgress.egress_next.egress_vlan",
           "next_tables" : {
-            "act_25" : "FabricEgress.egress_next.egress_vlan"
+            "act_21" : "FabricEgress.egress_next.egress_vlan"
           },
           "default_entry" : {
-            "action_id" : 70,
+            "action_id" : 65,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6493,10 +6047,10 @@
         },
         {
           "name" : "FabricEgress.egress_next.egress_vlan",
-          "id" : 43,
+          "id" : 39,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 318,
+            "line" : 316,
             "column" : 10,
             "source_fragment" : "egress_vlan"
           },
@@ -6504,7 +6058,7 @@
             {
               "match_type" : "exact",
               "name" : "vlan_id",
-              "target" : ["scalars", "fabric_metadata_t._vlan_id5"],
+              "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
               "mask" : null
             },
             {
@@ -6520,23 +6074,23 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [64, 57],
+          "action_ids" : [59, 52],
           "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
           "base_default_next" : null,
           "next_tables" : {
-            "__HIT__" : "tbl_act_24",
-            "__MISS__" : "tbl_act_25"
+            "__HIT__" : "tbl_act_20",
+            "__MISS__" : "tbl_act_21"
           },
           "default_entry" : {
-            "action_id" : 57,
+            "action_id" : 52,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_24",
-          "id" : 44,
+          "name" : "tbl_act_20",
+          "id" : 40,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -6544,22 +6098,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [68],
-          "actions" : ["act_23"],
-          "base_default_next" : "node_77",
+          "action_ids" : [63],
+          "actions" : ["act_19"],
+          "base_default_next" : "node_70",
           "next_tables" : {
-            "act_23" : "node_77"
+            "act_19" : "node_70"
           },
           "default_entry" : {
-            "action_id" : 68,
+            "action_id" : 63,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_25",
-          "id" : 45,
+          "name" : "tbl_act_21",
+          "id" : 41,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -6567,14 +6121,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [69],
-          "actions" : ["act_24"],
-          "base_default_next" : "node_77",
+          "action_ids" : [64],
+          "actions" : ["act_20"],
+          "base_default_next" : "node_70",
           "next_tables" : {
-            "act_24" : "node_77"
+            "act_20" : "node_70"
           },
           "default_entry" : {
-            "action_id" : 69,
+            "action_id" : 64,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6582,10 +6136,10 @@
         },
         {
           "name" : "tbl_egress_next_push_vlan_0",
-          "id" : 46,
+          "id" : 42,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 358,
+            "line" : 356,
             "column" : 20,
             "source_fragment" : "push_vlan()"
           },
@@ -6596,25 +6150,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [62],
+          "action_ids" : [57],
           "actions" : ["FabricEgress.egress_next.push_vlan"],
-          "base_default_next" : "node_80",
+          "base_default_next" : "node_73",
           "next_tables" : {
-            "FabricEgress.egress_next.push_vlan" : "node_80"
+            "FabricEgress.egress_next.push_vlan" : "node_73"
           },
           "default_entry" : {
-            "action_id" : 62,
+            "action_id" : 57,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_26",
-          "id" : 47,
+          "name" : "tbl_act_22",
+          "id" : 43,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 367,
+            "line" : 365,
             "column" : 25,
             "source_fragment" : "="
           },
@@ -6625,25 +6179,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [72],
-          "actions" : ["act_27"],
-          "base_default_next" : "node_82",
+          "action_ids" : [67],
+          "actions" : ["act_23"],
+          "base_default_next" : "node_75",
           "next_tables" : {
-            "act_27" : "node_82"
+            "act_23" : "node_75"
           },
           "default_entry" : {
-            "action_id" : 72,
+            "action_id" : 67,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_27",
-          "id" : 48,
+          "name" : "tbl_act_23",
+          "id" : 44,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -6654,25 +6208,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [71],
-          "actions" : ["act_26"],
-          "base_default_next" : "node_88",
+          "action_ids" : [66],
+          "actions" : ["act_22"],
+          "base_default_next" : "node_81",
           "next_tables" : {
-            "act_26" : "node_88"
+            "act_22" : "node_81"
           },
           "default_entry" : {
-            "action_id" : 71,
+            "action_id" : 66,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_28",
-          "id" : 49,
+          "name" : "tbl_act_24",
+          "id" : 45,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 371,
+            "line" : 369,
             "column" : 29,
             "source_fragment" : "="
           },
@@ -6683,25 +6237,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [74],
-          "actions" : ["act_29"],
-          "base_default_next" : "node_86",
+          "action_ids" : [69],
+          "actions" : ["act_25"],
+          "base_default_next" : "node_79",
           "next_tables" : {
-            "act_29" : "node_86"
+            "act_25" : "node_79"
           },
           "default_entry" : {
-            "action_id" : 74,
+            "action_id" : 69,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_29",
-          "id" : 50,
+          "name" : "tbl_act_25",
+          "id" : 46,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -6712,14 +6266,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [73],
-          "actions" : ["act_28"],
-          "base_default_next" : "node_88",
+          "action_ids" : [68],
+          "actions" : ["act_24"],
+          "base_default_next" : "node_81",
           "next_tables" : {
-            "act_28" : "node_88"
+            "act_24" : "node_81"
           },
           "default_entry" : {
-            "action_id" : 73,
+            "action_id" : 68,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6727,10 +6281,10 @@
         },
         {
           "name" : "tbl_bng_egress_downstream_encap_v4",
-          "id" : 51,
+          "id" : 47,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 295,
+            "line" : 294,
             "column" : 12,
             "source_fragment" : "encap_v4()"
           },
@@ -6741,14 +6295,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [58],
+          "action_ids" : [53],
           "actions" : ["FabricEgress.bng_egress.downstream.encap_v4"],
           "base_default_next" : null,
           "next_tables" : {
             "FabricEgress.bng_egress.downstream.encap_v4" : null
           },
           "default_entry" : {
-            "action_id" : 58,
+            "action_id" : 53,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6758,8 +6312,8 @@
       "action_profiles" : [],
       "conditionals" : [
         {
-          "name" : "node_60",
-          "id" : 21,
+          "name" : "node_53",
+          "id" : 18,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 39,
@@ -6777,7 +6331,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out19"]
+                    "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"]
                   }
                 }
               },
@@ -6787,12 +6341,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_20",
-          "false_next" : "node_62"
+          "true_next" : "tbl_act_16",
+          "false_next" : "node_55"
         },
         {
-          "name" : "node_62",
-          "id" : 22,
+          "name" : "node_55",
+          "id" : 19,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 43,
@@ -6813,15 +6367,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_21",
-          "false_next" : "node_64"
+          "true_next" : "tbl_act_17",
+          "false_next" : "node_57"
         },
         {
-          "name" : "node_64",
-          "id" : 23,
+          "name" : "node_57",
+          "id" : 20,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 333,
+            "line" : 331,
             "column" : 12,
             "source_fragment" : "fabric_metadata.is_multicast == true ..."
           },
@@ -6840,7 +6394,7 @@
                       "left" : null,
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._is_multicast18"]
+                        "value" : ["scalars", "fabric_metadata_t._is_multicast14"]
                       }
                     }
                   },
@@ -6866,15 +6420,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_22",
-          "false_next" : "node_66"
+          "true_next" : "tbl_act_18",
+          "false_next" : "node_59"
         },
         {
-          "name" : "node_66",
-          "id" : 24,
+          "name" : "node_59",
+          "id" : 21,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 338,
+            "line" : 336,
             "column" : 12,
             "source_fragment" : "fabric_metadata.mpls_label == 0"
           },
@@ -6884,7 +6438,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._mpls_label12"]
+                "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -6892,15 +6446,15 @@
               }
             }
           },
-          "true_next" : "node_67",
+          "true_next" : "node_60",
           "false_next" : "tbl_egress_next_set_mpls"
         },
         {
-          "name" : "node_67",
-          "id" : 25,
+          "name" : "node_60",
+          "id" : 22,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 339,
+            "line" : 337,
             "column" : 16,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -6916,14 +6470,14 @@
             }
           },
           "true_next" : "tbl_egress_next_pop_mpls_if_present",
-          "false_next" : "node_70"
+          "false_next" : "node_63"
         },
         {
-          "name" : "node_70",
-          "id" : 26,
+          "name" : "node_63",
+          "id" : 23,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 345,
+            "line" : 343,
             "column" : 12,
             "source_fragment" : "fabric_metadata.push_double_vlan == true"
           },
@@ -6938,7 +6492,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._push_double_vlan8"]
+                    "value" : ["scalars", "fabric_metadata_t._push_double_vlan4"]
                   }
                 }
               },
@@ -6949,14 +6503,14 @@
             }
           },
           "true_next" : "tbl_egress_next_push_vlan",
-          "false_next" : "tbl_act_23"
+          "false_next" : "tbl_act_19"
         },
         {
-          "name" : "node_77",
-          "id" : 27,
+          "name" : "node_70",
+          "id" : 24,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 355,
+            "line" : 353,
             "column" : 16,
             "source_fragment" : "!egress_vlan.apply().hit"
           },
@@ -6978,15 +6532,15 @@
               }
             }
           },
-          "true_next" : "node_78",
-          "false_next" : "node_80"
+          "true_next" : "node_71",
+          "false_next" : "node_73"
         },
         {
-          "name" : "node_78",
-          "id" : 28,
+          "name" : "node_71",
+          "id" : 25,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 357,
+            "line" : 355,
             "column" : 20,
             "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
           },
@@ -6996,7 +6550,7 @@
               "op" : "!=",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+                "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -7005,14 +6559,14 @@
             }
           },
           "true_next" : "tbl_egress_next_push_vlan_0",
-          "false_next" : "node_80"
+          "false_next" : "node_73"
         },
         {
-          "name" : "node_80",
-          "id" : 29,
+          "name" : "node_73",
+          "id" : 26,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 366,
+            "line" : 364,
             "column" : 12,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -7027,15 +6581,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_26",
-          "false_next" : "node_84"
+          "true_next" : "tbl_act_22",
+          "false_next" : "node_77"
         },
         {
-          "name" : "node_82",
-          "id" : 30,
+          "name" : "node_75",
+          "id" : 27,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 16,
             "source_fragment" : "hdr.mpls.ttl == 0"
           },
@@ -7053,15 +6607,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_27",
-          "false_next" : "node_88"
+          "true_next" : "tbl_act_23",
+          "false_next" : "node_81"
         },
         {
-          "name" : "node_84",
-          "id" : 31,
+          "name" : "node_77",
+          "id" : 28,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 368,
             "column" : 15,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -7076,15 +6630,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_28",
-          "false_next" : "node_88"
+          "true_next" : "tbl_act_24",
+          "false_next" : "node_81"
         },
         {
-          "name" : "node_86",
-          "id" : 32,
+          "name" : "node_79",
+          "id" : 29,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl == 0"
           },
@@ -7102,15 +6656,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_29",
-          "false_next" : "node_88"
+          "true_next" : "tbl_act_25",
+          "false_next" : "node_81"
         },
         {
-          "name" : "node_88",
-          "id" : 33,
+          "name" : "node_81",
+          "id" : 30,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 369,
+            "line" : 368,
             "column" : 12,
             "source_fragment" : "fmeta.bng.type == BNG_TYPE_DOWNSTREAM"
           },
@@ -7120,7 +6674,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._bng_type23"]
+                "value" : ["scalars", "fabric_metadata_t._bng_type19"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -7129,14 +6683,14 @@
             }
           },
           "false_next" : null,
-          "true_next" : "node_89"
+          "true_next" : "node_82"
         },
         {
-          "name" : "node_89",
-          "id" : 34,
+          "name" : "node_82",
+          "id" : 31,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 294,
+            "line" : 293,
             "column" : 12,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/p4info.txt
index 98b6cac..c82e3bf 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/p4info.txt
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-bng/bmv2/default/p4info.txt
@@ -149,14 +149,9 @@
     match_type: EXACT
   }
   action_refs {
-    id: 16819938
-    annotations: "@defaultonly"
-    scope: DEFAULT_ONLY
-  }
-  action_refs {
     id: 16829385
   }
-  const_default_action_id: 16819938
+  const_default_action_id: 16829385
   size: 8192
 }
 tables {
@@ -222,20 +217,14 @@
   }
   match_fields {
     id: 3
-    name: "is_ipv4"
-    bitwidth: 1
-    match_type: EXACT
+    name: "eth_type"
+    bitwidth: 16
+    match_type: TERNARY
   }
   match_fields {
     id: 4
-    name: "is_ipv6"
-    bitwidth: 1
-    match_type: EXACT
-  }
-  match_fields {
-    id: 5
-    name: "is_mpls"
-    bitwidth: 1
+    name: "ip_eth_type"
+    bitwidth: 16
     match_type: EXACT
   }
   action_refs {
@@ -323,7 +312,6 @@
     scope: DEFAULT_ONLY
   }
   const_default_action_id: 16819938
-  direct_resource_ids: 318811107
   size: 1024
 }
 tables {
@@ -984,17 +972,6 @@
 }
 direct_counters {
   preamble {
-    id: 318811107
-    name: "FabricIngress.forwarding.routing_v4_counter"
-    alias: "routing_v4_counter"
-  }
-  spec {
-    unit: BOTH
-  }
-  direct_table_id: 33562650
-}
-direct_counters {
-  preamble {
     id: 318801025
     name: "FabricIngress.acl.acl_counter"
     alias: "acl_counter"
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
index 5a7432d..83da36b 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
@@ -5,11 +5,13 @@
       "id" : 0,
       "fields" : [
         ["last_ipv4_dscp_0", 6, false],
-        ["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],
-        ["tmp_3", 32, false],
+        ["tmp_5", 32, false],
         ["spgw_ingress_tmp", 1, false],
         ["spgw_ingress_tmp_0", 1, false],
         ["bng_ingress_s_tag", 12, false],
@@ -22,47 +24,43 @@
         ["key_0", 64, false],
         ["egress_next_tmp", 1, false],
         ["process_int_main_process_int_transit_hasReturned", 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._push_double_vlan8", 1, false],
-        ["fabric_metadata_t._inner_vlan_id9", 12, false],
-        ["fabric_metadata_t._inner_vlan_pri10", 3, false],
-        ["fabric_metadata_t._inner_vlan_cfi11", 1, false],
-        ["fabric_metadata_t._mpls_label12", 20, false],
-        ["fabric_metadata_t._mpls_ttl13", 8, false],
-        ["fabric_metadata_t._skip_forwarding14", 1, false],
-        ["fabric_metadata_t._skip_next15", 1, false],
-        ["fabric_metadata_t._fwd_type16", 3, false],
-        ["fabric_metadata_t._next_id17", 32, false],
-        ["fabric_metadata_t._is_multicast18", 1, false],
-        ["fabric_metadata_t._is_controller_packet_out19", 1, false],
-        ["fabric_metadata_t._ip_proto20", 8, false],
-        ["fabric_metadata_t._l4_sport21", 16, false],
-        ["fabric_metadata_t._l4_dport22", 16, false],
-        ["fabric_metadata_t._spgw_direction23", 2, false],
-        ["fabric_metadata_t._spgw_ipv4_len24", 16, false],
-        ["fabric_metadata_t._spgw_teid25", 32, false],
-        ["fabric_metadata_t._spgw_s1u_enb_addr26", 32, false],
-        ["fabric_metadata_t._spgw_s1u_sgw_addr27", 32, false],
-        ["fabric_metadata_t._bng_type28", 2, false],
-        ["fabric_metadata_t._bng_line_id29", 32, false],
-        ["fabric_metadata_t._bng_pppoe_session_id30", 16, false],
-        ["fabric_metadata_t._bng_ds_meter_result31", 32, false],
-        ["fabric_metadata_t._int_meta_source32", 1, false],
-        ["fabric_metadata_t._int_meta_transit33", 1, false],
-        ["fabric_metadata_t._int_meta_sink34", 1, false],
-        ["fabric_metadata_t._int_meta_switch_id35", 32, false],
-        ["fabric_metadata_t._int_meta_new_words36", 8, false],
-        ["fabric_metadata_t._int_meta_new_bytes37", 16, false],
-        ["fabric_metadata_t._int_meta_ig_tstamp38", 32, false],
-        ["fabric_metadata_t._int_meta_eg_tstamp39", 32, false],
-        ["_padding_0", 7, false]
+        ["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._push_double_vlan4", 1, false],
+        ["fabric_metadata_t._inner_vlan_id5", 12, false],
+        ["fabric_metadata_t._inner_vlan_pri6", 3, false],
+        ["fabric_metadata_t._inner_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],
+        ["fabric_metadata_t._bng_type24", 2, false],
+        ["fabric_metadata_t._bng_line_id25", 32, false],
+        ["fabric_metadata_t._bng_pppoe_session_id26", 16, false],
+        ["fabric_metadata_t._bng_ds_meter_result27", 32, false],
+        ["fabric_metadata_t._int_meta_source28", 1, false],
+        ["fabric_metadata_t._int_meta_transit29", 1, false],
+        ["fabric_metadata_t._int_meta_sink30", 1, false],
+        ["fabric_metadata_t._int_meta_switch_id31", 32, false],
+        ["fabric_metadata_t._int_meta_new_words32", 8, false],
+        ["fabric_metadata_t._int_meta_new_bytes33", 16, false],
+        ["fabric_metadata_t._int_meta_ig_tstamp34", 32, false],
+        ["fabric_metadata_t._int_meta_eg_tstamp35", 32, false],
+        ["_padding_0", 2, false]
       ]
     },
     {
@@ -99,23 +97,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" : "pppoe_t",
-      "id" : 4,
+      "id" : 5,
       "fields" : [
         ["version", 4, false],
         ["type_id", 4, false],
@@ -127,7 +131,7 @@
     },
     {
       "name" : "mpls_t",
-      "id" : 5,
+      "id" : 6,
       "fields" : [
         ["label", 20, false],
         ["tc", 3, false],
@@ -137,7 +141,7 @@
     },
     {
       "name" : "ipv4_t",
-      "id" : 6,
+      "id" : 7,
       "fields" : [
         ["version", 4, false],
         ["ihl", 4, false],
@@ -156,7 +160,7 @@
     },
     {
       "name" : "udp_t",
-      "id" : 7,
+      "id" : 8,
       "fields" : [
         ["sport", 16, false],
         ["dport", 16, false],
@@ -166,7 +170,7 @@
     },
     {
       "name" : "gtpu_t",
-      "id" : 8,
+      "id" : 9,
       "fields" : [
         ["version", 3, false],
         ["pt", 1, false],
@@ -181,7 +185,7 @@
     },
     {
       "name" : "ipv6_t",
-      "id" : 9,
+      "id" : 10,
       "fields" : [
         ["version", 4, false],
         ["traffic_class", 8, false],
@@ -195,7 +199,7 @@
     },
     {
       "name" : "tcp_t",
-      "id" : 10,
+      "id" : 11,
       "fields" : [
         ["sport", 16, false],
         ["dport", 16, false],
@@ -212,7 +216,7 @@
     },
     {
       "name" : "icmp_t",
-      "id" : 11,
+      "id" : 12,
       "fields" : [
         ["icmp_type", 8, false],
         ["icmp_code", 8, false],
@@ -224,7 +228,7 @@
     },
     {
       "name" : "packet_out_header_t",
-      "id" : 12,
+      "id" : 13,
       "fields" : [
         ["egress_port", 9, false],
         ["_pad", 7, false]
@@ -232,7 +236,7 @@
     },
     {
       "name" : "packet_in_header_t",
-      "id" : 13,
+      "id" : 14,
       "fields" : [
         ["ingress_port", 9, false],
         ["_pad", 7, false]
@@ -240,7 +244,7 @@
     },
     {
       "name" : "report_fixed_header_t",
-      "id" : 14,
+      "id" : 15,
       "fields" : [
         ["ver", 4, false],
         ["nproto", 4, false],
@@ -255,7 +259,7 @@
     },
     {
       "name" : "intl4_shim_t",
-      "id" : 15,
+      "id" : 16,
       "fields" : [
         ["int_type", 8, false],
         ["rsvd1", 8, false],
@@ -265,7 +269,7 @@
     },
     {
       "name" : "int_header_t",
-      "id" : 16,
+      "id" : 17,
       "fields" : [
         ["ver", 2, false],
         ["rep", 2, false],
@@ -284,14 +288,14 @@
     },
     {
       "name" : "int_switch_id_t",
-      "id" : 17,
+      "id" : 18,
       "fields" : [
         ["switch_id", 32, false]
       ]
     },
     {
       "name" : "int_port_ids_t",
-      "id" : 18,
+      "id" : 19,
       "fields" : [
         ["ingress_port_id", 16, false],
         ["egress_port_id", 16, false]
@@ -299,14 +303,14 @@
     },
     {
       "name" : "int_hop_latency_t",
-      "id" : 19,
+      "id" : 20,
       "fields" : [
         ["hop_latency", 32, false]
       ]
     },
     {
       "name" : "int_q_occupancy_t",
-      "id" : 20,
+      "id" : 21,
       "fields" : [
         ["q_id", 8, false],
         ["q_occupancy", 24, false]
@@ -314,21 +318,21 @@
     },
     {
       "name" : "int_ingress_tstamp_t",
-      "id" : 21,
+      "id" : 22,
       "fields" : [
         ["ingress_tstamp", 32, false]
       ]
     },
     {
       "name" : "int_egress_tstamp_t",
-      "id" : 22,
+      "id" : 23,
       "fields" : [
         ["egress_tstamp", 32, false]
       ]
     },
     {
       "name" : "int_q_congestion_t",
-      "id" : 23,
+      "id" : 24,
       "fields" : [
         ["q_id", 8, false],
         ["q_congestion", 24, false]
@@ -336,14 +340,14 @@
     },
     {
       "name" : "int_egress_port_tx_util_t",
-      "id" : 24,
+      "id" : 25,
       "fields" : [
         ["egress_port_tx_util", 32, false]
       ]
     },
     {
       "name" : "int_data_t",
-      "id" : 25,
+      "id" : 26,
       "fields" : [
         ["data", "*"]
       ],
@@ -351,7 +355,7 @@
     },
     {
       "name" : "intl4_tail_t",
-      "id" : 26,
+      "id" : 27,
       "fields" : [
         ["next_proto", 8, false],
         ["dest_port", 16, false],
@@ -397,211 +401,225 @@
       "pi_omit" : true
     },
     {
-      "name" : "pppoe",
+      "name" : "eth_type",
       "id" : 5,
+      "header_type" : "eth_type_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
+      "name" : "pppoe",
+      "id" : 6,
       "header_type" : "pppoe_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "mpls",
-      "id" : 6,
+      "id" : 7,
       "header_type" : "mpls_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "gtpu_ipv4",
-      "id" : 7,
+      "id" : 8,
       "header_type" : "ipv4_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "gtpu_udp",
-      "id" : 8,
+      "id" : 9,
       "header_type" : "udp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "gtpu",
-      "id" : 9,
+      "id" : 10,
       "header_type" : "gtpu_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "inner_ipv4",
-      "id" : 10,
+      "id" : 11,
       "header_type" : "ipv4_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "inner_udp",
-      "id" : 11,
+      "id" : 12,
       "header_type" : "udp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "ipv4",
-      "id" : 12,
+      "id" : 13,
       "header_type" : "ipv4_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "ipv6",
-      "id" : 13,
+      "id" : 14,
       "header_type" : "ipv6_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "tcp",
-      "id" : 14,
+      "id" : 15,
       "header_type" : "tcp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "udp",
-      "id" : 15,
+      "id" : 16,
       "header_type" : "udp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "icmp",
-      "id" : 16,
+      "id" : 17,
       "header_type" : "icmp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "packet_out",
-      "id" : 17,
+      "id" : 18,
       "header_type" : "packet_out_header_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "packet_in",
-      "id" : 18,
+      "id" : 19,
       "header_type" : "packet_in_header_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "report_ethernet",
-      "id" : 19,
+      "id" : 20,
       "header_type" : "ethernet_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
+      "name" : "report_eth_type",
+      "id" : 21,
+      "header_type" : "eth_type_t",
+      "metadata" : false,
+      "pi_omit" : true
+    },
+    {
       "name" : "report_ipv4",
-      "id" : 20,
+      "id" : 22,
       "header_type" : "ipv4_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "report_udp",
-      "id" : 21,
+      "id" : 23,
       "header_type" : "udp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "report_fixed_header",
-      "id" : 22,
+      "id" : 24,
       "header_type" : "report_fixed_header_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "intl4_shim",
-      "id" : 23,
+      "id" : 25,
       "header_type" : "intl4_shim_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_header",
-      "id" : 24,
+      "id" : 26,
       "header_type" : "int_header_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_switch_id",
-      "id" : 25,
+      "id" : 27,
       "header_type" : "int_switch_id_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_port_ids",
-      "id" : 26,
+      "id" : 28,
       "header_type" : "int_port_ids_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_hop_latency",
-      "id" : 27,
+      "id" : 29,
       "header_type" : "int_hop_latency_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_q_occupancy",
-      "id" : 28,
+      "id" : 30,
       "header_type" : "int_q_occupancy_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_ingress_tstamp",
-      "id" : 29,
+      "id" : 31,
       "header_type" : "int_ingress_tstamp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_egress_tstamp",
-      "id" : 30,
+      "id" : 32,
       "header_type" : "int_egress_tstamp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_q_congestion",
-      "id" : 31,
+      "id" : 33,
       "header_type" : "int_q_congestion_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_egress_tx_util",
-      "id" : 32,
+      "id" : 34,
       "header_type" : "int_egress_port_tx_util_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_data",
-      "id" : 33,
+      "id" : 35,
       "header_type" : "int_data_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "intl4_tail",
-      "id" : 34,
+      "id" : 36,
       "header_type" : "intl4_tail_t",
       "metadata" : false,
       "pi_omit" : true
@@ -728,11 +746,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"
@@ -741,11 +759,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"
@@ -771,33 +789,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"
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x86dd",
-              "mask" : null,
-              "next_state" : "pre_parse_ipv6"
-            },
-            {
               "value" : "default",
               "mask" : null,
-              "next_state" : null
+              "next_state" : "parse_eth_type"
             }
           ],
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["ethernet", "eth_type"]
+              "value" : ["scalars", "tmp_2"]
             }
           ]
         },
@@ -813,29 +813,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" : "0x86dd",
-              "mask" : null,
-              "next_state" : "pre_parse_ipv6"
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x8847",
-              "mask" : null,
-              "next_state" : "parse_mpls"
-            },
-            {
-              "type" : "hexstr",
               "value" : "0x8100",
               "mask" : null,
               "next_state" : "parse_inner_vlan_tag"
@@ -843,13 +838,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"]
             }
           ]
         },
@@ -869,17 +864,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" : [
             {
-              "type" : "hexstr",
-              "value" : "0x86dd",
-              "mask" : null,
-              "next_state" : "pre_parse_ipv6"
-            },
+              "parameters" : [
+                {
+                  "type" : "regular",
+                  "value" : "eth_type"
+                }
+              ],
+              "op" : "extract"
+            }
+          ],
+          "transitions" : [
             {
               "type" : "hexstr",
               "value" : "0x8847",
@@ -888,6 +894,18 @@
             },
             {
               "type" : "hexstr",
+              "value" : "0x0800",
+              "mask" : null,
+              "next_state" : "parse_ipv4"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x86dd",
+              "mask" : null,
+              "next_state" : "parse_ipv6"
+            },
+            {
+              "type" : "hexstr",
               "value" : "0x8863",
               "mask" : null,
               "next_state" : "parse_pppoe"
@@ -907,13 +925,13 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["inner_vlan_tag", "eth_type"]
+              "value" : ["eth_type", "value"]
             }
           ]
         },
         {
           "name" : "parse_pppoe",
-          "id" : 5,
+          "id" : 6,
           "parser_ops" : [
             {
               "parameters" : [
@@ -936,13 +954,13 @@
               "type" : "hexstr",
               "value" : "0x0021",
               "mask" : null,
-              "next_state" : "pre_parse_ipv4"
+              "next_state" : "parse_ipv4"
             },
             {
               "type" : "hexstr",
               "value" : "0x0057",
               "mask" : null,
-              "next_state" : "pre_parse_ipv6"
+              "next_state" : "parse_ipv6"
             },
             {
               "value" : "default",
@@ -959,7 +977,7 @@
         },
         {
           "name" : "parse_mpls",
-          "id" : 6,
+          "id" : 7,
           "parser_ops" : [
             {
               "parameters" : [
@@ -974,30 +992,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_label12"]
+                  "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
                 },
                 {
                   "type" : "field",
@@ -1010,7 +1005,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._mpls_ttl13"]
+                  "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
                 },
                 {
                   "type" : "field",
@@ -1023,7 +1018,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_0"]
+                  "value" : ["scalars", "tmp_4"]
                 },
                 {
                   "type" : "lookahead",
@@ -1055,48 +1050,11 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_0"]
+              "value" : ["scalars", "tmp_4"]
             }
           ]
         },
         {
-          "name" : "pre_parse_ipv4",
-          "id" : 7,
-          "parser_ops" : [
-            {
-              "parameters" : [
-                {
-                  "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._is_ipv41"]
-                },
-                {
-                  "type" : "expression",
-                  "value" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "b2d",
-                      "left" : null,
-                      "right" : {
-                        "type" : "bool",
-                        "value" : true
-                      }
-                    }
-                  }
-                }
-              ],
-              "op" : "set"
-            }
-          ],
-          "transitions" : [
-            {
-              "value" : "default",
-              "mask" : null,
-              "next_state" : "parse_ipv4"
-            }
-          ],
-          "transition_key" : []
-        },
-        {
           "name" : "parse_ipv4",
           "id" : 8,
           "parser_ops" : [
@@ -1113,7 +1071,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_proto20"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_proto16"]
                 },
                 {
                   "type" : "field",
@@ -1126,7 +1084,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
                 },
                 {
                   "type" : "hexstr",
@@ -1182,45 +1140,8 @@
           ]
         },
         {
-          "name" : "pre_parse_ipv6",
-          "id" : 9,
-          "parser_ops" : [
-            {
-              "parameters" : [
-                {
-                  "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._is_ipv62"]
-                },
-                {
-                  "type" : "expression",
-                  "value" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "b2d",
-                      "left" : null,
-                      "right" : {
-                        "type" : "bool",
-                        "value" : true
-                      }
-                    }
-                  }
-                }
-              ],
-              "op" : "set"
-            }
-          ],
-          "transitions" : [
-            {
-              "value" : "default",
-              "mask" : null,
-              "next_state" : "parse_ipv6"
-            }
-          ],
-          "transition_key" : []
-        },
-        {
           "name" : "parse_ipv6",
-          "id" : 10,
+          "id" : 9,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1235,7 +1156,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_proto20"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_proto16"]
                 },
                 {
                   "type" : "field",
@@ -1248,7 +1169,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
                 },
                 {
                   "type" : "hexstr",
@@ -1292,7 +1213,7 @@
         },
         {
           "name" : "parse_tcp",
-          "id" : 11,
+          "id" : 10,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1307,7 +1228,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport21"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
                 },
                 {
                   "type" : "field",
@@ -1320,7 +1241,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport22"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
                 },
                 {
                   "type" : "field",
@@ -1341,7 +1262,7 @@
         },
         {
           "name" : "parse_udp",
-          "id" : 12,
+          "id" : 11,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1356,7 +1277,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport21"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
                 },
                 {
                   "type" : "field",
@@ -1369,7 +1290,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport22"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
                 },
                 {
                   "type" : "field",
@@ -1401,7 +1322,7 @@
         },
         {
           "name" : "parse_icmp",
-          "id" : 13,
+          "id" : 12,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1424,7 +1345,7 @@
         },
         {
           "name" : "parse_gtpu",
-          "id" : 14,
+          "id" : 13,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1495,7 +1416,7 @@
         },
         {
           "name" : "do_parse_gtpu",
-          "id" : 15,
+          "id" : 14,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1563,7 +1484,7 @@
         },
         {
           "name" : "parse_inner_udp",
-          "id" : 16,
+          "id" : 15,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1578,7 +1499,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport21"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
                 },
                 {
                   "type" : "field",
@@ -1591,7 +1512,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport22"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
                 },
                 {
                   "type" : "field",
@@ -1612,7 +1533,7 @@
         },
         {
           "name" : "parse_int",
-          "id" : 17,
+          "id" : 16,
           "parser_ops" : [],
           "transitions" : [
             {
@@ -1636,7 +1557,7 @@
         },
         {
           "name" : "parse_intl4_shim",
-          "id" : 18,
+          "id" : 17,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1679,13 +1600,13 @@
         },
         {
           "name" : "parse_int_data",
-          "id" : 19,
+          "id" : 18,
           "parser_ops" : [
             {
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_1"]
+                  "value" : ["scalars", "tmp_0"]
                 },
                 {
                   "type" : "expression",
@@ -1757,7 +1678,7 @@
                   "type" : "expression",
                   "value" : {
                     "type" : "field",
-                    "value" : ["scalars", "tmp_1"]
+                    "value" : ["scalars", "tmp_0"]
                   }
                 }
               ],
@@ -1775,7 +1696,7 @@
         },
         {
           "name" : "parse_intl4_tail",
-          "id" : 20,
+          "id" : 19,
           "parser_ops" : [
             {
               "parameters" : [
@@ -1806,11 +1727,11 @@
       "id" : 0,
       "source_info" : {
         "filename" : "include/parser.p4",
-        "line" : 276,
+        "line" : 259,
         "column" : 8,
         "source_fragment" : "FabricDeparser"
       },
-      "order" : ["packet_in", "report_ethernet", "report_ipv4", "report_udp", "report_fixed_header", "ethernet", "vlan_tag", "inner_vlan_tag", "pppoe", "mpls", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "ipv6", "tcp", "udp", "icmp", "intl4_shim", "int_header", "int_switch_id", "int_port_ids", "int_hop_latency", "int_q_occupancy", "int_ingress_tstamp", "int_egress_tstamp", "int_q_congestion", "int_egress_tx_util", "int_data", "intl4_tail"]
+      "order" : ["packet_in", "report_ethernet", "report_eth_type", "report_ipv4", "report_udp", "report_fixed_header", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "pppoe", "mpls", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "ipv6", "tcp", "udp", "icmp", "intl4_shim", "int_header", "int_switch_id", "int_port_ids", "int_hop_latency", "int_q_occupancy", "int_ingress_tstamp", "int_egress_tstamp", "int_q_congestion", "int_egress_tx_util", "int_data", "intl4_tail"]
     }
   ],
   "meter_arrays" : [
@@ -1819,7 +1740,7 @@
       "id" : 0,
       "source_info" : {
         "filename" : "include/bng.p4",
-        "line" : 152,
+        "line" : 151,
         "column" : 33,
         "source_fragment" : "m_besteff"
       },
@@ -1833,7 +1754,7 @@
       "id" : 1,
       "source_info" : {
         "filename" : "include/bng.p4",
-        "line" : 153,
+        "line" : 152,
         "column" : 33,
         "source_fragment" : "m_prio"
       },
@@ -1921,7 +1842,7 @@
       "id" : 6,
       "source_info" : {
         "filename" : "include/bng.p4",
-        "line" : 150,
+        "line" : 149,
         "column" : 49,
         "source_fragment" : "c_line_rx"
       },
@@ -1977,32 +1898,20 @@
       }
     },
     {
-      "name" : "FabricIngress.forwarding.routing_v4_counter",
-      "id" : 11,
-      "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.forwarding.routing_v6_counter",
-      "id" : 12,
+      "id" : 11,
       "is_direct" : true,
       "binding" : "FabricIngress.forwarding.routing_v6",
       "source_info" : {
         "filename" : "include/control/forwarding.p4",
-        "line" : 119,
+        "line" : 128,
         "column" : 50,
         "source_fragment" : "routing_v6_counter"
       }
     },
     {
       "name" : "FabricIngress.acl.acl_counter",
-      "id" : 13,
+      "id" : 12,
       "is_direct" : true,
       "binding" : "FabricIngress.acl.acl",
       "source_info" : {
@@ -2014,7 +1923,7 @@
     },
     {
       "name" : "FabricIngress.next.next_vlan_counter",
-      "id" : 14,
+      "id" : 13,
       "is_direct" : true,
       "binding" : "FabricIngress.next.next_vlan",
       "source_info" : {
@@ -2026,7 +1935,7 @@
     },
     {
       "name" : "FabricIngress.next.xconnect_counter",
-      "id" : 15,
+      "id" : 14,
       "is_direct" : true,
       "binding" : "FabricIngress.next.xconnect",
       "source_info" : {
@@ -2038,43 +1947,43 @@
     },
     {
       "name" : "FabricIngress.next.simple_counter",
-      "id" : 16,
+      "id" : 15,
       "is_direct" : true,
       "binding" : "FabricIngress.next.simple",
       "source_info" : {
         "filename" : "include/control/next.p4",
-        "line" : 137,
+        "line" : 136,
         "column" : 50,
         "source_fragment" : "simple_counter"
       }
     },
     {
       "name" : "FabricIngress.next.hashed_counter",
-      "id" : 17,
+      "id" : 16,
       "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" : 18,
+      "id" : 17,
       "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" : 19,
+      "id" : 18,
       "source_info" : {
         "filename" : "include/control/port_counter.p4",
         "line" : 26,
@@ -2086,7 +1995,7 @@
     },
     {
       "name" : "FabricIngress.port_counters_control.ingress_port_counter",
-      "id" : 20,
+      "id" : 19,
       "source_info" : {
         "filename" : "include/control/port_counter.p4",
         "line" : 27,
@@ -2098,10 +2007,10 @@
     },
     {
       "name" : "FabricEgress.bng_egress.downstream.c_line_tx",
-      "id" : 21,
+      "id" : 20,
       "source_info" : {
         "filename" : "include/bng.p4",
-        "line" : 265,
+        "line" : 264,
         "column" : 49,
         "source_fragment" : "c_line_tx"
       },
@@ -2110,7 +2019,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_source.counter_int_source",
-      "id" : 22,
+      "id" : 21,
       "is_direct" : true,
       "binding" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
       "source_info" : {
@@ -2122,12 +2031,12 @@
     },
     {
       "name" : "FabricEgress.egress_next.egress_vlan_counter",
-      "id" : 23,
+      "id" : 22,
       "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"
       }
@@ -2412,14 +2321,8 @@
       "primitives" : []
     },
     {
-      "name" : "nop",
-      "id" : 15,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricIngress.spgw_ingress.gtpu_decap",
-      "id" : 16,
+      "id" : 15,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2471,7 +2374,7 @@
     },
     {
       "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
-      "id" : 17,
+      "id" : 16,
       "runtime_data" : [
         {
           "name" : "teid",
@@ -2492,7 +2395,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_teid25"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_teid21"]
             },
             {
               "type" : "runtime_data",
@@ -2511,7 +2414,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr26"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr22"]
             },
             {
               "type" : "runtime_data",
@@ -2530,7 +2433,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr27"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr23"]
             },
             {
               "type" : "runtime_data",
@@ -2548,7 +2451,7 @@
     },
     {
       "name" : "FabricIngress.process_set_source_sink.int_set_source",
-      "id" : 18,
+      "id" : 17,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2556,7 +2459,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_source32"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_source28"]
             },
             {
               "type" : "expression",
@@ -2584,7 +2487,7 @@
     },
     {
       "name" : "FabricIngress.process_set_source_sink.int_set_sink",
-      "id" : 19,
+      "id" : 18,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2592,7 +2495,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_sink34"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_sink30"]
             },
             {
               "type" : "expression",
@@ -2620,7 +2523,7 @@
     },
     {
       "name" : "FabricIngress.bng_ingress.upstream.punt_to_cpu",
-      "id" : 20,
+      "id" : 19,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2651,7 +2554,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id25"]
             }
           ],
           "source_info" : {
@@ -2665,6 +2568,47 @@
     },
     {
       "name" : "FabricIngress.bng_ingress.upstream.term_disabled",
+      "id" : 20,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._bng_type24"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../header.p4",
+            "line" : 160,
+            "column" : 36,
+            "source_fragment" : "2w0x0; ..."
+          }
+        },
+        {
+          "op" : "mark_to_drop",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "standard_metadata"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/bng.p4",
+            "line" : 74,
+            "column" : 8,
+            "source_fragment" : "mark_to_drop(smeta)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.upstream.term_disabled",
       "id" : 21,
       "runtime_data" : [],
       "primitives" : [
@@ -2673,7 +2617,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type28"]
+              "value" : ["scalars", "fabric_metadata_t._bng_type24"]
             },
             {
               "type" : "hexstr",
@@ -2682,7 +2626,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../header.p4",
-            "line" : 155,
+            "line" : 160,
             "column" : 36,
             "source_fragment" : "2w0x0; ..."
           }
@@ -2697,48 +2641,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 75,
-            "column" : 8,
-            "source_fragment" : "mark_to_drop(smeta)"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricIngress.bng_ingress.upstream.term_disabled",
-      "id" : 22,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type28"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../header.p4",
-            "line" : 155,
-            "column" : 36,
-            "source_fragment" : "2w0x0; ..."
-          }
-        },
-        {
-          "op" : "mark_to_drop",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "standard_metadata"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/bng.p4",
-            "line" : 75,
+            "line" : 74,
             "column" : 8,
             "source_fragment" : "mark_to_drop(smeta)"
           }
@@ -2747,7 +2650,7 @@
     },
     {
       "name" : "FabricIngress.bng_ingress.upstream.term_enabled_v4",
-      "id" : 23,
+      "id" : 22,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2755,7 +2658,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["inner_vlan_tag", "eth_type"]
+              "value" : ["eth_type", "value"]
             },
             {
               "type" : "hexstr",
@@ -2764,26 +2667,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 110,
-            "column" : 31,
-            "source_fragment" : "0x0800; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x0800"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 110,
+            "line" : 114,
             "column" : 31,
             "source_fragment" : "0x0800; ..."
           }
@@ -2798,7 +2682,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 69,
+            "line" : 68,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.setInvalid()"
           }
@@ -2812,12 +2696,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id25"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 70,
+            "line" : 69,
             "column" : 8,
             "source_fragment" : "c_terminated.count(fmeta.bng.line_id)"
           }
@@ -2826,7 +2710,7 @@
     },
     {
       "name" : "FabricIngress.bng_ingress.upstream.term_enabled_v6",
-      "id" : 24,
+      "id" : 23,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2834,7 +2718,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["inner_vlan_tag", "eth_type"]
+              "value" : ["eth_type", "value"]
             },
             {
               "type" : "hexstr",
@@ -2843,26 +2727,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 111,
-            "column" : 31,
-            "source_fragment" : "0x86dd; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x86dd"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 111,
+            "line" : 115,
             "column" : 31,
             "source_fragment" : "0x86dd; ..."
           }
@@ -2877,7 +2742,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 69,
+            "line" : 68,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.setInvalid()"
           }
@@ -2891,12 +2756,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id25"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 70,
+            "line" : 69,
             "column" : 8,
             "source_fragment" : "c_terminated.count(fmeta.bng.line_id)"
           }
@@ -2905,7 +2770,7 @@
     },
     {
       "name" : "FabricIngress.bng_ingress.downstream.set_session",
-      "id" : 25,
+      "id" : 24,
       "runtime_data" : [
         {
           "name" : "pppoe_session_id",
@@ -2918,7 +2783,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type28"]
+              "value" : ["scalars", "fabric_metadata_t._bng_type24"]
             },
             {
               "type" : "hexstr",
@@ -2927,7 +2792,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../header.p4",
-            "line" : 157,
+            "line" : 162,
             "column" : 39,
             "source_fragment" : "2w0x2;; ..."
           }
@@ -2937,7 +2802,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id30"]
+              "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id26"]
             },
             {
               "type" : "runtime_data",
@@ -2946,7 +2811,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 157,
+            "line" : 156,
             "column" : 35,
             "source_fragment" : "= pppoe_session_id; ..."
           }
@@ -2960,12 +2825,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id25"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 158,
+            "line" : 157,
             "column" : 8,
             "source_fragment" : "c_line_rx.count(fmeta.bng.line_id)"
           }
@@ -2974,7 +2839,7 @@
     },
     {
       "name" : "FabricIngress.bng_ingress.downstream.drop",
-      "id" : 26,
+      "id" : 25,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2982,7 +2847,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type28"]
+              "value" : ["scalars", "fabric_metadata_t._bng_type24"]
             },
             {
               "type" : "hexstr",
@@ -2991,7 +2856,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../header.p4",
-            "line" : 157,
+            "line" : 162,
             "column" : 39,
             "source_fragment" : "2w0x2;; ..."
           }
@@ -3005,12 +2870,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id25"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 163,
+            "line" : 162,
             "column" : 8,
             "source_fragment" : "c_line_rx.count(fmeta.bng.line_id)"
           }
@@ -3025,7 +2890,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 164,
+            "line" : 163,
             "column" : 8,
             "source_fragment" : "mark_to_drop(smeta)"
           }
@@ -3034,12 +2899,18 @@
     },
     {
       "name" : "FabricIngress.bng_ingress.downstream.qos_prio",
-      "id" : 27,
+      "id" : 26,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricIngress.bng_ingress.downstream.qos_prio",
+      "id" : 27,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "FabricIngress.bng_ingress.downstream.qos_besteff",
       "id" : 28,
       "runtime_data" : [],
       "primitives" : []
@@ -3051,14 +2922,8 @@
       "primitives" : []
     },
     {
-      "name" : "FabricIngress.bng_ingress.downstream.qos_besteff",
-      "id" : 30,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricIngress.bng_ingress.set_line",
-      "id" : 31,
+      "id" : 30,
       "runtime_data" : [
         {
           "name" : "line_id",
@@ -3071,7 +2936,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id25"]
             },
             {
               "type" : "runtime_data",
@@ -3080,7 +2945,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 321,
+            "line" : 320,
             "column" : 30,
             "source_fragment" : "= line_id; ..."
           }
@@ -3089,7 +2954,7 @@
     },
     {
       "name" : "FabricIngress.filtering.deny",
-      "id" : 32,
+      "id" : 31,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3097,7 +2962,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_forwarding14"]
+              "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"]
             },
             {
               "type" : "expression",
@@ -3126,7 +2991,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next15"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next11"]
             },
             {
               "type" : "expression",
@@ -3154,13 +3019,13 @@
     },
     {
       "name" : "FabricIngress.filtering.permit",
-      "id" : 33,
+      "id" : 32,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricIngress.filtering.permit_with_internal_vlan",
-      "id" : 34,
+      "id" : 33,
       "runtime_data" : [
         {
           "name" : "vlan_id",
@@ -3173,7 +3038,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "runtime_data",
@@ -3191,7 +3056,7 @@
     },
     {
       "name" : "FabricIngress.filtering.set_forwarding_type",
-      "id" : 35,
+      "id" : 34,
       "runtime_data" : [
         {
           "name" : "fwd_type",
@@ -3204,7 +3069,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._fwd_type16"]
+              "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
             },
             {
               "type" : "runtime_data",
@@ -3222,7 +3087,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_bridging",
-      "id" : 36,
+      "id" : 35,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -3235,7 +3100,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id17"]
+              "value" : ["scalars", "fabric_metadata_t._next_id13"]
             },
             {
               "type" : "runtime_data",
@@ -3253,7 +3118,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.pop_mpls_and_next",
-      "id" : 37,
+      "id" : 36,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -3266,7 +3131,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label12"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
             },
             {
               "type" : "hexstr",
@@ -3285,7 +3150,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id17"]
+              "value" : ["scalars", "fabric_metadata_t._next_id13"]
             },
             {
               "type" : "runtime_data",
@@ -3303,7 +3168,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_routing_v4",
-      "id" : 38,
+      "id" : 37,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -3316,7 +3181,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id17"]
+              "value" : ["scalars", "fabric_metadata_t._next_id13"]
             },
             {
               "type" : "runtime_data",
@@ -3334,13 +3199,13 @@
     },
     {
       "name" : "FabricIngress.forwarding.nop_routing_v4",
-      "id" : 39,
+      "id" : 38,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_routing_v6",
-      "id" : 40,
+      "id" : 39,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -3353,7 +3218,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id17"]
+              "value" : ["scalars", "fabric_metadata_t._next_id13"]
             },
             {
               "type" : "runtime_data",
@@ -3371,7 +3236,7 @@
     },
     {
       "name" : "FabricIngress.acl.set_next_id_acl",
-      "id" : 41,
+      "id" : 40,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -3384,7 +3249,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id17"]
+              "value" : ["scalars", "fabric_metadata_t._next_id13"]
             },
             {
               "type" : "runtime_data",
@@ -3402,7 +3267,7 @@
     },
     {
       "name" : "FabricIngress.acl.punt_to_cpu",
-      "id" : 42,
+      "id" : 41,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3429,7 +3294,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next15"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next11"]
             },
             {
               "type" : "expression",
@@ -3457,7 +3322,7 @@
     },
     {
       "name" : "FabricIngress.acl.set_clone_session_id",
-      "id" : 43,
+      "id" : 42,
       "runtime_data" : [
         {
           "name" : "clone_id",
@@ -3488,7 +3353,7 @@
     },
     {
       "name" : "FabricIngress.acl.drop",
-      "id" : 44,
+      "id" : 43,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3511,7 +3376,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next15"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next11"]
             },
             {
               "type" : "expression",
@@ -3539,13 +3404,13 @@
     },
     {
       "name" : "FabricIngress.acl.nop_acl",
-      "id" : 45,
+      "id" : 44,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricIngress.next.set_vlan",
-      "id" : 46,
+      "id" : 45,
       "runtime_data" : [
         {
           "name" : "vlan_id",
@@ -3558,7 +3423,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "runtime_data",
@@ -3576,7 +3441,7 @@
     },
     {
       "name" : "FabricIngress.next.set_double_vlan",
-      "id" : 47,
+      "id" : 46,
       "runtime_data" : [
         {
           "name" : "outer_vlan_id",
@@ -3593,7 +3458,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "runtime_data",
@@ -3612,7 +3477,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._push_double_vlan8"]
+              "value" : ["scalars", "fabric_metadata_t._push_double_vlan4"]
             },
             {
               "type" : "expression",
@@ -3641,7 +3506,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"]
             },
             {
               "type" : "runtime_data",
@@ -3659,7 +3524,7 @@
     },
     {
       "name" : "FabricIngress.next.output_xconnect",
-      "id" : 48,
+      "id" : 47,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -3685,31 +3550,12 @@
             "column" : 5,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
           }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x8100"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 107,
-            "column" : 31,
-            "source_fragment" : "0x8100; ..."
-          }
         }
       ]
     },
     {
       "name" : "FabricIngress.next.set_next_id_xconnect",
-      "id" : 49,
+      "id" : 48,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -3722,7 +3568,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id17"]
+              "value" : ["scalars", "fabric_metadata_t._next_id13"]
             },
             {
               "type" : "runtime_data",
@@ -3731,7 +3577,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 112,
+            "line" : 111,
             "column" : 32,
             "source_fragment" : "= next_id; ..."
           }
@@ -3740,7 +3586,7 @@
     },
     {
       "name" : "FabricIngress.next.output_simple",
-      "id" : 50,
+      "id" : 49,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -3771,7 +3617,7 @@
     },
     {
       "name" : "FabricIngress.next.routing_simple",
-      "id" : 51,
+      "id" : 50,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -3848,7 +3694,7 @@
     },
     {
       "name" : "FabricIngress.next.mpls_routing_simple",
-      "id" : 52,
+      "id" : 51,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -3873,7 +3719,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label12"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
             },
             {
               "type" : "runtime_data",
@@ -3948,7 +3794,7 @@
     },
     {
       "name" : "FabricIngress.next.output_hashed",
-      "id" : 53,
+      "id" : 52,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -3979,7 +3825,7 @@
     },
     {
       "name" : "FabricIngress.next.routing_hashed",
-      "id" : 54,
+      "id" : 53,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -4056,7 +3902,7 @@
     },
     {
       "name" : "FabricIngress.next.mpls_routing_hashed",
-      "id" : 55,
+      "id" : 54,
       "runtime_data" : [
         {
           "name" : "port_num",
@@ -4081,7 +3927,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label12"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
             },
             {
               "type" : "runtime_data",
@@ -4156,7 +4002,7 @@
     },
     {
       "name" : "FabricIngress.next.set_mcast_group_id",
-      "id" : 56,
+      "id" : 55,
       "runtime_data" : [
         {
           "name" : "group_id",
@@ -4178,7 +4024,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 225,
+            "line" : 227,
             "column" : 8,
             "source_fragment" : "standard_metadata.mcast_grp = group_id"
           }
@@ -4188,7 +4034,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._is_multicast18"]
+              "value" : ["scalars", "fabric_metadata_t._is_multicast14"]
             },
             {
               "type" : "expression",
@@ -4207,7 +4053,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 226,
+            "line" : 228,
             "column" : 37,
             "source_fragment" : "= true; ..."
           }
@@ -4216,7 +4062,7 @@
     },
     {
       "name" : "act",
-      "id" : 57,
+      "id" : 56,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4252,7 +4098,7 @@
     },
     {
       "name" : "act_0",
-      "id" : 58,
+      "id" : 57,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4312,7 +4158,7 @@
     },
     {
       "name" : "act_1",
-      "id" : 59,
+      "id" : 58,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4338,7 +4184,7 @@
     },
     {
       "name" : "act_2",
-      "id" : 60,
+      "id" : 59,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4360,7 +4206,7 @@
     },
     {
       "name" : "act_3",
-      "id" : 61,
+      "id" : 60,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4424,7 +4270,7 @@
     },
     {
       "name" : "act_4",
-      "id" : 62,
+      "id" : 61,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4466,7 +4312,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out19"]
+              "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"]
             },
             {
               "type" : "expression",
@@ -4504,7 +4350,7 @@
     },
     {
       "name" : "act_5",
-      "id" : 63,
+      "id" : 62,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4512,7 +4358,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "field",
@@ -4521,7 +4367,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 110,
+            "line" : 109,
             "column" : 36,
             "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
           }
@@ -4531,7 +4377,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_pri6"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
             },
             {
               "type" : "field",
@@ -4540,7 +4386,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 111,
+            "line" : 110,
             "column" : 37,
             "source_fragment" : "= hdr.vlan_tag.pri; ..."
           }
@@ -4550,7 +4396,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
             },
             {
               "type" : "field",
@@ -4559,7 +4405,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 112,
+            "line" : 111,
             "column" : 37,
             "source_fragment" : "= hdr.vlan_tag.cfi; ..."
           }
@@ -4568,7 +4414,7 @@
     },
     {
       "name" : "act_6",
-      "id" : 64,
+      "id" : 63,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4576,7 +4422,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"]
             },
             {
               "type" : "field",
@@ -4585,7 +4431,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 116,
+            "line" : 115,
             "column" : 42,
             "source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..."
           }
@@ -4595,7 +4441,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri10"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri6"]
             },
             {
               "type" : "field",
@@ -4604,7 +4450,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 117,
+            "line" : 116,
             "column" : 43,
             "source_fragment" : "= hdr.inner_vlan_tag.pri; ..."
           }
@@ -4614,7 +4460,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi11"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi7"]
             },
             {
               "type" : "field",
@@ -4623,7 +4469,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 118,
+            "line" : 117,
             "column" : 43,
             "source_fragment" : "= hdr.inner_vlan_tag.cfi; ..."
           }
@@ -4632,7 +4478,7 @@
     },
     {
       "name" : "act_7",
-      "id" : 65,
+      "id" : 64,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4640,7 +4486,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_ttl13"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
             },
             {
               "type" : "hexstr",
@@ -4649,7 +4495,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 126,
+            "line" : 125,
             "column" : 37,
             "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
           }
@@ -4658,111 +4504,7 @@
     },
     {
       "name" : "act_8",
-      "id" : 66,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x8847"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 108,
-            "column" : 31,
-            "source_fragment" : "0x8847; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_9",
-      "id" : 67,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "field",
-              "value" : ["inner_vlan_tag", "eth_type"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 136,
-            "column" : 50,
-            "source_fragment" : "= hdr.inner_vlan_tag.eth_type; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_10",
-      "id" : 68,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "field",
-              "value" : ["vlan_tag", "eth_type"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 139,
-            "column" : 50,
-            "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_11",
-      "id" : 69,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "field",
-              "value" : ["ethernet", "eth_type"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 141,
-            "column" : 46,
-            "source_fragment" : "= hdr.ethernet.eth_type; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_12",
-      "id" : 70,
+      "id" : 65,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4791,8 +4533,116 @@
       ]
     },
     {
+      "name" : "act_9",
+      "id" : 66,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "spgw_ingress_tmp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : false
+                  }
+                }
+              }
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "name" : "act_10",
+      "id" : 67,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "mark_to_drop",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "standard_metadata"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/spgw.p4",
+            "line" : 149,
+            "column" : 16,
+            "source_fragment" : "mark_to_drop(standard_metadata)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_11",
+      "id" : 68,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../define.p4",
+            "line" : 147,
+            "column" : 36,
+            "source_fragment" : "2w1; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_12",
+      "id" : 69,
+      "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_13",
-      "id" : 71,
+      "id" : 70,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4800,7 +4650,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "spgw_ingress_tmp"]
+              "value" : ["scalars", "spgw_ingress_tmp_0"]
             },
             {
               "type" : "expression",
@@ -4822,29 +4672,7 @@
     },
     {
       "name" : "act_14",
-      "id" : 72,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "mark_to_drop",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "standard_metadata"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/spgw.p4",
-            "line" : 149,
-            "column" : 16,
-            "source_fragment" : "mark_to_drop(standard_metadata)"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_15",
-      "id" : 73,
+      "id" : 71,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4852,93 +4680,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_direction23"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x01"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 143,
-            "column" : 36,
-            "source_fragment" : "2w1; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_16",
-      "id" : 74,
-      "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_17",
-      "id" : 75,
-      "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_18",
-      "id" : 76,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_direction23"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
             },
             {
               "type" : "hexstr",
@@ -4947,7 +4689,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 144,
+            "line" : 148,
             "column" : 38,
             "source_fragment" : "2w2; ..."
           }
@@ -4955,8 +4697,8 @@
       ]
     },
     {
-      "name" : "act_19",
-      "id" : 77,
+      "name" : "act_15",
+      "id" : 72,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4964,7 +4706,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_direction23"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
             },
             {
               "type" : "hexstr",
@@ -4973,7 +4715,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 142,
+            "line" : 146,
             "column" : 37,
             "source_fragment" : "2w0; ..."
           }
@@ -5010,8 +4752,8 @@
       ]
     },
     {
-      "name" : "act_20",
-      "id" : 78,
+      "name" : "act_16",
+      "id" : 73,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5040,8 +4782,8 @@
       ]
     },
     {
-      "name" : "act_21",
-      "id" : 79,
+      "name" : "act_17",
+      "id" : 74,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5049,7 +4791,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len24"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
             },
             {
               "type" : "field",
@@ -5066,8 +4808,8 @@
       ]
     },
     {
-      "name" : "act_22",
-      "id" : 80,
+      "name" : "act_18",
+      "id" : 75,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5075,7 +4817,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_2"]
+              "value" : ["scalars", "tmp_1"]
             },
             {
               "type" : "expression",
@@ -5111,7 +4853,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_2"]
+              "value" : ["scalars", "tmp_1"]
             }
           ],
           "source_info" : {
@@ -5124,8 +4866,8 @@
       ]
     },
     {
-      "name" : "act_23",
-      "id" : 81,
+      "name" : "act_19",
+      "id" : 76,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5133,7 +4875,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_3"]
+              "value" : ["scalars", "tmp_5"]
             },
             {
               "type" : "expression",
@@ -5169,7 +4911,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_3"]
+              "value" : ["scalars", "tmp_5"]
             }
           ],
           "source_info" : {
@@ -5182,8 +4924,8 @@
       ]
     },
     {
-      "name" : "act_24",
-      "id" : 82,
+      "name" : "act_20",
+      "id" : 77,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5208,8 +4950,8 @@
       ]
     },
     {
-      "name" : "act_25",
-      "id" : 83,
+      "name" : "act_21",
+      "id" : 78,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5226,7 +4968,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 339,
+            "line" : 338,
             "column" : 16,
             "source_fragment" : "s_tag = hdr.vlan_tag.vlan_id"
           }
@@ -5245,7 +4987,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 340,
+            "line" : 339,
             "column" : 16,
             "source_fragment" : "c_tag = hdr.inner_vlan_tag.vlan_id"
           }
@@ -5253,8 +4995,8 @@
       ]
     },
     {
-      "name" : "act_26",
-      "id" : 84,
+      "name" : "act_22",
+      "id" : 79,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5266,12 +5008,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 344,
+            "line" : 343,
             "column" : 16,
             "source_fragment" : "s_tag = fmeta.vlan_id; ..."
           }
@@ -5285,12 +5027,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 345,
+            "line" : 344,
             "column" : 16,
             "source_fragment" : "c_tag = fmeta.inner_vlan_id; ..."
           }
@@ -5298,8 +5040,8 @@
       ]
     },
     {
-      "name" : "act_27",
-      "id" : 85,
+      "name" : "act_23",
+      "id" : 80,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5328,8 +5070,8 @@
       ]
     },
     {
-      "name" : "act_28",
-      "id" : 86,
+      "name" : "act_24",
+      "id" : 81,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5358,8 +5100,8 @@
       ]
     },
     {
-      "name" : "act_29",
-      "id" : 87,
+      "name" : "act_25",
+      "id" : 82,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5367,7 +5109,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_type28"]
+              "value" : ["scalars", "fabric_metadata_t._bng_type24"]
             },
             {
               "type" : "hexstr",
@@ -5376,7 +5118,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../header.p4",
-            "line" : 156,
+            "line" : 161,
             "column" : 37,
             "source_fragment" : "2w0x1; ..."
           }
@@ -5407,8 +5149,8 @@
       ]
     },
     {
-      "name" : "act_30",
-      "id" : 88,
+      "name" : "act_26",
+      "id" : 83,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5435,7 +5177,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 124,
+            "line" : 123,
             "column" : 12,
             "source_fragment" : "return"
           }
@@ -5443,8 +5185,8 @@
       ]
     },
     {
-      "name" : "act_31",
-      "id" : 89,
+      "name" : "act_27",
+      "id" : 84,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5456,12 +5198,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id25"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 129,
+            "line" : 128,
             "column" : 20,
             "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
           }
@@ -5469,8 +5211,8 @@
       ]
     },
     {
-      "name" : "act_32",
-      "id" : 90,
+      "name" : "act_28",
+      "id" : 85,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5482,12 +5224,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id25"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 137,
+            "line" : 136,
             "column" : 19,
             "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
           }
@@ -5495,8 +5237,8 @@
       ]
     },
     {
-      "name" : "act_33",
-      "id" : 91,
+      "name" : "act_29",
+      "id" : 86,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5546,7 +5288,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 110,
+            "line" : 109,
             "column" : 12,
             "source_fragment" : "hdr.ipv6.src_addr[127:64]"
           }
@@ -5554,8 +5296,8 @@
       ]
     },
     {
-      "name" : "act_34",
-      "id" : 92,
+      "name" : "act_30",
+      "id" : 87,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5584,8 +5326,8 @@
       ]
     },
     {
-      "name" : "act_35",
-      "id" : 93,
+      "name" : "act_31",
+      "id" : 88,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5614,8 +5356,8 @@
       ]
     },
     {
-      "name" : "act_36",
-      "id" : 94,
+      "name" : "act_32",
+      "id" : 89,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5627,16 +5369,16 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id25"]
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result31"]
+              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result27"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 236,
+            "line" : 235,
             "column" : 24,
             "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
           }
@@ -5644,8 +5386,8 @@
       ]
     },
     {
-      "name" : "act_37",
-      "id" : 95,
+      "name" : "act_33",
+      "id" : 90,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5657,16 +5399,16 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id25"]
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result31"]
+              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result27"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 239,
+            "line" : 238,
             "column" : 24,
             "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
           }
@@ -5674,8 +5416,8 @@
       ]
     },
     {
-      "name" : "act_38",
-      "id" : 96,
+      "name" : "act_34",
+      "id" : 91,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5687,16 +5429,16 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id25"]
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result31"]
+              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result27"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 248,
+            "line" : 247,
             "column" : 24,
             "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
           }
@@ -5704,8 +5446,8 @@
       ]
     },
     {
-      "name" : "act_39",
-      "id" : 97,
+      "name" : "act_35",
+      "id" : 92,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5717,16 +5459,16 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id25"]
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result31"]
+              "value" : ["scalars", "fabric_metadata_t._bng_ds_meter_result27"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 251,
+            "line" : 250,
             "column" : 24,
             "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
           }
@@ -5735,43 +5477,43 @@
     },
     {
       "name" : "nop",
+      "id" : 93,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 94,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 95,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 96,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "NoAction",
+      "id" : 97,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "NoAction",
       "id" : 98,
       "runtime_data" : [],
       "primitives" : []
     },
     {
-      "name" : "nop",
-      "id" : 99,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "nop",
-      "id" : 100,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "nop",
-      "id" : 101,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "NoAction",
-      "id" : 102,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "NoAction",
-      "id" : 103,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricEgress.spgw_egress.gtpu_encap",
-      "id" : 104,
+      "id" : 99,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5822,7 +5564,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 125,
+            "line" : 129,
             "column" : 28,
             "source_fragment" : "5; ..."
           }
@@ -5978,7 +5720,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 138,
+            "line" : 142,
             "column" : 32,
             "source_fragment" : "64; ..."
           }
@@ -5997,7 +5739,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 122,
+            "line" : 126,
             "column" : 25,
             "source_fragment" : "17; ..."
           }
@@ -6011,7 +5753,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr26"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr22"]
             }
           ],
           "source_info" : {
@@ -6030,7 +5772,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr27"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr23"]
             }
           ],
           "source_info" : {
@@ -6131,7 +5873,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len24"]
+                        "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -6330,7 +6072,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len24"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
             }
           ],
           "source_info" : {
@@ -6349,7 +6091,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_teid25"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_teid21"]
             }
           ],
           "source_info" : {
@@ -6363,7 +6105,7 @@
     },
     {
       "name" : "FabricEgress.bng_egress.downstream.encap_v4",
-      "id" : 105,
+      "id" : 100,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6371,7 +6113,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["inner_vlan_tag", "eth_type"]
+              "value" : ["eth_type", "value"]
             },
             {
               "type" : "hexstr",
@@ -6380,7 +6122,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 114,
+            "line" : 118,
             "column" : 33,
             "source_fragment" : "0x8864; ..."
           }
@@ -6395,7 +6137,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 271,
+            "line" : 270,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.setValid()"
           }
@@ -6414,7 +6156,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 272,
+            "line" : 271,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.version = 4w1"
           }
@@ -6433,7 +6175,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 273,
+            "line" : 272,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.type_id = 4w1"
           }
@@ -6452,7 +6194,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 274,
+            "line" : 273,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.code = 8w0"
           }
@@ -6466,12 +6208,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id30"]
+              "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id26"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 275,
+            "line" : 274,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.session_id = fmeta.bng.pppoe_session_id; ..."
           }
@@ -6485,12 +6227,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id25"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 276,
+            "line" : 275,
             "column" : 8,
             "source_fragment" : "c_line_tx.count(fmeta.bng.line_id)"
           }
@@ -6532,7 +6274,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 281,
+            "line" : 280,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.length = hdr.ipv4.total_len + 16w2"
           }
@@ -6551,7 +6293,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 116,
+            "line" : 120,
             "column" : 35,
             "source_fragment" : "0x0021; ..."
           }
@@ -6560,7 +6302,7 @@
     },
     {
       "name" : "FabricEgress.bng_egress.downstream.encap_v6",
-      "id" : 106,
+      "id" : 101,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6568,7 +6310,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["inner_vlan_tag", "eth_type"]
+              "value" : ["eth_type", "value"]
             },
             {
               "type" : "hexstr",
@@ -6577,7 +6319,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 114,
+            "line" : 118,
             "column" : 33,
             "source_fragment" : "0x8864; ..."
           }
@@ -6592,7 +6334,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 271,
+            "line" : 270,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.setValid()"
           }
@@ -6611,7 +6353,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 272,
+            "line" : 271,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.version = 4w1"
           }
@@ -6630,7 +6372,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 273,
+            "line" : 272,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.type_id = 4w1"
           }
@@ -6649,7 +6391,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 274,
+            "line" : 273,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.code = 8w0"
           }
@@ -6663,12 +6405,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id30"]
+              "value" : ["scalars", "fabric_metadata_t._bng_pppoe_session_id26"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 275,
+            "line" : 274,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.session_id = fmeta.bng.pppoe_session_id; ..."
           }
@@ -6682,12 +6424,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._bng_line_id29"]
+              "value" : ["scalars", "fabric_metadata_t._bng_line_id25"]
             }
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 276,
+            "line" : 275,
             "column" : 8,
             "source_fragment" : "c_line_tx.count(fmeta.bng.line_id)"
           }
@@ -6729,7 +6471,7 @@
           ],
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 288,
+            "line" : 287,
             "column" : 8,
             "source_fragment" : "hdr.pppoe.length = hdr.ipv6.payload_len + 16w42"
           }
@@ -6748,7 +6490,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 117,
+            "line" : 121,
             "column" : 35,
             "source_fragment" : "0x0057; ..."
           }
@@ -6757,7 +6499,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_source.int_source_dscp",
-      "id" : 107,
+      "id" : 102,
       "runtime_data" : [
         {
           "name" : "max_hop",
@@ -6825,7 +6567,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 153,
+            "line" : 157,
             "column" : 36,
             "source_fragment" : "4; ..."
           }
@@ -7116,7 +6858,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._l4_dport22"]
+              "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
             }
           ],
           "source_info" : {
@@ -7243,7 +6985,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 149,
+            "line" : 153,
             "column" : 24,
             "source_fragment" : "0x1; ..."
           }
@@ -7252,7 +6994,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.init_metadata",
-      "id" : 108,
+      "id" : 103,
       "runtime_data" : [
         {
           "name" : "switch_id",
@@ -7265,7 +7007,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_transit33"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_transit29"]
             },
             {
               "type" : "expression",
@@ -7294,7 +7036,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id31"]
             },
             {
               "type" : "runtime_data",
@@ -7312,13 +7054,13 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0",
-      "id" : 109,
+      "id" : 104,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1",
-      "id" : 110,
+      "id" : 105,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7392,7 +7134,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -7406,7 +7148,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -7434,7 +7176,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -7448,7 +7190,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -7475,7 +7217,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2",
-      "id" : 111,
+      "id" : 106,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7517,7 +7259,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -7531,7 +7273,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -7559,7 +7301,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -7573,7 +7315,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -7600,7 +7342,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3",
-      "id" : 112,
+      "id" : 107,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7708,7 +7450,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -7722,7 +7464,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -7750,7 +7492,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -7764,7 +7506,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -7791,7 +7533,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4",
-      "id" : 113,
+      "id" : 108,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7878,7 +7620,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -7892,7 +7634,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -7920,7 +7662,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -7934,7 +7676,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -7961,7 +7703,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5",
-      "id" : 114,
+      "id" : 109,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8114,7 +7856,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -8128,7 +7870,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8156,7 +7898,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -8170,7 +7912,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8197,7 +7939,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6",
-      "id" : 115,
+      "id" : 110,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8318,7 +8060,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -8332,7 +8074,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8360,7 +8102,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -8374,7 +8116,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8401,7 +8143,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7",
-      "id" : 116,
+      "id" : 111,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8588,7 +8330,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -8602,7 +8344,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8630,7 +8372,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -8644,7 +8386,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8671,7 +8413,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8",
-      "id" : 117,
+      "id" : 112,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8698,7 +8440,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id31"]
             }
           ],
           "source_info" : {
@@ -8713,7 +8455,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -8727,7 +8469,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8755,7 +8497,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -8769,7 +8511,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8796,7 +8538,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9",
-      "id" : 118,
+      "id" : 113,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8889,7 +8631,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id31"]
             }
           ],
           "source_info" : {
@@ -8904,7 +8646,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -8918,7 +8660,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8946,7 +8688,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -8960,7 +8702,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8987,7 +8729,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10",
-      "id" : 119,
+      "id" : 114,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9048,7 +8790,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id31"]
             }
           ],
           "source_info" : {
@@ -9063,7 +8805,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -9077,7 +8819,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9105,7 +8847,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -9119,7 +8861,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9146,7 +8888,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11",
-      "id" : 120,
+      "id" : 115,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9273,7 +9015,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id31"]
             }
           ],
           "source_info" : {
@@ -9288,7 +9030,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -9302,7 +9044,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9330,7 +9072,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -9344,7 +9086,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9371,7 +9113,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12",
-      "id" : 121,
+      "id" : 116,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9477,7 +9219,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id31"]
             }
           ],
           "source_info" : {
@@ -9492,7 +9234,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -9506,7 +9248,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9534,7 +9276,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -9548,7 +9290,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9575,7 +9317,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13",
-      "id" : 122,
+      "id" : 117,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9747,7 +9489,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id31"]
             }
           ],
           "source_info" : {
@@ -9762,7 +9504,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -9776,7 +9518,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9804,7 +9546,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -9818,7 +9560,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9845,7 +9587,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14",
-      "id" : 123,
+      "id" : 118,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9985,7 +9727,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id31"]
             }
           ],
           "source_info" : {
@@ -10000,7 +9742,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -10014,7 +9756,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10042,7 +9784,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -10056,7 +9798,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10083,7 +9825,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15",
-      "id" : 124,
+      "id" : 119,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10289,7 +10031,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id35"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id31"]
             }
           ],
           "source_info" : {
@@ -10304,7 +10046,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -10318,7 +10060,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10346,7 +10088,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -10360,7 +10102,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10387,13 +10129,13 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0",
-      "id" : 125,
+      "id" : 120,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1",
-      "id" : 126,
+      "id" : 121,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10435,7 +10177,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -10449,7 +10191,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10477,7 +10219,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -10491,7 +10233,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10518,7 +10260,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2",
-      "id" : 127,
+      "id" : 122,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10579,7 +10321,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -10593,7 +10335,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10621,7 +10363,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -10635,7 +10377,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10662,7 +10404,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3",
-      "id" : 128,
+      "id" : 123,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10757,7 +10499,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -10771,7 +10513,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10799,7 +10541,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -10813,7 +10555,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10840,7 +10582,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4",
-      "id" : 129,
+      "id" : 124,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10905,7 +10647,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -10919,7 +10661,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10947,7 +10689,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -10961,7 +10703,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10988,7 +10730,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5",
-      "id" : 130,
+      "id" : 125,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11087,7 +10829,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -11101,7 +10843,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11129,7 +10871,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -11143,7 +10885,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11170,7 +10912,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6",
-      "id" : 131,
+      "id" : 126,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11288,7 +11030,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -11302,7 +11044,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11330,7 +11072,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -11344,7 +11086,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11371,7 +11113,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7",
-      "id" : 132,
+      "id" : 127,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11523,7 +11265,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -11537,7 +11279,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11565,7 +11307,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -11579,7 +11321,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11606,7 +11348,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8",
-      "id" : 133,
+      "id" : 128,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11648,7 +11390,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -11662,7 +11404,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11690,7 +11432,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -11704,7 +11446,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11731,7 +11473,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9",
-      "id" : 134,
+      "id" : 129,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11807,7 +11549,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -11821,7 +11563,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11849,7 +11591,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -11863,7 +11605,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -11890,7 +11632,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10",
-      "id" : 135,
+      "id" : 130,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11985,7 +11727,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -11999,7 +11741,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12027,7 +11769,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -12041,7 +11783,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12068,7 +11810,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11",
-      "id" : 136,
+      "id" : 131,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -12197,7 +11939,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -12211,7 +11953,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12239,7 +11981,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -12253,7 +11995,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12280,7 +12022,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12",
-      "id" : 137,
+      "id" : 132,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -12379,7 +12121,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -12393,7 +12135,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12421,7 +12163,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -12435,7 +12177,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12462,7 +12204,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13",
-      "id" : 138,
+      "id" : 133,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -12595,7 +12337,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -12609,7 +12351,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12637,7 +12379,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -12651,7 +12393,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12678,7 +12420,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14",
-      "id" : 139,
+      "id" : 134,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -12830,7 +12572,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -12844,7 +12586,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12872,7 +12614,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -12886,7 +12628,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -12913,7 +12655,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15",
-      "id" : 140,
+      "id" : 135,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13099,7 +12841,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
             },
             {
               "type" : "expression",
@@ -13113,7 +12855,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -13141,7 +12883,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
             },
             {
               "type" : "expression",
@@ -13155,7 +12897,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -13182,7 +12924,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_report.do_report_encapsulation",
-      "id" : 141,
+      "id" : 136,
       "runtime_data" : [
         {
           "name" : "src_mac",
@@ -13264,7 +13006,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["report_ethernet", "eth_type"]
+              "value" : ["report_eth_type", "value"]
             },
             {
               "type" : "hexstr",
@@ -13273,7 +13015,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 110,
+            "line" : 114,
             "column" : 31,
             "source_fragment" : "0x0800; ..."
           }
@@ -13501,7 +13243,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 122,
+            "line" : 126,
             "column" : 25,
             "source_fragment" : "17; ..."
           }
@@ -13687,7 +13429,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 159,
+            "line" : 163,
             "column" : 31,
             "source_fragment" : "0; ..."
           }
@@ -13782,7 +13524,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 163,
+            "line" : 167,
             "column" : 21,
             "source_fragment" : "1; ..."
           }
@@ -13829,7 +13571,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_sink.restore_header",
-      "id" : 142,
+      "id" : 137,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13874,7 +13616,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_sink.int_sink",
-      "id" : 143,
+      "id" : 138,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14205,7 +13947,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.pop_mpls_if_present",
-      "id" : 144,
+      "id" : 139,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14218,7 +13960,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 264,
+            "line" : 266,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setInvalid()"
           }
@@ -14228,25 +13970,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" : 145,
+      "id" : 140,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14259,7 +14001,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 271,
+            "line" : 273,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
           }
@@ -14273,12 +14015,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label12"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
             }
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 272,
+            "line" : 274,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label; ..."
           }
@@ -14297,7 +14039,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 273,
+            "line" : 275,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = 3w0"
           }
@@ -14316,7 +14058,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 274,
+            "line" : 276,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
           }
@@ -14330,12 +14072,12 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_ttl13"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
             }
           ],
           "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. ..."
           }
@@ -14345,7 +14087,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+              "value" : ["eth_type", "value"]
             },
             {
               "type" : "hexstr",
@@ -14354,7 +14096,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 108,
+            "line" : 112,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
           }
@@ -14363,7 +14105,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.push_vlan",
-      "id" : 146,
+      "id" : 141,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14376,7 +14118,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 283,
+            "line" : 285,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setValid()"
           }
@@ -14390,12 +14132,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; ..."
           }
@@ -14409,12 +14151,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; ..."
           }
@@ -14427,15 +14169,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; ..."
           }
         },
         {
@@ -14447,40 +14189,21 @@
             },
             {
               "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.push_vlan",
-      "id" : 147,
+      "id" : 142,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14493,7 +14216,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 283,
+            "line" : 285,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setValid()"
           }
@@ -14507,12 +14230,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; ..."
           }
@@ -14526,12 +14249,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; ..."
           }
@@ -14544,15 +14267,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; ..."
           }
         },
         {
@@ -14564,40 +14287,21 @@
             },
             {
               "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.push_inner_vlan",
-      "id" : 148,
+      "id" : 143,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14624,7 +14328,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi11"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_cfi7"]
             }
           ],
           "source_info" : {
@@ -14643,7 +14347,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri10"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_pri6"]
             }
           ],
           "source_info" : {
@@ -14662,7 +14366,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id9"]
+              "value" : ["scalars", "fabric_metadata_t._inner_vlan_id5"]
             }
           ],
           "source_info" : {
@@ -14680,15 +14384,15 @@
               "value" : ["inner_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" : 300,
-            "column" : 8,
-            "source_fragment" : "hdr.inner_vlan_tag.eth_type = fabric_metadata.last_eth_type; ..."
+            "filename" : "include/control/../define.p4",
+            "line" : 111,
+            "column" : 31,
+            "source_fragment" : "0x8100; ..."
           }
         },
         {
@@ -14705,57 +14409,19 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 107,
+            "line" : 111,
             "column" : 31,
             "source_fragment" : "0x8100; ..."
           }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["ethernet", "eth_type"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x88a8"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 105,
-            "column" : 31,
-            "source_fragment" : "0x88A8; ..."
-          }
         }
       ]
     },
     {
       "name" : "FabricEgress.egress_next.pop_vlan",
-      "id" : 149,
+      "id" : 144,
       "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" : [
             {
@@ -14765,7 +14431,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 314,
+            "line" : 312,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
           }
@@ -14773,8 +14439,8 @@
       ]
     },
     {
-      "name" : "act_40",
-      "id" : 150,
+      "name" : "act_36",
+      "id" : 145,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14790,8 +14456,8 @@
       ]
     },
     {
-      "name" : "act_41",
-      "id" : 151,
+      "name" : "act_37",
+      "id" : 146,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14841,8 +14507,8 @@
       ]
     },
     {
-      "name" : "act_42",
-      "id" : 152,
+      "name" : "act_38",
+      "id" : 147,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14855,7 +14521,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 333,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -14863,8 +14529,8 @@
       ]
     },
     {
-      "name" : "act_43",
-      "id" : 153,
+      "name" : "act_39",
+      "id" : 148,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14893,8 +14559,8 @@
       ]
     },
     {
-      "name" : "act_44",
-      "id" : 154,
+      "name" : "act_40",
+      "id" : 149,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14923,8 +14589,8 @@
       ]
     },
     {
-      "name" : "act_45",
-      "id" : 155,
+      "name" : "act_41",
+      "id" : 150,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14937,7 +14603,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 351,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
           }
@@ -14945,8 +14611,8 @@
       ]
     },
     {
-      "name" : "act_46",
-      "id" : 156,
+      "name" : "act_42",
+      "id" : 151,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14959,7 +14625,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -14967,8 +14633,8 @@
       ]
     },
     {
-      "name" : "act_47",
-      "id" : 157,
+      "name" : "act_43",
+      "id" : 152,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15008,7 +14674,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 367,
+            "line" : 365,
             "column" : 12,
             "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
           }
@@ -15016,8 +14682,8 @@
       ]
     },
     {
-      "name" : "act_48",
-      "id" : 158,
+      "name" : "act_44",
+      "id" : 153,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15030,7 +14696,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -15038,8 +14704,8 @@
       ]
     },
     {
-      "name" : "act_49",
-      "id" : 159,
+      "name" : "act_45",
+      "id" : 154,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15079,7 +14745,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 371,
+            "line" : 369,
             "column" : 16,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
           }
@@ -15087,8 +14753,8 @@
       ]
     },
     {
-      "name" : "act_50",
-      "id" : 160,
+      "name" : "act_46",
+      "id" : 155,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15101,7 +14767,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 377,
+            "line" : 375,
             "column" : 45,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -15109,8 +14775,8 @@
       ]
     },
     {
-      "name" : "act_51",
-      "id" : 161,
+      "name" : "act_47",
+      "id" : 156,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15150,7 +14816,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 376,
+            "line" : 374,
             "column" : 16,
             "source_fragment" : "hdr.ipv6.hop_limit = hdr.ipv6.hop_limit - 1"
           }
@@ -15158,8 +14824,8 @@
       ]
     },
     {
-      "name" : "act_52",
-      "id" : 162,
+      "name" : "act_48",
+      "id" : 157,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15188,8 +14854,8 @@
       ]
     },
     {
-      "name" : "act_53",
-      "id" : 163,
+      "name" : "act_49",
+      "id" : 158,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15224,8 +14890,8 @@
       ]
     },
     {
-      "name" : "act_54",
-      "id" : 164,
+      "name" : "act_50",
+      "id" : 159,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15251,7 +14917,7 @@
                       },
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       }
                     }
                   },
@@ -15273,8 +14939,8 @@
       ]
     },
     {
-      "name" : "act_55",
-      "id" : 165,
+      "name" : "act_51",
+      "id" : 160,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15322,8 +14988,8 @@
       ]
     },
     {
-      "name" : "act_56",
-      "id" : 166,
+      "name" : "act_52",
+      "id" : 161,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15349,7 +15015,7 @@
                       },
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes37"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes33"]
                       }
                     }
                   },
@@ -15371,8 +15037,8 @@
       ]
     },
     {
-      "name" : "act_57",
-      "id" : 167,
+      "name" : "act_53",
+      "id" : 162,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15398,7 +15064,7 @@
                       },
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words36"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words32"]
                       }
                     }
                   },
@@ -15448,14 +15114,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [58],
+          "action_ids" : [57],
           "actions" : ["act_0"],
           "base_default_next" : "node_3",
           "next_tables" : {
             "act_0" : "node_3"
           },
           "default_entry" : {
-            "action_id" : 58,
+            "action_id" : 57,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15477,14 +15143,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [57],
+          "action_ids" : [56],
           "actions" : ["act"],
           "base_default_next" : "node_5",
           "next_tables" : {
             "act" : "node_5"
           },
           "default_entry" : {
-            "action_id" : 57,
+            "action_id" : 56,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15506,14 +15172,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [61],
+          "action_ids" : [60],
           "actions" : ["act_3"],
           "base_default_next" : "node_7",
           "next_tables" : {
             "act_3" : "node_7"
           },
           "default_entry" : {
-            "action_id" : 61,
+            "action_id" : 60,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15535,14 +15201,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [59],
+          "action_ids" : [58],
           "actions" : ["act_1"],
           "base_default_next" : "node_10",
           "next_tables" : {
             "act_1" : "node_10"
           },
           "default_entry" : {
-            "action_id" : 59,
+            "action_id" : 58,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15564,14 +15230,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [60],
+          "action_ids" : [59],
           "actions" : ["act_2"],
           "base_default_next" : "node_10",
           "next_tables" : {
             "act_2" : "node_10"
           },
           "default_entry" : {
-            "action_id" : 60,
+            "action_id" : 59,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15593,14 +15259,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [62],
+          "action_ids" : [61],
           "actions" : ["act_4"],
           "base_default_next" : "node_12",
           "next_tables" : {
             "act_4" : "node_12"
           },
           "default_entry" : {
-            "action_id" : 62,
+            "action_id" : 61,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15611,7 +15277,7 @@
           "id" : 6,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 110,
+            "line" : 109,
             "column" : 36,
             "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
           },
@@ -15622,14 +15288,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [63],
+          "action_ids" : [62],
           "actions" : ["act_5"],
           "base_default_next" : "node_14",
           "next_tables" : {
             "act_5" : "node_14"
           },
           "default_entry" : {
-            "action_id" : 63,
+            "action_id" : 62,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15640,7 +15306,7 @@
           "id" : 7,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 116,
+            "line" : 115,
             "column" : 42,
             "source_fragment" : "= hdr.inner_vlan_tag.vlan_id; ..."
           },
@@ -15651,14 +15317,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [64],
+          "action_ids" : [63],
           "actions" : ["act_6"],
           "base_default_next" : "node_16",
           "next_tables" : {
             "act_6" : "node_16"
           },
           "default_entry" : {
-            "action_id" : 64,
+            "action_id" : 63,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15669,7 +15335,7 @@
           "id" : 8,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 126,
+            "line" : 125,
             "column" : 37,
             "source_fragment" : "="
           },
@@ -15680,130 +15346,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [65],
+          "action_ids" : [64],
           "actions" : ["act_7"],
-          "base_default_next" : "node_18",
-          "next_tables" : {
-            "act_7" : "node_18"
-          },
-          "default_entry" : {
-            "action_id" : 65,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_8",
-          "id" : 9,
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 131,
-            "column" : 42,
-            "source_fragment" : "="
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [66],
-          "actions" : ["act_8"],
           "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
           "next_tables" : {
-            "act_8" : "FabricIngress.filtering.ingress_port_vlan"
+            "act_7" : "FabricIngress.filtering.ingress_port_vlan"
           },
           "default_entry" : {
-            "action_id" : 66,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_9",
-          "id" : 10,
-          "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" : [67],
-          "actions" : ["act_9"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_9" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 67,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_10",
-          "id" : 11,
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 139,
-            "column" : 50,
-            "source_fragment" : "="
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [68],
-          "actions" : ["act_10"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_10" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 68,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_11",
-          "id" : 12,
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 141,
-            "column" : 46,
-            "source_fragment" : "="
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [69],
-          "actions" : ["act_11"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_11" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 69,
+            "action_id" : 64,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15811,7 +15361,7 @@
         },
         {
           "name" : "FabricIngress.filtering.ingress_port_vlan",
-          "id" : 13,
+          "id" : 9,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
             "line" : 53,
@@ -15850,7 +15400,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [32, 33, 34],
+          "action_ids" : [31, 32, 33],
           "actions" : ["FabricIngress.filtering.deny", "FabricIngress.filtering.permit", "FabricIngress.filtering.permit_with_internal_vlan"],
           "base_default_next" : "FabricIngress.filtering.fwd_classifier",
           "next_tables" : {
@@ -15859,7 +15409,7 @@
             "FabricIngress.filtering.permit_with_internal_vlan" : "FabricIngress.filtering.fwd_classifier"
           },
           "default_entry" : {
-            "action_id" : 32,
+            "action_id" : 31,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15867,7 +15417,7 @@
         },
         {
           "name" : "FabricIngress.filtering.fwd_classifier",
-          "id" : 14,
+          "id" : 10,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
             "line" : 90,
@@ -15888,21 +15438,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
             }
           ],
@@ -15912,22 +15456,22 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [35],
+          "action_ids" : [34],
           "actions" : ["FabricIngress.filtering.set_forwarding_type"],
-          "base_default_next" : "tbl_act_12",
+          "base_default_next" : "tbl_act_8",
           "next_tables" : {
-            "FabricIngress.filtering.set_forwarding_type" : "tbl_act_12"
+            "FabricIngress.filtering.set_forwarding_type" : "tbl_act_8"
           },
           "default_entry" : {
-            "action_id" : 35,
+            "action_id" : 34,
             "action_const" : true,
             "action_data" : ["0x0"],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_12",
-          "id" : 15,
+          "name" : "tbl_act_8",
+          "id" : 11,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -15935,14 +15479,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [78],
-          "actions" : ["act_20"],
-          "base_default_next" : "node_28",
+          "action_ids" : [73],
+          "actions" : ["act_16"],
+          "base_default_next" : "node_21",
           "next_tables" : {
-            "act_20" : "node_28"
+            "act_16" : "node_21"
           },
           "default_entry" : {
-            "action_id" : 78,
+            "action_id" : 73,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15950,7 +15494,7 @@
         },
         {
           "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
-          "id" : 16,
+          "id" : 12,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 83,
@@ -15975,8 +15519,8 @@
           "actions" : ["nop"],
           "base_default_next" : null,
           "next_tables" : {
-            "__HIT__" : "tbl_act_13",
-            "__MISS__" : "tbl_act_14"
+            "__HIT__" : "tbl_act_9",
+            "__MISS__" : "tbl_act_10"
           },
           "default_entry" : {
             "action_id" : 1,
@@ -15986,8 +15530,8 @@
           }
         },
         {
-          "name" : "tbl_act_13",
-          "id" : 17,
+          "name" : "tbl_act_9",
+          "id" : 13,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -15995,22 +15539,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [70],
-          "actions" : ["act_12"],
-          "base_default_next" : "node_32",
+          "action_ids" : [65],
+          "actions" : ["act_8"],
+          "base_default_next" : "node_25",
           "next_tables" : {
-            "act_12" : "node_32"
+            "act_8" : "node_25"
           },
           "default_entry" : {
-            "action_id" : 70,
+            "action_id" : 65,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_14",
-          "id" : 18,
+          "name" : "tbl_act_10",
+          "id" : 14,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -16018,22 +15562,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [71],
-          "actions" : ["act_13"],
-          "base_default_next" : "node_32",
+          "action_ids" : [66],
+          "actions" : ["act_9"],
+          "base_default_next" : "node_25",
           "next_tables" : {
-            "act_13" : "node_32"
+            "act_9" : "node_25"
           },
           "default_entry" : {
-            "action_id" : 71,
+            "action_id" : 66,
             "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" : 149,
@@ -16047,22 +15591,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [72],
-          "actions" : ["act_14"],
-          "base_default_next" : "tbl_act_16",
+          "action_ids" : [67],
+          "actions" : ["act_10"],
+          "base_default_next" : "tbl_act_12",
           "next_tables" : {
-            "act_14" : "tbl_act_16"
+            "act_10" : "tbl_act_12"
           },
           "default_entry" : {
-            "action_id" : 72,
+            "action_id" : 67,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_16",
-          "id" : 20,
+          "name" : "tbl_act_12",
+          "id" : 16,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 151,
@@ -16076,14 +15620,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [73],
-          "actions" : ["act_15"],
+          "action_ids" : [68],
+          "actions" : ["act_11"],
           "base_default_next" : "tbl_spgw_ingress_gtpu_decap",
           "next_tables" : {
-            "act_15" : "tbl_spgw_ingress_gtpu_decap"
+            "act_11" : "tbl_spgw_ingress_gtpu_decap"
           },
           "default_entry" : {
-            "action_id" : 73,
+            "action_id" : 68,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16091,7 +15635,7 @@
         },
         {
           "name" : "tbl_spgw_ingress_gtpu_decap",
-          "id" : 21,
+          "id" : 17,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 152,
@@ -16105,14 +15649,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [16],
+          "action_ids" : [15],
           "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
-          "base_default_next" : "node_42",
+          "base_default_next" : "node_35",
           "next_tables" : {
-            "FabricIngress.spgw_ingress.gtpu_decap" : "node_42"
+            "FabricIngress.spgw_ingress.gtpu_decap" : "node_35"
           },
           "default_entry" : {
-            "action_id" : 16,
+            "action_id" : 15,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16120,7 +15664,7 @@
         },
         {
           "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
-          "id" : 22,
+          "id" : 18,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 70,
@@ -16141,12 +15685,12 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [17, 0],
+          "action_ids" : [16, 0],
           "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "nop"],
           "base_default_next" : null,
           "next_tables" : {
-            "__HIT__" : "tbl_act_17",
-            "__MISS__" : "tbl_act_18"
+            "__HIT__" : "tbl_act_13",
+            "__MISS__" : "tbl_act_14"
           },
           "default_entry" : {
             "action_id" : 0,
@@ -16156,8 +15700,8 @@
           }
         },
         {
-          "name" : "tbl_act_17",
-          "id" : 23,
+          "name" : "tbl_act_13",
+          "id" : 19,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -16165,22 +15709,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [74],
-          "actions" : ["act_16"],
-          "base_default_next" : "node_39",
+          "action_ids" : [69],
+          "actions" : ["act_12"],
+          "base_default_next" : "node_32",
           "next_tables" : {
-            "act_16" : "node_39"
+            "act_12" : "node_32"
           },
           "default_entry" : {
-            "action_id" : 74,
+            "action_id" : 69,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_18",
-          "id" : 24,
+          "name" : "tbl_act_14",
+          "id" : 20,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -16188,22 +15732,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [75],
-          "actions" : ["act_17"],
-          "base_default_next" : "node_39",
+          "action_ids" : [70],
+          "actions" : ["act_13"],
+          "base_default_next" : "node_32",
           "next_tables" : {
-            "act_17" : "node_39"
+            "act_13" : "node_32"
           },
           "default_entry" : {
-            "action_id" : 75,
+            "action_id" : 70,
             "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" : 154,
@@ -16217,22 +15761,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [76],
-          "actions" : ["act_18"],
-          "base_default_next" : "node_42",
+          "action_ids" : [71],
+          "actions" : ["act_14"],
+          "base_default_next" : "node_35",
           "next_tables" : {
-            "act_18" : "node_42"
+            "act_14" : "node_35"
           },
           "default_entry" : {
-            "action_id" : 76,
+            "action_id" : 71,
             "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" : 156,
@@ -16246,22 +15790,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [77],
-          "actions" : ["act_19"],
-          "base_default_next" : "node_42",
+          "action_ids" : [72],
+          "actions" : ["act_15"],
+          "base_default_next" : "node_35",
           "next_tables" : {
-            "act_19" : "node_42"
+            "act_15" : "node_35"
           },
           "default_entry" : {
-            "action_id" : 77,
+            "action_id" : 72,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_21",
-          "id" : 27,
+          "name" : "tbl_act_17",
+          "id" : 23,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 175,
@@ -16275,14 +15819,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [79],
-          "actions" : ["act_21"],
-          "base_default_next" : "node_44",
+          "action_ids" : [74],
+          "actions" : ["act_17"],
+          "base_default_next" : "node_37",
           "next_tables" : {
-            "act_21" : "node_44"
+            "act_17" : "node_37"
           },
           "default_entry" : {
-            "action_id" : 79,
+            "action_id" : 74,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16290,7 +15834,7 @@
         },
         {
           "name" : "FabricIngress.forwarding.bridging",
-          "id" : 28,
+          "id" : 24,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 46,
@@ -16301,7 +15845,7 @@
             {
               "match_type" : "exact",
               "name" : "vlan_id",
-              "target" : ["scalars", "fabric_metadata_t._vlan_id5"],
+              "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
               "mask" : null
             },
             {
@@ -16317,7 +15861,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [36, 7],
+          "action_ids" : [35, 6],
           "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "nop"],
           "base_default_next" : "FabricIngress.acl.acl",
           "next_tables" : {
@@ -16325,7 +15869,7 @@
             "nop" : "FabricIngress.acl.acl"
           },
           "default_entry" : {
-            "action_id" : 7,
+            "action_id" : 6,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16333,7 +15877,7 @@
         },
         {
           "name" : "FabricIngress.forwarding.mpls",
-          "id" : 29,
+          "id" : 25,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 71,
@@ -16344,7 +15888,7 @@
             {
               "match_type" : "exact",
               "name" : "mpls_label",
-              "target" : ["scalars", "fabric_metadata_t._mpls_label12"],
+              "target" : ["scalars", "fabric_metadata_t._mpls_label8"],
               "mask" : null
             }
           ],
@@ -16354,7 +15898,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [37, 8],
+          "action_ids" : [36, 7],
           "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "nop"],
           "base_default_next" : "FabricIngress.acl.acl",
           "next_tables" : {
@@ -16362,7 +15906,7 @@
             "nop" : "FabricIngress.acl.acl"
           },
           "default_entry" : {
-            "action_id" : 8,
+            "action_id" : 7,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16370,10 +15914,10 @@
         },
         {
           "name" : "FabricIngress.forwarding.routing_v4",
-          "id" : 30,
+          "id" : 26,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 101,
+            "line" : 108,
             "column" : 10,
             "source_fragment" : "routing_v4"
           },
@@ -16388,10 +15932,10 @@
           "match_type" : "lpm",
           "type" : "simple",
           "max_size" : 1024,
-          "with_counters" : true,
+          "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [38, 39, 9],
+          "action_ids" : [37, 38, 8],
           "actions" : ["FabricIngress.forwarding.set_next_id_routing_v4", "FabricIngress.forwarding.nop_routing_v4", "nop"],
           "base_default_next" : "FabricIngress.acl.acl",
           "next_tables" : {
@@ -16400,7 +15944,7 @@
             "nop" : "FabricIngress.acl.acl"
           },
           "default_entry" : {
-            "action_id" : 9,
+            "action_id" : 8,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16408,10 +15952,10 @@
         },
         {
           "name" : "FabricIngress.forwarding.routing_v6",
-          "id" : 31,
+          "id" : 27,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 126,
+            "line" : 135,
             "column" : 10,
             "source_fragment" : "routing_v6"
           },
@@ -16429,7 +15973,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [40, 10],
+          "action_ids" : [39, 9],
           "actions" : ["FabricIngress.forwarding.set_next_id_routing_v6", "nop"],
           "base_default_next" : "FabricIngress.acl.acl",
           "next_tables" : {
@@ -16437,7 +15981,7 @@
             "nop" : "FabricIngress.acl.acl"
           },
           "default_entry" : {
-            "action_id" : 10,
+            "action_id" : 9,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16445,7 +15989,7 @@
         },
         {
           "name" : "FabricIngress.acl.acl",
-          "id" : 32,
+          "id" : 28,
           "source_info" : {
             "filename" : "include/control/acl.p4",
             "line" : 60,
@@ -16462,19 +16006,19 @@
             {
               "match_type" : "ternary",
               "name" : "ip_proto",
-              "target" : ["scalars", "fabric_metadata_t._ip_proto20"],
+              "target" : ["scalars", "fabric_metadata_t._ip_proto16"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
               "name" : "l4_sport",
-              "target" : ["scalars", "fabric_metadata_t._l4_sport21"],
+              "target" : ["scalars", "fabric_metadata_t._l4_sport17"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
               "name" : "l4_dport",
-              "target" : ["scalars", "fabric_metadata_t._l4_dport22"],
+              "target" : ["scalars", "fabric_metadata_t._l4_dport18"],
               "mask" : null
             },
             {
@@ -16498,7 +16042,7 @@
             {
               "match_type" : "ternary",
               "name" : "eth_type",
-              "target" : ["scalars", "fabric_metadata_t._last_eth_type0"],
+              "target" : ["eth_type", "value"],
               "mask" : null
             },
             {
@@ -16532,18 +16076,18 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [41, 42, 43, 44, 45],
+          "action_ids" : [40, 41, 42, 43, 44],
           "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_54",
+          "base_default_next" : "node_47",
           "next_tables" : {
-            "FabricIngress.acl.set_next_id_acl" : "node_54",
-            "FabricIngress.acl.punt_to_cpu" : "node_54",
-            "FabricIngress.acl.set_clone_session_id" : "node_54",
-            "FabricIngress.acl.drop" : "node_54",
-            "FabricIngress.acl.nop_acl" : "node_54"
+            "FabricIngress.acl.set_next_id_acl" : "node_47",
+            "FabricIngress.acl.punt_to_cpu" : "node_47",
+            "FabricIngress.acl.set_clone_session_id" : "node_47",
+            "FabricIngress.acl.drop" : "node_47",
+            "FabricIngress.acl.nop_acl" : "node_47"
           },
           "default_entry" : {
-            "action_id" : 45,
+            "action_id" : 44,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16551,10 +16095,10 @@
         },
         {
           "name" : "FabricIngress.next.xconnect",
-          "id" : 33,
+          "id" : 29,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 116,
+            "line" : 115,
             "column" : 10,
             "source_fragment" : "xconnect"
           },
@@ -16568,7 +16112,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id17"],
+              "target" : ["scalars", "fabric_metadata_t._next_id13"],
               "mask" : null
             }
           ],
@@ -16578,7 +16122,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [48, 49, 12],
+          "action_ids" : [47, 48, 11],
           "actions" : ["FabricIngress.next.output_xconnect", "FabricIngress.next.set_next_id_xconnect", "nop"],
           "base_default_next" : "FabricIngress.next.simple",
           "next_tables" : {
@@ -16587,7 +16131,7 @@
             "nop" : "FabricIngress.next.simple"
           },
           "default_entry" : {
-            "action_id" : 12,
+            "action_id" : 11,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16595,10 +16139,10 @@
         },
         {
           "name" : "FabricIngress.next.simple",
-          "id" : 34,
+          "id" : 30,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 155,
+            "line" : 154,
             "column" : 10,
             "source_fragment" : "simple"
           },
@@ -16606,7 +16150,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id17"],
+              "target" : ["scalars", "fabric_metadata_t._next_id13"],
               "mask" : null
             }
           ],
@@ -16616,7 +16160,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [50, 51, 52, 13],
+          "action_ids" : [49, 50, 51, 12],
           "actions" : ["FabricIngress.next.output_simple", "FabricIngress.next.routing_simple", "FabricIngress.next.mpls_routing_simple", "nop"],
           "base_default_next" : "FabricIngress.next.hashed",
           "next_tables" : {
@@ -16626,7 +16170,7 @@
             "nop" : "FabricIngress.next.hashed"
           },
           "default_entry" : {
-            "action_id" : 13,
+            "action_id" : 12,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16634,10 +16178,10 @@
         },
         {
           "name" : "FabricIngress.next.hashed",
-          "id" : 35,
+          "id" : 31,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 196,
+            "line" : 198,
             "column" : 10,
             "source_fragment" : "hashed"
           },
@@ -16645,7 +16189,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id17"],
+              "target" : ["scalars", "fabric_metadata_t._next_id13"],
               "mask" : null
             }
           ],
@@ -16656,7 +16200,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [53, 54, 55, 14],
+          "action_ids" : [52, 53, 54, 13],
           "actions" : ["FabricIngress.next.output_hashed", "FabricIngress.next.routing_hashed", "FabricIngress.next.mpls_routing_hashed", "nop"],
           "base_default_next" : "FabricIngress.next.multicast",
           "next_tables" : {
@@ -16668,10 +16212,10 @@
         },
         {
           "name" : "FabricIngress.next.multicast",
-          "id" : 36,
+          "id" : 32,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 230,
+            "line" : 232,
             "column" : 10,
             "source_fragment" : "multicast"
           },
@@ -16679,7 +16223,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id17"],
+              "target" : ["scalars", "fabric_metadata_t._next_id13"],
               "mask" : null
             }
           ],
@@ -16689,7 +16233,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [56, 15],
+          "action_ids" : [55, 14],
           "actions" : ["FabricIngress.next.set_mcast_group_id", "nop"],
           "base_default_next" : "FabricIngress.next.next_vlan",
           "next_tables" : {
@@ -16697,7 +16241,7 @@
             "nop" : "FabricIngress.next.next_vlan"
           },
           "default_entry" : {
-            "action_id" : 15,
+            "action_id" : 14,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16705,7 +16249,7 @@
         },
         {
           "name" : "FabricIngress.next.next_vlan",
-          "id" : 37,
+          "id" : 33,
           "source_info" : {
             "filename" : "include/control/next.p4",
             "line" : 82,
@@ -16716,7 +16260,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id17"],
+              "target" : ["scalars", "fabric_metadata_t._next_id13"],
               "mask" : null
             }
           ],
@@ -16726,24 +16270,24 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [46, 47, 11],
+          "action_ids" : [45, 46, 10],
           "actions" : ["FabricIngress.next.set_vlan", "FabricIngress.next.set_double_vlan", "nop"],
-          "base_default_next" : "node_60",
+          "base_default_next" : "node_53",
           "next_tables" : {
-            "FabricIngress.next.set_vlan" : "node_60",
-            "FabricIngress.next.set_double_vlan" : "node_60",
-            "nop" : "node_60"
+            "FabricIngress.next.set_vlan" : "node_53",
+            "FabricIngress.next.set_double_vlan" : "node_53",
+            "nop" : "node_53"
           },
           "default_entry" : {
-            "action_id" : 11,
+            "action_id" : 10,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_22",
-          "id" : 38,
+          "name" : "tbl_act_18",
+          "id" : 34,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 31,
@@ -16757,22 +16301,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [80],
-          "actions" : ["act_22"],
-          "base_default_next" : "node_62",
+          "action_ids" : [75],
+          "actions" : ["act_18"],
+          "base_default_next" : "node_55",
           "next_tables" : {
-            "act_22" : "node_62"
+            "act_18" : "node_55"
           },
           "default_entry" : {
-            "action_id" : 80,
+            "action_id" : 75,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_23",
-          "id" : 39,
+          "name" : "tbl_act_19",
+          "id" : 35,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 34,
@@ -16786,14 +16330,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [81],
-          "actions" : ["act_23"],
+          "action_ids" : [76],
+          "actions" : ["act_19"],
           "base_default_next" : "FabricIngress.process_set_source_sink.tb_set_source",
           "next_tables" : {
-            "act_23" : "FabricIngress.process_set_source_sink.tb_set_source"
+            "act_19" : "FabricIngress.process_set_source_sink.tb_set_source"
           },
           "default_entry" : {
-            "action_id" : 81,
+            "action_id" : 76,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16801,7 +16345,7 @@
         },
         {
           "name" : "FabricIngress.process_set_source_sink.tb_set_source",
-          "id" : 40,
+          "id" : 36,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 46,
@@ -16822,7 +16366,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [18, 2],
+          "action_ids" : [17, 2],
           "actions" : ["FabricIngress.process_set_source_sink.int_set_source", "nop"],
           "base_default_next" : "FabricIngress.process_set_source_sink.tb_set_sink",
           "next_tables" : {
@@ -16838,7 +16382,7 @@
         },
         {
           "name" : "FabricIngress.process_set_source_sink.tb_set_sink",
-          "id" : 41,
+          "id" : 37,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 67,
@@ -16859,12 +16403,12 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [19, 3],
+          "action_ids" : [18, 3],
           "actions" : ["FabricIngress.process_set_source_sink.int_set_sink", "nop"],
-          "base_default_next" : "node_66",
+          "base_default_next" : "node_59",
           "next_tables" : {
-            "FabricIngress.process_set_source_sink.int_set_sink" : "node_66",
-            "nop" : "node_66"
+            "FabricIngress.process_set_source_sink.int_set_sink" : "node_59",
+            "nop" : "node_59"
           },
           "default_entry" : {
             "action_id" : 3,
@@ -16874,8 +16418,8 @@
           }
         },
         {
-          "name" : "tbl_act_24",
-          "id" : 42,
+          "name" : "tbl_act_20",
+          "id" : 38,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 89,
@@ -16889,25 +16433,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [82],
-          "actions" : ["act_24"],
-          "base_default_next" : "node_68",
+          "action_ids" : [77],
+          "actions" : ["act_20"],
+          "base_default_next" : "node_61",
           "next_tables" : {
-            "act_24" : "node_68"
+            "act_20" : "node_61"
           },
           "default_entry" : {
-            "action_id" : 82,
+            "action_id" : 77,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_25",
-          "id" : 43,
+          "name" : "tbl_act_21",
+          "id" : 39,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 339,
+            "line" : 338,
             "column" : 22,
             "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
           },
@@ -16918,25 +16462,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [83],
-          "actions" : ["act_25"],
+          "action_ids" : [78],
+          "actions" : ["act_21"],
           "base_default_next" : "FabricIngress.bng_ingress.t_line_map",
           "next_tables" : {
-            "act_25" : "FabricIngress.bng_ingress.t_line_map"
+            "act_21" : "FabricIngress.bng_ingress.t_line_map"
           },
           "default_entry" : {
-            "action_id" : 83,
+            "action_id" : 78,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_26",
-          "id" : 44,
+          "name" : "tbl_act_22",
+          "id" : 40,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 344,
+            "line" : 343,
             "column" : 22,
             "source_fragment" : "= fmeta.vlan_id; ..."
           },
@@ -16947,14 +16491,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [84],
-          "actions" : ["act_26"],
+          "action_ids" : [79],
+          "actions" : ["act_22"],
           "base_default_next" : "FabricIngress.bng_ingress.t_line_map",
           "next_tables" : {
-            "act_26" : "FabricIngress.bng_ingress.t_line_map"
+            "act_22" : "FabricIngress.bng_ingress.t_line_map"
           },
           "default_entry" : {
-            "action_id" : 84,
+            "action_id" : 79,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16962,10 +16506,10 @@
         },
         {
           "name" : "FabricIngress.bng_ingress.t_line_map",
-          "id" : 45,
+          "id" : 41,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 324,
+            "line" : 323,
             "column" : 14,
             "source_fragment" : "t_line_map"
           },
@@ -16989,26 +16533,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [6, 31],
-          "actions" : ["nop", "FabricIngress.bng_ingress.set_line"],
-          "base_default_next" : "node_72",
+          "action_ids" : [30],
+          "actions" : ["FabricIngress.bng_ingress.set_line"],
+          "base_default_next" : "node_65",
           "next_tables" : {
-            "nop" : "node_72",
-            "FabricIngress.bng_ingress.set_line" : "node_72"
+            "FabricIngress.bng_ingress.set_line" : "node_65"
           },
           "default_entry" : {
-            "action_id" : 6,
+            "action_id" : 30,
             "action_const" : true,
-            "action_data" : [],
+            "action_data" : ["0x0"],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_27",
-          "id" : 46,
+          "name" : "tbl_act_23",
+          "id" : 42,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 353,
+            "line" : 352,
             "column" : 31,
             "source_fragment" : "="
           },
@@ -17019,14 +16562,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [87],
-          "actions" : ["act_29"],
+          "action_ids" : [82],
+          "actions" : ["act_25"],
           "base_default_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
           "next_tables" : {
-            "act_29" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp"
+            "act_25" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp"
           },
           "default_entry" : {
-            "action_id" : 87,
+            "action_id" : 82,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17034,7 +16577,7 @@
         },
         {
           "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_cp",
-          "id" : 47,
+          "id" : 43,
           "source_info" : {
             "filename" : "include/bng.p4",
             "line" : 48,
@@ -17061,12 +16604,12 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [20, 4],
+          "action_ids" : [19, 4],
           "actions" : ["FabricIngress.bng_ingress.upstream.punt_to_cpu", "nop"],
           "base_default_next" : null,
           "next_tables" : {
-            "__HIT__" : "tbl_act_28",
-            "__MISS__" : "tbl_act_29"
+            "__HIT__" : "tbl_act_24",
+            "__MISS__" : "tbl_act_25"
           },
           "default_entry" : {
             "action_id" : 4,
@@ -17076,8 +16619,8 @@
           }
         },
         {
-          "name" : "tbl_act_28",
-          "id" : 48,
+          "name" : "tbl_act_24",
+          "id" : 44,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -17085,22 +16628,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [85],
-          "actions" : ["act_27"],
-          "base_default_next" : "node_77",
+          "action_ids" : [80],
+          "actions" : ["act_23"],
+          "base_default_next" : "node_70",
           "next_tables" : {
-            "act_27" : "node_77"
+            "act_23" : "node_70"
           },
           "default_entry" : {
-            "action_id" : 85,
+            "action_id" : 80,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_29",
-          "id" : 49,
+          "name" : "tbl_act_25",
+          "id" : 45,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -17108,25 +16651,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [86],
-          "actions" : ["act_28"],
-          "base_default_next" : "node_77",
+          "action_ids" : [81],
+          "actions" : ["act_24"],
+          "base_default_next" : "node_70",
           "next_tables" : {
-            "act_28" : "node_77"
+            "act_24" : "node_70"
           },
           "default_entry" : {
-            "action_id" : 86,
+            "action_id" : 81,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_30",
-          "id" : 50,
+          "name" : "tbl_act_26",
+          "id" : 46,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 124,
+            "line" : 123,
             "column" : 12,
             "source_fragment" : "return"
           },
@@ -17137,14 +16680,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [88],
-          "actions" : ["act_30"],
-          "base_default_next" : "node_79",
+          "action_ids" : [83],
+          "actions" : ["act_26"],
+          "base_default_next" : "node_72",
           "next_tables" : {
-            "act_30" : "node_79"
+            "act_26" : "node_72"
           },
           "default_entry" : {
-            "action_id" : 88,
+            "action_id" : 83,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17152,10 +16695,10 @@
         },
         {
           "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4",
-          "id" : 51,
+          "id" : 47,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 85,
+            "line" : 84,
             "column" : 10,
             "source_fragment" : "t_pppoe_term_v4"
           },
@@ -17163,7 +16706,7 @@
             {
               "match_type" : "exact",
               "name" : "line_id",
-              "target" : ["scalars", "fabric_metadata_t._bng_line_id29"],
+              "target" : ["scalars", "fabric_metadata_t._bng_line_id25"],
               "mask" : null
             },
             {
@@ -17185,26 +16728,26 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [23, 21],
+          "action_ids" : [22, 20],
           "actions" : ["FabricIngress.bng_ingress.upstream.term_enabled_v4", "FabricIngress.bng_ingress.upstream.term_disabled"],
           "base_default_next" : null,
           "next_tables" : {
-            "FabricIngress.bng_ingress.upstream.term_disabled" : "tbl_act_31",
+            "FabricIngress.bng_ingress.upstream.term_disabled" : "tbl_act_27",
             "FabricIngress.bng_ingress.upstream.term_enabled_v4" : null
           },
           "default_entry" : {
-            "action_id" : 21,
+            "action_id" : 20,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_31",
-          "id" : 52,
+          "name" : "tbl_act_27",
+          "id" : 48,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 129,
+            "line" : 128,
             "column" : 20,
             "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
           },
@@ -17215,25 +16758,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [89],
-          "actions" : ["act_31"],
+          "action_ids" : [84],
+          "actions" : ["act_27"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_31" : null
+            "act_27" : null
           },
           "default_entry" : {
-            "action_id" : 89,
+            "action_id" : 84,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_32",
-          "id" : 53,
+          "name" : "tbl_act_28",
+          "id" : 49,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 110,
+            "line" : 109,
             "column" : 12,
             "source_fragment" : "hdr.ipv6.src_addr[127:64]"
           },
@@ -17244,14 +16787,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [91],
-          "actions" : ["act_33"],
+          "action_ids" : [86],
+          "actions" : ["act_29"],
           "base_default_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v6",
           "next_tables" : {
-            "act_33" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v6"
+            "act_29" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v6"
           },
           "default_entry" : {
-            "action_id" : 91,
+            "action_id" : 86,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17259,10 +16802,10 @@
         },
         {
           "name" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v6",
-          "id" : 54,
+          "id" : 50,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 107,
+            "line" : 106,
             "column" : 10,
             "source_fragment" : "t_pppoe_term_v6"
           },
@@ -17270,7 +16813,7 @@
             {
               "match_type" : "exact",
               "name" : "line_id",
-              "target" : ["scalars", "fabric_metadata_t._bng_line_id29"],
+              "target" : ["scalars", "fabric_metadata_t._bng_line_id25"],
               "mask" : null
             },
             {
@@ -17292,26 +16835,26 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [24, 22],
+          "action_ids" : [23, 21],
           "actions" : ["FabricIngress.bng_ingress.upstream.term_enabled_v6", "FabricIngress.bng_ingress.upstream.term_disabled"],
           "base_default_next" : null,
           "next_tables" : {
-            "FabricIngress.bng_ingress.upstream.term_disabled" : "tbl_act_33",
+            "FabricIngress.bng_ingress.upstream.term_disabled" : "tbl_act_29",
             "FabricIngress.bng_ingress.upstream.term_enabled_v6" : null
           },
           "default_entry" : {
-            "action_id" : 22,
+            "action_id" : 21,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_33",
-          "id" : 55,
+          "name" : "tbl_act_29",
+          "id" : 51,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 137,
+            "line" : 136,
             "column" : 19,
             "source_fragment" : "c_dropped.count(fmeta.bng.line_id)"
           },
@@ -17322,14 +16865,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [90],
-          "actions" : ["act_32"],
+          "action_ids" : [85],
+          "actions" : ["act_28"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_32" : null
+            "act_28" : null
           },
           "default_entry" : {
-            "action_id" : 90,
+            "action_id" : 85,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17337,10 +16880,10 @@
         },
         {
           "name" : "FabricIngress.bng_ingress.downstream.t_line_session_map",
-          "id" : 56,
+          "id" : 52,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 167,
+            "line" : 166,
             "column" : 10,
             "source_fragment" : "t_line_session_map"
           },
@@ -17348,7 +16891,7 @@
             {
               "match_type" : "exact",
               "name" : "line_id",
-              "target" : ["scalars", "fabric_metadata_t._bng_line_id29"],
+              "target" : ["scalars", "fabric_metadata_t._bng_line_id25"],
               "mask" : null
             }
           ],
@@ -17358,12 +16901,12 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [5, 25, 26],
+          "action_ids" : [5, 24, 25],
           "actions" : ["nop", "FabricIngress.bng_ingress.downstream.set_session", "FabricIngress.bng_ingress.downstream.drop"],
           "base_default_next" : null,
           "next_tables" : {
-            "__HIT__" : "tbl_act_34",
-            "__MISS__" : "tbl_act_35"
+            "__HIT__" : "tbl_act_30",
+            "__MISS__" : "tbl_act_31"
           },
           "default_entry" : {
             "action_id" : 5,
@@ -17373,8 +16916,8 @@
           }
         },
         {
-          "name" : "tbl_act_34",
-          "id" : 57,
+          "name" : "tbl_act_30",
+          "id" : 53,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -17382,22 +16925,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [92],
-          "actions" : ["act_34"],
-          "base_default_next" : "node_90",
+          "action_ids" : [87],
+          "actions" : ["act_30"],
+          "base_default_next" : "node_83",
           "next_tables" : {
-            "act_34" : "node_90"
+            "act_30" : "node_83"
           },
           "default_entry" : {
-            "action_id" : 92,
+            "action_id" : 87,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_35",
-          "id" : 58,
+          "name" : "tbl_act_31",
+          "id" : 54,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -17405,14 +16948,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [93],
-          "actions" : ["act_35"],
-          "base_default_next" : "node_90",
+          "action_ids" : [88],
+          "actions" : ["act_31"],
+          "base_default_next" : "node_83",
           "next_tables" : {
-            "act_35" : "node_90"
+            "act_31" : "node_83"
           },
           "default_entry" : {
-            "action_id" : 93,
+            "action_id" : 88,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17420,10 +16963,10 @@
         },
         {
           "name" : "FabricIngress.bng_ingress.downstream.t_qos_v4",
-          "id" : 59,
+          "id" : 55,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 192,
+            "line" : 191,
             "column" : 10,
             "source_fragment" : "t_qos_v4"
           },
@@ -17431,7 +16974,7 @@
             {
               "match_type" : "ternary",
               "name" : "line_id",
-              "target" : ["scalars", "fabric_metadata_t._bng_line_id29"],
+              "target" : ["scalars", "fabric_metadata_t._bng_line_id25"],
               "mask" : null
             },
             {
@@ -17459,26 +17002,26 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [27, 29],
+          "action_ids" : [26, 28],
           "actions" : ["FabricIngress.bng_ingress.downstream.qos_prio", "FabricIngress.bng_ingress.downstream.qos_besteff"],
           "base_default_next" : null,
           "next_tables" : {
-            "FabricIngress.bng_ingress.downstream.qos_prio" : "tbl_act_36",
-            "FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_act_37"
+            "FabricIngress.bng_ingress.downstream.qos_prio" : "tbl_act_32",
+            "FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_act_33"
           },
           "default_entry" : {
-            "action_id" : 29,
+            "action_id" : 28,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_36",
-          "id" : 60,
+          "name" : "tbl_act_32",
+          "id" : 56,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 236,
+            "line" : 235,
             "column" : 24,
             "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
           },
@@ -17489,25 +17032,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [94],
-          "actions" : ["act_36"],
+          "action_ids" : [89],
+          "actions" : ["act_32"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_36" : null
+            "act_32" : null
           },
           "default_entry" : {
-            "action_id" : 94,
+            "action_id" : 89,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_37",
-          "id" : 61,
+          "name" : "tbl_act_33",
+          "id" : 57,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 239,
+            "line" : 238,
             "column" : 24,
             "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
           },
@@ -17518,14 +17061,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [95],
-          "actions" : ["act_37"],
+          "action_ids" : [90],
+          "actions" : ["act_33"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_37" : null
+            "act_33" : null
           },
           "default_entry" : {
-            "action_id" : 95,
+            "action_id" : 90,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17533,10 +17076,10 @@
         },
         {
           "name" : "FabricIngress.bng_ingress.downstream.t_qos_v6",
-          "id" : 62,
+          "id" : 58,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 208,
+            "line" : 207,
             "column" : 10,
             "source_fragment" : "t_qos_v6"
           },
@@ -17544,7 +17087,7 @@
             {
               "match_type" : "ternary",
               "name" : "line_id",
-              "target" : ["scalars", "fabric_metadata_t._bng_line_id29"],
+              "target" : ["scalars", "fabric_metadata_t._bng_line_id25"],
               "mask" : null
             },
             {
@@ -17566,26 +17109,26 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [28, 30],
+          "action_ids" : [27, 29],
           "actions" : ["FabricIngress.bng_ingress.downstream.qos_prio", "FabricIngress.bng_ingress.downstream.qos_besteff"],
           "base_default_next" : null,
           "next_tables" : {
-            "FabricIngress.bng_ingress.downstream.qos_prio" : "tbl_act_38",
-            "FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_act_39"
+            "FabricIngress.bng_ingress.downstream.qos_prio" : "tbl_act_34",
+            "FabricIngress.bng_ingress.downstream.qos_besteff" : "tbl_act_35"
           },
           "default_entry" : {
-            "action_id" : 30,
+            "action_id" : 29,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_38",
-          "id" : 63,
+          "name" : "tbl_act_34",
+          "id" : 59,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 248,
+            "line" : 247,
             "column" : 24,
             "source_fragment" : "m_prio.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
           },
@@ -17596,25 +17139,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [96],
-          "actions" : ["act_38"],
+          "action_ids" : [91],
+          "actions" : ["act_34"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_38" : null
+            "act_34" : null
           },
           "default_entry" : {
-            "action_id" : 96,
+            "action_id" : 91,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_39",
-          "id" : 64,
+          "name" : "tbl_act_35",
+          "id" : 60,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 251,
+            "line" : 250,
             "column" : 24,
             "source_fragment" : "m_besteff.execute_meter(fmeta.bng.line_id, fmeta.bng.ds_meter_result)"
           },
@@ -17625,14 +17168,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [97],
-          "actions" : ["act_39"],
+          "action_ids" : [92],
+          "actions" : ["act_35"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_39" : null
+            "act_35" : null
           },
           "default_entry" : {
-            "action_id" : 97,
+            "action_id" : 92,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -17645,7 +17188,7 @@
           "id" : 0,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 177,
+            "line" : 179,
             "column" : 57,
             "source_fragment" : "hashed_selector"
           },
@@ -17663,15 +17206,15 @@
               },
               {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._ip_proto20"]
+                "value" : ["scalars", "fabric_metadata_t._ip_proto16"]
               },
               {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._l4_sport21"]
+                "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
               },
               {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._l4_dport22"]
+                "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
               }
             ]
           }
@@ -17783,7 +17326,7 @@
           "id" : 4,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 109,
+            "line" : 108,
             "column" : 12,
             "source_fragment" : "hdr.vlan_tag.isValid()"
           },
@@ -17806,7 +17349,7 @@
           "id" : 5,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 115,
+            "line" : 114,
             "column" : 12,
             "source_fragment" : "hdr.inner_vlan_tag.isValid()"
           },
@@ -17829,7 +17372,7 @@
           "id" : 6,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 121,
+            "line" : 120,
             "column" : 12,
             "source_fragment" : "!hdr.mpls.isValid()"
           },
@@ -17852,80 +17395,11 @@
             }
           },
           "true_next" : "tbl_act_7",
-          "false_next" : "node_18"
-        },
-        {
-          "name" : "node_18",
-          "id" : 7,
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 130,
-            "column" : 12,
-            "source_fragment" : "hdr.mpls.isValid()"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "d2b",
-              "left" : null,
-              "right" : {
-                "type" : "field",
-                "value" : ["mpls", "$valid$"]
-              }
-            }
-          },
-          "true_next" : "tbl_act_8",
-          "false_next" : "node_20"
-        },
-        {
-          "name" : "node_20",
-          "id" : 8,
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 133,
-            "column" : 16,
-            "source_fragment" : "hdr.vlan_tag.isValid()"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "d2b",
-              "left" : null,
-              "right" : {
-                "type" : "field",
-                "value" : ["vlan_tag", "$valid$"]
-              }
-            }
-          },
-          "true_next" : "node_21",
-          "false_next" : "tbl_act_11"
+          "false_next" : "FabricIngress.filtering.ingress_port_vlan"
         },
         {
           "name" : "node_21",
-          "id" : 9,
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 135,
-            "column" : 19,
-            "source_fragment" : "hdr.inner_vlan_tag.isValid()"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "d2b",
-              "left" : null,
-              "right" : {
-                "type" : "field",
-                "value" : ["inner_vlan_tag", "$valid$"]
-              }
-            }
-          },
-          "true_next" : "tbl_act_9",
-          "false_next" : "tbl_act_10"
-        },
-        {
-          "name" : "node_28",
-          "id" : 10,
+          "id" : 7,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 144,
@@ -17947,8 +17421,8 @@
           "false_next" : "FabricIngress.spgw_ingress.dl_sess_lookup"
         },
         {
-          "name" : "node_32",
-          "id" : 11,
+          "name" : "node_25",
+          "id" : 8,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 148,
@@ -17973,12 +17447,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_15",
-          "false_next" : "tbl_act_16"
+          "true_next" : "tbl_act_11",
+          "false_next" : "tbl_act_12"
         },
         {
-          "name" : "node_39",
-          "id" : 12,
+          "name" : "node_32",
+          "id" : 9,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -17990,12 +17464,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_19",
-          "false_next" : "tbl_act_20"
+          "true_next" : "tbl_act_15",
+          "false_next" : "tbl_act_16"
         },
         {
-          "name" : "node_42",
-          "id" : 13,
+          "name" : "node_35",
+          "id" : 10,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -18014,12 +17488,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_21",
-          "false_next" : "node_44"
+          "true_next" : "tbl_act_17",
+          "false_next" : "node_37"
         },
         {
-          "name" : "node_44",
-          "id" : 14,
+          "name" : "node_37",
+          "id" : 11,
           "source_info" : {
             "filename" : "fabric.p4",
             "line" : 71,
@@ -18037,7 +17511,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._skip_forwarding14"]
+                    "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"]
                   }
                 }
               },
@@ -18047,15 +17521,15 @@
               }
             }
           },
-          "true_next" : "node_45",
+          "true_next" : "node_38",
           "false_next" : "FabricIngress.acl.acl"
         },
         {
-          "name" : "node_45",
-          "id" : 15,
+          "name" : "node_38",
+          "id" : 12,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 141,
+            "line" : 150,
             "column" : 12,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
           },
@@ -18065,7 +17539,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type16"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -18074,14 +17548,14 @@
             }
           },
           "true_next" : "FabricIngress.forwarding.bridging",
-          "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" : 142,
+            "line" : 151,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
           },
@@ -18091,7 +17565,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type16"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -18100,14 +17574,14 @@
             }
           },
           "true_next" : "FabricIngress.forwarding.mpls",
-          "false_next" : "node_49"
+          "false_next" : "node_42"
         },
         {
-          "name" : "node_49",
-          "id" : 17,
+          "name" : "node_42",
+          "id" : 14,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 143,
+            "line" : 152,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
           },
@@ -18117,7 +17591,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type16"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -18126,14 +17600,14 @@
             }
           },
           "true_next" : "FabricIngress.forwarding.routing_v4",
-          "false_next" : "node_51"
+          "false_next" : "node_44"
         },
         {
-          "name" : "node_51",
-          "id" : 18,
+          "name" : "node_44",
+          "id" : 15,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 145,
+            "line" : 154,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_UNICAST"
           },
@@ -18143,7 +17617,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type16"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -18155,8 +17629,8 @@
           "false_next" : "FabricIngress.acl.acl"
         },
         {
-          "name" : "node_54",
-          "id" : 19,
+          "name" : "node_47",
+          "id" : 16,
           "source_info" : {
             "filename" : "fabric.p4",
             "line" : 75,
@@ -18174,7 +17648,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._skip_next15"]
+                    "value" : ["scalars", "fabric_metadata_t._skip_next11"]
                   }
                 }
               },
@@ -18185,11 +17659,11 @@
             }
           },
           "true_next" : "FabricIngress.next.xconnect",
-          "false_next" : "node_68"
+          "false_next" : "node_61"
         },
         {
-          "name" : "node_60",
-          "id" : 20,
+          "name" : "node_53",
+          "id" : 17,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 30,
@@ -18210,12 +17684,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_22",
-          "false_next" : "node_62"
+          "true_next" : "tbl_act_18",
+          "false_next" : "node_55"
         },
         {
-          "name" : "node_62",
-          "id" : 21,
+          "name" : "node_55",
+          "id" : 18,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 33,
@@ -18236,12 +17710,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_23",
+          "true_next" : "tbl_act_19",
           "false_next" : "FabricIngress.process_set_source_sink.tb_set_source"
         },
         {
-          "name" : "node_66",
-          "id" : 22,
+          "name" : "node_59",
+          "id" : 19,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 86,
@@ -18259,7 +17733,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._int_meta_sink34"]
+                    "value" : ["scalars", "fabric_metadata_t._int_meta_sink30"]
                   }
                 }
               },
@@ -18269,15 +17743,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_24",
-          "false_next" : "node_68"
+          "true_next" : "tbl_act_20",
+          "false_next" : "node_61"
         },
         {
-          "name" : "node_68",
-          "id" : 23,
+          "name" : "node_61",
+          "id" : 20,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 338,
+            "line" : 337,
             "column" : 15,
             "source_fragment" : "hdr.pppoe.isValid()"
           },
@@ -18292,15 +17766,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_25",
-          "false_next" : "tbl_act_26"
+          "true_next" : "tbl_act_21",
+          "false_next" : "tbl_act_22"
         },
         {
-          "name" : "node_72",
-          "id" : 24,
+          "name" : "node_65",
+          "id" : 21,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 352,
+            "line" : 351,
             "column" : 16,
             "source_fragment" : "hdr.pppoe.isValid()"
           },
@@ -18315,12 +17789,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_27",
+          "true_next" : "tbl_act_23",
           "false_next" : "FabricIngress.bng_ingress.downstream.t_line_session_map"
         },
         {
-          "name" : "node_77",
-          "id" : 25,
+          "name" : "node_70",
+          "id" : 22,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -18332,12 +17806,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_30",
-          "false_next" : "node_79"
+          "true_next" : "tbl_act_26",
+          "false_next" : "node_72"
         },
         {
-          "name" : "node_79",
-          "id" : 26,
+          "name" : "node_72",
+          "id" : 23,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -18357,14 +17831,14 @@
             }
           },
           "false_next" : null,
-          "true_next" : "node_80"
+          "true_next" : "node_73"
         },
         {
-          "name" : "node_80",
-          "id" : 27,
+          "name" : "node_73",
+          "id" : 24,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 126,
+            "line" : 125,
             "column" : 12,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -18380,14 +17854,14 @@
             }
           },
           "true_next" : "FabricIngress.bng_ingress.upstream.t_pppoe_term_v4",
-          "false_next" : "node_83"
+          "false_next" : "node_76"
         },
         {
-          "name" : "node_83",
-          "id" : 28,
+          "name" : "node_76",
+          "id" : 25,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 134,
+            "line" : 133,
             "column" : 17,
             "source_fragment" : "hdr.ipv6.isValid()"
           },
@@ -18403,11 +17877,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_32"
+          "true_next" : "tbl_act_28"
         },
         {
-          "name" : "node_90",
-          "id" : 29,
+          "name" : "node_83",
+          "id" : 26,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -18420,14 +17894,14 @@
             }
           },
           "false_next" : null,
-          "true_next" : "node_91"
+          "true_next" : "node_84"
         },
         {
-          "name" : "node_91",
-          "id" : 30,
+          "name" : "node_84",
+          "id" : 27,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 233,
+            "line" : 232,
             "column" : 16,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -18443,14 +17917,14 @@
             }
           },
           "true_next" : "FabricIngress.bng_ingress.downstream.t_qos_v4",
-          "false_next" : "node_95"
+          "false_next" : "node_88"
         },
         {
-          "name" : "node_95",
-          "id" : 31,
+          "name" : "node_88",
+          "id" : 28,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 245,
+            "line" : 244,
             "column" : 21,
             "source_fragment" : "hdr.ipv6.isValid()"
           },
@@ -18479,11 +17953,11 @@
         "column" : 8,
         "source_fragment" : "FabricEgress"
       },
-      "init_table" : "node_101",
+      "init_table" : "node_94",
       "tables" : [
         {
-          "name" : "tbl_act_40",
-          "id" : 65,
+          "name" : "tbl_act_36",
+          "id" : 61,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 41,
@@ -18497,22 +17971,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [150],
-          "actions" : ["act_40"],
-          "base_default_next" : "node_103",
+          "action_ids" : [145],
+          "actions" : ["act_36"],
+          "base_default_next" : "node_96",
           "next_tables" : {
-            "act_40" : "node_103"
+            "act_36" : "node_96"
           },
           "default_entry" : {
-            "action_id" : 150,
+            "action_id" : 145,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_41",
-          "id" : 66,
+          "name" : "tbl_act_37",
+          "id" : 62,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 44,
@@ -18526,25 +18000,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [151],
-          "actions" : ["act_41"],
-          "base_default_next" : "node_105",
+          "action_ids" : [146],
+          "actions" : ["act_37"],
+          "base_default_next" : "node_98",
           "next_tables" : {
-            "act_41" : "node_105"
+            "act_37" : "node_98"
           },
           "default_entry" : {
-            "action_id" : 151,
+            "action_id" : 146,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_42",
-          "id" : 67,
+          "name" : "tbl_act_38",
+          "id" : 63,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 333,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -18555,14 +18029,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [152],
-          "actions" : ["act_42"],
-          "base_default_next" : "node_107",
+          "action_ids" : [147],
+          "actions" : ["act_38"],
+          "base_default_next" : "node_100",
           "next_tables" : {
-            "act_42" : "node_107"
+            "act_38" : "node_100"
           },
           "default_entry" : {
-            "action_id" : 152,
+            "action_id" : 147,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -18570,10 +18044,10 @@
         },
         {
           "name" : "tbl_egress_next_pop_mpls_if_present",
-          "id" : 68,
+          "id" : 64,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 339,
+            "line" : 337,
             "column" : 36,
             "source_fragment" : "pop_mpls_if_present()"
           },
@@ -18584,14 +18058,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [144],
+          "action_ids" : [139],
           "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
-          "base_default_next" : "node_111",
+          "base_default_next" : "node_104",
           "next_tables" : {
-            "FabricEgress.egress_next.pop_mpls_if_present" : "node_111"
+            "FabricEgress.egress_next.pop_mpls_if_present" : "node_104"
           },
           "default_entry" : {
-            "action_id" : 144,
+            "action_id" : 139,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -18599,10 +18073,10 @@
         },
         {
           "name" : "tbl_egress_next_set_mpls",
-          "id" : 69,
+          "id" : 65,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 339,
             "column" : 12,
             "source_fragment" : "set_mpls()"
           },
@@ -18613,14 +18087,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [145],
+          "action_ids" : [140],
           "actions" : ["FabricEgress.egress_next.set_mpls"],
-          "base_default_next" : "node_111",
+          "base_default_next" : "node_104",
           "next_tables" : {
-            "FabricEgress.egress_next.set_mpls" : "node_111"
+            "FabricEgress.egress_next.set_mpls" : "node_104"
           },
           "default_entry" : {
-            "action_id" : 145,
+            "action_id" : 140,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -18628,10 +18102,10 @@
         },
         {
           "name" : "tbl_egress_next_push_vlan",
-          "id" : 70,
+          "id" : 66,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 347,
+            "line" : 345,
             "column" : 12,
             "source_fragment" : "push_vlan()"
           },
@@ -18642,14 +18116,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [146],
+          "action_ids" : [141],
           "actions" : ["FabricEgress.egress_next.push_vlan"],
           "base_default_next" : "tbl_egress_next_push_inner_vlan",
           "next_tables" : {
             "FabricEgress.egress_next.push_vlan" : "tbl_egress_next_push_inner_vlan"
           },
           "default_entry" : {
-            "action_id" : 146,
+            "action_id" : 141,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -18657,10 +18131,10 @@
         },
         {
           "name" : "tbl_egress_next_push_inner_vlan",
-          "id" : 71,
+          "id" : 67,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 348,
+            "line" : 346,
             "column" : 12,
             "source_fragment" : "push_inner_vlan()"
           },
@@ -18671,25 +18145,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [148],
+          "action_ids" : [143],
           "actions" : ["FabricEgress.egress_next.push_inner_vlan"],
-          "base_default_next" : "node_121",
+          "base_default_next" : "node_114",
           "next_tables" : {
-            "FabricEgress.egress_next.push_inner_vlan" : "node_121"
+            "FabricEgress.egress_next.push_inner_vlan" : "node_114"
           },
           "default_entry" : {
-            "action_id" : 148,
+            "action_id" : 143,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_43",
-          "id" : 72,
+          "name" : "tbl_act_39",
+          "id" : 68,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 351,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
           },
@@ -18700,14 +18174,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [155],
-          "actions" : ["act_45"],
+          "action_ids" : [150],
+          "actions" : ["act_41"],
           "base_default_next" : "FabricEgress.egress_next.egress_vlan",
           "next_tables" : {
-            "act_45" : "FabricEgress.egress_next.egress_vlan"
+            "act_41" : "FabricEgress.egress_next.egress_vlan"
           },
           "default_entry" : {
-            "action_id" : 155,
+            "action_id" : 150,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -18715,10 +18189,10 @@
         },
         {
           "name" : "FabricEgress.egress_next.egress_vlan",
-          "id" : 73,
+          "id" : 69,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 318,
+            "line" : 316,
             "column" : 10,
             "source_fragment" : "egress_vlan"
           },
@@ -18726,7 +18200,7 @@
             {
               "match_type" : "exact",
               "name" : "vlan_id",
-              "target" : ["scalars", "fabric_metadata_t._vlan_id5"],
+              "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
               "mask" : null
             },
             {
@@ -18742,23 +18216,23 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [149, 101],
+          "action_ids" : [144, 96],
           "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
           "base_default_next" : null,
           "next_tables" : {
-            "__HIT__" : "tbl_act_44",
-            "__MISS__" : "tbl_act_45"
+            "__HIT__" : "tbl_act_40",
+            "__MISS__" : "tbl_act_41"
           },
           "default_entry" : {
-            "action_id" : 101,
+            "action_id" : 96,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_44",
-          "id" : 74,
+          "name" : "tbl_act_40",
+          "id" : 70,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -18766,22 +18240,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [153],
-          "actions" : ["act_43"],
-          "base_default_next" : "node_118",
+          "action_ids" : [148],
+          "actions" : ["act_39"],
+          "base_default_next" : "node_111",
           "next_tables" : {
-            "act_43" : "node_118"
+            "act_39" : "node_111"
           },
           "default_entry" : {
-            "action_id" : 153,
+            "action_id" : 148,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_45",
-          "id" : 75,
+          "name" : "tbl_act_41",
+          "id" : 71,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -18789,14 +18263,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [154],
-          "actions" : ["act_44"],
-          "base_default_next" : "node_118",
+          "action_ids" : [149],
+          "actions" : ["act_40"],
+          "base_default_next" : "node_111",
           "next_tables" : {
-            "act_44" : "node_118"
+            "act_40" : "node_111"
           },
           "default_entry" : {
-            "action_id" : 154,
+            "action_id" : 149,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -18804,10 +18278,10 @@
         },
         {
           "name" : "tbl_egress_next_push_vlan_0",
-          "id" : 76,
+          "id" : 72,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 358,
+            "line" : 356,
             "column" : 20,
             "source_fragment" : "push_vlan()"
           },
@@ -18818,25 +18292,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [147],
+          "action_ids" : [142],
           "actions" : ["FabricEgress.egress_next.push_vlan"],
-          "base_default_next" : "node_121",
+          "base_default_next" : "node_114",
           "next_tables" : {
-            "FabricEgress.egress_next.push_vlan" : "node_121"
+            "FabricEgress.egress_next.push_vlan" : "node_114"
           },
           "default_entry" : {
-            "action_id" : 147,
+            "action_id" : 142,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_46",
-          "id" : 77,
+          "name" : "tbl_act_42",
+          "id" : 73,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 367,
+            "line" : 365,
             "column" : 25,
             "source_fragment" : "="
           },
@@ -18847,25 +18321,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [157],
-          "actions" : ["act_47"],
-          "base_default_next" : "node_123",
+          "action_ids" : [152],
+          "actions" : ["act_43"],
+          "base_default_next" : "node_116",
           "next_tables" : {
-            "act_47" : "node_123"
+            "act_43" : "node_116"
           },
           "default_entry" : {
-            "action_id" : 157,
+            "action_id" : 152,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_47",
-          "id" : 78,
+          "name" : "tbl_act_43",
+          "id" : 74,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -18876,25 +18350,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [156],
-          "actions" : ["act_46"],
-          "base_default_next" : "node_133",
+          "action_ids" : [151],
+          "actions" : ["act_42"],
+          "base_default_next" : "node_126",
           "next_tables" : {
-            "act_46" : "node_133"
+            "act_42" : "node_126"
           },
           "default_entry" : {
-            "action_id" : 156,
+            "action_id" : 151,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_48",
-          "id" : 79,
+          "name" : "tbl_act_44",
+          "id" : 75,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 371,
+            "line" : 369,
             "column" : 29,
             "source_fragment" : "="
           },
@@ -18905,25 +18379,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [159],
-          "actions" : ["act_49"],
-          "base_default_next" : "node_127",
+          "action_ids" : [154],
+          "actions" : ["act_45"],
+          "base_default_next" : "node_120",
           "next_tables" : {
-            "act_49" : "node_127"
+            "act_45" : "node_120"
           },
           "default_entry" : {
-            "action_id" : 159,
+            "action_id" : 154,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_49",
-          "id" : 80,
+          "name" : "tbl_act_45",
+          "id" : 76,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -18934,25 +18408,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [158],
-          "actions" : ["act_48"],
-          "base_default_next" : "node_133",
+          "action_ids" : [153],
+          "actions" : ["act_44"],
+          "base_default_next" : "node_126",
           "next_tables" : {
-            "act_48" : "node_133"
+            "act_44" : "node_126"
           },
           "default_entry" : {
-            "action_id" : 158,
+            "action_id" : 153,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_50",
-          "id" : 81,
+          "name" : "tbl_act_46",
+          "id" : 77,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 376,
+            "line" : 374,
             "column" : 35,
             "source_fragment" : "="
           },
@@ -18963,25 +18437,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [161],
-          "actions" : ["act_51"],
-          "base_default_next" : "node_131",
+          "action_ids" : [156],
+          "actions" : ["act_47"],
+          "base_default_next" : "node_124",
           "next_tables" : {
-            "act_51" : "node_131"
+            "act_47" : "node_124"
           },
           "default_entry" : {
-            "action_id" : 161,
+            "action_id" : 156,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_51",
-          "id" : 82,
+          "name" : "tbl_act_47",
+          "id" : 78,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 377,
+            "line" : 375,
             "column" : 45,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -18992,14 +18466,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [160],
-          "actions" : ["act_50"],
-          "base_default_next" : "node_133",
+          "action_ids" : [155],
+          "actions" : ["act_46"],
+          "base_default_next" : "node_126",
           "next_tables" : {
-            "act_50" : "node_133"
+            "act_46" : "node_126"
           },
           "default_entry" : {
-            "action_id" : 160,
+            "action_id" : 155,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -19007,7 +18481,7 @@
         },
         {
           "name" : "tbl_spgw_egress_gtpu_encap",
-          "id" : 83,
+          "id" : 79,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 228,
@@ -19021,14 +18495,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [104],
+          "action_ids" : [99],
           "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
-          "base_default_next" : "node_135",
+          "base_default_next" : "node_128",
           "next_tables" : {
-            "FabricEgress.spgw_egress.gtpu_encap" : "node_135"
+            "FabricEgress.spgw_egress.gtpu_encap" : "node_128"
           },
           "default_entry" : {
-            "action_id" : 104,
+            "action_id" : 99,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -19036,10 +18510,10 @@
         },
         {
           "name" : "tbl_bng_egress_downstream_encap_v4",
-          "id" : 84,
+          "id" : 80,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 295,
+            "line" : 294,
             "column" : 12,
             "source_fragment" : "encap_v4()"
           },
@@ -19050,14 +18524,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [105],
+          "action_ids" : [100],
           "actions" : ["FabricEgress.bng_egress.downstream.encap_v4"],
-          "base_default_next" : "node_140",
+          "base_default_next" : "node_133",
           "next_tables" : {
-            "FabricEgress.bng_egress.downstream.encap_v4" : "node_140"
+            "FabricEgress.bng_egress.downstream.encap_v4" : "node_133"
           },
           "default_entry" : {
-            "action_id" : 105,
+            "action_id" : 100,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -19065,10 +18539,10 @@
         },
         {
           "name" : "tbl_bng_egress_downstream_encap_v6",
-          "id" : 85,
+          "id" : 81,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 300,
+            "line" : 299,
             "column" : 12,
             "source_fragment" : "encap_v6()"
           },
@@ -19079,14 +18553,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [106],
+          "action_ids" : [101],
           "actions" : ["FabricEgress.bng_egress.downstream.encap_v6"],
-          "base_default_next" : "node_140",
+          "base_default_next" : "node_133",
           "next_tables" : {
-            "FabricEgress.bng_egress.downstream.encap_v6" : "node_140"
+            "FabricEgress.bng_egress.downstream.encap_v6" : "node_133"
           },
           "default_entry" : {
-            "action_id" : 106,
+            "action_id" : 101,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -19094,7 +18568,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
-          "id" : 86,
+          "id" : 82,
           "source_info" : {
             "filename" : "include/int/int_source.p4",
             "line" : 66,
@@ -19117,13 +18591,13 @@
             {
               "match_type" : "ternary",
               "name" : "l4_sport",
-              "target" : ["scalars", "fabric_metadata_t._l4_sport21"],
+              "target" : ["scalars", "fabric_metadata_t._l4_sport17"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
               "name" : "l4_dport",
-              "target" : ["scalars", "fabric_metadata_t._l4_dport22"],
+              "target" : ["scalars", "fabric_metadata_t._l4_dport18"],
               "mask" : null
             }
           ],
@@ -19133,23 +18607,23 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [107, 98],
+          "action_ids" : [102, 93],
           "actions" : ["FabricEgress.process_int_main.process_int_source.int_source_dscp", "nop"],
-          "base_default_next" : "node_143",
+          "base_default_next" : "node_136",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_143",
-            "nop" : "node_143"
+            "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_136",
+            "nop" : "node_136"
           },
           "default_entry" : {
-            "action_id" : 98,
+            "action_id" : 93,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_52",
-          "id" : 87,
+          "name" : "tbl_act_48",
+          "id" : 83,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -19157,14 +18631,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [162],
-          "actions" : ["act_52"],
+          "action_ids" : [157],
+          "actions" : ["act_48"],
           "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
           "next_tables" : {
-            "act_52" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
+            "act_48" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
           },
           "default_entry" : {
-            "action_id" : 162,
+            "action_id" : 157,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -19172,7 +18646,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
-          "id" : 88,
+          "id" : 84,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 315,
@@ -19193,23 +18667,23 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [108, 99],
+          "action_ids" : [103, 94],
           "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"],
-          "base_default_next" : "node_146",
+          "base_default_next" : "node_139",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_146",
-            "nop" : "node_146"
+            "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_139",
+            "nop" : "node_139"
           },
           "default_entry" : {
-            "action_id" : 99,
+            "action_id" : 94,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_53",
-          "id" : 89,
+          "name" : "tbl_act_49",
+          "id" : 85,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 420,
@@ -19223,14 +18697,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [163],
-          "actions" : ["act_53"],
-          "base_default_next" : "node_148",
+          "action_ids" : [158],
+          "actions" : ["act_49"],
+          "base_default_next" : "node_141",
           "next_tables" : {
-            "act_53" : "node_148"
+            "act_49" : "node_141"
           },
           "default_entry" : {
-            "action_id" : 163,
+            "action_id" : 158,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -19238,7 +18712,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003",
-          "id" : 90,
+          "id" : 86,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 331,
@@ -19259,7 +18733,7 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 102],
+          "action_ids" : [104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 97],
           "actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15", "NoAction"],
           "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407",
           "next_tables" : {
@@ -19282,7 +18756,7 @@
             "NoAction" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407"
           },
           "default_entry" : {
-            "action_id" : 102,
+            "action_id" : 97,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -19302,7 +18776,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 109,
+                "action_id" : 104,
                 "action_data" : []
               },
               "priority" : 1
@@ -19321,7 +18795,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 110,
+                "action_id" : 105,
                 "action_data" : []
               },
               "priority" : 2
@@ -19340,7 +18814,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 111,
+                "action_id" : 106,
                 "action_data" : []
               },
               "priority" : 3
@@ -19359,7 +18833,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 112,
+                "action_id" : 107,
                 "action_data" : []
               },
               "priority" : 4
@@ -19378,7 +18852,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 113,
+                "action_id" : 108,
                 "action_data" : []
               },
               "priority" : 5
@@ -19397,7 +18871,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 114,
+                "action_id" : 109,
                 "action_data" : []
               },
               "priority" : 6
@@ -19416,7 +18890,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 115,
+                "action_id" : 110,
                 "action_data" : []
               },
               "priority" : 7
@@ -19435,7 +18909,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 116,
+                "action_id" : 111,
                 "action_data" : []
               },
               "priority" : 8
@@ -19454,7 +18928,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 117,
+                "action_id" : 112,
                 "action_data" : []
               },
               "priority" : 9
@@ -19473,7 +18947,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 118,
+                "action_id" : 113,
                 "action_data" : []
               },
               "priority" : 10
@@ -19492,7 +18966,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 119,
+                "action_id" : 114,
                 "action_data" : []
               },
               "priority" : 11
@@ -19511,7 +18985,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 120,
+                "action_id" : 115,
                 "action_data" : []
               },
               "priority" : 12
@@ -19530,7 +19004,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 121,
+                "action_id" : 116,
                 "action_data" : []
               },
               "priority" : 13
@@ -19549,7 +19023,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 122,
+                "action_id" : 117,
                 "action_data" : []
               },
               "priority" : 14
@@ -19568,7 +19042,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 123,
+                "action_id" : 118,
                 "action_data" : []
               },
               "priority" : 15
@@ -19587,7 +19061,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 124,
+                "action_id" : 119,
                 "action_data" : []
               },
               "priority" : 16
@@ -19596,7 +19070,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407",
-          "id" : 91,
+          "id" : 87,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 375,
@@ -19617,30 +19091,30 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 103],
+          "action_ids" : [120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 98],
           "actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15", "NoAction"],
-          "base_default_next" : "tbl_act_54",
+          "base_default_next" : "tbl_act_50",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_54",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_54",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_54",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_54",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_54",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_54",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_54",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_54",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_54",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_54",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_54",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_54",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_54",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_54",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_54",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_54",
-            "NoAction" : "tbl_act_54"
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_50",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_50",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_50",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_50",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_50",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_50",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_50",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_50",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_50",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_50",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_50",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_50",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_50",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_50",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_50",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_50",
+            "NoAction" : "tbl_act_50"
           },
           "default_entry" : {
-            "action_id" : 103,
+            "action_id" : 98,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -19660,7 +19134,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 125,
+                "action_id" : 120,
                 "action_data" : []
               },
               "priority" : 1
@@ -19679,7 +19153,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 126,
+                "action_id" : 121,
                 "action_data" : []
               },
               "priority" : 2
@@ -19698,7 +19172,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 127,
+                "action_id" : 122,
                 "action_data" : []
               },
               "priority" : 3
@@ -19717,7 +19191,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 128,
+                "action_id" : 123,
                 "action_data" : []
               },
               "priority" : 4
@@ -19736,7 +19210,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 129,
+                "action_id" : 124,
                 "action_data" : []
               },
               "priority" : 5
@@ -19755,7 +19229,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 130,
+                "action_id" : 125,
                 "action_data" : []
               },
               "priority" : 6
@@ -19774,7 +19248,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 131,
+                "action_id" : 126,
                 "action_data" : []
               },
               "priority" : 7
@@ -19793,7 +19267,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 132,
+                "action_id" : 127,
                 "action_data" : []
               },
               "priority" : 8
@@ -19812,7 +19286,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 133,
+                "action_id" : 128,
                 "action_data" : []
               },
               "priority" : 9
@@ -19831,7 +19305,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 134,
+                "action_id" : 129,
                 "action_data" : []
               },
               "priority" : 10
@@ -19850,7 +19324,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 135,
+                "action_id" : 130,
                 "action_data" : []
               },
               "priority" : 11
@@ -19869,7 +19343,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 136,
+                "action_id" : 131,
                 "action_data" : []
               },
               "priority" : 12
@@ -19888,7 +19362,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 137,
+                "action_id" : 132,
                 "action_data" : []
               },
               "priority" : 13
@@ -19907,7 +19381,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 138,
+                "action_id" : 133,
                 "action_data" : []
               },
               "priority" : 14
@@ -19926,7 +19400,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 139,
+                "action_id" : 134,
                 "action_data" : []
               },
               "priority" : 15
@@ -19945,7 +19419,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 140,
+                "action_id" : 135,
                 "action_data" : []
               },
               "priority" : 16
@@ -19953,8 +19427,8 @@
           ]
         },
         {
-          "name" : "tbl_act_54",
-          "id" : 92,
+          "name" : "tbl_act_50",
+          "id" : 88,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 425,
@@ -19968,22 +19442,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [165],
-          "actions" : ["act_55"],
-          "base_default_next" : "node_152",
+          "action_ids" : [160],
+          "actions" : ["act_51"],
+          "base_default_next" : "node_145",
           "next_tables" : {
-            "act_55" : "node_152"
+            "act_51" : "node_145"
           },
           "default_entry" : {
-            "action_id" : 165,
+            "action_id" : 160,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_55",
-          "id" : 93,
+          "name" : "tbl_act_51",
+          "id" : 89,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 428,
@@ -19997,22 +19471,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [164],
-          "actions" : ["act_54"],
-          "base_default_next" : "node_154",
+          "action_ids" : [159],
+          "actions" : ["act_50"],
+          "base_default_next" : "node_147",
           "next_tables" : {
-            "act_54" : "node_154"
+            "act_50" : "node_147"
           },
           "default_entry" : {
-            "action_id" : 164,
+            "action_id" : 159,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_56",
-          "id" : 94,
+          "name" : "tbl_act_52",
+          "id" : 90,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 431,
@@ -20026,22 +19500,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [166],
-          "actions" : ["act_56"],
-          "base_default_next" : "node_156",
+          "action_ids" : [161],
+          "actions" : ["act_52"],
+          "base_default_next" : "node_149",
           "next_tables" : {
-            "act_56" : "node_156"
+            "act_52" : "node_149"
           },
           "default_entry" : {
-            "action_id" : 166,
+            "action_id" : 161,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_57",
-          "id" : 95,
+          "name" : "tbl_act_53",
+          "id" : 91,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 434,
@@ -20055,14 +19529,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [167],
-          "actions" : ["act_57"],
-          "base_default_next" : "node_158",
+          "action_ids" : [162],
+          "actions" : ["act_53"],
+          "base_default_next" : "node_151",
           "next_tables" : {
-            "act_57" : "node_158"
+            "act_53" : "node_151"
           },
           "default_entry" : {
-            "action_id" : 167,
+            "action_id" : 162,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -20070,7 +19544,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_report.tb_generate_report",
-          "id" : 96,
+          "id" : 92,
           "source_info" : {
             "filename" : "include/int/int_report.p4",
             "line" : 86,
@@ -20084,15 +19558,15 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [141, 100],
+          "action_ids" : [136, 95],
           "actions" : ["FabricEgress.process_int_main.process_int_report.do_report_encapsulation", "nop"],
-          "base_default_next" : "node_160",
+          "base_default_next" : "node_153",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_report.do_report_encapsulation" : "node_160",
-            "nop" : "node_160"
+            "FabricEgress.process_int_main.process_int_report.do_report_encapsulation" : "node_153",
+            "nop" : "node_153"
           },
           "default_entry" : {
-            "action_id" : 100,
+            "action_id" : 95,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -20100,7 +19574,7 @@
         },
         {
           "name" : "tbl_process_int_main_process_int_sink_restore_header",
-          "id" : 97,
+          "id" : 93,
           "source_info" : {
             "filename" : "include/int/int_sink.p4",
             "line" : 53,
@@ -20114,14 +19588,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [142],
+          "action_ids" : [137],
           "actions" : ["FabricEgress.process_int_main.process_int_sink.restore_header"],
           "base_default_next" : "tbl_process_int_main_process_int_sink_int_sink",
           "next_tables" : {
             "FabricEgress.process_int_main.process_int_sink.restore_header" : "tbl_process_int_main_process_int_sink_int_sink"
           },
           "default_entry" : {
-            "action_id" : 142,
+            "action_id" : 137,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -20129,7 +19603,7 @@
         },
         {
           "name" : "tbl_process_int_main_process_int_sink_int_sink",
-          "id" : 98,
+          "id" : 94,
           "source_info" : {
             "filename" : "include/int/int_sink.p4",
             "line" : 54,
@@ -20143,14 +19617,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [143],
+          "action_ids" : [138],
           "actions" : ["FabricEgress.process_int_main.process_int_sink.int_sink"],
           "base_default_next" : null,
           "next_tables" : {
             "FabricEgress.process_int_main.process_int_sink.int_sink" : null
           },
           "default_entry" : {
-            "action_id" : 143,
+            "action_id" : 138,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -20160,8 +19634,8 @@
       "action_profiles" : [],
       "conditionals" : [
         {
-          "name" : "node_101",
-          "id" : 32,
+          "name" : "node_94",
+          "id" : 29,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 39,
@@ -20179,7 +19653,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out19"]
+                    "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"]
                   }
                 }
               },
@@ -20189,12 +19663,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_40",
-          "false_next" : "node_103"
+          "true_next" : "tbl_act_36",
+          "false_next" : "node_96"
         },
         {
-          "name" : "node_103",
-          "id" : 33,
+          "name" : "node_96",
+          "id" : 30,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 43,
@@ -20215,15 +19689,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_41",
-          "false_next" : "node_105"
+          "true_next" : "tbl_act_37",
+          "false_next" : "node_98"
         },
         {
-          "name" : "node_105",
-          "id" : 34,
+          "name" : "node_98",
+          "id" : 31,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 333,
+            "line" : 331,
             "column" : 12,
             "source_fragment" : "fabric_metadata.is_multicast == true ..."
           },
@@ -20242,7 +19716,7 @@
                       "left" : null,
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._is_multicast18"]
+                        "value" : ["scalars", "fabric_metadata_t._is_multicast14"]
                       }
                     }
                   },
@@ -20268,15 +19742,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_42",
-          "false_next" : "node_107"
+          "true_next" : "tbl_act_38",
+          "false_next" : "node_100"
         },
         {
-          "name" : "node_107",
-          "id" : 35,
+          "name" : "node_100",
+          "id" : 32,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 338,
+            "line" : 336,
             "column" : 12,
             "source_fragment" : "fabric_metadata.mpls_label == 0"
           },
@@ -20286,7 +19760,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._mpls_label12"]
+                "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -20294,15 +19768,15 @@
               }
             }
           },
-          "true_next" : "node_108",
+          "true_next" : "node_101",
           "false_next" : "tbl_egress_next_set_mpls"
         },
         {
-          "name" : "node_108",
-          "id" : 36,
+          "name" : "node_101",
+          "id" : 33,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 339,
+            "line" : 337,
             "column" : 16,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -20318,14 +19792,14 @@
             }
           },
           "true_next" : "tbl_egress_next_pop_mpls_if_present",
-          "false_next" : "node_111"
+          "false_next" : "node_104"
         },
         {
-          "name" : "node_111",
-          "id" : 37,
+          "name" : "node_104",
+          "id" : 34,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 345,
+            "line" : 343,
             "column" : 12,
             "source_fragment" : "fabric_metadata.push_double_vlan == true"
           },
@@ -20340,7 +19814,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._push_double_vlan8"]
+                    "value" : ["scalars", "fabric_metadata_t._push_double_vlan4"]
                   }
                 }
               },
@@ -20351,14 +19825,14 @@
             }
           },
           "true_next" : "tbl_egress_next_push_vlan",
-          "false_next" : "tbl_act_43"
+          "false_next" : "tbl_act_39"
         },
         {
-          "name" : "node_118",
-          "id" : 38,
+          "name" : "node_111",
+          "id" : 35,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 355,
+            "line" : 353,
             "column" : 16,
             "source_fragment" : "!egress_vlan.apply().hit"
           },
@@ -20380,15 +19854,15 @@
               }
             }
           },
-          "true_next" : "node_119",
-          "false_next" : "node_121"
+          "true_next" : "node_112",
+          "false_next" : "node_114"
         },
         {
-          "name" : "node_119",
-          "id" : 39,
+          "name" : "node_112",
+          "id" : 36,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 357,
+            "line" : 355,
             "column" : 20,
             "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
           },
@@ -20398,7 +19872,7 @@
               "op" : "!=",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+                "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -20407,14 +19881,14 @@
             }
           },
           "true_next" : "tbl_egress_next_push_vlan_0",
-          "false_next" : "node_121"
+          "false_next" : "node_114"
         },
         {
-          "name" : "node_121",
-          "id" : 40,
+          "name" : "node_114",
+          "id" : 37,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 366,
+            "line" : 364,
             "column" : 12,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -20429,15 +19903,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_46",
-          "false_next" : "node_125"
+          "true_next" : "tbl_act_42",
+          "false_next" : "node_118"
         },
         {
-          "name" : "node_123",
-          "id" : 41,
+          "name" : "node_116",
+          "id" : 38,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 16,
             "source_fragment" : "hdr.mpls.ttl == 0"
           },
@@ -20455,15 +19929,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_47",
-          "false_next" : "node_133"
+          "true_next" : "tbl_act_43",
+          "false_next" : "node_126"
         },
         {
-          "name" : "node_125",
-          "id" : 42,
+          "name" : "node_118",
+          "id" : 39,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 368,
             "column" : 15,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -20478,15 +19952,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_48",
-          "false_next" : "node_129"
+          "true_next" : "tbl_act_44",
+          "false_next" : "node_122"
         },
         {
-          "name" : "node_127",
-          "id" : 43,
+          "name" : "node_120",
+          "id" : 40,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl == 0"
           },
@@ -20504,15 +19978,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_49",
-          "false_next" : "node_133"
+          "true_next" : "tbl_act_45",
+          "false_next" : "node_126"
         },
         {
-          "name" : "node_129",
-          "id" : 44,
+          "name" : "node_122",
+          "id" : 41,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 375,
+            "line" : 373,
             "column" : 21,
             "source_fragment" : "hdr.ipv6.isValid()"
           },
@@ -20527,15 +20001,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_50",
-          "false_next" : "node_133"
+          "true_next" : "tbl_act_46",
+          "false_next" : "node_126"
         },
         {
-          "name" : "node_131",
-          "id" : 45,
+          "name" : "node_124",
+          "id" : 42,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 377,
+            "line" : 375,
             "column" : 20,
             "source_fragment" : "hdr.ipv6.hop_limit == 0"
           },
@@ -20553,12 +20027,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_51",
-          "false_next" : "node_133"
+          "true_next" : "tbl_act_47",
+          "false_next" : "node_126"
         },
         {
-          "name" : "node_133",
-          "id" : 46,
+          "name" : "node_126",
+          "id" : 43,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 227,
@@ -20571,7 +20045,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._spgw_direction23"]
+                "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -20580,14 +20054,14 @@
             }
           },
           "true_next" : "tbl_spgw_egress_gtpu_encap",
-          "false_next" : "node_135"
+          "false_next" : "node_128"
         },
         {
-          "name" : "node_135",
-          "id" : 47,
+          "name" : "node_128",
+          "id" : 44,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 369,
+            "line" : 368,
             "column" : 12,
             "source_fragment" : "fmeta.bng.type == BNG_TYPE_DOWNSTREAM"
           },
@@ -20597,7 +20071,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._bng_type28"]
+                "value" : ["scalars", "fabric_metadata_t._bng_type24"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -20605,15 +20079,15 @@
               }
             }
           },
-          "true_next" : "node_136",
-          "false_next" : "node_140"
+          "true_next" : "node_129",
+          "false_next" : "node_133"
         },
         {
-          "name" : "node_136",
-          "id" : 48,
+          "name" : "node_129",
+          "id" : 45,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 294,
+            "line" : 293,
             "column" : 12,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -20629,14 +20103,14 @@
             }
           },
           "true_next" : "tbl_bng_egress_downstream_encap_v4",
-          "false_next" : "node_138"
+          "false_next" : "node_131"
         },
         {
-          "name" : "node_138",
-          "id" : 49,
+          "name" : "node_131",
+          "id" : 46,
           "source_info" : {
             "filename" : "include/bng.p4",
-            "line" : 299,
+            "line" : 298,
             "column" : 17,
             "source_fragment" : "hdr.ipv6.isValid()"
           },
@@ -20652,11 +20126,11 @@
             }
           },
           "true_next" : "tbl_bng_egress_downstream_encap_v6",
-          "false_next" : "node_140"
+          "false_next" : "node_133"
         },
         {
-          "name" : "node_140",
-          "id" : 50,
+          "name" : "node_133",
+          "id" : 47,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 102,
@@ -20732,11 +20206,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "node_141"
+          "true_next" : "node_134"
         },
         {
-          "name" : "node_141",
-          "id" : 51,
+          "name" : "node_134",
+          "id" : 48,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 106,
@@ -20754,7 +20228,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._int_meta_source32"]
+                    "value" : ["scalars", "fabric_metadata_t._int_meta_source28"]
                   }
                 }
               },
@@ -20765,11 +20239,11 @@
             }
           },
           "true_next" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
-          "false_next" : "node_143"
+          "false_next" : "node_136"
         },
         {
-          "name" : "node_143",
-          "id" : 52,
+          "name" : "node_136",
+          "id" : 49,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 110,
@@ -20788,11 +20262,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_52"
+          "true_next" : "tbl_act_48"
         },
         {
-          "name" : "node_146",
-          "id" : 53,
+          "name" : "node_139",
+          "id" : 50,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 419,
@@ -20810,7 +20284,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._int_meta_transit33"]
+                    "value" : ["scalars", "fabric_metadata_t._int_meta_transit29"]
                   }
                 }
               },
@@ -20820,12 +20294,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_53",
-          "false_next" : "node_148"
+          "true_next" : "tbl_act_49",
+          "false_next" : "node_141"
         },
         {
-          "name" : "node_148",
-          "id" : 54,
+          "name" : "node_141",
+          "id" : 51,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -20845,11 +20319,11 @@
             }
           },
           "true_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003",
-          "false_next" : "node_158"
+          "false_next" : "node_151"
         },
         {
-          "name" : "node_152",
-          "id" : 55,
+          "name" : "node_145",
+          "id" : 52,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 427,
@@ -20867,12 +20341,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_55",
-          "false_next" : "node_154"
+          "true_next" : "tbl_act_51",
+          "false_next" : "node_147"
         },
         {
-          "name" : "node_154",
-          "id" : 56,
+          "name" : "node_147",
+          "id" : 53,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 430,
@@ -20890,12 +20364,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_56",
-          "false_next" : "node_156"
+          "true_next" : "tbl_act_52",
+          "false_next" : "node_149"
         },
         {
-          "name" : "node_156",
-          "id" : 57,
+          "name" : "node_149",
+          "id" : 54,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 433,
@@ -20913,12 +20387,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_57",
-          "false_next" : "node_158"
+          "true_next" : "tbl_act_53",
+          "false_next" : "node_151"
         },
         {
-          "name" : "node_158",
-          "id" : 58,
+          "name" : "node_151",
+          "id" : 55,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 115,
@@ -20940,11 +20414,11 @@
             }
           },
           "true_next" : "FabricEgress.process_int_main.process_int_report.tb_generate_report",
-          "false_next" : "node_160"
+          "false_next" : "node_153"
         },
         {
-          "name" : "node_160",
-          "id" : 59,
+          "name" : "node_153",
+          "id" : 56,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 119,
@@ -20962,7 +20436,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._int_meta_sink34"]
+                    "value" : ["scalars", "fabric_metadata_t._int_meta_sink30"]
                   }
                 }
               },
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt
index 2a1ca9e..7ea857e 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt
@@ -307,14 +307,9 @@
     match_type: EXACT
   }
   action_refs {
-    id: 16819938
-    annotations: "@defaultonly"
-    scope: DEFAULT_ONLY
-  }
-  action_refs {
     id: 16829385
   }
-  const_default_action_id: 16819938
+  const_default_action_id: 16829385
   size: 8192
 }
 tables {
@@ -380,20 +375,14 @@
   }
   match_fields {
     id: 3
-    name: "is_ipv4"
-    bitwidth: 1
-    match_type: EXACT
+    name: "eth_type"
+    bitwidth: 16
+    match_type: TERNARY
   }
   match_fields {
     id: 4
-    name: "is_ipv6"
-    bitwidth: 1
-    match_type: EXACT
-  }
-  match_fields {
-    id: 5
-    name: "is_mpls"
-    bitwidth: 1
+    name: "ip_eth_type"
+    bitwidth: 16
     match_type: EXACT
   }
   action_refs {
@@ -481,7 +470,6 @@
     scope: DEFAULT_ONLY
   }
   const_default_action_id: 16819938
-  direct_resource_ids: 318811107
   size: 1024
 }
 tables {
@@ -1568,17 +1556,6 @@
 }
 direct_counters {
   preamble {
-    id: 318811107
-    name: "FabricIngress.forwarding.routing_v4_counter"
-    alias: "routing_v4_counter"
-  }
-  spec {
-    unit: BOTH
-  }
-  direct_table_id: 33562650
-}
-direct_counters {
-  preamble {
     id: 318799210
     name: "FabricIngress.forwarding.routing_v6_counter"
     alias: "routing_v6_counter"
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json
index 7aa7642..a56d4aa 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json
@@ -5,39 +5,37 @@
       "id" : 0,
       "fields" : [
         ["last_ipv4_dscp_0", 6, false],
-        ["tmp_0", 4, false],
+        ["tmp_0", 16, false],
+        ["tmp_1", 16, false],
+        ["tmp_2", 4, false],
         ["tmp", 32, false],
-        ["tmp_1", 32, false],
+        ["tmp_3", 32, false],
         ["egress_next_tmp", 1, false],
         ["process_int_main_process_int_transit_hasReturned", 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._int_meta_source19", 1, false],
-        ["fabric_metadata_t._int_meta_transit20", 1, false],
-        ["fabric_metadata_t._int_meta_sink21", 1, false],
-        ["fabric_metadata_t._int_meta_switch_id22", 32, false],
-        ["fabric_metadata_t._int_meta_new_words23", 8, false],
-        ["fabric_metadata_t._int_meta_new_bytes24", 16, false],
-        ["fabric_metadata_t._int_meta_ig_tstamp25", 32, false],
-        ["fabric_metadata_t._int_meta_eg_tstamp26", 32, false],
-        ["_padding_0", 3, 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._int_meta_source15", 1, false],
+        ["fabric_metadata_t._int_meta_transit16", 1, false],
+        ["fabric_metadata_t._int_meta_sink17", 1, false],
+        ["fabric_metadata_t._int_meta_switch_id18", 32, false],
+        ["fabric_metadata_t._int_meta_new_words19", 8, false],
+        ["fabric_metadata_t._int_meta_new_bytes20", 16, false],
+        ["fabric_metadata_t._int_meta_ig_tstamp21", 32, false],
+        ["fabric_metadata_t._int_meta_eg_tstamp22", 32, false],
+        ["_padding_0", 6, 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" : "tcp_t",
-      "id" : 6,
+      "id" : 7,
       "fields" : [
         ["sport", 16, false],
         ["dport", 16, false],
@@ -136,7 +140,7 @@
     },
     {
       "name" : "udp_t",
-      "id" : 7,
+      "id" : 8,
       "fields" : [
         ["sport", 16, false],
         ["dport", 16, false],
@@ -146,7 +150,7 @@
     },
     {
       "name" : "icmp_t",
-      "id" : 8,
+      "id" : 9,
       "fields" : [
         ["icmp_type", 8, false],
         ["icmp_code", 8, false],
@@ -158,7 +162,7 @@
     },
     {
       "name" : "packet_out_header_t",
-      "id" : 9,
+      "id" : 10,
       "fields" : [
         ["egress_port", 9, false],
         ["_pad", 7, false]
@@ -166,7 +170,7 @@
     },
     {
       "name" : "packet_in_header_t",
-      "id" : 10,
+      "id" : 11,
       "fields" : [
         ["ingress_port", 9, false],
         ["_pad", 7, false]
@@ -174,7 +178,7 @@
     },
     {
       "name" : "intl4_shim_t",
-      "id" : 11,
+      "id" : 12,
       "fields" : [
         ["int_type", 8, false],
         ["rsvd1", 8, false],
@@ -184,7 +188,7 @@
     },
     {
       "name" : "int_header_t",
-      "id" : 12,
+      "id" : 13,
       "fields" : [
         ["ver", 2, false],
         ["rep", 2, false],
@@ -203,14 +207,14 @@
     },
     {
       "name" : "int_switch_id_t",
-      "id" : 13,
+      "id" : 14,
       "fields" : [
         ["switch_id", 32, false]
       ]
     },
     {
       "name" : "int_port_ids_t",
-      "id" : 14,
+      "id" : 15,
       "fields" : [
         ["ingress_port_id", 16, false],
         ["egress_port_id", 16, false]
@@ -218,14 +222,14 @@
     },
     {
       "name" : "int_hop_latency_t",
-      "id" : 15,
+      "id" : 16,
       "fields" : [
         ["hop_latency", 32, false]
       ]
     },
     {
       "name" : "int_q_occupancy_t",
-      "id" : 16,
+      "id" : 17,
       "fields" : [
         ["q_id", 8, false],
         ["q_occupancy", 24, false]
@@ -233,21 +237,21 @@
     },
     {
       "name" : "int_ingress_tstamp_t",
-      "id" : 17,
+      "id" : 18,
       "fields" : [
         ["ingress_tstamp", 32, false]
       ]
     },
     {
       "name" : "int_egress_tstamp_t",
-      "id" : 18,
+      "id" : 19,
       "fields" : [
         ["egress_tstamp", 32, false]
       ]
     },
     {
       "name" : "int_q_congestion_t",
-      "id" : 19,
+      "id" : 20,
       "fields" : [
         ["q_id", 8, false],
         ["q_congestion", 24, false]
@@ -255,14 +259,14 @@
     },
     {
       "name" : "int_egress_port_tx_util_t",
-      "id" : 20,
+      "id" : 21,
       "fields" : [
         ["egress_port_tx_util", 32, false]
       ]
     },
     {
       "name" : "intl4_tail_t",
-      "id" : 21,
+      "id" : 22,
       "fields" : [
         ["next_proto", 8, false],
         ["dest_port", 16, false],
@@ -308,127 +312,134 @@
       "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" : "ipv4",
-      "id" : 6,
+      "id" : 7,
       "header_type" : "ipv4_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "tcp",
-      "id" : 7,
+      "id" : 8,
       "header_type" : "tcp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "udp",
-      "id" : 8,
+      "id" : 9,
       "header_type" : "udp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "icmp",
-      "id" : 9,
+      "id" : 10,
       "header_type" : "icmp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "packet_out",
-      "id" : 10,
+      "id" : 11,
       "header_type" : "packet_out_header_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "packet_in",
-      "id" : 11,
+      "id" : 12,
       "header_type" : "packet_in_header_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "intl4_shim",
-      "id" : 12,
+      "id" : 13,
       "header_type" : "intl4_shim_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_header",
-      "id" : 13,
+      "id" : 14,
       "header_type" : "int_header_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_switch_id",
-      "id" : 14,
+      "id" : 15,
       "header_type" : "int_switch_id_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_port_ids",
-      "id" : 15,
+      "id" : 16,
       "header_type" : "int_port_ids_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_hop_latency",
-      "id" : 16,
+      "id" : 17,
       "header_type" : "int_hop_latency_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_q_occupancy",
-      "id" : 17,
+      "id" : 18,
       "header_type" : "int_q_occupancy_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_ingress_tstamp",
-      "id" : 18,
+      "id" : 19,
       "header_type" : "int_ingress_tstamp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_egress_tstamp",
-      "id" : 19,
+      "id" : 20,
       "header_type" : "int_egress_tstamp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_q_congestion",
-      "id" : 20,
+      "id" : 21,
       "header_type" : "int_q_congestion_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_egress_tx_util",
-      "id" : 21,
+      "id" : 22,
       "header_type" : "int_egress_port_tx_util_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "intl4_tail",
-      "id" : 22,
+      "id" : 23,
       "header_type" : "intl4_tail_t",
       "metadata" : false,
       "pi_omit" : true
@@ -536,11 +547,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"
@@ -549,11 +560,11 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+                  "value" : ["scalars", "tmp_0"]
                 },
                 {
-                  "type" : "hexstr",
-                  "value" : "0x0ffe"
+                  "type" : "lookahead",
+                  "value" : [0, 16]
                 }
               ],
               "op" : "set"
@@ -579,27 +590,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_0"]
             }
           ]
         },
@@ -615,23 +614,24 @@
                 }
               ],
               "op" : "extract"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_1"]
+                },
+                {
+                  "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"
@@ -639,13 +639,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_1"]
             }
           ]
         },
@@ -665,11 +665,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",
@@ -677,6 +694,12 @@
               "next_state" : "parse_mpls"
             },
             {
+              "type" : "hexstr",
+              "value" : "0x0800",
+              "mask" : null,
+              "next_state" : "parse_ipv4"
+            },
+            {
               "value" : "default",
               "mask" : null,
               "next_state" : null
@@ -685,13 +708,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" : [
@@ -706,30 +729,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",
@@ -742,7 +742,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
+                  "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
                 },
                 {
                   "type" : "field",
@@ -755,7 +755,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_0"]
+                  "value" : ["scalars", "tmp_2"]
                 },
                 {
                   "type" : "lookahead",
@@ -781,48 +781,11 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_0"]
+              "value" : ["scalars", "tmp_2"]
             }
           ]
         },
         {
-          "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" : [
@@ -839,7 +802,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_proto16"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
                 },
                 {
                   "type" : "field",
@@ -852,7 +815,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
                 },
                 {
                   "type" : "hexstr",
@@ -924,7 +887,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
                 },
                 {
                   "type" : "field",
@@ -937,7 +900,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
                 },
                 {
                   "type" : "field",
@@ -973,7 +936,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
                 },
                 {
                   "type" : "field",
@@ -986,7 +949,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
                 },
                 {
                   "type" : "field",
@@ -1146,11 +1109,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", "ipv4", "tcp", "udp", "icmp", "intl4_shim", "int_header", "int_switch_id", "int_port_ids", "int_hop_latency", "int_q_occupancy", "int_ingress_tstamp", "int_egress_tstamp", "int_q_congestion", "int_egress_tx_util", "intl4_tail"]
+      "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "ipv4", "tcp", "udp", "icmp", "intl4_shim", "int_header", "int_switch_id", "int_port_ids", "int_hop_latency", "int_q_occupancy", "int_ingress_tstamp", "int_egress_tstamp", "int_q_congestion", "int_egress_tx_util", "intl4_tail"]
     }
   ],
   "meter_arrays" : [],
@@ -1216,20 +1179,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" : {
@@ -1241,7 +1192,7 @@
     },
     {
       "name" : "FabricIngress.next.next_vlan_counter",
-      "id" : 7,
+      "id" : 6,
       "is_direct" : true,
       "binding" : "FabricIngress.next.next_vlan",
       "source_info" : {
@@ -1253,7 +1204,7 @@
     },
     {
       "name" : "FabricIngress.next.xconnect_counter",
-      "id" : 8,
+      "id" : 7,
       "is_direct" : true,
       "binding" : "FabricIngress.next.xconnect",
       "source_info" : {
@@ -1265,31 +1216,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,
@@ -1301,7 +1252,7 @@
     },
     {
       "name" : "FabricIngress.port_counters_control.ingress_port_counter",
-      "id" : 12,
+      "id" : 11,
       "source_info" : {
         "filename" : "include/control/port_counter.p4",
         "line" : 27,
@@ -1313,7 +1264,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_source.counter_int_source",
-      "id" : 13,
+      "id" : 12,
       "is_direct" : true,
       "binding" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
       "source_info" : {
@@ -1325,12 +1276,12 @@
     },
     {
       "name" : "FabricEgress.egress_next.egress_vlan_counter",
-      "id" : 14,
+      "id" : 13,
       "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"
       }
@@ -1521,7 +1472,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_source19"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_source15"]
             },
             {
               "type" : "expression",
@@ -1557,7 +1508,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"]
+              "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
             },
             {
               "type" : "expression",
@@ -1586,7 +1537,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next11"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next7"]
             },
             {
               "type" : "expression",
@@ -1633,7 +1584,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "runtime_data",
@@ -1664,7 +1615,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
+              "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
             },
             {
               "type" : "runtime_data",
@@ -1695,7 +1646,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id13"]
+              "value" : ["scalars", "fabric_metadata_t._next_id9"]
             },
             {
               "type" : "runtime_data",
@@ -1726,7 +1677,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
             },
             {
               "type" : "hexstr",
@@ -1745,7 +1696,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id13"]
+              "value" : ["scalars", "fabric_metadata_t._next_id9"]
             },
             {
               "type" : "runtime_data",
@@ -1776,7 +1727,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id13"]
+              "value" : ["scalars", "fabric_metadata_t._next_id9"]
             },
             {
               "type" : "runtime_data",
@@ -1813,7 +1764,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id13"]
+              "value" : ["scalars", "fabric_metadata_t._next_id9"]
             },
             {
               "type" : "runtime_data",
@@ -1858,7 +1809,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next11"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next7"]
             },
             {
               "type" : "expression",
@@ -1940,7 +1891,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next11"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next7"]
             },
             {
               "type" : "expression",
@@ -1987,7 +1938,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "runtime_data",
@@ -2031,25 +1982,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; ..."
-          }
         }
       ]
     },
@@ -2068,7 +2000,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id13"]
+              "value" : ["scalars", "fabric_metadata_t._next_id9"]
             },
             {
               "type" : "runtime_data",
@@ -2077,7 +2009,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 112,
+            "line" : 111,
             "column" : 32,
             "source_fragment" : "= next_id; ..."
           }
@@ -2219,7 +2151,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
             },
             {
               "type" : "runtime_data",
@@ -2316,7 +2248,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 225,
+            "line" : 227,
             "column" : 8,
             "source_fragment" : "standard_metadata.mcast_grp = group_id"
           }
@@ -2326,7 +2258,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._is_multicast14"]
+              "value" : ["scalars", "fabric_metadata_t._is_multicast10"]
             },
             {
               "type" : "expression",
@@ -2345,7 +2277,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 226,
+            "line" : 228,
             "column" : 37,
             "source_fragment" : "= true; ..."
           }
@@ -2396,7 +2328,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"]
+              "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"]
             },
             {
               "type" : "expression",
@@ -2442,7 +2374,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "field",
@@ -2451,7 +2383,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 110,
+            "line" : 109,
             "column" : 36,
             "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
           }
@@ -2461,7 +2393,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_pri6"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
             },
             {
               "type" : "field",
@@ -2470,7 +2402,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 111,
+            "line" : 110,
             "column" : 37,
             "source_fragment" : "= hdr.vlan_tag.pri; ..."
           }
@@ -2480,7 +2412,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
             },
             {
               "type" : "field",
@@ -2489,7 +2421,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 112,
+            "line" : 111,
             "column" : 37,
             "source_fragment" : "= hdr.vlan_tag.cfi; ..."
           }
@@ -2506,7 +2438,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
             },
             {
               "type" : "hexstr",
@@ -2515,7 +2447,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 126,
+            "line" : 125,
             "column" : 37,
             "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
           }
@@ -2532,110 +2464,6 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x8847"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 108,
-            "column" : 31,
-            "source_fragment" : "0x8847; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_3",
-      "id" : 33,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "field",
-              "value" : ["inner_vlan_tag", "eth_type"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 136,
-            "column" : 50,
-            "source_fragment" : "= hdr.inner_vlan_tag.eth_type; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_4",
-      "id" : 34,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "field",
-              "value" : ["vlan_tag", "eth_type"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 139,
-            "column" : 50,
-            "source_fragment" : "= hdr.vlan_tag.eth_type; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_5",
-      "id" : 35,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
-            },
-            {
-              "type" : "field",
-              "value" : ["ethernet", "eth_type"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 141,
-            "column" : 46,
-            "source_fragment" : "= hdr.ethernet.eth_type; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_6",
-      "id" : 36,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
               "value" : ["scalars", "tmp"]
             },
             {
@@ -2685,8 +2513,8 @@
       ]
     },
     {
-      "name" : "act_7",
-      "id" : 37,
+      "name" : "act_3",
+      "id" : 33,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2694,7 +2522,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_3"]
             },
             {
               "type" : "expression",
@@ -2730,7 +2558,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_3"]
             }
           ],
           "source_info" : {
@@ -2744,37 +2572,37 @@
     },
     {
       "name" : "nop",
+      "id" : 34,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 35,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 36,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "NoAction",
+      "id" : 37,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "NoAction",
       "id" : 38,
       "runtime_data" : [],
       "primitives" : []
     },
     {
-      "name" : "nop",
-      "id" : 39,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "nop",
-      "id" : 40,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "NoAction",
-      "id" : 41,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "NoAction",
-      "id" : 42,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricEgress.process_int_main.process_int_source.int_source_dscp",
-      "id" : 43,
+      "id" : 39,
       "runtime_data" : [
         {
           "name" : "max_hop",
@@ -2842,7 +2670,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 153,
+            "line" : 157,
             "column" : 36,
             "source_fragment" : "4; ..."
           }
@@ -3133,7 +2961,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
+              "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
             }
           ],
           "source_info" : {
@@ -3260,7 +3088,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 149,
+            "line" : 153,
             "column" : 24,
             "source_fragment" : "0x1; ..."
           }
@@ -3269,7 +3097,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.init_metadata",
-      "id" : 44,
+      "id" : 40,
       "runtime_data" : [
         {
           "name" : "switch_id",
@@ -3282,7 +3110,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_transit20"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_transit16"]
             },
             {
               "type" : "expression",
@@ -3311,7 +3139,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"]
             },
             {
               "type" : "runtime_data",
@@ -3329,13 +3157,13 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0",
-      "id" : 45,
+      "id" : 41,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1",
-      "id" : 46,
+      "id" : 42,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3409,7 +3237,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -3423,7 +3251,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -3451,7 +3279,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -3465,7 +3293,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -3492,7 +3320,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2",
-      "id" : 47,
+      "id" : 43,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3534,7 +3362,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -3548,7 +3376,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -3576,7 +3404,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -3590,7 +3418,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -3617,6 +3445,807 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3",
+      "id" : 44,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_occupancy"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 60,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 62,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_id = 8w0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_occupancy"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "deq_qdepth"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 63,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = (bit<24>) smeta.deq_qdepth"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_hop_latency"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 54,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_hop_latency", "hop_latency"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "deq_timedelta"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 55,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) smeta.deq_timedelta"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 103,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 104,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4",
+      "id" : 45,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 47,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 48,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 49,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 97,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 1; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0004"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 98,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 4; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5",
+      "id" : 46,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_occupancy"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 60,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 62,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_id = 8w0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_occupancy"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "deq_qdepth"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 63,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = (bit<24>) smeta.deq_qdepth"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 47,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 48,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 49,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 103,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 104,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6",
+      "id" : 47,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_hop_latency"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 54,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_hop_latency", "hop_latency"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "deq_timedelta"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 55,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) smeta.deq_timedelta"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 47,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 48,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 49,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 103,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 104,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7",
       "id" : 48,
       "runtime_data" : [],
       "primitives" : [
@@ -3721,97 +4350,6 @@
           }
         },
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x02"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 103,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x0008"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 104,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4",
-      "id" : 49,
-      "runtime_data" : [],
-      "primitives" : [
-        {
           "op" : "add_header",
           "parameters" : [
             {
@@ -3895,7 +4433,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -3909,7 +4447,132 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 109,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 110,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8",
+      "id" : 49,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_switch_id"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 41,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_switch_id", "switch_id"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 42,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -3937,7 +4600,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -3951,7 +4614,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -3977,7 +4640,7 @@
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9",
       "id" : 50,
       "runtime_data" : [],
       "primitives" : [
@@ -4052,14 +4715,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_port_ids"
+              "value" : "int_switch_id"
             }
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 47,
+            "line" : 41,
             "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.setValid()"
+            "source_fragment" : "hdr.int_switch_id.setValid()"
           }
         },
         {
@@ -4067,31 +4730,18 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_port_ids", "ingress_port_id"]
+              "value" : ["int_switch_id", "switch_id"]
             },
             {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "ingress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"]
             }
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 48,
+            "line" : 42,
             "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
+            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
           }
         },
         {
@@ -4099,39 +4749,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_port_ids", "egress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "egress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 49,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -4145,7 +4763,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -4173,7 +4791,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -4187,7 +4805,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -4213,7 +4831,7 @@
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10",
       "id" : 51,
       "runtime_data" : [],
       "primitives" : [
@@ -4256,14 +4874,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_port_ids"
+              "value" : "int_switch_id"
             }
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 47,
+            "line" : 41,
             "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.setValid()"
+            "source_fragment" : "hdr.int_switch_id.setValid()"
           }
         },
         {
@@ -4271,31 +4889,18 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_port_ids", "ingress_port_id"]
+              "value" : ["int_switch_id", "switch_id"]
             },
             {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "ingress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"]
             }
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 48,
+            "line" : 42,
             "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
+            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
           }
         },
         {
@@ -4303,39 +4908,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_port_ids", "egress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "egress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 49,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -4349,7 +4922,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -4377,7 +4950,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -4391,7 +4964,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -4417,7 +4990,7 @@
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11",
       "id" : 52,
       "runtime_data" : [],
       "primitives" : [
@@ -4526,6 +5099,131 @@
           "parameters" : [
             {
               "type" : "header",
+              "value" : "int_switch_id"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 41,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_switch_id", "switch_id"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 42,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 109,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 110,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12",
+      "id" : 53,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
               "value" : "int_port_ids"
             }
           ],
@@ -4601,97 +5299,6 @@
           }
         },
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8",
-      "id" : 53,
-      "runtime_data" : [],
-      "primitives" : [
-        {
           "op" : "add_header",
           "parameters" : [
             {
@@ -4715,7 +5322,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"]
             }
           ],
           "source_info" : {
@@ -4730,7 +5337,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -4744,11 +5351,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x01"
+                        "value" : "0x02"
                       }
                     }
                   },
@@ -4762,9 +5369,9 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 97,
+            "line" : 103,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 1; ..."
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
           }
         },
         {
@@ -4772,7 +5379,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -4786,11 +5393,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x0004"
+                        "value" : "0x0008"
                       }
                     }
                   },
@@ -4804,15 +5411,15 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 98,
+            "line" : 104,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 4; ..."
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
           }
         }
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13",
       "id" : 54,
       "runtime_data" : [],
       "primitives" : [
@@ -4887,6 +5494,85 @@
           "parameters" : [
             {
               "type" : "header",
+              "value" : "int_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 47,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 48,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 49,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
               "value" : "int_switch_id"
             }
           ],
@@ -4906,7 +5592,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"]
             }
           ],
           "source_info" : {
@@ -4921,7 +5607,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -4935,11 +5621,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x02"
+                        "value" : "0x03"
                       }
                     }
                   },
@@ -4953,9 +5639,9 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 103,
+            "line" : 109,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
           }
         },
         {
@@ -4963,7 +5649,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -4977,11 +5663,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x0008"
+                        "value" : "0x000c"
                       }
                     }
                   },
@@ -4995,15 +5681,15 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 104,
+            "line" : 110,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
           }
         }
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14",
       "id" : 55,
       "runtime_data" : [],
       "primitives" : [
@@ -5046,6 +5732,85 @@
           "parameters" : [
             {
               "type" : "header",
+              "value" : "int_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 47,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 48,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 49,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
               "value" : "int_switch_id"
             }
           ],
@@ -5065,7 +5830,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"]
             }
           ],
           "source_info" : {
@@ -5080,7 +5845,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -5094,11 +5859,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x02"
+                        "value" : "0x03"
                       }
                     }
                   },
@@ -5112,9 +5877,9 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 103,
+            "line" : 109,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
           }
         },
         {
@@ -5122,7 +5887,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -5136,11 +5901,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x0008"
+                        "value" : "0x000c"
                       }
                     }
                   },
@@ -5154,15 +5919,15 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 104,
+            "line" : 110,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
           }
         }
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15",
       "id" : 56,
       "runtime_data" : [],
       "primitives" : [
@@ -5271,131 +6036,6 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_switch_id"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 41,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_switch_id", "switch_id"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 42,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12",
-      "id" : 57,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_port_ids"
             }
           ],
@@ -5494,7 +6134,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id18"]
             }
           ],
           "source_info" : {
@@ -5509,7 +6149,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -5523,819 +6163,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x02"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 103,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x0008"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 104,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13",
-      "id" : 58,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_q_occupancy"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 60,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 62,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_id = 8w0"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_occupancy"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "deq_qdepth"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 63,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = (bit<24>) smeta.deq_qdepth"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_port_ids"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 47,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_port_ids", "ingress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "ingress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 48,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_port_ids", "egress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "egress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 49,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_switch_id"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 41,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_switch_id", "switch_id"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 42,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14",
-      "id" : 59,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_hop_latency"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 54,
-            "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_hop_latency", "hop_latency"]
-            },
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "deq_timedelta"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 55,
-            "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) smeta.deq_timedelta"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_port_ids"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 47,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_port_ids", "ingress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "ingress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 48,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_port_ids", "egress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "egress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 49,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_switch_id"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 41,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_switch_id", "switch_id"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 42,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15",
-      "id" : 60,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_q_occupancy"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 60,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 62,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_id = 8w0"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_occupancy"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "deq_qdepth"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 63,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = (bit<24>) smeta.deq_qdepth"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_hop_latency"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 54,
-            "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_hop_latency", "hop_latency"]
-            },
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "deq_timedelta"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 55,
-            "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) smeta.deq_timedelta"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_port_ids"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 47,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_port_ids", "ingress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "ingress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 48,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_port_ids", "egress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "egress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 49,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_switch_id"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 41,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_switch_id", "switch_id"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id22"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 42,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -6363,7 +6191,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -6377,7 +6205,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -6404,13 +6232,13 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0",
-      "id" : 61,
+      "id" : 57,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1",
-      "id" : 62,
+      "id" : 58,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6452,7 +6280,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -6466,7 +6294,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -6494,7 +6322,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -6508,7 +6336,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -6535,7 +6363,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2",
-      "id" : 63,
+      "id" : 59,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6596,7 +6424,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -6610,7 +6438,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -6638,7 +6466,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -6652,7 +6480,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -6679,6 +6507,715 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3",
+      "id" : 60,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tx_util"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 88,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 90,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = 32w0"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_congestion"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 80,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 82,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_id = 8w0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_congestion"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 83,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_congestion = 24w0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 103,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 104,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4",
+      "id" : 61,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 74,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tstamp", "egress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "enq_timestamp"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "deq_timedelta"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 75,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 97,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 1; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0004"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 98,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 4; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5",
+      "id" : 62,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tx_util"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 88,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 90,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = 32w0"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 74,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tstamp", "egress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "enq_timestamp"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "deq_timedelta"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 75,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 103,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 104,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6",
+      "id" : 63,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_congestion"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 80,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 82,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_id = 8w0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_congestion"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 83,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_congestion = 24w0"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 74,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tstamp", "egress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "enq_timestamp"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "deq_timedelta"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 75,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 103,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 104,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7",
       "id" : 64,
       "runtime_data" : [],
       "primitives" : [
@@ -6770,97 +7307,6 @@
           }
         },
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x02"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 103,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x0008"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 104,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4",
-      "id" : 65,
-      "runtime_data" : [],
-      "primitives" : [
-        {
           "op" : "add_header",
           "parameters" : [
             {
@@ -6922,7 +7368,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -6936,7 +7382,132 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 109,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 110,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8",
+      "id" : 65,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_ingress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 68,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "enq_timestamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 69,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -6964,7 +7535,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -6978,7 +7549,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -7004,7 +7575,7 @@
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9",
       "id" : 66,
       "runtime_data" : [],
       "primitives" : [
@@ -7047,14 +7618,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_egress_tstamp"
+              "value" : "int_ingress_tstamp"
             }
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 74,
+            "line" : 68,
             "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
           }
         },
         {
@@ -7062,7 +7633,26 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_egress_tstamp", "egress_tstamp"]
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "enq_timestamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 69,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -7076,49 +7666,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["standard_metadata", "enq_timestamp"]
-                      },
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "deq_timedelta"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 75,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -7146,7 +7694,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -7160,7 +7708,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -7186,7 +7734,7 @@
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10",
       "id" : 67,
       "runtime_data" : [],
       "primitives" : [
@@ -7248,14 +7796,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_egress_tstamp"
+              "value" : "int_ingress_tstamp"
             }
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 74,
+            "line" : 68,
             "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
           }
         },
         {
@@ -7263,7 +7811,26 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_egress_tstamp", "egress_tstamp"]
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "enq_timestamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 69,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -7277,49 +7844,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["standard_metadata", "enq_timestamp"]
-                      },
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "deq_timedelta"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 75,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -7347,7 +7872,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -7361,7 +7886,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -7387,7 +7912,7 @@
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11",
       "id" : 68,
       "runtime_data" : [],
       "primitives" : [
@@ -7483,6 +8008,131 @@
           "parameters" : [
             {
               "type" : "header",
+              "value" : "int_ingress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 68,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "enq_timestamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 69,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 109,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 110,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12",
+      "id" : 69,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
               "value" : "int_egress_tstamp"
             }
           ],
@@ -7536,97 +8186,6 @@
           }
         },
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8",
-      "id" : 69,
-      "runtime_data" : [],
-      "primitives" : [
-        {
           "op" : "add_header",
           "parameters" : [
             {
@@ -7665,7 +8224,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -7679,11 +8238,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x01"
+                        "value" : "0x02"
                       }
                     }
                   },
@@ -7697,9 +8256,9 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 97,
+            "line" : 103,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 1; ..."
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
           }
         },
         {
@@ -7707,7 +8266,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -7721,11 +8280,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x0004"
+                        "value" : "0x0008"
                       }
                     }
                   },
@@ -7739,15 +8298,15 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 98,
+            "line" : 104,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 4; ..."
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
           }
         }
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13",
       "id" : 70,
       "runtime_data" : [],
       "primitives" : [
@@ -7790,6 +8349,63 @@
           "parameters" : [
             {
               "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 74,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tstamp", "egress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "enq_timestamp"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "deq_timedelta"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 75,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
               "value" : "int_ingress_tstamp"
             }
           ],
@@ -7824,7 +8440,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -7838,11 +8454,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x02"
+                        "value" : "0x03"
                       }
                     }
                   },
@@ -7856,9 +8472,9 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 103,
+            "line" : 109,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
           }
         },
         {
@@ -7866,7 +8482,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -7880,11 +8496,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x0008"
+                        "value" : "0x000c"
                       }
                     }
                   },
@@ -7898,15 +8514,15 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 104,
+            "line" : 110,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
           }
         }
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14",
       "id" : 71,
       "runtime_data" : [],
       "primitives" : [
@@ -7968,6 +8584,63 @@
           "parameters" : [
             {
               "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 74,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tstamp", "egress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "enq_timestamp"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "deq_timedelta"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 75,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
               "value" : "int_ingress_tstamp"
             }
           ],
@@ -8002,7 +8675,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -8016,11 +8689,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x02"
+                        "value" : "0x03"
                       }
                     }
                   },
@@ -8034,9 +8707,9 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 103,
+            "line" : 109,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
           }
         },
         {
@@ -8044,7 +8717,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -8058,11 +8731,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x0008"
+                        "value" : "0x000c"
                       }
                     }
                   },
@@ -8076,15 +8749,15 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 104,
+            "line" : 110,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
           }
         }
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15",
       "id" : 72,
       "runtime_data" : [],
       "primitives" : [
@@ -8180,131 +8853,6 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_ingress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 68,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
-            },
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "enq_timestamp"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 69,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12",
-      "id" : 73,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_egress_tstamp"
             }
           ],
@@ -8396,7 +8944,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
             },
             {
               "type" : "expression",
@@ -8410,727 +8958,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x02"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 103,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x0008"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 104,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13",
-      "id" : 74,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_egress_tx_util"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 88,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 90,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = 32w0"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_egress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 74,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tstamp", "egress_tstamp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "enq_timestamp"]
-                      },
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "deq_timedelta"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 75,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_ingress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 68,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
-            },
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "enq_timestamp"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 69,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14",
-      "id" : 75,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_q_congestion"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 80,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_congestion", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 82,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_id = 8w0"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_congestion", "q_congestion"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 83,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_congestion = 24w0"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_egress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 74,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tstamp", "egress_tstamp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "enq_timestamp"]
-                      },
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "deq_timedelta"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 75,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_ingress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 68,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
-            },
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "enq_timestamp"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 69,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15",
-      "id" : 76,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_egress_tx_util"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 88,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 90,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = 32w0"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_q_congestion"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 80,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_congestion", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 82,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_id = 8w0"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_congestion", "q_congestion"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 83,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_congestion = 24w0"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_egress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 74,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tstamp", "egress_tstamp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "enq_timestamp"]
-                      },
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "deq_timedelta"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 75,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_ingress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 68,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
-            },
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "enq_timestamp"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 69,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9158,7 +8986,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
             },
             {
               "type" : "expression",
@@ -9172,7 +9000,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -9199,7 +9027,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.pop_mpls_if_present",
-      "id" : 77,
+      "id" : 73,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9212,7 +9040,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 264,
+            "line" : 266,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setInvalid()"
           }
@@ -9222,25 +9050,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" : 78,
+      "id" : 74,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9253,7 +9081,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 271,
+            "line" : 273,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
           }
@@ -9267,12 +9095,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; ..."
           }
@@ -9291,7 +9119,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 273,
+            "line" : 275,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = 3w0"
           }
@@ -9310,7 +9138,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 274,
+            "line" : 276,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
           }
@@ -9324,12 +9152,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. ..."
           }
@@ -9339,7 +9167,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+              "value" : ["eth_type", "value"]
             },
             {
               "type" : "hexstr",
@@ -9348,7 +9176,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 108,
+            "line" : 112,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
           }
@@ -9357,7 +9185,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.push_vlan",
-      "id" : 79,
+      "id" : 75,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9370,7 +9198,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 283,
+            "line" : 285,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setValid()"
           }
@@ -9384,12 +9212,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; ..."
           }
@@ -9403,12 +9231,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; ..."
           }
@@ -9421,15 +9249,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; ..."
           }
         },
         {
@@ -9441,62 +9269,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" : 80,
+      "id" : 76,
       "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" : [
             {
@@ -9506,7 +9296,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 314,
+            "line" : 312,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
           }
@@ -9514,8 +9304,8 @@
       ]
     },
     {
-      "name" : "act_8",
-      "id" : 81,
+      "name" : "act_4",
+      "id" : 77,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9531,8 +9321,8 @@
       ]
     },
     {
-      "name" : "act_9",
-      "id" : 82,
+      "name" : "act_5",
+      "id" : 78,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9582,8 +9372,8 @@
       ]
     },
     {
-      "name" : "act_10",
-      "id" : 83,
+      "name" : "act_6",
+      "id" : 79,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9596,7 +9386,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 333,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -9604,8 +9394,8 @@
       ]
     },
     {
-      "name" : "act_11",
-      "id" : 84,
+      "name" : "act_7",
+      "id" : 80,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9634,8 +9424,8 @@
       ]
     },
     {
-      "name" : "act_12",
-      "id" : 85,
+      "name" : "act_8",
+      "id" : 81,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9664,8 +9454,8 @@
       ]
     },
     {
-      "name" : "act_13",
-      "id" : 86,
+      "name" : "act_9",
+      "id" : 82,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9678,7 +9468,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -9686,8 +9476,8 @@
       ]
     },
     {
-      "name" : "act_14",
-      "id" : 87,
+      "name" : "act_10",
+      "id" : 83,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9727,7 +9517,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 367,
+            "line" : 365,
             "column" : 12,
             "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
           }
@@ -9735,8 +9525,8 @@
       ]
     },
     {
-      "name" : "act_15",
-      "id" : 88,
+      "name" : "act_11",
+      "id" : 84,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9749,7 +9539,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -9757,8 +9547,8 @@
       ]
     },
     {
-      "name" : "act_16",
-      "id" : 89,
+      "name" : "act_12",
+      "id" : 85,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9798,7 +9588,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 371,
+            "line" : 369,
             "column" : 16,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
           }
@@ -9806,8 +9596,8 @@
       ]
     },
     {
-      "name" : "act_17",
-      "id" : 90,
+      "name" : "act_13",
+      "id" : 86,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9836,8 +9626,8 @@
       ]
     },
     {
-      "name" : "act_18",
-      "id" : 91,
+      "name" : "act_14",
+      "id" : 87,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9872,8 +9662,8 @@
       ]
     },
     {
-      "name" : "act_19",
-      "id" : 92,
+      "name" : "act_15",
+      "id" : 88,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9899,7 +9689,7 @@
                       },
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       }
                     }
                   },
@@ -9921,8 +9711,8 @@
       ]
     },
     {
-      "name" : "act_20",
-      "id" : 93,
+      "name" : "act_16",
+      "id" : 89,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9970,8 +9760,8 @@
       ]
     },
     {
-      "name" : "act_21",
-      "id" : 94,
+      "name" : "act_17",
+      "id" : 90,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9997,7 +9787,7 @@
                       },
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes24"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes20"]
                       }
                     }
                   },
@@ -10019,8 +9809,8 @@
       ]
     },
     {
-      "name" : "act_22",
-      "id" : 95,
+      "name" : "act_18",
+      "id" : 91,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10046,7 +9836,7 @@
                       },
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words23"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words19"]
                       }
                     }
                   },
@@ -10114,7 +9904,7 @@
           "id" : 1,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 110,
+            "line" : 109,
             "column" : 36,
             "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
           },
@@ -10143,7 +9933,7 @@
           "id" : 2,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 126,
+            "line" : 125,
             "column" : 37,
             "source_fragment" : "="
           },
@@ -10156,9 +9946,9 @@
           "direct_meters" : null,
           "action_ids" : [31],
           "actions" : ["act_1"],
-          "base_default_next" : "node_8",
+          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
           "next_tables" : {
-            "act_1" : "node_8"
+            "act_1" : "FabricIngress.filtering.ingress_port_vlan"
           },
           "default_entry" : {
             "action_id" : 31,
@@ -10168,124 +9958,8 @@
           }
         },
         {
-          "name" : "tbl_act_2",
-          "id" : 3,
-          "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" : [32],
-          "actions" : ["act_2"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_2" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 32,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_3",
-          "id" : 4,
-          "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" : [33],
-          "actions" : ["act_3"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_3" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 33,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_4",
-          "id" : 5,
-          "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" : [34],
-          "actions" : ["act_4"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_4" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 34,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_5",
-          "id" : 6,
-          "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" : [35],
-          "actions" : ["act_5"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_5" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 35,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
           "name" : "FabricIngress.filtering.ingress_port_vlan",
-          "id" : 7,
+          "id" : 3,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
             "line" : 53,
@@ -10341,7 +10015,7 @@
         },
         {
           "name" : "FabricIngress.filtering.fwd_classifier",
-          "id" : 8,
+          "id" : 4,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
             "line" : 90,
@@ -10362,21 +10036,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
             }
           ],
@@ -10388,9 +10056,9 @@
           "direct_meters" : null,
           "action_ids" : [12],
           "actions" : ["FabricIngress.filtering.set_forwarding_type"],
-          "base_default_next" : "node_17",
+          "base_default_next" : "node_10",
           "next_tables" : {
-            "FabricIngress.filtering.set_forwarding_type" : "node_17"
+            "FabricIngress.filtering.set_forwarding_type" : "node_10"
           },
           "default_entry" : {
             "action_id" : 12,
@@ -10401,7 +10069,7 @@
         },
         {
           "name" : "FabricIngress.forwarding.bridging",
-          "id" : 9,
+          "id" : 5,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 46,
@@ -10412,7 +10080,7 @@
             {
               "match_type" : "exact",
               "name" : "vlan_id",
-              "target" : ["scalars", "fabric_metadata_t._vlan_id5"],
+              "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
               "mask" : null
             },
             {
@@ -10444,7 +10112,7 @@
         },
         {
           "name" : "FabricIngress.forwarding.mpls",
-          "id" : 10,
+          "id" : 6,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 71,
@@ -10455,7 +10123,7 @@
             {
               "match_type" : "exact",
               "name" : "mpls_label",
-              "target" : ["scalars", "fabric_metadata_t._mpls_label8"],
+              "target" : ["scalars", "fabric_metadata_t._mpls_label4"],
               "mask" : null
             }
           ],
@@ -10481,10 +10149,10 @@
         },
         {
           "name" : "FabricIngress.forwarding.routing_v4",
-          "id" : 11,
+          "id" : 7,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 101,
+            "line" : 108,
             "column" : 10,
             "source_fragment" : "routing_v4"
           },
@@ -10499,7 +10167,7 @@
           "match_type" : "lpm",
           "type" : "simple",
           "max_size" : 1024,
-          "with_counters" : true,
+          "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
           "action_ids" : [15, 16, 3],
@@ -10519,7 +10187,7 @@
         },
         {
           "name" : "FabricIngress.acl.acl",
-          "id" : 12,
+          "id" : 8,
           "source_info" : {
             "filename" : "include/control/acl.p4",
             "line" : 60,
@@ -10536,19 +10204,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
             },
             {
@@ -10572,7 +10240,7 @@
             {
               "match_type" : "ternary",
               "name" : "eth_type",
-              "target" : ["scalars", "fabric_metadata_t._last_eth_type0"],
+              "target" : ["eth_type", "value"],
               "mask" : null
             },
             {
@@ -10608,13 +10276,13 @@
           "direct_meters" : null,
           "action_ids" : [17, 18, 19, 20, 21],
           "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_25",
+          "base_default_next" : "node_18",
           "next_tables" : {
-            "FabricIngress.acl.set_next_id_acl" : "node_25",
-            "FabricIngress.acl.punt_to_cpu" : "node_25",
-            "FabricIngress.acl.set_clone_session_id" : "node_25",
-            "FabricIngress.acl.drop" : "node_25",
-            "FabricIngress.acl.nop_acl" : "node_25"
+            "FabricIngress.acl.set_next_id_acl" : "node_18",
+            "FabricIngress.acl.punt_to_cpu" : "node_18",
+            "FabricIngress.acl.set_clone_session_id" : "node_18",
+            "FabricIngress.acl.drop" : "node_18",
+            "FabricIngress.acl.nop_acl" : "node_18"
           },
           "default_entry" : {
             "action_id" : 21,
@@ -10625,10 +10293,10 @@
         },
         {
           "name" : "FabricIngress.next.xconnect",
-          "id" : 13,
+          "id" : 9,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 116,
+            "line" : 115,
             "column" : 10,
             "source_fragment" : "xconnect"
           },
@@ -10642,7 +10310,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id13"],
+              "target" : ["scalars", "fabric_metadata_t._next_id9"],
               "mask" : null
             }
           ],
@@ -10669,10 +10337,10 @@
         },
         {
           "name" : "FabricIngress.next.hashed",
-          "id" : 14,
+          "id" : 10,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 196,
+            "line" : 198,
             "column" : 10,
             "source_fragment" : "hashed"
           },
@@ -10680,7 +10348,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id13"],
+              "target" : ["scalars", "fabric_metadata_t._next_id9"],
               "mask" : null
             }
           ],
@@ -10703,10 +10371,10 @@
         },
         {
           "name" : "FabricIngress.next.multicast",
-          "id" : 15,
+          "id" : 11,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 230,
+            "line" : 232,
             "column" : 10,
             "source_fragment" : "multicast"
           },
@@ -10714,7 +10382,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id13"],
+              "target" : ["scalars", "fabric_metadata_t._next_id9"],
               "mask" : null
             }
           ],
@@ -10740,7 +10408,7 @@
         },
         {
           "name" : "FabricIngress.next.next_vlan",
-          "id" : 16,
+          "id" : 12,
           "source_info" : {
             "filename" : "include/control/next.p4",
             "line" : 82,
@@ -10751,7 +10419,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id13"],
+              "target" : ["scalars", "fabric_metadata_t._next_id9"],
               "mask" : null
             }
           ],
@@ -10763,10 +10431,10 @@
           "direct_meters" : null,
           "action_ids" : [22, 4],
           "actions" : ["FabricIngress.next.set_vlan", "nop"],
-          "base_default_next" : "node_30",
+          "base_default_next" : "node_23",
           "next_tables" : {
-            "FabricIngress.next.set_vlan" : "node_30",
-            "nop" : "node_30"
+            "FabricIngress.next.set_vlan" : "node_23",
+            "nop" : "node_23"
           },
           "default_entry" : {
             "action_id" : 4,
@@ -10776,8 +10444,8 @@
           }
         },
         {
-          "name" : "tbl_act_6",
-          "id" : 17,
+          "name" : "tbl_act_2",
+          "id" : 13,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 31,
@@ -10791,22 +10459,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [36],
-          "actions" : ["act_6"],
-          "base_default_next" : "node_32",
+          "action_ids" : [32],
+          "actions" : ["act_2"],
+          "base_default_next" : "node_25",
           "next_tables" : {
-            "act_6" : "node_32"
+            "act_2" : "node_25"
           },
           "default_entry" : {
-            "action_id" : 36,
+            "action_id" : 32,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_7",
-          "id" : 18,
+          "name" : "tbl_act_3",
+          "id" : 14,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 34,
@@ -10820,14 +10488,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [37],
-          "actions" : ["act_7"],
+          "action_ids" : [33],
+          "actions" : ["act_3"],
           "base_default_next" : "FabricIngress.process_set_source_sink.tb_set_source",
           "next_tables" : {
-            "act_7" : "FabricIngress.process_set_source_sink.tb_set_source"
+            "act_3" : "FabricIngress.process_set_source_sink.tb_set_source"
           },
           "default_entry" : {
-            "action_id" : 37,
+            "action_id" : 33,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -10835,7 +10503,7 @@
         },
         {
           "name" : "FabricIngress.process_set_source_sink.tb_set_source",
-          "id" : 19,
+          "id" : 15,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 46,
@@ -10877,7 +10545,7 @@
           "id" : 0,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 177,
+            "line" : 179,
             "column" : 57,
             "source_fragment" : "hashed_selector"
           },
@@ -10895,15 +10563,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"]
               }
             ]
           }
@@ -10938,7 +10606,7 @@
           "id" : 1,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 109,
+            "line" : 108,
             "column" : 12,
             "source_fragment" : "hdr.vlan_tag.isValid()"
           },
@@ -10961,7 +10629,7 @@
           "id" : 2,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 121,
+            "line" : 120,
             "column" : 12,
             "source_fragment" : "!hdr.mpls.isValid()"
           },
@@ -10984,80 +10652,11 @@
             }
           },
           "true_next" : "tbl_act_1",
-          "false_next" : "node_8"
-        },
-        {
-          "name" : "node_8",
-          "id" : 3,
-          "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_2",
-          "false_next" : "node_10"
+          "false_next" : "FabricIngress.filtering.ingress_port_vlan"
         },
         {
           "name" : "node_10",
-          "id" : 4,
-          "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_11",
-          "false_next" : "tbl_act_5"
-        },
-        {
-          "name" : "node_11",
-          "id" : 5,
-          "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_3",
-          "false_next" : "tbl_act_4"
-        },
-        {
-          "name" : "node_17",
-          "id" : 6,
+          "id" : 3,
           "source_info" : {
             "filename" : "fabric.p4",
             "line" : 71,
@@ -11075,7 +10674,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"]
+                    "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
                   }
                 }
               },
@@ -11085,15 +10684,15 @@
               }
             }
           },
-          "true_next" : "node_18",
+          "true_next" : "node_11",
           "false_next" : "FabricIngress.acl.acl"
         },
         {
-          "name" : "node_18",
-          "id" : 7,
+          "name" : "node_11",
+          "id" : 4,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 141,
+            "line" : 150,
             "column" : 12,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
           },
@@ -11103,7 +10702,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -11112,14 +10711,14 @@
             }
           },
           "true_next" : "FabricIngress.forwarding.bridging",
-          "false_next" : "node_20"
+          "false_next" : "node_13"
         },
         {
-          "name" : "node_20",
-          "id" : 8,
+          "name" : "node_13",
+          "id" : 5,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 142,
+            "line" : 151,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
           },
@@ -11129,7 +10728,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -11138,14 +10737,14 @@
             }
           },
           "true_next" : "FabricIngress.forwarding.mpls",
-          "false_next" : "node_22"
+          "false_next" : "node_15"
         },
         {
-          "name" : "node_22",
-          "id" : 9,
+          "name" : "node_15",
+          "id" : 6,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 143,
+            "line" : 152,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
           },
@@ -11155,7 +10754,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -11167,8 +10766,8 @@
           "false_next" : "FabricIngress.acl.acl"
         },
         {
-          "name" : "node_25",
-          "id" : 10,
+          "name" : "node_18",
+          "id" : 7,
           "source_info" : {
             "filename" : "fabric.p4",
             "line" : 75,
@@ -11186,7 +10785,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._skip_next11"]
+                    "value" : ["scalars", "fabric_metadata_t._skip_next7"]
                   }
                 }
               },
@@ -11200,8 +10799,8 @@
           "true_next" : "FabricIngress.next.xconnect"
         },
         {
-          "name" : "node_30",
-          "id" : 11,
+          "name" : "node_23",
+          "id" : 8,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 30,
@@ -11222,12 +10821,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_6",
-          "false_next" : "node_32"
+          "true_next" : "tbl_act_2",
+          "false_next" : "node_25"
         },
         {
-          "name" : "node_32",
-          "id" : 12,
+          "name" : "node_25",
+          "id" : 9,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 33,
@@ -11248,7 +10847,7 @@
               }
             }
           },
-          "true_next" : "tbl_act_7",
+          "true_next" : "tbl_act_3",
           "false_next" : "FabricIngress.process_set_source_sink.tb_set_source"
         }
       ]
@@ -11262,11 +10861,11 @@
         "column" : 8,
         "source_fragment" : "FabricEgress"
       },
-      "init_table" : "node_37",
+      "init_table" : "node_30",
       "tables" : [
         {
-          "name" : "tbl_act_8",
-          "id" : 20,
+          "name" : "tbl_act_4",
+          "id" : 16,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 41,
@@ -11280,22 +10879,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [81],
-          "actions" : ["act_8"],
-          "base_default_next" : "node_39",
+          "action_ids" : [77],
+          "actions" : ["act_4"],
+          "base_default_next" : "node_32",
           "next_tables" : {
-            "act_8" : "node_39"
+            "act_4" : "node_32"
           },
           "default_entry" : {
-            "action_id" : 81,
+            "action_id" : 77,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_9",
-          "id" : 21,
+          "name" : "tbl_act_5",
+          "id" : 17,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 44,
@@ -11309,25 +10908,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [82],
-          "actions" : ["act_9"],
-          "base_default_next" : "node_41",
+          "action_ids" : [78],
+          "actions" : ["act_5"],
+          "base_default_next" : "node_34",
           "next_tables" : {
-            "act_9" : "node_41"
+            "act_5" : "node_34"
           },
           "default_entry" : {
-            "action_id" : 82,
+            "action_id" : 78,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_10",
-          "id" : 22,
+          "name" : "tbl_act_6",
+          "id" : 18,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 333,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -11338,14 +10937,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [83],
-          "actions" : ["act_10"],
-          "base_default_next" : "node_43",
+          "action_ids" : [79],
+          "actions" : ["act_6"],
+          "base_default_next" : "node_36",
           "next_tables" : {
-            "act_10" : "node_43"
+            "act_6" : "node_36"
           },
           "default_entry" : {
-            "action_id" : 83,
+            "action_id" : 79,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -11353,10 +10952,10 @@
         },
         {
           "name" : "tbl_egress_next_pop_mpls_if_present",
-          "id" : 23,
+          "id" : 19,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 339,
+            "line" : 337,
             "column" : 36,
             "source_fragment" : "pop_mpls_if_present()"
           },
@@ -11367,14 +10966,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [77],
+          "action_ids" : [73],
           "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" : 77,
+            "action_id" : 73,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -11382,10 +10981,10 @@
         },
         {
           "name" : "tbl_egress_next_set_mpls",
-          "id" : 24,
+          "id" : 20,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 339,
             "column" : 12,
             "source_fragment" : "set_mpls()"
           },
@@ -11396,14 +10995,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [78],
+          "action_ids" : [74],
           "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" : 78,
+            "action_id" : 74,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -11411,10 +11010,10 @@
         },
         {
           "name" : "FabricEgress.egress_next.egress_vlan",
-          "id" : 25,
+          "id" : 21,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 318,
+            "line" : 316,
             "column" : 10,
             "source_fragment" : "egress_vlan"
           },
@@ -11422,7 +11021,7 @@
             {
               "match_type" : "exact",
               "name" : "vlan_id",
-              "target" : ["scalars", "fabric_metadata_t._vlan_id5"],
+              "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
               "mask" : null
             },
             {
@@ -11438,23 +11037,23 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [80, 40],
+          "action_ids" : [76, 36],
           "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
           "base_default_next" : null,
           "next_tables" : {
-            "__HIT__" : "tbl_act_11",
-            "__MISS__" : "tbl_act_12"
+            "__HIT__" : "tbl_act_7",
+            "__MISS__" : "tbl_act_8"
           },
           "default_entry" : {
-            "action_id" : 40,
+            "action_id" : 36,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_11",
-          "id" : 26,
+          "name" : "tbl_act_7",
+          "id" : 22,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -11462,22 +11061,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [84],
-          "actions" : ["act_11"],
-          "base_default_next" : "node_50",
+          "action_ids" : [80],
+          "actions" : ["act_7"],
+          "base_default_next" : "node_43",
           "next_tables" : {
-            "act_11" : "node_50"
+            "act_7" : "node_43"
           },
           "default_entry" : {
-            "action_id" : 84,
+            "action_id" : 80,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_12",
-          "id" : 27,
+          "name" : "tbl_act_8",
+          "id" : 23,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -11485,14 +11084,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [85],
-          "actions" : ["act_12"],
-          "base_default_next" : "node_50",
+          "action_ids" : [81],
+          "actions" : ["act_8"],
+          "base_default_next" : "node_43",
           "next_tables" : {
-            "act_12" : "node_50"
+            "act_8" : "node_43"
           },
           "default_entry" : {
-            "action_id" : 85,
+            "action_id" : 81,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -11500,10 +11099,10 @@
         },
         {
           "name" : "tbl_egress_next_push_vlan",
-          "id" : 28,
+          "id" : 24,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 358,
+            "line" : 356,
             "column" : 20,
             "source_fragment" : "push_vlan()"
           },
@@ -11514,25 +11113,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [79],
+          "action_ids" : [75],
           "actions" : ["FabricEgress.egress_next.push_vlan"],
-          "base_default_next" : "node_53",
+          "base_default_next" : "node_46",
           "next_tables" : {
-            "FabricEgress.egress_next.push_vlan" : "node_53"
+            "FabricEgress.egress_next.push_vlan" : "node_46"
           },
           "default_entry" : {
-            "action_id" : 79,
+            "action_id" : 75,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_13",
-          "id" : 29,
+          "name" : "tbl_act_9",
+          "id" : 25,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 367,
+            "line" : 365,
             "column" : 25,
             "source_fragment" : "="
           },
@@ -11543,25 +11142,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [87],
-          "actions" : ["act_14"],
-          "base_default_next" : "node_55",
+          "action_ids" : [83],
+          "actions" : ["act_10"],
+          "base_default_next" : "node_48",
           "next_tables" : {
-            "act_14" : "node_55"
+            "act_10" : "node_48"
           },
           "default_entry" : {
-            "action_id" : 87,
+            "action_id" : 83,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_14",
-          "id" : 30,
+          "name" : "tbl_act_10",
+          "id" : 26,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -11572,25 +11171,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [86],
-          "actions" : ["act_13"],
-          "base_default_next" : "node_61",
+          "action_ids" : [82],
+          "actions" : ["act_9"],
+          "base_default_next" : "node_54",
           "next_tables" : {
-            "act_13" : "node_61"
+            "act_9" : "node_54"
           },
           "default_entry" : {
-            "action_id" : 86,
+            "action_id" : 82,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_15",
-          "id" : 31,
+          "name" : "tbl_act_11",
+          "id" : 27,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 371,
+            "line" : 369,
             "column" : 29,
             "source_fragment" : "="
           },
@@ -11601,25 +11200,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [89],
-          "actions" : ["act_16"],
-          "base_default_next" : "node_59",
+          "action_ids" : [85],
+          "actions" : ["act_12"],
+          "base_default_next" : "node_52",
           "next_tables" : {
-            "act_16" : "node_59"
+            "act_12" : "node_52"
           },
           "default_entry" : {
-            "action_id" : 89,
+            "action_id" : 85,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_16",
-          "id" : 32,
+          "name" : "tbl_act_12",
+          "id" : 28,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -11630,14 +11229,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [88],
-          "actions" : ["act_15"],
-          "base_default_next" : "node_61",
+          "action_ids" : [84],
+          "actions" : ["act_11"],
+          "base_default_next" : "node_54",
           "next_tables" : {
-            "act_15" : "node_61"
+            "act_11" : "node_54"
           },
           "default_entry" : {
-            "action_id" : 88,
+            "action_id" : 84,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -11645,7 +11244,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
-          "id" : 33,
+          "id" : 29,
           "source_info" : {
             "filename" : "include/int/int_source.p4",
             "line" : 66,
@@ -11668,13 +11267,13 @@
             {
               "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
             }
           ],
@@ -11684,23 +11283,23 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [43, 38],
+          "action_ids" : [39, 34],
           "actions" : ["FabricEgress.process_int_main.process_int_source.int_source_dscp", "nop"],
-          "base_default_next" : "node_64",
+          "base_default_next" : "node_57",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_64",
-            "nop" : "node_64"
+            "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_57",
+            "nop" : "node_57"
           },
           "default_entry" : {
-            "action_id" : 38,
+            "action_id" : 34,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_17",
-          "id" : 34,
+          "name" : "tbl_act_13",
+          "id" : 30,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -11708,14 +11307,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [90],
-          "actions" : ["act_17"],
+          "action_ids" : [86],
+          "actions" : ["act_13"],
           "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
           "next_tables" : {
-            "act_17" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
+            "act_13" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
           },
           "default_entry" : {
-            "action_id" : 90,
+            "action_id" : 86,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -11723,7 +11322,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
-          "id" : 35,
+          "id" : 31,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 315,
@@ -11744,23 +11343,23 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [44, 39],
+          "action_ids" : [40, 35],
           "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"],
-          "base_default_next" : "node_67",
+          "base_default_next" : "node_60",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_67",
-            "nop" : "node_67"
+            "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_60",
+            "nop" : "node_60"
           },
           "default_entry" : {
-            "action_id" : 39,
+            "action_id" : 35,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_18",
-          "id" : 36,
+          "name" : "tbl_act_14",
+          "id" : 32,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 420,
@@ -11774,14 +11373,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [91],
-          "actions" : ["act_18"],
-          "base_default_next" : "node_69",
+          "action_ids" : [87],
+          "actions" : ["act_14"],
+          "base_default_next" : "node_62",
           "next_tables" : {
-            "act_18" : "node_69"
+            "act_14" : "node_62"
           },
           "default_entry" : {
-            "action_id" : 91,
+            "action_id" : 87,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -11789,7 +11388,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003",
-          "id" : 37,
+          "id" : 33,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 331,
@@ -11810,7 +11409,7 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 41],
+          "action_ids" : [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 37],
           "actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15", "NoAction"],
           "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407",
           "next_tables" : {
@@ -11833,7 +11432,7 @@
             "NoAction" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407"
           },
           "default_entry" : {
-            "action_id" : 41,
+            "action_id" : 37,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -11853,7 +11452,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 45,
+                "action_id" : 41,
                 "action_data" : []
               },
               "priority" : 1
@@ -11872,7 +11471,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 46,
+                "action_id" : 42,
                 "action_data" : []
               },
               "priority" : 2
@@ -11891,7 +11490,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 47,
+                "action_id" : 43,
                 "action_data" : []
               },
               "priority" : 3
@@ -11910,7 +11509,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 48,
+                "action_id" : 44,
                 "action_data" : []
               },
               "priority" : 4
@@ -11929,7 +11528,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 49,
+                "action_id" : 45,
                 "action_data" : []
               },
               "priority" : 5
@@ -11948,7 +11547,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 50,
+                "action_id" : 46,
                 "action_data" : []
               },
               "priority" : 6
@@ -11967,7 +11566,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 51,
+                "action_id" : 47,
                 "action_data" : []
               },
               "priority" : 7
@@ -11986,7 +11585,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 52,
+                "action_id" : 48,
                 "action_data" : []
               },
               "priority" : 8
@@ -12005,7 +11604,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 53,
+                "action_id" : 49,
                 "action_data" : []
               },
               "priority" : 9
@@ -12024,7 +11623,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 54,
+                "action_id" : 50,
                 "action_data" : []
               },
               "priority" : 10
@@ -12043,7 +11642,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 55,
+                "action_id" : 51,
                 "action_data" : []
               },
               "priority" : 11
@@ -12062,7 +11661,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 56,
+                "action_id" : 52,
                 "action_data" : []
               },
               "priority" : 12
@@ -12081,7 +11680,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 57,
+                "action_id" : 53,
                 "action_data" : []
               },
               "priority" : 13
@@ -12100,7 +11699,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 58,
+                "action_id" : 54,
                 "action_data" : []
               },
               "priority" : 14
@@ -12119,7 +11718,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 59,
+                "action_id" : 55,
                 "action_data" : []
               },
               "priority" : 15
@@ -12138,7 +11737,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 60,
+                "action_id" : 56,
                 "action_data" : []
               },
               "priority" : 16
@@ -12147,7 +11746,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407",
-          "id" : 38,
+          "id" : 34,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 375,
@@ -12168,30 +11767,30 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 42],
+          "action_ids" : [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 38],
           "actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15", "NoAction"],
-          "base_default_next" : "tbl_act_19",
+          "base_default_next" : "tbl_act_15",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_19",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_19",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_19",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_19",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_19",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_19",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_19",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_19",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_19",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_19",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_19",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_19",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_19",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_19",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_19",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_19",
-            "NoAction" : "tbl_act_19"
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_15",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_15",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_15",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_15",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_15",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_15",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_15",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_15",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_15",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_15",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_15",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_15",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_15",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_15",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_15",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_15",
+            "NoAction" : "tbl_act_15"
           },
           "default_entry" : {
-            "action_id" : 42,
+            "action_id" : 38,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -12211,7 +11810,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 61,
+                "action_id" : 57,
                 "action_data" : []
               },
               "priority" : 1
@@ -12230,7 +11829,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 62,
+                "action_id" : 58,
                 "action_data" : []
               },
               "priority" : 2
@@ -12249,7 +11848,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 63,
+                "action_id" : 59,
                 "action_data" : []
               },
               "priority" : 3
@@ -12268,7 +11867,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 64,
+                "action_id" : 60,
                 "action_data" : []
               },
               "priority" : 4
@@ -12287,7 +11886,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 65,
+                "action_id" : 61,
                 "action_data" : []
               },
               "priority" : 5
@@ -12306,7 +11905,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 66,
+                "action_id" : 62,
                 "action_data" : []
               },
               "priority" : 6
@@ -12325,7 +11924,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 67,
+                "action_id" : 63,
                 "action_data" : []
               },
               "priority" : 7
@@ -12344,7 +11943,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 68,
+                "action_id" : 64,
                 "action_data" : []
               },
               "priority" : 8
@@ -12363,7 +11962,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 69,
+                "action_id" : 65,
                 "action_data" : []
               },
               "priority" : 9
@@ -12382,7 +11981,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 70,
+                "action_id" : 66,
                 "action_data" : []
               },
               "priority" : 10
@@ -12401,7 +12000,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 71,
+                "action_id" : 67,
                 "action_data" : []
               },
               "priority" : 11
@@ -12420,7 +12019,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 72,
+                "action_id" : 68,
                 "action_data" : []
               },
               "priority" : 12
@@ -12439,7 +12038,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 73,
+                "action_id" : 69,
                 "action_data" : []
               },
               "priority" : 13
@@ -12458,7 +12057,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 74,
+                "action_id" : 70,
                 "action_data" : []
               },
               "priority" : 14
@@ -12477,7 +12076,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 75,
+                "action_id" : 71,
                 "action_data" : []
               },
               "priority" : 15
@@ -12496,7 +12095,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 76,
+                "action_id" : 72,
                 "action_data" : []
               },
               "priority" : 16
@@ -12504,8 +12103,8 @@
           ]
         },
         {
-          "name" : "tbl_act_19",
-          "id" : 39,
+          "name" : "tbl_act_15",
+          "id" : 35,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 425,
@@ -12519,22 +12118,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [93],
-          "actions" : ["act_20"],
-          "base_default_next" : "node_73",
+          "action_ids" : [89],
+          "actions" : ["act_16"],
+          "base_default_next" : "node_66",
           "next_tables" : {
-            "act_20" : "node_73"
+            "act_16" : "node_66"
           },
           "default_entry" : {
-            "action_id" : 93,
+            "action_id" : 89,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_20",
-          "id" : 40,
+          "name" : "tbl_act_16",
+          "id" : 36,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 428,
@@ -12548,22 +12147,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [92],
-          "actions" : ["act_19"],
-          "base_default_next" : "node_75",
+          "action_ids" : [88],
+          "actions" : ["act_15"],
+          "base_default_next" : "node_68",
           "next_tables" : {
-            "act_19" : "node_75"
+            "act_15" : "node_68"
           },
           "default_entry" : {
-            "action_id" : 92,
+            "action_id" : 88,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_21",
-          "id" : 41,
+          "name" : "tbl_act_17",
+          "id" : 37,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 431,
@@ -12577,22 +12176,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [94],
-          "actions" : ["act_21"],
-          "base_default_next" : "node_77",
+          "action_ids" : [90],
+          "actions" : ["act_17"],
+          "base_default_next" : "node_70",
           "next_tables" : {
-            "act_21" : "node_77"
+            "act_17" : "node_70"
           },
           "default_entry" : {
-            "action_id" : 94,
+            "action_id" : 90,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_22",
-          "id" : 42,
+          "name" : "tbl_act_18",
+          "id" : 38,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 434,
@@ -12606,14 +12205,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [95],
-          "actions" : ["act_22"],
+          "action_ids" : [91],
+          "actions" : ["act_18"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_22" : null
+            "act_18" : null
           },
           "default_entry" : {
-            "action_id" : 95,
+            "action_id" : 91,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -12623,8 +12222,8 @@
       "action_profiles" : [],
       "conditionals" : [
         {
-          "name" : "node_37",
-          "id" : 13,
+          "name" : "node_30",
+          "id" : 10,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 39,
@@ -12642,7 +12241,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"]
+                    "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"]
                   }
                 }
               },
@@ -12652,12 +12251,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_8",
-          "false_next" : "node_39"
+          "true_next" : "tbl_act_4",
+          "false_next" : "node_32"
         },
         {
-          "name" : "node_39",
-          "id" : 14,
+          "name" : "node_32",
+          "id" : 11,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 43,
@@ -12678,15 +12277,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_9",
-          "false_next" : "node_41"
+          "true_next" : "tbl_act_5",
+          "false_next" : "node_34"
         },
         {
-          "name" : "node_41",
-          "id" : 15,
+          "name" : "node_34",
+          "id" : 12,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 333,
+            "line" : 331,
             "column" : 12,
             "source_fragment" : "fabric_metadata.is_multicast == true ..."
           },
@@ -12705,7 +12304,7 @@
                       "left" : null,
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._is_multicast14"]
+                        "value" : ["scalars", "fabric_metadata_t._is_multicast10"]
                       }
                     }
                   },
@@ -12731,15 +12330,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_10",
-          "false_next" : "node_43"
+          "true_next" : "tbl_act_6",
+          "false_next" : "node_36"
         },
         {
-          "name" : "node_43",
-          "id" : 16,
+          "name" : "node_36",
+          "id" : 13,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 338,
+            "line" : 336,
             "column" : 12,
             "source_fragment" : "fabric_metadata.mpls_label == 0"
           },
@@ -12749,7 +12348,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
+                "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -12757,15 +12356,15 @@
               }
             }
           },
-          "true_next" : "node_44",
+          "true_next" : "node_37",
           "false_next" : "tbl_egress_next_set_mpls"
         },
         {
-          "name" : "node_44",
-          "id" : 17,
+          "name" : "node_37",
+          "id" : 14,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 339,
+            "line" : 337,
             "column" : 16,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -12784,11 +12383,11 @@
           "false_next" : "FabricEgress.egress_next.egress_vlan"
         },
         {
-          "name" : "node_50",
-          "id" : 18,
+          "name" : "node_43",
+          "id" : 15,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 355,
+            "line" : 353,
             "column" : 16,
             "source_fragment" : "!egress_vlan.apply().hit"
           },
@@ -12810,15 +12409,15 @@
               }
             }
           },
-          "true_next" : "node_51",
-          "false_next" : "node_53"
+          "true_next" : "node_44",
+          "false_next" : "node_46"
         },
         {
-          "name" : "node_51",
-          "id" : 19,
+          "name" : "node_44",
+          "id" : 16,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 357,
+            "line" : 355,
             "column" : 20,
             "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
           },
@@ -12828,7 +12427,7 @@
               "op" : "!=",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+                "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -12837,14 +12436,14 @@
             }
           },
           "true_next" : "tbl_egress_next_push_vlan",
-          "false_next" : "node_53"
+          "false_next" : "node_46"
         },
         {
-          "name" : "node_53",
-          "id" : 20,
+          "name" : "node_46",
+          "id" : 17,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 366,
+            "line" : 364,
             "column" : 12,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -12859,15 +12458,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_13",
-          "false_next" : "node_57"
+          "true_next" : "tbl_act_9",
+          "false_next" : "node_50"
         },
         {
-          "name" : "node_55",
-          "id" : 21,
+          "name" : "node_48",
+          "id" : 18,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 16,
             "source_fragment" : "hdr.mpls.ttl == 0"
           },
@@ -12885,15 +12484,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_14",
-          "false_next" : "node_61"
+          "true_next" : "tbl_act_10",
+          "false_next" : "node_54"
         },
         {
-          "name" : "node_57",
-          "id" : 22,
+          "name" : "node_50",
+          "id" : 19,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 368,
             "column" : 15,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -12908,15 +12507,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_15",
-          "false_next" : "node_61"
+          "true_next" : "tbl_act_11",
+          "false_next" : "node_54"
         },
         {
-          "name" : "node_59",
-          "id" : 23,
+          "name" : "node_52",
+          "id" : 20,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl == 0"
           },
@@ -12934,12 +12533,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_16",
-          "false_next" : "node_61"
+          "true_next" : "tbl_act_12",
+          "false_next" : "node_54"
         },
         {
-          "name" : "node_61",
-          "id" : 24,
+          "name" : "node_54",
+          "id" : 21,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 102,
@@ -13015,11 +12614,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "node_62"
+          "true_next" : "node_55"
         },
         {
-          "name" : "node_62",
-          "id" : 25,
+          "name" : "node_55",
+          "id" : 22,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 106,
@@ -13037,7 +12636,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._int_meta_source19"]
+                    "value" : ["scalars", "fabric_metadata_t._int_meta_source15"]
                   }
                 }
               },
@@ -13048,11 +12647,11 @@
             }
           },
           "true_next" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
-          "false_next" : "node_64"
+          "false_next" : "node_57"
         },
         {
-          "name" : "node_64",
-          "id" : 26,
+          "name" : "node_57",
+          "id" : 23,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 110,
@@ -13071,11 +12670,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_17"
+          "true_next" : "tbl_act_13"
         },
         {
-          "name" : "node_67",
-          "id" : 27,
+          "name" : "node_60",
+          "id" : 24,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 419,
@@ -13093,7 +12692,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._int_meta_transit20"]
+                    "value" : ["scalars", "fabric_metadata_t._int_meta_transit16"]
                   }
                 }
               },
@@ -13103,12 +12702,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_18",
-          "false_next" : "node_69"
+          "true_next" : "tbl_act_14",
+          "false_next" : "node_62"
         },
         {
-          "name" : "node_69",
-          "id" : 28,
+          "name" : "node_62",
+          "id" : 25,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -13131,8 +12730,8 @@
           "true_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003"
         },
         {
-          "name" : "node_73",
-          "id" : 29,
+          "name" : "node_66",
+          "id" : 26,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 427,
@@ -13150,12 +12749,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_20",
-          "false_next" : "node_75"
+          "true_next" : "tbl_act_16",
+          "false_next" : "node_68"
         },
         {
-          "name" : "node_75",
-          "id" : 30,
+          "name" : "node_68",
+          "id" : 27,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 430,
@@ -13173,12 +12772,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_21",
-          "false_next" : "node_77"
+          "true_next" : "tbl_act_17",
+          "false_next" : "node_70"
         },
         {
-          "name" : "node_77",
-          "id" : 31,
+          "name" : "node_70",
+          "id" : 28,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 433,
@@ -13197,7 +12796,7 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_22"
+          "true_next" : "tbl_act_18"
         }
       ]
     }
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt
index 9a5f7e1..b3f3a9d 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt
@@ -88,20 +88,14 @@
   }
   match_fields {
     id: 3
-    name: "is_ipv4"
-    bitwidth: 1
-    match_type: EXACT
+    name: "eth_type"
+    bitwidth: 16
+    match_type: TERNARY
   }
   match_fields {
     id: 4
-    name: "is_ipv6"
-    bitwidth: 1
-    match_type: EXACT
-  }
-  match_fields {
-    id: 5
-    name: "is_mpls"
-    bitwidth: 1
+    name: "ip_eth_type"
+    bitwidth: 16
     match_type: EXACT
   }
   action_refs {
@@ -189,7 +183,6 @@
     scope: DEFAULT_ONLY
   }
   const_default_action_id: 16819938
-  direct_resource_ids: 318811107
   size: 1024
 }
 tables {
@@ -888,17 +881,6 @@
 }
 direct_counters {
   preamble {
-    id: 318811107
-    name: "FabricIngress.forwarding.routing_v4_counter"
-    alias: "routing_v4_counter"
-  }
-  spec {
-    unit: BOTH
-  }
-  direct_table_id: 33562650
-}
-direct_counters {
-  preamble {
     id: 318801025
     name: "FabricIngress.acl.acl_counter"
     alias: "acl_counter"
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json
index a4997b3..1e044cc 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json
@@ -5,49 +5,46 @@
       "id" : 0,
       "fields" : [
         ["last_ipv4_dscp_0", 6, false],
-        ["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],
         ["process_int_main_process_int_transit_hasReturned", 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],
-        ["fabric_metadata_t._int_meta_source24", 1, false],
-        ["fabric_metadata_t._int_meta_transit25", 1, false],
-        ["fabric_metadata_t._int_meta_sink26", 1, false],
-        ["fabric_metadata_t._int_meta_switch_id27", 32, false],
-        ["fabric_metadata_t._int_meta_new_words28", 8, false],
-        ["fabric_metadata_t._int_meta_new_bytes29", 16, false],
-        ["fabric_metadata_t._int_meta_ig_tstamp30", 32, false],
-        ["fabric_metadata_t._int_meta_eg_tstamp31", 32, false],
-        ["_padding_0", 5, 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],
+        ["fabric_metadata_t._int_meta_source20", 1, false],
+        ["fabric_metadata_t._int_meta_transit21", 1, false],
+        ["fabric_metadata_t._int_meta_sink22", 1, false],
+        ["fabric_metadata_t._int_meta_switch_id23", 32, false],
+        ["fabric_metadata_t._int_meta_new_words24", 8, false],
+        ["fabric_metadata_t._int_meta_new_bytes25", 16, false],
+        ["fabric_metadata_t._int_meta_ig_tstamp26", 32, false],
+        ["fabric_metadata_t._int_meta_eg_tstamp27", 32, false]
       ]
     },
     {
@@ -84,23 +81,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],
@@ -110,7 +113,7 @@
     },
     {
       "name" : "ipv4_t",
-      "id" : 5,
+      "id" : 6,
       "fields" : [
         ["version", 4, false],
         ["ihl", 4, false],
@@ -129,7 +132,7 @@
     },
     {
       "name" : "udp_t",
-      "id" : 6,
+      "id" : 7,
       "fields" : [
         ["sport", 16, false],
         ["dport", 16, false],
@@ -139,7 +142,7 @@
     },
     {
       "name" : "gtpu_t",
-      "id" : 7,
+      "id" : 8,
       "fields" : [
         ["version", 3, false],
         ["pt", 1, false],
@@ -154,7 +157,7 @@
     },
     {
       "name" : "tcp_t",
-      "id" : 8,
+      "id" : 9,
       "fields" : [
         ["sport", 16, false],
         ["dport", 16, false],
@@ -171,7 +174,7 @@
     },
     {
       "name" : "icmp_t",
-      "id" : 9,
+      "id" : 10,
       "fields" : [
         ["icmp_type", 8, false],
         ["icmp_code", 8, false],
@@ -183,7 +186,7 @@
     },
     {
       "name" : "packet_out_header_t",
-      "id" : 10,
+      "id" : 11,
       "fields" : [
         ["egress_port", 9, false],
         ["_pad", 7, false]
@@ -191,7 +194,7 @@
     },
     {
       "name" : "packet_in_header_t",
-      "id" : 11,
+      "id" : 12,
       "fields" : [
         ["ingress_port", 9, false],
         ["_pad", 7, false]
@@ -199,7 +202,7 @@
     },
     {
       "name" : "intl4_shim_t",
-      "id" : 12,
+      "id" : 13,
       "fields" : [
         ["int_type", 8, false],
         ["rsvd1", 8, false],
@@ -209,7 +212,7 @@
     },
     {
       "name" : "int_header_t",
-      "id" : 13,
+      "id" : 14,
       "fields" : [
         ["ver", 2, false],
         ["rep", 2, false],
@@ -228,14 +231,14 @@
     },
     {
       "name" : "int_switch_id_t",
-      "id" : 14,
+      "id" : 15,
       "fields" : [
         ["switch_id", 32, false]
       ]
     },
     {
       "name" : "int_port_ids_t",
-      "id" : 15,
+      "id" : 16,
       "fields" : [
         ["ingress_port_id", 16, false],
         ["egress_port_id", 16, false]
@@ -243,14 +246,14 @@
     },
     {
       "name" : "int_hop_latency_t",
-      "id" : 16,
+      "id" : 17,
       "fields" : [
         ["hop_latency", 32, false]
       ]
     },
     {
       "name" : "int_q_occupancy_t",
-      "id" : 17,
+      "id" : 18,
       "fields" : [
         ["q_id", 8, false],
         ["q_occupancy", 24, false]
@@ -258,21 +261,21 @@
     },
     {
       "name" : "int_ingress_tstamp_t",
-      "id" : 18,
+      "id" : 19,
       "fields" : [
         ["ingress_tstamp", 32, false]
       ]
     },
     {
       "name" : "int_egress_tstamp_t",
-      "id" : 19,
+      "id" : 20,
       "fields" : [
         ["egress_tstamp", 32, false]
       ]
     },
     {
       "name" : "int_q_congestion_t",
-      "id" : 20,
+      "id" : 21,
       "fields" : [
         ["q_id", 8, false],
         ["q_congestion", 24, false]
@@ -280,14 +283,14 @@
     },
     {
       "name" : "int_egress_port_tx_util_t",
-      "id" : 21,
+      "id" : 22,
       "fields" : [
         ["egress_port_tx_util", 32, false]
       ]
     },
     {
       "name" : "intl4_tail_t",
-      "id" : 22,
+      "id" : 23,
       "fields" : [
         ["next_proto", 8, false],
         ["dest_port", 16, false],
@@ -333,162 +336,169 @@
       "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
     },
     {
       "name" : "intl4_shim",
-      "id" : 17,
+      "id" : 18,
       "header_type" : "intl4_shim_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_header",
-      "id" : 18,
+      "id" : 19,
       "header_type" : "int_header_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_switch_id",
-      "id" : 19,
+      "id" : 20,
       "header_type" : "int_switch_id_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_port_ids",
-      "id" : 20,
+      "id" : 21,
       "header_type" : "int_port_ids_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_hop_latency",
-      "id" : 21,
+      "id" : 22,
       "header_type" : "int_hop_latency_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_q_occupancy",
-      "id" : 22,
+      "id" : 23,
       "header_type" : "int_q_occupancy_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_ingress_tstamp",
-      "id" : 23,
+      "id" : 24,
       "header_type" : "int_ingress_tstamp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_egress_tstamp",
-      "id" : 24,
+      "id" : 25,
       "header_type" : "int_egress_tstamp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_q_congestion",
-      "id" : 25,
+      "id" : 26,
       "header_type" : "int_q_congestion_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "int_egress_tx_util",
-      "id" : 26,
+      "id" : 27,
       "header_type" : "int_egress_port_tx_util_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "intl4_tail",
-      "id" : 27,
+      "id" : 28,
       "header_type" : "intl4_tail_t",
       "metadata" : false,
       "pi_omit" : true
@@ -596,11 +606,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"
@@ -609,11 +619,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"
@@ -639,27 +649,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"]
             }
           ]
         },
@@ -675,23 +673,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"
@@ -699,13 +698,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"]
             }
           ]
         },
@@ -725,11 +724,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",
@@ -737,6 +753,12 @@
               "next_state" : "parse_mpls"
             },
             {
+              "type" : "hexstr",
+              "value" : "0x0800",
+              "mask" : null,
+              "next_state" : "parse_ipv4"
+            },
+            {
               "value" : "default",
               "mask" : null,
               "next_state" : null
@@ -745,13 +767,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" : [
@@ -766,30 +788,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",
@@ -802,7 +801,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
+                  "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
                 },
                 {
                   "type" : "field",
@@ -815,7 +814,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_0"]
+                  "value" : ["scalars", "tmp_4"]
                 },
                 {
                   "type" : "lookahead",
@@ -841,48 +840,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" : [
@@ -899,7 +861,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_proto16"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_proto12"]
                 },
                 {
                   "type" : "field",
@@ -912,7 +874,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type4"]
+                  "value" : ["scalars", "fabric_metadata_t._ip_eth_type0"]
                 },
                 {
                   "type" : "hexstr",
@@ -984,7 +946,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
                 },
                 {
                   "type" : "field",
@@ -997,7 +959,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
                 },
                 {
                   "type" : "field",
@@ -1033,7 +995,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
                 },
                 {
                   "type" : "field",
@@ -1046,7 +1008,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
                 },
                 {
                   "type" : "field",
@@ -1255,7 +1217,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_sport17"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_sport13"]
                 },
                 {
                   "type" : "field",
@@ -1268,7 +1230,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
+                  "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
                 },
                 {
                   "type" : "field",
@@ -1400,11 +1362,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", "intl4_shim", "int_header", "int_switch_id", "int_port_ids", "int_hop_latency", "int_q_occupancy", "int_ingress_tstamp", "int_egress_tstamp", "int_q_congestion", "int_egress_tx_util", "intl4_tail"]
+      "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "gtpu_ipv4", "gtpu_udp", "gtpu", "ipv4", "tcp", "udp", "icmp", "intl4_shim", "int_header", "int_switch_id", "int_port_ids", "int_hop_latency", "int_q_occupancy", "int_ingress_tstamp", "int_egress_tstamp", "int_q_congestion", "int_egress_tx_util", "intl4_tail"]
     }
   ],
   "meter_arrays" : [],
@@ -1482,20 +1444,8 @@
       }
     },
     {
-      "name" : "FabricIngress.forwarding.routing_v4_counter",
-      "id" : 6,
-      "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" : 7,
+      "id" : 6,
       "is_direct" : true,
       "binding" : "FabricIngress.acl.acl",
       "source_info" : {
@@ -1507,7 +1457,7 @@
     },
     {
       "name" : "FabricIngress.next.next_vlan_counter",
-      "id" : 8,
+      "id" : 7,
       "is_direct" : true,
       "binding" : "FabricIngress.next.next_vlan",
       "source_info" : {
@@ -1519,7 +1469,7 @@
     },
     {
       "name" : "FabricIngress.next.xconnect_counter",
-      "id" : 9,
+      "id" : 8,
       "is_direct" : true,
       "binding" : "FabricIngress.next.xconnect",
       "source_info" : {
@@ -1531,31 +1481,31 @@
     },
     {
       "name" : "FabricIngress.next.hashed_counter",
-      "id" : 10,
+      "id" : 9,
       "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" : 11,
+      "id" : 10,
       "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" : 12,
+      "id" : 11,
       "source_info" : {
         "filename" : "include/control/port_counter.p4",
         "line" : 26,
@@ -1567,7 +1517,7 @@
     },
     {
       "name" : "FabricIngress.port_counters_control.ingress_port_counter",
-      "id" : 13,
+      "id" : 12,
       "source_info" : {
         "filename" : "include/control/port_counter.p4",
         "line" : 27,
@@ -1579,7 +1529,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_source.counter_int_source",
-      "id" : 14,
+      "id" : 13,
       "is_direct" : true,
       "binding" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
       "source_info" : {
@@ -1591,12 +1541,12 @@
     },
     {
       "name" : "FabricEgress.egress_next.egress_vlan_counter",
-      "id" : 15,
+      "id" : 14,
       "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"
       }
@@ -1925,7 +1875,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_teid21"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_teid17"]
             },
             {
               "type" : "runtime_data",
@@ -1944,7 +1894,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",
@@ -1963,7 +1913,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",
@@ -1989,7 +1939,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_source24"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_source20"]
             },
             {
               "type" : "expression",
@@ -2025,7 +1975,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"]
+              "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
             },
             {
               "type" : "expression",
@@ -2054,7 +2004,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next11"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next7"]
             },
             {
               "type" : "expression",
@@ -2101,7 +2051,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "runtime_data",
@@ -2132,7 +2082,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
+              "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
             },
             {
               "type" : "runtime_data",
@@ -2163,7 +2113,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id13"]
+              "value" : ["scalars", "fabric_metadata_t._next_id9"]
             },
             {
               "type" : "runtime_data",
@@ -2194,7 +2144,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
             },
             {
               "type" : "hexstr",
@@ -2213,7 +2163,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id13"]
+              "value" : ["scalars", "fabric_metadata_t._next_id9"]
             },
             {
               "type" : "runtime_data",
@@ -2244,7 +2194,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id13"]
+              "value" : ["scalars", "fabric_metadata_t._next_id9"]
             },
             {
               "type" : "runtime_data",
@@ -2281,7 +2231,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id13"]
+              "value" : ["scalars", "fabric_metadata_t._next_id9"]
             },
             {
               "type" : "runtime_data",
@@ -2326,7 +2276,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next11"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next7"]
             },
             {
               "type" : "expression",
@@ -2408,7 +2358,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._skip_next11"]
+              "value" : ["scalars", "fabric_metadata_t._skip_next7"]
             },
             {
               "type" : "expression",
@@ -2455,7 +2405,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "runtime_data",
@@ -2499,25 +2449,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; ..."
-          }
         }
       ]
     },
@@ -2536,7 +2467,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._next_id13"]
+              "value" : ["scalars", "fabric_metadata_t._next_id9"]
             },
             {
               "type" : "runtime_data",
@@ -2545,7 +2476,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 112,
+            "line" : 111,
             "column" : 32,
             "source_fragment" : "= next_id; ..."
           }
@@ -2687,7 +2618,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
             },
             {
               "type" : "runtime_data",
@@ -2784,7 +2715,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 225,
+            "line" : 227,
             "column" : 8,
             "source_fragment" : "standard_metadata.mcast_grp = group_id"
           }
@@ -2794,7 +2725,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._is_multicast14"]
+              "value" : ["scalars", "fabric_metadata_t._is_multicast10"]
             },
             {
               "type" : "expression",
@@ -2813,7 +2744,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 226,
+            "line" : 228,
             "column" : 37,
             "source_fragment" : "= true; ..."
           }
@@ -3072,7 +3003,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"]
+              "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"]
             },
             {
               "type" : "expression",
@@ -3118,7 +3049,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
             },
             {
               "type" : "field",
@@ -3127,7 +3058,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 110,
+            "line" : 109,
             "column" : 36,
             "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
           }
@@ -3137,7 +3068,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_pri6"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
             },
             {
               "type" : "field",
@@ -3146,7 +3077,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 111,
+            "line" : 110,
             "column" : 37,
             "source_fragment" : "= hdr.vlan_tag.pri; ..."
           }
@@ -3156,7 +3087,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_cfi7"]
+              "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
             },
             {
               "type" : "field",
@@ -3165,7 +3096,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 112,
+            "line" : 111,
             "column" : 37,
             "source_fragment" : "= hdr.vlan_tag.cfi; ..."
           }
@@ -3182,7 +3113,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._mpls_ttl9"]
+              "value" : ["scalars", "fabric_metadata_t._mpls_ttl5"]
             },
             {
               "type" : "hexstr",
@@ -3191,7 +3122,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 126,
+            "line" : 125,
             "column" : 37,
             "source_fragment" : "= DEFAULT_MPLS_TTL + 1; ..."
           }
@@ -3208,19 +3139,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; ..."
-          }
+          ]
         }
       ]
     },
@@ -3234,19 +3169,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; ..."
-          }
+          ]
         }
       ]
     },
@@ -3256,22 +3195,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)"
           }
         }
       ]
@@ -3286,18 +3221,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; ..."
           }
         }
       ]
@@ -3312,7 +3247,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "spgw_ingress_tmp"]
+              "value" : ["scalars", "spgw_ingress_tmp_0"]
             },
             {
               "type" : "expression",
@@ -3342,7 +3277,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "spgw_ingress_tmp"]
+              "value" : ["scalars", "spgw_ingress_tmp_0"]
             },
             {
               "type" : "expression",
@@ -3368,18 +3303,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; ..."
           }
         }
       ]
@@ -3394,119 +3333,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" : 49,
-      "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" : 50,
-      "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" : 51,
-      "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" : 52,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_direction15"]
             },
             {
               "type" : "hexstr",
@@ -3515,7 +3342,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 142,
+            "line" : 146,
             "column" : 37,
             "source_fragment" : "2w0; ..."
           }
@@ -3552,8 +3379,8 @@
       ]
     },
     {
-      "name" : "act_19",
-      "id" : 53,
+      "name" : "act_15",
+      "id" : 49,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3582,8 +3409,8 @@
       ]
     },
     {
-      "name" : "act_20",
-      "id" : 54,
+      "name" : "act_16",
+      "id" : 50,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3591,7 +3418,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len16"]
             },
             {
               "type" : "field",
@@ -3608,8 +3435,8 @@
       ]
     },
     {
-      "name" : "act_21",
-      "id" : 55,
+      "name" : "act_17",
+      "id" : 51,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3617,7 +3444,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_0"]
             },
             {
               "type" : "expression",
@@ -3653,7 +3480,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_0"]
             }
           ],
           "source_info" : {
@@ -3666,8 +3493,8 @@
       ]
     },
     {
-      "name" : "act_22",
-      "id" : 56,
+      "name" : "act_18",
+      "id" : 52,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3675,7 +3502,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_2"]
+              "value" : ["scalars", "tmp_1"]
             },
             {
               "type" : "expression",
@@ -3711,7 +3538,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_2"]
+              "value" : ["scalars", "tmp_1"]
             }
           ],
           "source_info" : {
@@ -3725,37 +3552,37 @@
     },
     {
       "name" : "nop",
+      "id" : 53,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 54,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 55,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "NoAction",
+      "id" : 56,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "NoAction",
       "id" : 57,
       "runtime_data" : [],
       "primitives" : []
     },
     {
-      "name" : "nop",
-      "id" : 58,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "nop",
-      "id" : 59,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "NoAction",
-      "id" : 60,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "NoAction",
-      "id" : 61,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricEgress.spgw_egress.gtpu_encap",
-      "id" : 62,
+      "id" : 58,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3806,7 +3633,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 125,
+            "line" : 129,
             "column" : 28,
             "source_fragment" : "5; ..."
           }
@@ -3962,7 +3789,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 138,
+            "line" : 142,
             "column" : 32,
             "source_fragment" : "64; ..."
           }
@@ -3981,7 +3808,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 122,
+            "line" : 126,
             "column" : 25,
             "source_fragment" : "17; ..."
           }
@@ -3995,7 +3822,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr22"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_enb_addr18"]
             }
           ],
           "source_info" : {
@@ -4014,7 +3841,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr23"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_s1u_sgw_addr19"]
             }
           ],
           "source_info" : {
@@ -4115,7 +3942,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
+                        "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len16"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -4314,7 +4141,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len20"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_ipv4_len16"]
             }
           ],
           "source_info" : {
@@ -4333,7 +4160,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._spgw_teid21"]
+              "value" : ["scalars", "fabric_metadata_t._spgw_teid17"]
             }
           ],
           "source_info" : {
@@ -4347,7 +4174,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_source.int_source_dscp",
-      "id" : 63,
+      "id" : 59,
       "runtime_data" : [
         {
           "name" : "max_hop",
@@ -4415,7 +4242,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 153,
+            "line" : 157,
             "column" : 36,
             "source_fragment" : "4; ..."
           }
@@ -4706,7 +4533,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._l4_dport18"]
+              "value" : ["scalars", "fabric_metadata_t._l4_dport14"]
             }
           ],
           "source_info" : {
@@ -4833,7 +4660,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 149,
+            "line" : 153,
             "column" : 24,
             "source_fragment" : "0x1; ..."
           }
@@ -4842,7 +4669,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.init_metadata",
-      "id" : 64,
+      "id" : 60,
       "runtime_data" : [
         {
           "name" : "switch_id",
@@ -4855,7 +4682,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_transit25"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_transit21"]
             },
             {
               "type" : "expression",
@@ -4884,7 +4711,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"]
             },
             {
               "type" : "runtime_data",
@@ -4902,13 +4729,13 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0",
-      "id" : 65,
+      "id" : 61,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1",
-      "id" : 66,
+      "id" : 62,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4982,7 +4809,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -4996,7 +4823,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -5024,7 +4851,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -5038,7 +4865,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -5065,7 +4892,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2",
-      "id" : 67,
+      "id" : 63,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5107,7 +4934,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -5121,7 +4948,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -5149,7 +4976,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -5163,7 +4990,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -5190,6 +5017,807 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3",
+      "id" : 64,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_occupancy"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 60,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 62,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_id = 8w0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_occupancy"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "deq_qdepth"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 63,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = (bit<24>) smeta.deq_qdepth"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_hop_latency"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 54,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_hop_latency", "hop_latency"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "deq_timedelta"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 55,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) smeta.deq_timedelta"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 103,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 104,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4",
+      "id" : 65,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 47,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 48,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 49,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 97,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 1; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0004"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 98,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 4; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5",
+      "id" : 66,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_occupancy"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 60,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 62,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_id = 8w0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_occupancy"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "deq_qdepth"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 63,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = (bit<24>) smeta.deq_qdepth"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 47,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 48,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 49,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 103,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 104,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6",
+      "id" : 67,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_hop_latency"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 54,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_hop_latency", "hop_latency"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "deq_timedelta"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 55,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) smeta.deq_timedelta"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 47,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 48,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 49,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 103,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 104,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7",
       "id" : 68,
       "runtime_data" : [],
       "primitives" : [
@@ -5294,97 +5922,6 @@
           }
         },
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x02"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 103,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x0008"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 104,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4",
-      "id" : 69,
-      "runtime_data" : [],
-      "primitives" : [
-        {
           "op" : "add_header",
           "parameters" : [
             {
@@ -5468,7 +6005,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -5482,7 +6019,132 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 109,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 110,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8",
+      "id" : 69,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_switch_id"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 41,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_switch_id", "switch_id"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 42,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -5510,7 +6172,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -5524,7 +6186,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -5550,7 +6212,7 @@
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9",
       "id" : 70,
       "runtime_data" : [],
       "primitives" : [
@@ -5625,14 +6287,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_port_ids"
+              "value" : "int_switch_id"
             }
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 47,
+            "line" : 41,
             "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.setValid()"
+            "source_fragment" : "hdr.int_switch_id.setValid()"
           }
         },
         {
@@ -5640,31 +6302,18 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_port_ids", "ingress_port_id"]
+              "value" : ["int_switch_id", "switch_id"]
             },
             {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "ingress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"]
             }
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 48,
+            "line" : 42,
             "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
+            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
           }
         },
         {
@@ -5672,39 +6321,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_port_ids", "egress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "egress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 49,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -5718,7 +6335,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -5746,7 +6363,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -5760,7 +6377,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -5786,7 +6403,7 @@
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10",
       "id" : 71,
       "runtime_data" : [],
       "primitives" : [
@@ -5829,14 +6446,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_port_ids"
+              "value" : "int_switch_id"
             }
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 47,
+            "line" : 41,
             "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.setValid()"
+            "source_fragment" : "hdr.int_switch_id.setValid()"
           }
         },
         {
@@ -5844,31 +6461,18 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_port_ids", "ingress_port_id"]
+              "value" : ["int_switch_id", "switch_id"]
             },
             {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "ingress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"]
             }
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 48,
+            "line" : 42,
             "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
+            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
           }
         },
         {
@@ -5876,39 +6480,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_port_ids", "egress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "egress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 49,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -5922,7 +6494,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -5950,7 +6522,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -5964,7 +6536,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -5990,7 +6562,7 @@
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11",
       "id" : 72,
       "runtime_data" : [],
       "primitives" : [
@@ -6099,6 +6671,131 @@
           "parameters" : [
             {
               "type" : "header",
+              "value" : "int_switch_id"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 41,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_switch_id", "switch_id"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 42,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 109,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 110,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12",
+      "id" : 73,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
               "value" : "int_port_ids"
             }
           ],
@@ -6174,97 +6871,6 @@
           }
         },
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8",
-      "id" : 73,
-      "runtime_data" : [],
-      "primitives" : [
-        {
           "op" : "add_header",
           "parameters" : [
             {
@@ -6288,7 +6894,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"]
             }
           ],
           "source_info" : {
@@ -6303,7 +6909,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -6317,11 +6923,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x01"
+                        "value" : "0x02"
                       }
                     }
                   },
@@ -6335,9 +6941,9 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 97,
+            "line" : 103,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 1; ..."
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
           }
         },
         {
@@ -6345,7 +6951,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -6359,11 +6965,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x0004"
+                        "value" : "0x0008"
                       }
                     }
                   },
@@ -6377,15 +6983,15 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 98,
+            "line" : 104,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 4; ..."
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
           }
         }
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13",
       "id" : 74,
       "runtime_data" : [],
       "primitives" : [
@@ -6460,6 +7066,85 @@
           "parameters" : [
             {
               "type" : "header",
+              "value" : "int_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 47,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 48,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 49,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
               "value" : "int_switch_id"
             }
           ],
@@ -6479,7 +7164,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"]
             }
           ],
           "source_info" : {
@@ -6494,7 +7179,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -6508,11 +7193,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x02"
+                        "value" : "0x03"
                       }
                     }
                   },
@@ -6526,9 +7211,9 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 103,
+            "line" : 109,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
           }
         },
         {
@@ -6536,7 +7221,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -6550,11 +7235,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x0008"
+                        "value" : "0x000c"
                       }
                     }
                   },
@@ -6568,15 +7253,15 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 104,
+            "line" : 110,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
           }
         }
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14",
       "id" : 75,
       "runtime_data" : [],
       "primitives" : [
@@ -6619,6 +7304,85 @@
           "parameters" : [
             {
               "type" : "header",
+              "value" : "int_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 47,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 48,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 49,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
               "value" : "int_switch_id"
             }
           ],
@@ -6638,7 +7402,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"]
             }
           ],
           "source_info" : {
@@ -6653,7 +7417,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -6667,11 +7431,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x02"
+                        "value" : "0x03"
                       }
                     }
                   },
@@ -6685,9 +7449,9 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 103,
+            "line" : 109,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
           }
         },
         {
@@ -6695,7 +7459,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -6709,11 +7473,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x0008"
+                        "value" : "0x000c"
                       }
                     }
                   },
@@ -6727,15 +7491,15 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 104,
+            "line" : 110,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
           }
         }
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15",
       "id" : 76,
       "runtime_data" : [],
       "primitives" : [
@@ -6844,131 +7608,6 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_switch_id"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 41,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_switch_id", "switch_id"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 42,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12",
-      "id" : 77,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_port_ids"
             }
           ],
@@ -7067,7 +7706,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id23"]
             }
           ],
           "source_info" : {
@@ -7082,7 +7721,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -7096,819 +7735,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x02"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 103,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x0008"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 104,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13",
-      "id" : 78,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_q_occupancy"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 60,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 62,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_id = 8w0"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_occupancy"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "deq_qdepth"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 63,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = (bit<24>) smeta.deq_qdepth"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_port_ids"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 47,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_port_ids", "ingress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "ingress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 48,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_port_ids", "egress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "egress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 49,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_switch_id"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 41,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_switch_id", "switch_id"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 42,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14",
-      "id" : 79,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_hop_latency"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 54,
-            "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_hop_latency", "hop_latency"]
-            },
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "deq_timedelta"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 55,
-            "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) smeta.deq_timedelta"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_port_ids"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 47,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_port_ids", "ingress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "ingress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 48,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_port_ids", "egress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "egress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 49,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_switch_id"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 41,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_switch_id", "switch_id"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 42,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15",
-      "id" : 80,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_q_occupancy"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 60,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 62,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_id = 8w0"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_occupancy"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "deq_qdepth"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 63,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = (bit<24>) smeta.deq_qdepth"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_hop_latency"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 54,
-            "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_hop_latency", "hop_latency"]
-            },
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "deq_timedelta"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 55,
-            "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) smeta.deq_timedelta"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_port_ids"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 47,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_port_ids", "ingress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "ingress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 48,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.ingress_port_id = (bit<16>) smeta.ingress_port"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_port_ids", "egress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "egress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 49,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.egress_port_id = (bit<16>) smeta.egress_port"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_switch_id"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 41,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_switch_id", "switch_id"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_switch_id27"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 42,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.switch_id = fmeta.int_meta.switch_id; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -7936,7 +7763,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -7950,7 +7777,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -7977,13 +7804,13 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0",
-      "id" : 81,
+      "id" : 77,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1",
-      "id" : 82,
+      "id" : 78,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8025,7 +7852,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -8039,7 +7866,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8067,7 +7894,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -8081,7 +7908,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8108,7 +7935,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2",
-      "id" : 83,
+      "id" : 79,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8169,7 +7996,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -8183,7 +8010,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8211,7 +8038,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -8225,7 +8052,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8252,6 +8079,715 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3",
+      "id" : 80,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tx_util"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 88,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 90,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = 32w0"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_congestion"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 80,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 82,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_id = 8w0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_congestion"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 83,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_congestion = 24w0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 103,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 104,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4",
+      "id" : 81,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 74,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tstamp", "egress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "enq_timestamp"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "deq_timedelta"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 75,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 97,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 1; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0004"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 98,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 4; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5",
+      "id" : 82,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tx_util"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 88,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 90,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = 32w0"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 74,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tstamp", "egress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "enq_timestamp"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "deq_timedelta"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 75,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 103,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 104,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6",
+      "id" : 83,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_congestion"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 80,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 82,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_id = 8w0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_congestion"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 83,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_congestion = 24w0"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 74,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tstamp", "egress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "enq_timestamp"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "deq_timedelta"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 75,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 103,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 104,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7",
       "id" : 84,
       "runtime_data" : [],
       "primitives" : [
@@ -8343,97 +8879,6 @@
           }
         },
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x02"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 103,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x0008"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 104,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4",
-      "id" : 85,
-      "runtime_data" : [],
-      "primitives" : [
-        {
           "op" : "add_header",
           "parameters" : [
             {
@@ -8495,7 +8940,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -8509,7 +8954,132 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 109,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 110,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8",
+      "id" : 85,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_ingress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 68,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "enq_timestamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 69,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8537,7 +9107,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -8551,7 +9121,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8577,7 +9147,7 @@
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9",
       "id" : 86,
       "runtime_data" : [],
       "primitives" : [
@@ -8620,14 +9190,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_egress_tstamp"
+              "value" : "int_ingress_tstamp"
             }
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 74,
+            "line" : 68,
             "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
           }
         },
         {
@@ -8635,7 +9205,26 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_egress_tstamp", "egress_tstamp"]
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "enq_timestamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 69,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -8649,49 +9238,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["standard_metadata", "enq_timestamp"]
-                      },
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "deq_timedelta"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 75,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8719,7 +9266,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -8733,7 +9280,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8759,7 +9306,7 @@
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10",
       "id" : 87,
       "runtime_data" : [],
       "primitives" : [
@@ -8821,14 +9368,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_egress_tstamp"
+              "value" : "int_ingress_tstamp"
             }
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 74,
+            "line" : 68,
             "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
           }
         },
         {
@@ -8836,7 +9383,26 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_egress_tstamp", "egress_tstamp"]
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "enq_timestamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 69,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -8850,49 +9416,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["standard_metadata", "enq_timestamp"]
-                      },
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "deq_timedelta"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 75,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8920,7 +9444,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -8934,7 +9458,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -8960,7 +9484,7 @@
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11",
       "id" : 88,
       "runtime_data" : [],
       "primitives" : [
@@ -9056,6 +9580,131 @@
           "parameters" : [
             {
               "type" : "header",
+              "value" : "int_ingress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 68,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "enq_timestamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 69,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 109,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 110,
+            "column" : 33,
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12",
+      "id" : 89,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
               "value" : "int_egress_tstamp"
             }
           ],
@@ -9109,97 +9758,6 @@
           }
         },
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8",
-      "id" : 89,
-      "runtime_data" : [],
-      "primitives" : [
-        {
           "op" : "add_header",
           "parameters" : [
             {
@@ -9238,7 +9796,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -9252,11 +9810,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x01"
+                        "value" : "0x02"
                       }
                     }
                   },
@@ -9270,9 +9828,9 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 97,
+            "line" : 103,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 1; ..."
+            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
           }
         },
         {
@@ -9280,7 +9838,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -9294,11 +9852,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x0004"
+                        "value" : "0x0008"
                       }
                     }
                   },
@@ -9312,15 +9870,15 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 98,
+            "line" : 104,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 4; ..."
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
           }
         }
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13",
       "id" : 90,
       "runtime_data" : [],
       "primitives" : [
@@ -9363,6 +9921,63 @@
           "parameters" : [
             {
               "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 74,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tstamp", "egress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "enq_timestamp"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "deq_timedelta"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 75,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
               "value" : "int_ingress_tstamp"
             }
           ],
@@ -9397,7 +10012,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -9411,11 +10026,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x02"
+                        "value" : "0x03"
                       }
                     }
                   },
@@ -9429,9 +10044,9 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 103,
+            "line" : 109,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
           }
         },
         {
@@ -9439,7 +10054,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -9453,11 +10068,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x0008"
+                        "value" : "0x000c"
                       }
                     }
                   },
@@ -9471,15 +10086,15 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 104,
+            "line" : 110,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
           }
         }
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14",
       "id" : 91,
       "runtime_data" : [],
       "primitives" : [
@@ -9541,6 +10156,63 @@
           "parameters" : [
             {
               "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 74,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tstamp", "egress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "enq_timestamp"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "deq_timedelta"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int/int_transit.p4",
+            "line" : 75,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
               "value" : "int_ingress_tstamp"
             }
           ],
@@ -9575,7 +10247,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -9589,11 +10261,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x02"
+                        "value" : "0x03"
                       }
                     }
                   },
@@ -9607,9 +10279,9 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 103,
+            "line" : 109,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
+            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
           }
         },
         {
@@ -9617,7 +10289,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -9631,11 +10303,11 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x0008"
+                        "value" : "0x000c"
                       }
                     }
                   },
@@ -9649,15 +10321,15 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 104,
+            "line" : 110,
             "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
+            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
           }
         }
       ]
     },
     {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11",
+      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15",
       "id" : 92,
       "runtime_data" : [],
       "primitives" : [
@@ -9753,131 +10425,6 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_ingress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 68,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
-            },
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "enq_timestamp"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 69,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12",
-      "id" : 93,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_egress_tstamp"
             }
           ],
@@ -9969,7 +10516,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
             },
             {
               "type" : "expression",
@@ -9983,727 +10530,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x02"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 103,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 2; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x0008"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 104,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 8; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13",
-      "id" : 94,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_egress_tx_util"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 88,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 90,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = 32w0"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_egress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 74,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tstamp", "egress_tstamp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "enq_timestamp"]
-                      },
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "deq_timedelta"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 75,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_ingress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 68,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
-            },
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "enq_timestamp"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 69,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14",
-      "id" : 95,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_q_congestion"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 80,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_congestion", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 82,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_id = 8w0"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_congestion", "q_congestion"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 83,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_congestion = 24w0"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_egress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 74,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tstamp", "egress_tstamp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "enq_timestamp"]
-                      },
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "deq_timedelta"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 75,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_ingress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 68,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
-            },
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "enq_timestamp"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 69,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x03"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 109,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_words + 3; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x000c"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 110,
-            "column" : 33,
-            "source_fragment" : "= fmeta.int_meta.new_bytes + 12; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15",
-      "id" : 96,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_egress_tx_util"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 88,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 90,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = 32w0"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_q_congestion"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 80,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_congestion", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 82,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_id = 8w0"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_congestion", "q_congestion"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 83,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_congestion = 24w0"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_egress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 74,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tstamp", "egress_tstamp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "enq_timestamp"]
-                      },
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "deq_timedelta"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 75,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = (bit<32>) smeta.enq_timestamp + (bit<32>) smeta.deq_timedelta"
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_ingress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 68,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
-            },
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "enq_timestamp"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int/int_transit.p4",
-            "line" : 69,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = (bit<32>) smeta.enq_timestamp"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10731,7 +10558,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+              "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
             },
             {
               "type" : "expression",
@@ -10745,7 +10572,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -10772,7 +10599,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.pop_mpls_if_present",
-      "id" : 97,
+      "id" : 93,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10785,7 +10612,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 264,
+            "line" : 266,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setInvalid()"
           }
@@ -10795,25 +10622,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" : 98,
+      "id" : 94,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10826,7 +10653,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 271,
+            "line" : 273,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
           }
@@ -10840,12 +10667,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; ..."
           }
@@ -10864,7 +10691,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 273,
+            "line" : 275,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = 3w0"
           }
@@ -10883,7 +10710,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 274,
+            "line" : 276,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
           }
@@ -10897,12 +10724,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. ..."
           }
@@ -10912,7 +10739,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._last_eth_type0"]
+              "value" : ["eth_type", "value"]
             },
             {
               "type" : "hexstr",
@@ -10921,7 +10748,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 108,
+            "line" : 112,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
           }
@@ -10930,7 +10757,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.push_vlan",
-      "id" : 99,
+      "id" : 95,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10943,7 +10770,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 283,
+            "line" : 285,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setValid()"
           }
@@ -10957,12 +10784,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; ..."
           }
@@ -10976,12 +10803,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; ..."
           }
@@ -10994,15 +10821,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; ..."
           }
         },
         {
@@ -11014,62 +10841,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" : 100,
+      "id" : 96,
       "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" : [
             {
@@ -11079,7 +10868,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 314,
+            "line" : 312,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
           }
@@ -11087,8 +10876,8 @@
       ]
     },
     {
-      "name" : "act_23",
-      "id" : 101,
+      "name" : "act_19",
+      "id" : 97,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11104,8 +10893,8 @@
       ]
     },
     {
-      "name" : "act_24",
-      "id" : 102,
+      "name" : "act_20",
+      "id" : 98,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11155,8 +10944,8 @@
       ]
     },
     {
-      "name" : "act_25",
-      "id" : 103,
+      "name" : "act_21",
+      "id" : 99,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11169,7 +10958,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 333,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -11177,8 +10966,8 @@
       ]
     },
     {
-      "name" : "act_26",
-      "id" : 104,
+      "name" : "act_22",
+      "id" : 100,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11207,8 +10996,8 @@
       ]
     },
     {
-      "name" : "act_27",
-      "id" : 105,
+      "name" : "act_23",
+      "id" : 101,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11237,8 +11026,8 @@
       ]
     },
     {
-      "name" : "act_28",
-      "id" : 106,
+      "name" : "act_24",
+      "id" : 102,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11251,7 +11040,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -11259,8 +11048,8 @@
       ]
     },
     {
-      "name" : "act_29",
-      "id" : 107,
+      "name" : "act_25",
+      "id" : 103,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11300,7 +11089,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 367,
+            "line" : 365,
             "column" : 12,
             "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
           }
@@ -11308,8 +11097,8 @@
       ]
     },
     {
-      "name" : "act_30",
-      "id" : 108,
+      "name" : "act_26",
+      "id" : 104,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11322,7 +11111,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -11330,8 +11119,8 @@
       ]
     },
     {
-      "name" : "act_31",
-      "id" : 109,
+      "name" : "act_27",
+      "id" : 105,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11371,7 +11160,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 371,
+            "line" : 369,
             "column" : 16,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
           }
@@ -11379,8 +11168,8 @@
       ]
     },
     {
-      "name" : "act_32",
-      "id" : 110,
+      "name" : "act_28",
+      "id" : 106,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11409,8 +11198,8 @@
       ]
     },
     {
-      "name" : "act_33",
-      "id" : 111,
+      "name" : "act_29",
+      "id" : 107,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11445,8 +11234,8 @@
       ]
     },
     {
-      "name" : "act_34",
-      "id" : 112,
+      "name" : "act_30",
+      "id" : 108,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11472,7 +11261,7 @@
                       },
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       }
                     }
                   },
@@ -11494,8 +11283,8 @@
       ]
     },
     {
-      "name" : "act_35",
-      "id" : 113,
+      "name" : "act_31",
+      "id" : 109,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11543,8 +11332,8 @@
       ]
     },
     {
-      "name" : "act_36",
-      "id" : 114,
+      "name" : "act_32",
+      "id" : 110,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11570,7 +11359,7 @@
                       },
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes29"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_bytes25"]
                       }
                     }
                   },
@@ -11592,8 +11381,8 @@
       ]
     },
     {
-      "name" : "act_37",
-      "id" : 115,
+      "name" : "act_33",
+      "id" : 111,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11619,7 +11408,7 @@
                       },
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words28"]
+                        "value" : ["scalars", "fabric_metadata_t._int_meta_new_words24"]
                       }
                     }
                   },
@@ -11832,7 +11621,7 @@
           "id" : 6,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 110,
+            "line" : 109,
             "column" : 36,
             "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
           },
@@ -11861,7 +11650,7 @@
           "id" : 7,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 126,
+            "line" : 125,
             "column" : 37,
             "source_fragment" : "="
           },
@@ -11874,9 +11663,9 @@
           "direct_meters" : null,
           "action_ids" : [40],
           "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" : 40,
@@ -11886,124 +11675,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" : [41],
-          "actions" : ["act_7"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_7" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 41,
-            "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" : [42],
-          "actions" : ["act_8"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_8" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 42,
-            "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" : [43],
-          "actions" : ["act_9"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_9" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 43,
-            "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" : [44],
-          "actions" : ["act_10"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_10" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 44,
-            "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,
@@ -12059,7 +11732,7 @@
         },
         {
           "name" : "FabricIngress.filtering.fwd_classifier",
-          "id" : 13,
+          "id" : 9,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
             "line" : 90,
@@ -12080,21 +11753,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
             }
           ],
@@ -12106,9 +11773,9 @@
           "direct_meters" : null,
           "action_ids" : [16],
           "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" : 16,
@@ -12118,8 +11785,8 @@
           }
         },
         {
-          "name" : "tbl_act_11",
-          "id" : 14,
+          "name" : "tbl_act_7",
+          "id" : 10,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -12127,14 +11794,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [53],
-          "actions" : ["act_19"],
-          "base_default_next" : "node_26",
+          "action_ids" : [49],
+          "actions" : ["act_15"],
+          "base_default_next" : "node_19",
           "next_tables" : {
-            "act_19" : "node_26"
+            "act_15" : "node_19"
           },
           "default_entry" : {
-            "action_id" : 53,
+            "action_id" : 49,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -12142,7 +11809,7 @@
         },
         {
           "name" : "FabricIngress.spgw_ingress.s1u_filter_table",
-          "id" : 15,
+          "id" : 11,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 83,
@@ -12167,8 +11834,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,
@@ -12178,8 +11845,8 @@
           }
         },
         {
-          "name" : "tbl_act_12",
-          "id" : 16,
+          "name" : "tbl_act_8",
+          "id" : 12,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -12187,22 +11854,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [45],
-          "actions" : ["act_11"],
-          "base_default_next" : "node_30",
+          "action_ids" : [41],
+          "actions" : ["act_7"],
+          "base_default_next" : "node_23",
           "next_tables" : {
-            "act_11" : "node_30"
+            "act_7" : "node_23"
           },
           "default_entry" : {
-            "action_id" : 45,
+            "action_id" : 41,
             "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",
@@ -12210,22 +11877,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [46],
-          "actions" : ["act_12"],
-          "base_default_next" : "node_30",
+          "action_ids" : [42],
+          "actions" : ["act_8"],
+          "base_default_next" : "node_23",
           "next_tables" : {
-            "act_12" : "node_30"
+            "act_8" : "node_23"
           },
           "default_entry" : {
-            "action_id" : 46,
+            "action_id" : 42,
             "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,
@@ -12239,22 +11906,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [47],
-          "actions" : ["act_13"],
-          "base_default_next" : "tbl_act_15",
+          "action_ids" : [43],
+          "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" : 47,
+            "action_id" : 43,
             "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,
@@ -12268,14 +11935,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [48],
-          "actions" : ["act_14"],
+          "action_ids" : [44],
+          "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" : 48,
+            "action_id" : 44,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -12283,7 +11950,7 @@
         },
         {
           "name" : "tbl_spgw_ingress_gtpu_decap",
-          "id" : 20,
+          "id" : 16,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 152,
@@ -12299,9 +11966,9 @@
           "direct_meters" : null,
           "action_ids" : [10],
           "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" : 10,
@@ -12312,7 +11979,7 @@
         },
         {
           "name" : "FabricIngress.spgw_ingress.dl_sess_lookup",
-          "id" : 21,
+          "id" : 17,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 70,
@@ -12337,8 +12004,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,
@@ -12348,8 +12015,8 @@
           }
         },
         {
-          "name" : "tbl_act_16",
-          "id" : 22,
+          "name" : "tbl_act_12",
+          "id" : 18,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -12357,22 +12024,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [49],
-          "actions" : ["act_15"],
-          "base_default_next" : "node_37",
+          "action_ids" : [45],
+          "actions" : ["act_11"],
+          "base_default_next" : "node_30",
           "next_tables" : {
-            "act_15" : "node_37"
+            "act_11" : "node_30"
           },
           "default_entry" : {
-            "action_id" : 49,
+            "action_id" : 45,
             "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",
@@ -12380,22 +12047,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [50],
-          "actions" : ["act_16"],
-          "base_default_next" : "node_37",
+          "action_ids" : [46],
+          "actions" : ["act_12"],
+          "base_default_next" : "node_30",
           "next_tables" : {
-            "act_16" : "node_37"
+            "act_12" : "node_30"
           },
           "default_entry" : {
-            "action_id" : 50,
+            "action_id" : 46,
             "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,
@@ -12409,22 +12076,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [51],
-          "actions" : ["act_17"],
-          "base_default_next" : "node_40",
+          "action_ids" : [47],
+          "actions" : ["act_13"],
+          "base_default_next" : "node_33",
           "next_tables" : {
-            "act_17" : "node_40"
+            "act_13" : "node_33"
           },
           "default_entry" : {
-            "action_id" : 51,
+            "action_id" : 47,
             "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,
@@ -12438,22 +12105,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [52],
-          "actions" : ["act_18"],
-          "base_default_next" : "node_40",
+          "action_ids" : [48],
+          "actions" : ["act_14"],
+          "base_default_next" : "node_33",
           "next_tables" : {
-            "act_18" : "node_40"
+            "act_14" : "node_33"
           },
           "default_entry" : {
-            "action_id" : 52,
+            "action_id" : 48,
             "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,
@@ -12467,14 +12134,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [54],
-          "actions" : ["act_20"],
-          "base_default_next" : "node_42",
+          "action_ids" : [50],
+          "actions" : ["act_16"],
+          "base_default_next" : "node_35",
           "next_tables" : {
-            "act_20" : "node_42"
+            "act_16" : "node_35"
           },
           "default_entry" : {
-            "action_id" : 54,
+            "action_id" : 50,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -12482,7 +12149,7 @@
         },
         {
           "name" : "FabricIngress.forwarding.bridging",
-          "id" : 27,
+          "id" : 23,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 46,
@@ -12493,7 +12160,7 @@
             {
               "match_type" : "exact",
               "name" : "vlan_id",
-              "target" : ["scalars", "fabric_metadata_t._vlan_id5"],
+              "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
               "mask" : null
             },
             {
@@ -12525,7 +12192,7 @@
         },
         {
           "name" : "FabricIngress.forwarding.mpls",
-          "id" : 28,
+          "id" : 24,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 71,
@@ -12536,7 +12203,7 @@
             {
               "match_type" : "exact",
               "name" : "mpls_label",
-              "target" : ["scalars", "fabric_metadata_t._mpls_label8"],
+              "target" : ["scalars", "fabric_metadata_t._mpls_label4"],
               "mask" : null
             }
           ],
@@ -12562,10 +12229,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"
           },
@@ -12580,7 +12247,7 @@
           "match_type" : "lpm",
           "type" : "simple",
           "max_size" : 1024,
-          "with_counters" : true,
+          "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
           "action_ids" : [19, 20, 5],
@@ -12600,7 +12267,7 @@
         },
         {
           "name" : "FabricIngress.acl.acl",
-          "id" : 30,
+          "id" : 26,
           "source_info" : {
             "filename" : "include/control/acl.p4",
             "line" : 60,
@@ -12617,19 +12284,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
             },
             {
@@ -12653,7 +12320,7 @@
             {
               "match_type" : "ternary",
               "name" : "eth_type",
-              "target" : ["scalars", "fabric_metadata_t._last_eth_type0"],
+              "target" : ["eth_type", "value"],
               "mask" : null
             },
             {
@@ -12689,13 +12356,13 @@
           "direct_meters" : null,
           "action_ids" : [21, 22, 23, 24, 25],
           "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" : 25,
@@ -12706,10 +12373,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"
           },
@@ -12723,7 +12390,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id13"],
+              "target" : ["scalars", "fabric_metadata_t._next_id9"],
               "mask" : null
             }
           ],
@@ -12750,10 +12417,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"
           },
@@ -12761,7 +12428,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id13"],
+              "target" : ["scalars", "fabric_metadata_t._next_id9"],
               "mask" : null
             }
           ],
@@ -12784,10 +12451,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"
           },
@@ -12795,7 +12462,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id13"],
+              "target" : ["scalars", "fabric_metadata_t._next_id9"],
               "mask" : null
             }
           ],
@@ -12821,7 +12488,7 @@
         },
         {
           "name" : "FabricIngress.next.next_vlan",
-          "id" : 34,
+          "id" : 30,
           "source_info" : {
             "filename" : "include/control/next.p4",
             "line" : 82,
@@ -12832,7 +12499,7 @@
             {
               "match_type" : "exact",
               "name" : "next_id",
-              "target" : ["scalars", "fabric_metadata_t._next_id13"],
+              "target" : ["scalars", "fabric_metadata_t._next_id9"],
               "mask" : null
             }
           ],
@@ -12844,10 +12511,10 @@
           "direct_meters" : null,
           "action_ids" : [26, 6],
           "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" : 6,
@@ -12857,8 +12524,8 @@
           }
         },
         {
-          "name" : "tbl_act_21",
-          "id" : 35,
+          "name" : "tbl_act_17",
+          "id" : 31,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 31,
@@ -12872,22 +12539,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [55],
-          "actions" : ["act_21"],
-          "base_default_next" : "node_57",
+          "action_ids" : [51],
+          "actions" : ["act_17"],
+          "base_default_next" : "node_50",
           "next_tables" : {
-            "act_21" : "node_57"
+            "act_17" : "node_50"
           },
           "default_entry" : {
-            "action_id" : 55,
+            "action_id" : 51,
             "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,
@@ -12901,14 +12568,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [56],
-          "actions" : ["act_22"],
+          "action_ids" : [52],
+          "actions" : ["act_18"],
           "base_default_next" : "FabricIngress.process_set_source_sink.tb_set_source",
           "next_tables" : {
-            "act_22" : "FabricIngress.process_set_source_sink.tb_set_source"
+            "act_18" : "FabricIngress.process_set_source_sink.tb_set_source"
           },
           "default_entry" : {
-            "action_id" : 56,
+            "action_id" : 52,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -12916,7 +12583,7 @@
         },
         {
           "name" : "FabricIngress.process_set_source_sink.tb_set_source",
-          "id" : 37,
+          "id" : 33,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 46,
@@ -12958,7 +12625,7 @@
           "id" : 0,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 177,
+            "line" : 179,
             "column" : 57,
             "source_fragment" : "hashed_selector"
           },
@@ -12976,15 +12643,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"]
               }
             ]
           }
@@ -13096,7 +12763,7 @@
           "id" : 4,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 109,
+            "line" : 108,
             "column" : 12,
             "source_fragment" : "hdr.vlan_tag.isValid()"
           },
@@ -13119,7 +12786,7 @@
           "id" : 5,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 121,
+            "line" : 120,
             "column" : 12,
             "source_fragment" : "!hdr.mpls.isValid()"
           },
@@ -13142,80 +12809,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,
@@ -13237,8 +12835,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,
@@ -13263,12 +12861,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" : {
@@ -13280,12 +12878,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" : {
@@ -13304,12 +12902,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,
@@ -13327,7 +12925,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._skip_forwarding10"]
+                    "value" : ["scalars", "fabric_metadata_t._skip_forwarding6"]
                   }
                 }
               },
@@ -13337,15 +12935,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"
           },
@@ -13355,7 +12953,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -13364,14 +12962,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"
           },
@@ -13381,7 +12979,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -13390,14 +12988,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"
           },
@@ -13407,7 +13005,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._fwd_type12"]
+                "value" : ["scalars", "fabric_metadata_t._fwd_type8"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -13419,8 +13017,8 @@
           "false_next" : "FabricIngress.acl.acl"
         },
         {
-          "name" : "node_50",
-          "id" : 17,
+          "name" : "node_43",
+          "id" : 14,
           "source_info" : {
             "filename" : "fabric.p4",
             "line" : 75,
@@ -13438,7 +13036,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._skip_next11"]
+                    "value" : ["scalars", "fabric_metadata_t._skip_next7"]
                   }
                 }
               },
@@ -13452,8 +13050,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,
@@ -13474,12 +13072,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,
@@ -13500,7 +13098,7 @@
               }
             }
           },
-          "true_next" : "tbl_act_22",
+          "true_next" : "tbl_act_18",
           "false_next" : "FabricIngress.process_set_source_sink.tb_set_source"
         }
       ]
@@ -13514,11 +13112,11 @@
         "column" : 8,
         "source_fragment" : "FabricEgress"
       },
-      "init_table" : "node_62",
+      "init_table" : "node_55",
       "tables" : [
         {
-          "name" : "tbl_act_23",
-          "id" : 38,
+          "name" : "tbl_act_19",
+          "id" : 34,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 41,
@@ -13532,22 +13130,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [101],
-          "actions" : ["act_23"],
-          "base_default_next" : "node_64",
+          "action_ids" : [97],
+          "actions" : ["act_19"],
+          "base_default_next" : "node_57",
           "next_tables" : {
-            "act_23" : "node_64"
+            "act_19" : "node_57"
           },
           "default_entry" : {
-            "action_id" : 101,
+            "action_id" : 97,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_24",
-          "id" : 39,
+          "name" : "tbl_act_20",
+          "id" : 35,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 44,
@@ -13561,25 +13159,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [102],
-          "actions" : ["act_24"],
-          "base_default_next" : "node_66",
+          "action_ids" : [98],
+          "actions" : ["act_20"],
+          "base_default_next" : "node_59",
           "next_tables" : {
-            "act_24" : "node_66"
+            "act_20" : "node_59"
           },
           "default_entry" : {
-            "action_id" : 102,
+            "action_id" : 98,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_25",
-          "id" : 40,
+          "name" : "tbl_act_21",
+          "id" : 36,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 333,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -13590,14 +13188,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [103],
-          "actions" : ["act_25"],
-          "base_default_next" : "node_68",
+          "action_ids" : [99],
+          "actions" : ["act_21"],
+          "base_default_next" : "node_61",
           "next_tables" : {
-            "act_25" : "node_68"
+            "act_21" : "node_61"
           },
           "default_entry" : {
-            "action_id" : 103,
+            "action_id" : 99,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -13605,10 +13203,10 @@
         },
         {
           "name" : "tbl_egress_next_pop_mpls_if_present",
-          "id" : 41,
+          "id" : 37,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 339,
+            "line" : 337,
             "column" : 36,
             "source_fragment" : "pop_mpls_if_present()"
           },
@@ -13619,14 +13217,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [97],
+          "action_ids" : [93],
           "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" : 97,
+            "action_id" : 93,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -13634,10 +13232,10 @@
         },
         {
           "name" : "tbl_egress_next_set_mpls",
-          "id" : 42,
+          "id" : 38,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 339,
             "column" : 12,
             "source_fragment" : "set_mpls()"
           },
@@ -13648,14 +13246,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [98],
+          "action_ids" : [94],
           "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" : 98,
+            "action_id" : 94,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -13663,10 +13261,10 @@
         },
         {
           "name" : "FabricEgress.egress_next.egress_vlan",
-          "id" : 43,
+          "id" : 39,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 318,
+            "line" : 316,
             "column" : 10,
             "source_fragment" : "egress_vlan"
           },
@@ -13674,7 +13272,7 @@
             {
               "match_type" : "exact",
               "name" : "vlan_id",
-              "target" : ["scalars", "fabric_metadata_t._vlan_id5"],
+              "target" : ["scalars", "fabric_metadata_t._vlan_id1"],
               "mask" : null
             },
             {
@@ -13690,23 +13288,23 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [100, 59],
+          "action_ids" : [96, 55],
           "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" : 59,
+            "action_id" : 55,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_26",
-          "id" : 44,
+          "name" : "tbl_act_22",
+          "id" : 40,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -13714,22 +13312,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [104],
-          "actions" : ["act_26"],
-          "base_default_next" : "node_75",
+          "action_ids" : [100],
+          "actions" : ["act_22"],
+          "base_default_next" : "node_68",
           "next_tables" : {
-            "act_26" : "node_75"
+            "act_22" : "node_68"
           },
           "default_entry" : {
-            "action_id" : 104,
+            "action_id" : 100,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_27",
-          "id" : 45,
+          "name" : "tbl_act_23",
+          "id" : 41,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -13737,14 +13335,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [105],
-          "actions" : ["act_27"],
-          "base_default_next" : "node_75",
+          "action_ids" : [101],
+          "actions" : ["act_23"],
+          "base_default_next" : "node_68",
           "next_tables" : {
-            "act_27" : "node_75"
+            "act_23" : "node_68"
           },
           "default_entry" : {
-            "action_id" : 105,
+            "action_id" : 101,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -13752,10 +13350,10 @@
         },
         {
           "name" : "tbl_egress_next_push_vlan",
-          "id" : 46,
+          "id" : 42,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 358,
+            "line" : 356,
             "column" : 20,
             "source_fragment" : "push_vlan()"
           },
@@ -13766,25 +13364,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [99],
+          "action_ids" : [95],
           "actions" : ["FabricEgress.egress_next.push_vlan"],
-          "base_default_next" : "node_78",
+          "base_default_next" : "node_71",
           "next_tables" : {
-            "FabricEgress.egress_next.push_vlan" : "node_78"
+            "FabricEgress.egress_next.push_vlan" : "node_71"
           },
           "default_entry" : {
-            "action_id" : 99,
+            "action_id" : 95,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_28",
-          "id" : 47,
+          "name" : "tbl_act_24",
+          "id" : 43,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 367,
+            "line" : 365,
             "column" : 25,
             "source_fragment" : "="
           },
@@ -13795,25 +13393,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [107],
-          "actions" : ["act_29"],
-          "base_default_next" : "node_80",
+          "action_ids" : [103],
+          "actions" : ["act_25"],
+          "base_default_next" : "node_73",
           "next_tables" : {
-            "act_29" : "node_80"
+            "act_25" : "node_73"
           },
           "default_entry" : {
-            "action_id" : 107,
+            "action_id" : 103,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_29",
-          "id" : 48,
+          "name" : "tbl_act_25",
+          "id" : 44,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -13824,25 +13422,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [106],
-          "actions" : ["act_28"],
-          "base_default_next" : "node_86",
+          "action_ids" : [102],
+          "actions" : ["act_24"],
+          "base_default_next" : "node_79",
           "next_tables" : {
-            "act_28" : "node_86"
+            "act_24" : "node_79"
           },
           "default_entry" : {
-            "action_id" : 106,
+            "action_id" : 102,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_30",
-          "id" : 49,
+          "name" : "tbl_act_26",
+          "id" : 45,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 371,
+            "line" : 369,
             "column" : 29,
             "source_fragment" : "="
           },
@@ -13853,25 +13451,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [109],
-          "actions" : ["act_31"],
-          "base_default_next" : "node_84",
+          "action_ids" : [105],
+          "actions" : ["act_27"],
+          "base_default_next" : "node_77",
           "next_tables" : {
-            "act_31" : "node_84"
+            "act_27" : "node_77"
           },
           "default_entry" : {
-            "action_id" : 109,
+            "action_id" : 105,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_31",
-          "id" : 50,
+          "name" : "tbl_act_27",
+          "id" : 46,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -13882,14 +13480,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [108],
-          "actions" : ["act_30"],
-          "base_default_next" : "node_86",
+          "action_ids" : [104],
+          "actions" : ["act_26"],
+          "base_default_next" : "node_79",
           "next_tables" : {
-            "act_30" : "node_86"
+            "act_26" : "node_79"
           },
           "default_entry" : {
-            "action_id" : 108,
+            "action_id" : 104,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -13897,7 +13495,7 @@
         },
         {
           "name" : "tbl_spgw_egress_gtpu_encap",
-          "id" : 51,
+          "id" : 47,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 228,
@@ -13911,14 +13509,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [62],
+          "action_ids" : [58],
           "actions" : ["FabricEgress.spgw_egress.gtpu_encap"],
-          "base_default_next" : "node_88",
+          "base_default_next" : "node_81",
           "next_tables" : {
-            "FabricEgress.spgw_egress.gtpu_encap" : "node_88"
+            "FabricEgress.spgw_egress.gtpu_encap" : "node_81"
           },
           "default_entry" : {
-            "action_id" : 62,
+            "action_id" : 58,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -13926,7 +13524,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
-          "id" : 52,
+          "id" : 48,
           "source_info" : {
             "filename" : "include/int/int_source.p4",
             "line" : 66,
@@ -13949,13 +13547,13 @@
             {
               "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
             }
           ],
@@ -13965,23 +13563,23 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [63, 57],
+          "action_ids" : [59, 53],
           "actions" : ["FabricEgress.process_int_main.process_int_source.int_source_dscp", "nop"],
-          "base_default_next" : "node_91",
+          "base_default_next" : "node_84",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_91",
-            "nop" : "node_91"
+            "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_84",
+            "nop" : "node_84"
           },
           "default_entry" : {
-            "action_id" : 57,
+            "action_id" : 53,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_32",
-          "id" : 53,
+          "name" : "tbl_act_28",
+          "id" : 49,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -13989,14 +13587,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [110],
-          "actions" : ["act_32"],
+          "action_ids" : [106],
+          "actions" : ["act_28"],
           "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
           "next_tables" : {
-            "act_32" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
+            "act_28" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
           },
           "default_entry" : {
-            "action_id" : 110,
+            "action_id" : 106,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -14004,7 +13602,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
-          "id" : 54,
+          "id" : 50,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 315,
@@ -14025,23 +13623,23 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [64, 58],
+          "action_ids" : [60, 54],
           "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"],
-          "base_default_next" : "node_94",
+          "base_default_next" : "node_87",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_94",
-            "nop" : "node_94"
+            "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_87",
+            "nop" : "node_87"
           },
           "default_entry" : {
-            "action_id" : 58,
+            "action_id" : 54,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_33",
-          "id" : 55,
+          "name" : "tbl_act_29",
+          "id" : 51,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 420,
@@ -14055,14 +13653,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [111],
-          "actions" : ["act_33"],
-          "base_default_next" : "node_96",
+          "action_ids" : [107],
+          "actions" : ["act_29"],
+          "base_default_next" : "node_89",
           "next_tables" : {
-            "act_33" : "node_96"
+            "act_29" : "node_89"
           },
           "default_entry" : {
-            "action_id" : 111,
+            "action_id" : 107,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -14070,7 +13668,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003",
-          "id" : 56,
+          "id" : 52,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 331,
@@ -14091,7 +13689,7 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 60],
+          "action_ids" : [61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 56],
           "actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15", "NoAction"],
           "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407",
           "next_tables" : {
@@ -14114,7 +13712,7 @@
             "NoAction" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407"
           },
           "default_entry" : {
-            "action_id" : 60,
+            "action_id" : 56,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -14134,7 +13732,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 65,
+                "action_id" : 61,
                 "action_data" : []
               },
               "priority" : 1
@@ -14153,7 +13751,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 66,
+                "action_id" : 62,
                 "action_data" : []
               },
               "priority" : 2
@@ -14172,7 +13770,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 67,
+                "action_id" : 63,
                 "action_data" : []
               },
               "priority" : 3
@@ -14191,7 +13789,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 68,
+                "action_id" : 64,
                 "action_data" : []
               },
               "priority" : 4
@@ -14210,7 +13808,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 69,
+                "action_id" : 65,
                 "action_data" : []
               },
               "priority" : 5
@@ -14229,7 +13827,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 70,
+                "action_id" : 66,
                 "action_data" : []
               },
               "priority" : 6
@@ -14248,7 +13846,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 71,
+                "action_id" : 67,
                 "action_data" : []
               },
               "priority" : 7
@@ -14267,7 +13865,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 72,
+                "action_id" : 68,
                 "action_data" : []
               },
               "priority" : 8
@@ -14286,7 +13884,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 73,
+                "action_id" : 69,
                 "action_data" : []
               },
               "priority" : 9
@@ -14305,7 +13903,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 74,
+                "action_id" : 70,
                 "action_data" : []
               },
               "priority" : 10
@@ -14324,7 +13922,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 75,
+                "action_id" : 71,
                 "action_data" : []
               },
               "priority" : 11
@@ -14343,7 +13941,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 76,
+                "action_id" : 72,
                 "action_data" : []
               },
               "priority" : 12
@@ -14362,7 +13960,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 77,
+                "action_id" : 73,
                 "action_data" : []
               },
               "priority" : 13
@@ -14381,7 +13979,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 78,
+                "action_id" : 74,
                 "action_data" : []
               },
               "priority" : 14
@@ -14400,7 +13998,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 79,
+                "action_id" : 75,
                 "action_data" : []
               },
               "priority" : 15
@@ -14419,7 +14017,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 80,
+                "action_id" : 76,
                 "action_data" : []
               },
               "priority" : 16
@@ -14428,7 +14026,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407",
-          "id" : 57,
+          "id" : 53,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 375,
@@ -14449,30 +14047,30 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 61],
+          "action_ids" : [77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 57],
           "actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15", "NoAction"],
-          "base_default_next" : "tbl_act_34",
+          "base_default_next" : "tbl_act_30",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_34",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_34",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_34",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_34",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_34",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_34",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_34",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_34",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_34",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_34",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_34",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_34",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_34",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_34",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_34",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_34",
-            "NoAction" : "tbl_act_34"
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_30",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_30",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_30",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_30",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_30",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_30",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_30",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_30",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_30",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_30",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_30",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_30",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_30",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_30",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_30",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_30",
+            "NoAction" : "tbl_act_30"
           },
           "default_entry" : {
-            "action_id" : 61,
+            "action_id" : 57,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -14492,7 +14090,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 81,
+                "action_id" : 77,
                 "action_data" : []
               },
               "priority" : 1
@@ -14511,7 +14109,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 82,
+                "action_id" : 78,
                 "action_data" : []
               },
               "priority" : 2
@@ -14530,7 +14128,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 83,
+                "action_id" : 79,
                 "action_data" : []
               },
               "priority" : 3
@@ -14549,7 +14147,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 84,
+                "action_id" : 80,
                 "action_data" : []
               },
               "priority" : 4
@@ -14568,7 +14166,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 85,
+                "action_id" : 81,
                 "action_data" : []
               },
               "priority" : 5
@@ -14587,7 +14185,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 86,
+                "action_id" : 82,
                 "action_data" : []
               },
               "priority" : 6
@@ -14606,7 +14204,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 87,
+                "action_id" : 83,
                 "action_data" : []
               },
               "priority" : 7
@@ -14625,7 +14223,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 88,
+                "action_id" : 84,
                 "action_data" : []
               },
               "priority" : 8
@@ -14644,7 +14242,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 89,
+                "action_id" : 85,
                 "action_data" : []
               },
               "priority" : 9
@@ -14663,7 +14261,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 90,
+                "action_id" : 86,
                 "action_data" : []
               },
               "priority" : 10
@@ -14682,7 +14280,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 91,
+                "action_id" : 87,
                 "action_data" : []
               },
               "priority" : 11
@@ -14701,7 +14299,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 92,
+                "action_id" : 88,
                 "action_data" : []
               },
               "priority" : 12
@@ -14720,7 +14318,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 93,
+                "action_id" : 89,
                 "action_data" : []
               },
               "priority" : 13
@@ -14739,7 +14337,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 94,
+                "action_id" : 90,
                 "action_data" : []
               },
               "priority" : 14
@@ -14758,7 +14356,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 95,
+                "action_id" : 91,
                 "action_data" : []
               },
               "priority" : 15
@@ -14777,7 +14375,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 96,
+                "action_id" : 92,
                 "action_data" : []
               },
               "priority" : 16
@@ -14785,8 +14383,8 @@
           ]
         },
         {
-          "name" : "tbl_act_34",
-          "id" : 58,
+          "name" : "tbl_act_30",
+          "id" : 54,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 425,
@@ -14800,22 +14398,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [113],
-          "actions" : ["act_35"],
-          "base_default_next" : "node_100",
+          "action_ids" : [109],
+          "actions" : ["act_31"],
+          "base_default_next" : "node_93",
           "next_tables" : {
-            "act_35" : "node_100"
+            "act_31" : "node_93"
           },
           "default_entry" : {
-            "action_id" : 113,
+            "action_id" : 109,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_35",
-          "id" : 59,
+          "name" : "tbl_act_31",
+          "id" : 55,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 428,
@@ -14829,22 +14427,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [112],
-          "actions" : ["act_34"],
-          "base_default_next" : "node_102",
+          "action_ids" : [108],
+          "actions" : ["act_30"],
+          "base_default_next" : "node_95",
           "next_tables" : {
-            "act_34" : "node_102"
+            "act_30" : "node_95"
           },
           "default_entry" : {
-            "action_id" : 112,
+            "action_id" : 108,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_36",
-          "id" : 60,
+          "name" : "tbl_act_32",
+          "id" : 56,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 431,
@@ -14858,22 +14456,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [114],
-          "actions" : ["act_36"],
-          "base_default_next" : "node_104",
+          "action_ids" : [110],
+          "actions" : ["act_32"],
+          "base_default_next" : "node_97",
           "next_tables" : {
-            "act_36" : "node_104"
+            "act_32" : "node_97"
           },
           "default_entry" : {
-            "action_id" : 114,
+            "action_id" : 110,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_37",
-          "id" : 61,
+          "name" : "tbl_act_33",
+          "id" : 57,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 434,
@@ -14887,14 +14485,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [115],
-          "actions" : ["act_37"],
+          "action_ids" : [111],
+          "actions" : ["act_33"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_37" : null
+            "act_33" : null
           },
           "default_entry" : {
-            "action_id" : 115,
+            "action_id" : 111,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -14904,8 +14502,8 @@
       "action_profiles" : [],
       "conditionals" : [
         {
-          "name" : "node_62",
-          "id" : 20,
+          "name" : "node_55",
+          "id" : 17,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 39,
@@ -14923,7 +14521,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out15"]
+                    "value" : ["scalars", "fabric_metadata_t._is_controller_packet_out11"]
                   }
                 }
               },
@@ -14933,12 +14531,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_23",
-          "false_next" : "node_64"
+          "true_next" : "tbl_act_19",
+          "false_next" : "node_57"
         },
         {
-          "name" : "node_64",
-          "id" : 21,
+          "name" : "node_57",
+          "id" : 18,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 43,
@@ -14959,15 +14557,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_24",
-          "false_next" : "node_66"
+          "true_next" : "tbl_act_20",
+          "false_next" : "node_59"
         },
         {
-          "name" : "node_66",
-          "id" : 22,
+          "name" : "node_59",
+          "id" : 19,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 333,
+            "line" : 331,
             "column" : 12,
             "source_fragment" : "fabric_metadata.is_multicast == true ..."
           },
@@ -14986,7 +14584,7 @@
                       "left" : null,
                       "right" : {
                         "type" : "field",
-                        "value" : ["scalars", "fabric_metadata_t._is_multicast14"]
+                        "value" : ["scalars", "fabric_metadata_t._is_multicast10"]
                       }
                     }
                   },
@@ -15012,15 +14610,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_25",
-          "false_next" : "node_68"
+          "true_next" : "tbl_act_21",
+          "false_next" : "node_61"
         },
         {
-          "name" : "node_68",
-          "id" : 23,
+          "name" : "node_61",
+          "id" : 20,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 338,
+            "line" : 336,
             "column" : 12,
             "source_fragment" : "fabric_metadata.mpls_label == 0"
           },
@@ -15030,7 +14628,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._mpls_label8"]
+                "value" : ["scalars", "fabric_metadata_t._mpls_label4"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -15038,15 +14636,15 @@
               }
             }
           },
-          "true_next" : "node_69",
+          "true_next" : "node_62",
           "false_next" : "tbl_egress_next_set_mpls"
         },
         {
-          "name" : "node_69",
-          "id" : 24,
+          "name" : "node_62",
+          "id" : 21,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 339,
+            "line" : 337,
             "column" : 16,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -15065,11 +14663,11 @@
           "false_next" : "FabricEgress.egress_next.egress_vlan"
         },
         {
-          "name" : "node_75",
-          "id" : 25,
+          "name" : "node_68",
+          "id" : 22,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 355,
+            "line" : 353,
             "column" : 16,
             "source_fragment" : "!egress_vlan.apply().hit"
           },
@@ -15091,15 +14689,15 @@
               }
             }
           },
-          "true_next" : "node_76",
-          "false_next" : "node_78"
+          "true_next" : "node_69",
+          "false_next" : "node_71"
         },
         {
-          "name" : "node_76",
-          "id" : 26,
+          "name" : "node_69",
+          "id" : 23,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 357,
+            "line" : 355,
             "column" : 20,
             "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
           },
@@ -15109,7 +14707,7 @@
               "op" : "!=",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._vlan_id5"]
+                "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -15118,14 +14716,14 @@
             }
           },
           "true_next" : "tbl_egress_next_push_vlan",
-          "false_next" : "node_78"
+          "false_next" : "node_71"
         },
         {
-          "name" : "node_78",
-          "id" : 27,
+          "name" : "node_71",
+          "id" : 24,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 366,
+            "line" : 364,
             "column" : 12,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -15140,15 +14738,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_28",
-          "false_next" : "node_82"
+          "true_next" : "tbl_act_24",
+          "false_next" : "node_75"
         },
         {
-          "name" : "node_80",
-          "id" : 28,
+          "name" : "node_73",
+          "id" : 25,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 16,
             "source_fragment" : "hdr.mpls.ttl == 0"
           },
@@ -15166,15 +14764,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_29",
-          "false_next" : "node_86"
+          "true_next" : "tbl_act_25",
+          "false_next" : "node_79"
         },
         {
-          "name" : "node_82",
-          "id" : 29,
+          "name" : "node_75",
+          "id" : 26,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 368,
             "column" : 15,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -15189,15 +14787,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_30",
-          "false_next" : "node_86"
+          "true_next" : "tbl_act_26",
+          "false_next" : "node_79"
         },
         {
-          "name" : "node_84",
-          "id" : 30,
+          "name" : "node_77",
+          "id" : 27,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl == 0"
           },
@@ -15215,12 +14813,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_31",
-          "false_next" : "node_86"
+          "true_next" : "tbl_act_27",
+          "false_next" : "node_79"
         },
         {
-          "name" : "node_86",
-          "id" : 31,
+          "name" : "node_79",
+          "id" : 28,
           "source_info" : {
             "filename" : "include/spgw.p4",
             "line" : 227,
@@ -15233,7 +14831,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._spgw_direction19"]
+                "value" : ["scalars", "fabric_metadata_t._spgw_direction15"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -15242,11 +14840,11 @@
             }
           },
           "true_next" : "tbl_spgw_egress_gtpu_encap",
-          "false_next" : "node_88"
+          "false_next" : "node_81"
         },
         {
-          "name" : "node_88",
-          "id" : 32,
+          "name" : "node_81",
+          "id" : 29,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 102,
@@ -15322,11 +14920,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "node_89"
+          "true_next" : "node_82"
         },
         {
-          "name" : "node_89",
-          "id" : 33,
+          "name" : "node_82",
+          "id" : 30,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 106,
@@ -15344,7 +14942,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._int_meta_source24"]
+                    "value" : ["scalars", "fabric_metadata_t._int_meta_source20"]
                   }
                 }
               },
@@ -15355,11 +14953,11 @@
             }
           },
           "true_next" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
-          "false_next" : "node_91"
+          "false_next" : "node_84"
         },
         {
-          "name" : "node_91",
-          "id" : 34,
+          "name" : "node_84",
+          "id" : 31,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 110,
@@ -15378,11 +14976,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_32"
+          "true_next" : "tbl_act_28"
         },
         {
-          "name" : "node_94",
-          "id" : 35,
+          "name" : "node_87",
+          "id" : 32,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 419,
@@ -15400,7 +14998,7 @@
                   "left" : null,
                   "right" : {
                     "type" : "field",
-                    "value" : ["scalars", "fabric_metadata_t._int_meta_transit25"]
+                    "value" : ["scalars", "fabric_metadata_t._int_meta_transit21"]
                   }
                 }
               },
@@ -15410,12 +15008,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_33",
-          "false_next" : "node_96"
+          "true_next" : "tbl_act_29",
+          "false_next" : "node_89"
         },
         {
-          "name" : "node_96",
-          "id" : 36,
+          "name" : "node_89",
+          "id" : 33,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -15438,8 +15036,8 @@
           "true_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003"
         },
         {
-          "name" : "node_100",
-          "id" : 37,
+          "name" : "node_93",
+          "id" : 34,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 427,
@@ -15457,12 +15055,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_35",
-          "false_next" : "node_102"
+          "true_next" : "tbl_act_31",
+          "false_next" : "node_95"
         },
         {
-          "name" : "node_102",
-          "id" : 38,
+          "name" : "node_95",
+          "id" : 35,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 430,
@@ -15480,12 +15078,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_36",
-          "false_next" : "node_104"
+          "true_next" : "tbl_act_32",
+          "false_next" : "node_97"
         },
         {
-          "name" : "node_104",
-          "id" : 39,
+          "name" : "node_97",
+          "id" : 36,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 433,
@@ -15504,7 +15102,7 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_37"
+          "true_next" : "tbl_act_33"
         }
       ]
     }
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt
index 1a88a4b..4127ca9 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt
@@ -130,20 +130,14 @@
   }
   match_fields {
     id: 3
-    name: "is_ipv4"
-    bitwidth: 1
-    match_type: EXACT
+    name: "eth_type"
+    bitwidth: 16
+    match_type: TERNARY
   }
   match_fields {
     id: 4
-    name: "is_ipv6"
-    bitwidth: 1
-    match_type: EXACT
-  }
-  match_fields {
-    id: 5
-    name: "is_mpls"
-    bitwidth: 1
+    name: "ip_eth_type"
+    bitwidth: 16
     match_type: EXACT
   }
   action_refs {
@@ -231,7 +225,6 @@
     scope: DEFAULT_ONLY
   }
   const_default_action_id: 16819938
-  direct_resource_ids: 318811107
   size: 1024
 }
 tables {
@@ -963,17 +956,6 @@
 }
 direct_counters {
   preamble {
-    id: 318811107
-    name: "FabricIngress.forwarding.routing_v4_counter"
-    alias: "routing_v4_counter"
-  }
-  spec {
-    unit: BOTH
-  }
-  direct_table_id: 33562650
-}
-direct_counters {
-  preamble {
     id: 318801025
     name: "FabricIngress.acl.acl_counter"
     alias: "acl_counter"
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",
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt
index 2fca1c0..fa68a8d 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt
@@ -106,20 +106,14 @@
   }
   match_fields {
     id: 3
-    name: "is_ipv4"
-    bitwidth: 1
-    match_type: EXACT
+    name: "eth_type"
+    bitwidth: 16
+    match_type: TERNARY
   }
   match_fields {
     id: 4
-    name: "is_ipv6"
-    bitwidth: 1
-    match_type: EXACT
-  }
-  match_fields {
-    id: 5
-    name: "is_mpls"
-    bitwidth: 1
+    name: "ip_eth_type"
+    bitwidth: 16
     match_type: EXACT
   }
   action_refs {
@@ -207,7 +201,6 @@
     scope: DEFAULT_ONLY
   }
   const_default_action_id: 16819938
-  direct_resource_ids: 318811107
   size: 1024
 }
 tables {
@@ -810,17 +803,6 @@
 }
 direct_counters {
   preamble {
-    id: 318811107
-    name: "FabricIngress.forwarding.routing_v4_counter"
-    alias: "routing_v4_counter"
-  }
-  spec {
-    unit: BOTH
-  }
-  direct_table_id: 33562650
-}
-direct_counters {
-  preamble {
     id: 318801025
     name: "FabricIngress.acl.acl_counter"
     alias: "acl_counter"
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
index a51ce3a..bdab9d8 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
@@ -4,14 +4,12 @@
       "name" : "scalars_0",
       "id" : 0,
       "fields" : [
-        ["tmp_0", 4, false],
+        ["tmp_0", 16, false],
+        ["tmp_1", 16, false],
+        ["tmp_2", 4, false],
         ["tmp", 32, false],
-        ["tmp_1", 32, false],
+        ["tmp_3", 32, false],
         ["egress_next_tmp", 1, false],
-        ["fabric_metadata_t.last_eth_type", 16, false],
-        ["fabric_metadata_t.is_ipv4", 1, false],
-        ["fabric_metadata_t.is_ipv6", 1, false],
-        ["fabric_metadata_t.is_mpls", 1, false],
         ["fabric_metadata_t.ip_eth_type", 16, false],
         ["fabric_metadata_t.vlan_id", 12, false],
         ["fabric_metadata_t.vlan_pri", 3, false],
@@ -26,8 +24,7 @@
         ["fabric_metadata_t.is_controller_packet_out", 1, false],
         ["fabric_metadata_t.ip_proto", 8, false],
         ["fabric_metadata_t.l4_sport", 16, false],
-        ["fabric_metadata_t.l4_dport", 16, false],
-        ["_padding_0", 5, false]
+        ["fabric_metadata_t.l4_dport", 16, false]
       ]
     },
     {
@@ -64,23 +61,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],
@@ -90,7 +93,7 @@
     },
     {
       "name" : "ipv4_t",
-      "id" : 5,
+      "id" : 6,
       "fields" : [
         ["version", 4, false],
         ["ihl", 4, false],
@@ -109,7 +112,7 @@
     },
     {
       "name" : "tcp_t",
-      "id" : 6,
+      "id" : 7,
       "fields" : [
         ["sport", 16, false],
         ["dport", 16, false],
@@ -126,7 +129,7 @@
     },
     {
       "name" : "udp_t",
-      "id" : 7,
+      "id" : 8,
       "fields" : [
         ["sport", 16, false],
         ["dport", 16, false],
@@ -136,7 +139,7 @@
     },
     {
       "name" : "icmp_t",
-      "id" : 8,
+      "id" : 9,
       "fields" : [
         ["icmp_type", 8, false],
         ["icmp_code", 8, false],
@@ -148,7 +151,7 @@
     },
     {
       "name" : "packet_out_header_t",
-      "id" : 9,
+      "id" : 10,
       "fields" : [
         ["egress_port", 9, false],
         ["_pad", 7, false]
@@ -156,7 +159,7 @@
     },
     {
       "name" : "packet_in_header_t",
-      "id" : 10,
+      "id" : 11,
       "fields" : [
         ["ingress_port", 9, false],
         ["_pad", 7, false]
@@ -200,50 +203,57 @@
       "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" : "ipv4",
-      "id" : 6,
+      "id" : 7,
       "header_type" : "ipv4_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "tcp",
-      "id" : 7,
+      "id" : 8,
       "header_type" : "tcp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "udp",
-      "id" : 8,
+      "id" : 9,
       "header_type" : "udp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "icmp",
-      "id" : 9,
+      "id" : 10,
       "header_type" : "icmp_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "packet_out",
-      "id" : 10,
+      "id" : 11,
       "header_type" : "packet_out_header_t",
       "metadata" : false,
       "pi_omit" : true
     },
     {
       "name" : "packet_in",
-      "id" : 11,
+      "id" : 12,
       "header_type" : "packet_in_header_t",
       "metadata" : false,
       "pi_omit" : true
@@ -351,11 +361,11 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
+                  "value" : ["scalars", "fabric_metadata_t.vlan_id"]
                 },
                 {
-                  "type" : "field",
-                  "value" : ["ethernet", "eth_type"]
+                  "type" : "hexstr",
+                  "value" : "0x0ffe"
                 }
               ],
               "op" : "set"
@@ -364,11 +374,11 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t.vlan_id"]
+                  "value" : ["scalars", "tmp_0"]
                 },
                 {
-                  "type" : "hexstr",
-                  "value" : "0x0ffe"
+                  "type" : "lookahead",
+                  "value" : [0, 16]
                 }
               ],
               "op" : "set"
@@ -394,27 +404,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_0"]
             }
           ]
         },
@@ -430,23 +428,24 @@
                 }
               ],
               "op" : "extract"
+            },
+            {
+              "parameters" : [
+                {
+                  "type" : "field",
+                  "value" : ["scalars", "tmp_1"]
+                },
+                {
+                  "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"
@@ -454,13 +453,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_1"]
             }
           ]
         },
@@ -480,11 +479,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",
@@ -492,6 +508,12 @@
               "next_state" : "parse_mpls"
             },
             {
+              "type" : "hexstr",
+              "value" : "0x0800",
+              "mask" : null,
+              "next_state" : "parse_ipv4"
+            },
+            {
               "value" : "default",
               "mask" : null,
               "next_state" : null
@@ -500,13 +522,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" : [
@@ -521,29 +543,6 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t.is_mpls"]
-                },
-                {
-                  "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_label"]
                 },
                 {
@@ -570,7 +569,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_0"]
+                  "value" : ["scalars", "tmp_2"]
                 },
                 {
                   "type" : "lookahead",
@@ -596,48 +595,11 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_0"]
+              "value" : ["scalars", "tmp_2"]
             }
           ]
         },
         {
-          "name" : "pre_parse_ipv4",
-          "id" : 6,
-          "parser_ops" : [
-            {
-              "parameters" : [
-                {
-                  "type" : "field",
-                  "value" : ["scalars", "fabric_metadata_t.is_ipv4"]
-                },
-                {
-                  "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" : [
@@ -845,11 +807,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", "ipv4", "tcp", "udp", "icmp"]
+      "order" : ["packet_in", "ethernet", "vlan_tag", "inner_vlan_tag", "eth_type", "mpls", "ipv4", "tcp", "udp", "icmp"]
     }
   ],
   "meter_arrays" : [],
@@ -903,20 +865,8 @@
       }
     },
     {
-      "name" : "FabricIngress.forwarding.routing_v4_counter",
-      "id" : 4,
-      "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" : 5,
+      "id" : 4,
       "is_direct" : true,
       "binding" : "FabricIngress.acl.acl",
       "source_info" : {
@@ -928,7 +878,7 @@
     },
     {
       "name" : "FabricIngress.next.next_vlan_counter",
-      "id" : 6,
+      "id" : 5,
       "is_direct" : true,
       "binding" : "FabricIngress.next.next_vlan",
       "source_info" : {
@@ -940,7 +890,7 @@
     },
     {
       "name" : "FabricIngress.next.xconnect_counter",
-      "id" : 7,
+      "id" : 6,
       "is_direct" : true,
       "binding" : "FabricIngress.next.xconnect",
       "source_info" : {
@@ -952,31 +902,31 @@
     },
     {
       "name" : "FabricIngress.next.hashed_counter",
-      "id" : 8,
+      "id" : 7,
       "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" : 9,
+      "id" : 8,
       "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" : 10,
+      "id" : 9,
       "source_info" : {
         "filename" : "include/control/port_counter.p4",
         "line" : 26,
@@ -988,7 +938,7 @@
     },
     {
       "name" : "FabricIngress.port_counters_control.ingress_port_counter",
-      "id" : 11,
+      "id" : 10,
       "source_info" : {
         "filename" : "include/control/port_counter.p4",
         "line" : 27,
@@ -1000,12 +950,12 @@
     },
     {
       "name" : "FabricEgress.egress_next.egress_vlan_counter",
-      "id" : 12,
+      "id" : 11,
       "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"
       }
@@ -1664,25 +1614,6 @@
             "column" : 5,
             "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
           }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x8100"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 107,
-            "column" : 31,
-            "source_fragment" : "0x8100; ..."
-          }
         }
       ]
     },
@@ -1710,7 +1641,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 112,
+            "line" : 111,
             "column" : 8,
             "source_fragment" : "fabric_metadata.next_id = next_id"
           }
@@ -1949,7 +1880,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 225,
+            "line" : 227,
             "column" : 8,
             "source_fragment" : "standard_metadata.mcast_grp = group_id"
           }
@@ -1978,7 +1909,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 226,
+            "line" : 228,
             "column" : 8,
             "source_fragment" : "fabric_metadata.is_multicast = true"
           }
@@ -2084,7 +2015,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 110,
+            "line" : 109,
             "column" : 12,
             "source_fragment" : "fabric_metadata.vlan_id = hdr.vlan_tag.vlan_id"
           }
@@ -2103,7 +2034,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 111,
+            "line" : 110,
             "column" : 12,
             "source_fragment" : "fabric_metadata.vlan_pri = hdr.vlan_tag.pri"
           }
@@ -2122,7 +2053,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 112,
+            "line" : 111,
             "column" : 12,
             "source_fragment" : "fabric_metadata.vlan_cfi = hdr.vlan_tag.cfi"
           }
@@ -2148,7 +2079,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 126,
+            "line" : 125,
             "column" : 12,
             "source_fragment" : "fabric_metadata.mpls_ttl = DEFAULT_MPLS_TTL + 1"
           }
@@ -2165,110 +2096,6 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x8847"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 108,
-            "column" : 31,
-            "source_fragment" : "0x8847; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_3",
-      "id" : 31,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
-            },
-            {
-              "type" : "field",
-              "value" : ["inner_vlan_tag", "eth_type"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 136,
-            "column" : 20,
-            "source_fragment" : "fabric_metadata.last_eth_type = hdr.inner_vlan_tag.eth_type"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_4",
-      "id" : 32,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
-            },
-            {
-              "type" : "field",
-              "value" : ["vlan_tag", "eth_type"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 139,
-            "column" : 20,
-            "source_fragment" : "fabric_metadata.last_eth_type = hdr.vlan_tag.eth_type"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_5",
-      "id" : 33,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
-            },
-            {
-              "type" : "field",
-              "value" : ["ethernet", "eth_type"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/filtering.p4",
-            "line" : 141,
-            "column" : 16,
-            "source_fragment" : "fabric_metadata.last_eth_type = hdr.ethernet.eth_type"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_6",
-      "id" : 34,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
               "value" : ["scalars", "tmp"]
             },
             {
@@ -2318,8 +2145,8 @@
       ]
     },
     {
-      "name" : "act_7",
-      "id" : 35,
+      "name" : "act_3",
+      "id" : 31,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2327,7 +2154,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_3"]
             },
             {
               "type" : "expression",
@@ -2363,7 +2190,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_3"]
             }
           ],
           "source_info" : {
@@ -2377,13 +2204,13 @@
     },
     {
       "name" : "nop",
-      "id" : 36,
+      "id" : 32,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.egress_next.pop_mpls_if_present",
-      "id" : 37,
+      "id" : 33,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2396,7 +2223,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 264,
+            "line" : 266,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setInvalid()"
           }
@@ -2406,7 +2233,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
+              "value" : ["eth_type", "value"]
             },
             {
               "type" : "field",
@@ -2415,16 +2242,16 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 266,
+            "line" : 268,
             "column" : 8,
-            "source_fragment" : "fabric_metadata.last_eth_type = fabric_metadata.ip_eth_type"
+            "source_fragment" : "hdr.eth_type.value = fabric_metadata.ip_eth_type"
           }
         }
       ]
     },
     {
       "name" : "FabricEgress.egress_next.set_mpls",
-      "id" : 38,
+      "id" : 34,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2437,7 +2264,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 271,
+            "line" : 273,
             "column" : 8,
             "source_fragment" : "hdr.mpls.setValid()"
           }
@@ -2456,7 +2283,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 272,
+            "line" : 274,
             "column" : 8,
             "source_fragment" : "hdr.mpls.label = fabric_metadata.mpls_label"
           }
@@ -2475,7 +2302,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 273,
+            "line" : 275,
             "column" : 8,
             "source_fragment" : "hdr.mpls.tc = 3w0"
           }
@@ -2494,7 +2321,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 274,
+            "line" : 276,
             "column" : 8,
             "source_fragment" : "hdr.mpls.bos = 1w1"
           }
@@ -2513,7 +2340,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 275,
+            "line" : 277,
             "column" : 8,
             "source_fragment" : "hdr.mpls.ttl = fabric_metadata.mpls_ttl"
           }
@@ -2523,7 +2350,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
+              "value" : ["eth_type", "value"]
             },
             {
               "type" : "hexstr",
@@ -2532,7 +2359,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/../define.p4",
-            "line" : 108,
+            "line" : 112,
             "column" : 31,
             "source_fragment" : "0x8847; ..."
           }
@@ -2541,7 +2368,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.push_vlan",
-      "id" : 39,
+      "id" : 35,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2554,7 +2381,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 283,
+            "line" : 285,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setValid()"
           }
@@ -2573,7 +2400,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 284,
+            "line" : 286,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi"
           }
@@ -2592,7 +2419,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 285,
+            "line" : 287,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri"
           }
@@ -2605,15 +2432,15 @@
               "value" : ["vlan_tag", "eth_type"]
             },
             {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
+              "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; ..."
           }
         },
         {
@@ -2630,57 +2457,19 @@
           ],
           "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" : 40,
+      "id" : 36,
       "runtime_data" : [],
       "primitives" : [
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["ethernet", "eth_type"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t.last_eth_type"]
-            }
-          ],
-          "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" : [
             {
@@ -2690,7 +2479,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 314,
+            "line" : 312,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
           }
@@ -2698,8 +2487,8 @@
       ]
     },
     {
-      "name" : "act_8",
-      "id" : 41,
+      "name" : "act_4",
+      "id" : 37,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2715,8 +2504,8 @@
       ]
     },
     {
-      "name" : "act_9",
-      "id" : 42,
+      "name" : "act_5",
+      "id" : 38,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2766,8 +2555,8 @@
       ]
     },
     {
-      "name" : "act_10",
-      "id" : 43,
+      "name" : "act_6",
+      "id" : 39,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2780,7 +2569,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 333,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -2788,8 +2577,8 @@
       ]
     },
     {
-      "name" : "act_11",
-      "id" : 44,
+      "name" : "act_7",
+      "id" : 40,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2818,8 +2607,8 @@
       ]
     },
     {
-      "name" : "act_12",
-      "id" : 45,
+      "name" : "act_8",
+      "id" : 41,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2848,8 +2637,8 @@
       ]
     },
     {
-      "name" : "act_13",
-      "id" : 46,
+      "name" : "act_9",
+      "id" : 42,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2862,7 +2651,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -2870,8 +2659,8 @@
       ]
     },
     {
-      "name" : "act_14",
-      "id" : 47,
+      "name" : "act_10",
+      "id" : 43,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2911,7 +2700,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 367,
+            "line" : 365,
             "column" : 12,
             "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
           }
@@ -2919,8 +2708,8 @@
       ]
     },
     {
-      "name" : "act_15",
-      "id" : 48,
+      "name" : "act_11",
+      "id" : 44,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2933,7 +2722,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -2941,8 +2730,8 @@
       ]
     },
     {
-      "name" : "act_16",
-      "id" : 49,
+      "name" : "act_12",
+      "id" : 45,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2982,7 +2771,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 371,
+            "line" : 369,
             "column" : 16,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
           }
@@ -3036,7 +2825,7 @@
           "id" : 1,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 110,
+            "line" : 109,
             "column" : 36,
             "source_fragment" : "= hdr.vlan_tag.vlan_id; ..."
           },
@@ -3065,7 +2854,7 @@
           "id" : 2,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 126,
+            "line" : 125,
             "column" : 37,
             "source_fragment" : "="
           },
@@ -3078,9 +2867,9 @@
           "direct_meters" : null,
           "action_ids" : [29],
           "actions" : ["act_1"],
-          "base_default_next" : "node_8",
+          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
           "next_tables" : {
-            "act_1" : "node_8"
+            "act_1" : "FabricIngress.filtering.ingress_port_vlan"
           },
           "default_entry" : {
             "action_id" : 29,
@@ -3090,124 +2879,8 @@
           }
         },
         {
-          "name" : "tbl_act_2",
-          "id" : 3,
-          "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" : [30],
-          "actions" : ["act_2"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_2" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 30,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_3",
-          "id" : 4,
-          "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" : [31],
-          "actions" : ["act_3"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_3" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 31,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_4",
-          "id" : 5,
-          "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" : [32],
-          "actions" : ["act_4"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_4" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 32,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_5",
-          "id" : 6,
-          "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" : [33],
-          "actions" : ["act_5"],
-          "base_default_next" : "FabricIngress.filtering.ingress_port_vlan",
-          "next_tables" : {
-            "act_5" : "FabricIngress.filtering.ingress_port_vlan"
-          },
-          "default_entry" : {
-            "action_id" : 33,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
           "name" : "FabricIngress.filtering.ingress_port_vlan",
-          "id" : 7,
+          "id" : 3,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
             "line" : 53,
@@ -3263,7 +2936,7 @@
         },
         {
           "name" : "FabricIngress.filtering.fwd_classifier",
-          "id" : 8,
+          "id" : 4,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
             "line" : 90,
@@ -3284,21 +2957,15 @@
               "mask" : null
             },
             {
-              "match_type" : "exact",
-              "name" : "is_ipv4",
-              "target" : ["scalars", "fabric_metadata_t.is_ipv4"],
+              "match_type" : "ternary",
+              "name" : "eth_type",
+              "target" : ["eth_type", "value"],
               "mask" : null
             },
             {
               "match_type" : "exact",
-              "name" : "is_ipv6",
-              "target" : ["scalars", "fabric_metadata_t.is_ipv6"],
-              "mask" : null
-            },
-            {
-              "match_type" : "exact",
-              "name" : "is_mpls",
-              "target" : ["scalars", "fabric_metadata_t.is_mpls"],
+              "name" : "ip_eth_type",
+              "target" : ["scalars", "fabric_metadata_t.ip_eth_type"],
               "mask" : null
             }
           ],
@@ -3310,9 +2977,9 @@
           "direct_meters" : null,
           "action_ids" : [10],
           "actions" : ["FabricIngress.filtering.set_forwarding_type"],
-          "base_default_next" : "node_17",
+          "base_default_next" : "node_10",
           "next_tables" : {
-            "FabricIngress.filtering.set_forwarding_type" : "node_17"
+            "FabricIngress.filtering.set_forwarding_type" : "node_10"
           },
           "default_entry" : {
             "action_id" : 10,
@@ -3323,7 +2990,7 @@
         },
         {
           "name" : "FabricIngress.forwarding.bridging",
-          "id" : 9,
+          "id" : 5,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 46,
@@ -3366,7 +3033,7 @@
         },
         {
           "name" : "FabricIngress.forwarding.mpls",
-          "id" : 10,
+          "id" : 6,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
             "line" : 71,
@@ -3403,10 +3070,10 @@
         },
         {
           "name" : "FabricIngress.forwarding.routing_v4",
-          "id" : 11,
+          "id" : 7,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 101,
+            "line" : 108,
             "column" : 10,
             "source_fragment" : "routing_v4"
           },
@@ -3421,7 +3088,7 @@
           "match_type" : "lpm",
           "type" : "simple",
           "max_size" : 1024,
-          "with_counters" : true,
+          "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
           "action_ids" : [13, 14, 2],
@@ -3441,7 +3108,7 @@
         },
         {
           "name" : "FabricIngress.acl.acl",
-          "id" : 12,
+          "id" : 8,
           "source_info" : {
             "filename" : "include/control/acl.p4",
             "line" : 60,
@@ -3494,7 +3161,7 @@
             {
               "match_type" : "ternary",
               "name" : "eth_type",
-              "target" : ["scalars", "fabric_metadata_t.last_eth_type"],
+              "target" : ["eth_type", "value"],
               "mask" : null
             },
             {
@@ -3530,13 +3197,13 @@
           "direct_meters" : null,
           "action_ids" : [15, 16, 17, 18, 19],
           "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_25",
+          "base_default_next" : "node_18",
           "next_tables" : {
-            "FabricIngress.acl.set_next_id_acl" : "node_25",
-            "FabricIngress.acl.punt_to_cpu" : "node_25",
-            "FabricIngress.acl.set_clone_session_id" : "node_25",
-            "FabricIngress.acl.drop" : "node_25",
-            "FabricIngress.acl.nop_acl" : "node_25"
+            "FabricIngress.acl.set_next_id_acl" : "node_18",
+            "FabricIngress.acl.punt_to_cpu" : "node_18",
+            "FabricIngress.acl.set_clone_session_id" : "node_18",
+            "FabricIngress.acl.drop" : "node_18",
+            "FabricIngress.acl.nop_acl" : "node_18"
           },
           "default_entry" : {
             "action_id" : 19,
@@ -3547,10 +3214,10 @@
         },
         {
           "name" : "FabricIngress.next.xconnect",
-          "id" : 13,
+          "id" : 9,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 116,
+            "line" : 115,
             "column" : 10,
             "source_fragment" : "xconnect"
           },
@@ -3591,10 +3258,10 @@
         },
         {
           "name" : "FabricIngress.next.hashed",
-          "id" : 14,
+          "id" : 10,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 196,
+            "line" : 198,
             "column" : 10,
             "source_fragment" : "hashed"
           },
@@ -3625,10 +3292,10 @@
         },
         {
           "name" : "FabricIngress.next.multicast",
-          "id" : 15,
+          "id" : 11,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 230,
+            "line" : 232,
             "column" : 10,
             "source_fragment" : "multicast"
           },
@@ -3662,7 +3329,7 @@
         },
         {
           "name" : "FabricIngress.next.next_vlan",
-          "id" : 16,
+          "id" : 12,
           "source_info" : {
             "filename" : "include/control/next.p4",
             "line" : 82,
@@ -3685,10 +3352,10 @@
           "direct_meters" : null,
           "action_ids" : [20, 3],
           "actions" : ["FabricIngress.next.set_vlan", "nop"],
-          "base_default_next" : "node_30",
+          "base_default_next" : "node_23",
           "next_tables" : {
-            "FabricIngress.next.set_vlan" : "node_30",
-            "nop" : "node_30"
+            "FabricIngress.next.set_vlan" : "node_23",
+            "nop" : "node_23"
           },
           "default_entry" : {
             "action_id" : 3,
@@ -3698,8 +3365,8 @@
           }
         },
         {
-          "name" : "tbl_act_6",
-          "id" : 17,
+          "name" : "tbl_act_2",
+          "id" : 13,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 31,
@@ -3713,22 +3380,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [34],
-          "actions" : ["act_6"],
-          "base_default_next" : "node_32",
+          "action_ids" : [30],
+          "actions" : ["act_2"],
+          "base_default_next" : "node_25",
           "next_tables" : {
-            "act_6" : "node_32"
+            "act_2" : "node_25"
           },
           "default_entry" : {
-            "action_id" : 34,
+            "action_id" : 30,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_7",
-          "id" : 18,
+          "name" : "tbl_act_3",
+          "id" : 14,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 34,
@@ -3742,14 +3409,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [35],
-          "actions" : ["act_7"],
+          "action_ids" : [31],
+          "actions" : ["act_3"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_7" : null
+            "act_3" : null
           },
           "default_entry" : {
-            "action_id" : 35,
+            "action_id" : 31,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -3762,7 +3429,7 @@
           "id" : 0,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 177,
+            "line" : 179,
             "column" : 57,
             "source_fragment" : "hashed_selector"
           },
@@ -3823,7 +3490,7 @@
           "id" : 1,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 109,
+            "line" : 108,
             "column" : 12,
             "source_fragment" : "hdr.vlan_tag.isValid()"
           },
@@ -3846,7 +3513,7 @@
           "id" : 2,
           "source_info" : {
             "filename" : "include/control/filtering.p4",
-            "line" : 121,
+            "line" : 120,
             "column" : 12,
             "source_fragment" : "!hdr.mpls.isValid()"
           },
@@ -3869,80 +3536,11 @@
             }
           },
           "true_next" : "tbl_act_1",
-          "false_next" : "node_8"
-        },
-        {
-          "name" : "node_8",
-          "id" : 3,
-          "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_2",
-          "false_next" : "node_10"
+          "false_next" : "FabricIngress.filtering.ingress_port_vlan"
         },
         {
           "name" : "node_10",
-          "id" : 4,
-          "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_11",
-          "false_next" : "tbl_act_5"
-        },
-        {
-          "name" : "node_11",
-          "id" : 5,
-          "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_3",
-          "false_next" : "tbl_act_4"
-        },
-        {
-          "name" : "node_17",
-          "id" : 6,
+          "id" : 3,
           "source_info" : {
             "filename" : "fabric.p4",
             "line" : 71,
@@ -3970,15 +3568,15 @@
               }
             }
           },
-          "true_next" : "node_18",
+          "true_next" : "node_11",
           "false_next" : "FabricIngress.acl.acl"
         },
         {
-          "name" : "node_18",
-          "id" : 7,
+          "name" : "node_11",
+          "id" : 4,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 141,
+            "line" : 150,
             "column" : 12,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
           },
@@ -3997,14 +3595,14 @@
             }
           },
           "true_next" : "FabricIngress.forwarding.bridging",
-          "false_next" : "node_20"
+          "false_next" : "node_13"
         },
         {
-          "name" : "node_20",
-          "id" : 8,
+          "name" : "node_13",
+          "id" : 5,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 142,
+            "line" : 151,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
           },
@@ -4023,14 +3621,14 @@
             }
           },
           "true_next" : "FabricIngress.forwarding.mpls",
-          "false_next" : "node_22"
+          "false_next" : "node_15"
         },
         {
-          "name" : "node_22",
-          "id" : 9,
+          "name" : "node_15",
+          "id" : 6,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 143,
+            "line" : 152,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
           },
@@ -4052,8 +3650,8 @@
           "false_next" : "FabricIngress.acl.acl"
         },
         {
-          "name" : "node_25",
-          "id" : 10,
+          "name" : "node_18",
+          "id" : 7,
           "source_info" : {
             "filename" : "fabric.p4",
             "line" : 75,
@@ -4085,8 +3683,8 @@
           "true_next" : "FabricIngress.next.xconnect"
         },
         {
-          "name" : "node_30",
-          "id" : 11,
+          "name" : "node_23",
+          "id" : 8,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 30,
@@ -4107,12 +3705,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_6",
-          "false_next" : "node_32"
+          "true_next" : "tbl_act_2",
+          "false_next" : "node_25"
         },
         {
-          "name" : "node_32",
-          "id" : 12,
+          "name" : "node_25",
+          "id" : 9,
           "source_info" : {
             "filename" : "include/control/port_counter.p4",
             "line" : 33,
@@ -4134,7 +3732,7 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_7"
+          "true_next" : "tbl_act_3"
         }
       ]
     },
@@ -4147,11 +3745,11 @@
         "column" : 8,
         "source_fragment" : "FabricEgress"
       },
-      "init_table" : "node_36",
+      "init_table" : "node_29",
       "tables" : [
         {
-          "name" : "tbl_act_8",
-          "id" : 19,
+          "name" : "tbl_act_4",
+          "id" : 15,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 41,
@@ -4165,22 +3763,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [41],
-          "actions" : ["act_8"],
-          "base_default_next" : "node_38",
+          "action_ids" : [37],
+          "actions" : ["act_4"],
+          "base_default_next" : "node_31",
           "next_tables" : {
-            "act_8" : "node_38"
+            "act_4" : "node_31"
           },
           "default_entry" : {
-            "action_id" : 41,
+            "action_id" : 37,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_9",
-          "id" : 20,
+          "name" : "tbl_act_5",
+          "id" : 16,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 44,
@@ -4194,25 +3792,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [42],
-          "actions" : ["act_9"],
-          "base_default_next" : "node_40",
+          "action_ids" : [38],
+          "actions" : ["act_5"],
+          "base_default_next" : "node_33",
           "next_tables" : {
-            "act_9" : "node_40"
+            "act_5" : "node_33"
           },
           "default_entry" : {
-            "action_id" : 42,
+            "action_id" : 38,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_10",
-          "id" : 21,
+          "name" : "tbl_act_6",
+          "id" : 17,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 333,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -4223,14 +3821,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [43],
-          "actions" : ["act_10"],
-          "base_default_next" : "node_42",
+          "action_ids" : [39],
+          "actions" : ["act_6"],
+          "base_default_next" : "node_35",
           "next_tables" : {
-            "act_10" : "node_42"
+            "act_6" : "node_35"
           },
           "default_entry" : {
-            "action_id" : 43,
+            "action_id" : 39,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4238,10 +3836,10 @@
         },
         {
           "name" : "tbl_egress_next_pop_mpls_if_present",
-          "id" : 22,
+          "id" : 18,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 339,
+            "line" : 337,
             "column" : 36,
             "source_fragment" : "pop_mpls_if_present()"
           },
@@ -4252,14 +3850,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [37],
+          "action_ids" : [33],
           "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" : 37,
+            "action_id" : 33,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4267,10 +3865,10 @@
         },
         {
           "name" : "tbl_egress_next_set_mpls",
-          "id" : 23,
+          "id" : 19,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 339,
             "column" : 12,
             "source_fragment" : "set_mpls()"
           },
@@ -4281,14 +3879,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [38],
+          "action_ids" : [34],
           "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" : 38,
+            "action_id" : 34,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4296,10 +3894,10 @@
         },
         {
           "name" : "FabricEgress.egress_next.egress_vlan",
-          "id" : 24,
+          "id" : 20,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 318,
+            "line" : 316,
             "column" : 10,
             "source_fragment" : "egress_vlan"
           },
@@ -4323,23 +3921,23 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [40, 36],
+          "action_ids" : [36, 32],
           "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
           "base_default_next" : null,
           "next_tables" : {
-            "__HIT__" : "tbl_act_11",
-            "__MISS__" : "tbl_act_12"
+            "__HIT__" : "tbl_act_7",
+            "__MISS__" : "tbl_act_8"
           },
           "default_entry" : {
-            "action_id" : 36,
+            "action_id" : 32,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_11",
-          "id" : 25,
+          "name" : "tbl_act_7",
+          "id" : 21,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -4347,22 +3945,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [44],
-          "actions" : ["act_11"],
-          "base_default_next" : "node_49",
+          "action_ids" : [40],
+          "actions" : ["act_7"],
+          "base_default_next" : "node_42",
           "next_tables" : {
-            "act_11" : "node_49"
+            "act_7" : "node_42"
           },
           "default_entry" : {
-            "action_id" : 44,
+            "action_id" : 40,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_12",
-          "id" : 26,
+          "name" : "tbl_act_8",
+          "id" : 22,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -4370,14 +3968,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [45],
-          "actions" : ["act_12"],
-          "base_default_next" : "node_49",
+          "action_ids" : [41],
+          "actions" : ["act_8"],
+          "base_default_next" : "node_42",
           "next_tables" : {
-            "act_12" : "node_49"
+            "act_8" : "node_42"
           },
           "default_entry" : {
-            "action_id" : 45,
+            "action_id" : 41,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4385,10 +3983,10 @@
         },
         {
           "name" : "tbl_egress_next_push_vlan",
-          "id" : 27,
+          "id" : 23,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 358,
+            "line" : 356,
             "column" : 20,
             "source_fragment" : "push_vlan()"
           },
@@ -4399,25 +3997,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [39],
+          "action_ids" : [35],
           "actions" : ["FabricEgress.egress_next.push_vlan"],
-          "base_default_next" : "node_52",
+          "base_default_next" : "node_45",
           "next_tables" : {
-            "FabricEgress.egress_next.push_vlan" : "node_52"
+            "FabricEgress.egress_next.push_vlan" : "node_45"
           },
           "default_entry" : {
-            "action_id" : 39,
+            "action_id" : 35,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_13",
-          "id" : 28,
+          "name" : "tbl_act_9",
+          "id" : 24,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 367,
+            "line" : 365,
             "column" : 25,
             "source_fragment" : "="
           },
@@ -4428,25 +4026,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [47],
-          "actions" : ["act_14"],
-          "base_default_next" : "node_54",
+          "action_ids" : [43],
+          "actions" : ["act_10"],
+          "base_default_next" : "node_47",
           "next_tables" : {
-            "act_14" : "node_54"
+            "act_10" : "node_47"
           },
           "default_entry" : {
-            "action_id" : 47,
+            "action_id" : 43,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_14",
-          "id" : 29,
+          "name" : "tbl_act_10",
+          "id" : 25,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -4457,25 +4055,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [46],
-          "actions" : ["act_13"],
+          "action_ids" : [42],
+          "actions" : ["act_9"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_13" : null
+            "act_9" : null
           },
           "default_entry" : {
-            "action_id" : 46,
+            "action_id" : 42,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_15",
-          "id" : 30,
+          "name" : "tbl_act_11",
+          "id" : 26,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 371,
+            "line" : 369,
             "column" : 29,
             "source_fragment" : "="
           },
@@ -4486,25 +4084,25 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [49],
-          "actions" : ["act_16"],
-          "base_default_next" : "node_58",
+          "action_ids" : [45],
+          "actions" : ["act_12"],
+          "base_default_next" : "node_51",
           "next_tables" : {
-            "act_16" : "node_58"
+            "act_12" : "node_51"
           },
           "default_entry" : {
-            "action_id" : 49,
+            "action_id" : 45,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_16",
-          "id" : 31,
+          "name" : "tbl_act_12",
+          "id" : 27,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -4515,14 +4113,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [48],
-          "actions" : ["act_15"],
+          "action_ids" : [44],
+          "actions" : ["act_11"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_15" : null
+            "act_11" : null
           },
           "default_entry" : {
-            "action_id" : 48,
+            "action_id" : 44,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4532,8 +4130,8 @@
       "action_profiles" : [],
       "conditionals" : [
         {
-          "name" : "node_36",
-          "id" : 13,
+          "name" : "node_29",
+          "id" : 10,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 39,
@@ -4561,12 +4159,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_8",
-          "false_next" : "node_38"
+          "true_next" : "tbl_act_4",
+          "false_next" : "node_31"
         },
         {
-          "name" : "node_38",
-          "id" : 14,
+          "name" : "node_31",
+          "id" : 11,
           "source_info" : {
             "filename" : "include/control/packetio.p4",
             "line" : 43,
@@ -4587,15 +4185,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_9",
-          "false_next" : "node_40"
+          "true_next" : "tbl_act_5",
+          "false_next" : "node_33"
         },
         {
-          "name" : "node_40",
-          "id" : 15,
+          "name" : "node_33",
+          "id" : 12,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 333,
+            "line" : 331,
             "column" : 12,
             "source_fragment" : "fabric_metadata.is_multicast == true ..."
           },
@@ -4640,15 +4238,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_10",
-          "false_next" : "node_42"
+          "true_next" : "tbl_act_6",
+          "false_next" : "node_35"
         },
         {
-          "name" : "node_42",
-          "id" : 16,
+          "name" : "node_35",
+          "id" : 13,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 338,
+            "line" : 336,
             "column" : 12,
             "source_fragment" : "fabric_metadata.mpls_label == 0"
           },
@@ -4666,15 +4264,15 @@
               }
             }
           },
-          "true_next" : "node_43",
+          "true_next" : "node_36",
           "false_next" : "tbl_egress_next_set_mpls"
         },
         {
-          "name" : "node_43",
-          "id" : 17,
+          "name" : "node_36",
+          "id" : 14,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 339,
+            "line" : 337,
             "column" : 16,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -4693,11 +4291,11 @@
           "false_next" : "FabricEgress.egress_next.egress_vlan"
         },
         {
-          "name" : "node_49",
-          "id" : 18,
+          "name" : "node_42",
+          "id" : 15,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 355,
+            "line" : 353,
             "column" : 16,
             "source_fragment" : "!egress_vlan.apply().hit"
           },
@@ -4719,15 +4317,15 @@
               }
             }
           },
-          "true_next" : "node_50",
-          "false_next" : "node_52"
+          "true_next" : "node_43",
+          "false_next" : "node_45"
         },
         {
-          "name" : "node_50",
-          "id" : 19,
+          "name" : "node_43",
+          "id" : 16,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 357,
+            "line" : 355,
             "column" : 20,
             "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
           },
@@ -4746,14 +4344,14 @@
             }
           },
           "true_next" : "tbl_egress_next_push_vlan",
-          "false_next" : "node_52"
+          "false_next" : "node_45"
         },
         {
-          "name" : "node_52",
-          "id" : 20,
+          "name" : "node_45",
+          "id" : 17,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 366,
+            "line" : 364,
             "column" : 12,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -4768,15 +4366,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_13",
-          "false_next" : "node_56"
+          "true_next" : "tbl_act_9",
+          "false_next" : "node_49"
         },
         {
-          "name" : "node_54",
-          "id" : 21,
+          "name" : "node_47",
+          "id" : 18,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 366,
             "column" : 16,
             "source_fragment" : "hdr.mpls.ttl == 0"
           },
@@ -4795,14 +4393,14 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_14"
+          "true_next" : "tbl_act_10"
         },
         {
-          "name" : "node_56",
-          "id" : 22,
+          "name" : "node_49",
+          "id" : 19,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 368,
             "column" : 15,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -4818,14 +4416,14 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_15"
+          "true_next" : "tbl_act_11"
         },
         {
-          "name" : "node_58",
-          "id" : 23,
+          "name" : "node_51",
+          "id" : 20,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 370,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl == 0"
           },
@@ -4844,7 +4442,7 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_16"
+          "true_next" : "tbl_act_12"
         }
       ]
     }
diff --git a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt
index 8d074ae..7507ab9 100644
--- a/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt
+++ b/pipelines/fabric/impl/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt
@@ -64,20 +64,14 @@
   }
   match_fields {
     id: 3
-    name: "is_ipv4"
-    bitwidth: 1
-    match_type: EXACT
+    name: "eth_type"
+    bitwidth: 16
+    match_type: TERNARY
   }
   match_fields {
     id: 4
-    name: "is_ipv6"
-    bitwidth: 1
-    match_type: EXACT
-  }
-  match_fields {
-    id: 5
-    name: "is_mpls"
-    bitwidth: 1
+    name: "ip_eth_type"
+    bitwidth: 16
     match_type: EXACT
   }
   action_refs {
@@ -165,7 +159,6 @@
     scope: DEFAULT_ONLY
   }
   const_default_action_id: 16819938
-  direct_resource_ids: 318811107
   size: 1024
 }
 tables {
@@ -735,17 +728,6 @@
 }
 direct_counters {
   preamble {
-    id: 318811107
-    name: "FabricIngress.forwarding.routing_v4_counter"
-    alias: "routing_v4_counter"
-  }
-  spec {
-    unit: BOTH
-  }
-  direct_table_id: 33562650
-}
-direct_counters {
-  preamble {
     id: 318801025
     name: "FabricIngress.acl.acl_counter"
     alias: "acl_counter"
diff --git a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricFilteringPipelinerTest.java b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricFilteringPipelinerTest.java
index f40741f..18cd132 100644
--- a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricFilteringPipelinerTest.java
+++ b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricFilteringPipelinerTest.java
@@ -16,6 +16,7 @@
 
 package org.onosproject.pipelines.fabric.impl.behaviour.pipeliner;
 
+import com.google.common.collect.Lists;
 import org.junit.Before;
 import org.junit.Test;
 import org.onlab.packet.Ethernet;
@@ -39,6 +40,9 @@
 import org.onosproject.net.pi.runtime.PiActionParam;
 import org.onosproject.pipelines.fabric.impl.behaviour.FabricConstants;
 
+import java.util.Collection;
+import java.util.List;
+
 import static org.junit.Assert.assertEquals;
 
 /**
@@ -48,6 +52,7 @@
 
     public static final byte[] ONE = {1};
     public static final byte[] ZERO = {0};
+    public static final short EXACT_MATCH_ETH_TYPE = (short) 0xFFFF;
     private FilteringObjectiveTranslator translator;
 
     @Before
@@ -65,45 +70,51 @@
     public void testRouterMacAndVlanFilter() throws FabricPipelinerException {
         FilteringObjective filteringObjective = buildFilteringObjective(ROUTER_MAC);
         ObjectiveTranslation actualTranslation = translator.translate(filteringObjective);
-
+        Collection<FlowRule> expectedFlowRules = Lists.newArrayList();
         // in port vlan flow rule
-        FlowRule inportFlowRuleExpected = buildExpectedVlanInPortRule(
+        expectedFlowRules.add(buildExpectedVlanInPortRule(
                 PORT_1,
                 VlanId.NONE,
                 VlanId.NONE,
                 VLAN_100,
-                FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN);
+                FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN));
 
         // forwarding classifier ipv4
-        FlowRule classifierV4FlowRuleExpected = buildExpectedFwdClassifierRule(
+        expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
                 PORT_1,
                 ROUTER_MAC,
                 null,
                 Ethernet.TYPE_IPV4,
-                FilteringObjectiveTranslator.FWD_IPV4_ROUTING);
+                FilteringObjectiveTranslator.FWD_IPV4_ROUTING));
 
         // forwarding classifier ipv6
-        FlowRule classifierV6FlowRuleExpected = buildExpectedFwdClassifierRule(
+        expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
                 PORT_1,
                 ROUTER_MAC,
                 null,
                 Ethernet.TYPE_IPV6,
-                FilteringObjectiveTranslator.FWD_IPV6_ROUTING);
+                FilteringObjectiveTranslator.FWD_IPV6_ROUTING));
 
         // forwarding classifier mpls
-        FlowRule classifierMplsFlowRuleExpected = buildExpectedFwdClassifierRule(
+        expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
                 PORT_1,
                 ROUTER_MAC,
                 null,
                 Ethernet.MPLS_UNICAST,
-                FilteringObjectiveTranslator.FWD_MPLS);
+                FilteringObjectiveTranslator.FWD_MPLS));
 
-        ObjectiveTranslation expectedTranslation = ObjectiveTranslation.builder()
-                .addFlowRule(inportFlowRuleExpected)
-                .addFlowRule(classifierV4FlowRuleExpected)
-                .addFlowRule(classifierV6FlowRuleExpected)
-                .addFlowRule(classifierMplsFlowRuleExpected)
-                .build();
+//        ObjectiveTranslation.Builder expectedTranslationBuilder = ObjectiveTranslation.builder()
+//                .addFlowRule(inportFlowRuleExpected);
+//        for (FlowRule flowRule : classifierV4FlowRuleExpected) {
+//            expectedTranslationBuilder.addFlowRule(flowRule);
+//        }
+//        for (FlowRule flowRule : classifierV6FlowRuleExpected) {
+//            expectedTranslationBuilder.addFlowRule(flowRule);
+//        }
+//        for (FlowRule flowRule : classifierMplsFlowRuleExpected) {
+//            expectedTranslationBuilder.addFlowRule(flowRule);
+//        }
+        ObjectiveTranslation expectedTranslation = buildExpectedTranslation(expectedFlowRules);
 
         assertEquals(expectedTranslation, actualTranslation);
     }
@@ -130,27 +141,24 @@
                 .makePermanent()
                 .add();
         ObjectiveTranslation actualTranslation = translator.translate(filteringObjective);
-
+        List<FlowRule> expectedFlowRules = Lists.newArrayList();
         // in port vlan flow rule
-        FlowRule inportFlowRuleExpected = buildExpectedVlanInPortRule(
+        expectedFlowRules.add(buildExpectedVlanInPortRule(
                 PORT_1,
                 VlanId.NONE,
                 VlanId.NONE,
                 VLAN_100,
-                FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN);
+                FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN));
 
         // forwarding classifier
-        FlowRule classifierFlowRuleExpected = buildExpectedFwdClassifierRule(
+        expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
                 PORT_1,
                 MacAddress.IPV4_MULTICAST,
                 MacAddress.IPV4_MULTICAST_MASK,
                 Ethernet.TYPE_IPV4,
-                FilteringObjectiveTranslator.FWD_IPV4_ROUTING);
+                FilteringObjectiveTranslator.FWD_IPV4_ROUTING));
 
-        ObjectiveTranslation expectedTranslation = ObjectiveTranslation.builder()
-                .addFlowRule(inportFlowRuleExpected)
-                .addFlowRule(classifierFlowRuleExpected)
-                .build();
+        ObjectiveTranslation expectedTranslation = buildExpectedTranslation(expectedFlowRules);
 
         assertEquals(expectedTranslation, actualTranslation);
     }
@@ -177,26 +185,23 @@
                 .makePermanent()
                 .add();
         ObjectiveTranslation actualTranslation = translator.translate(filteringObjective);
-
+        Collection<FlowRule> flowRules = Lists.newArrayList();
         // in port vlan flow rule
-        FlowRule inportFlowRuleExpected = buildExpectedVlanInPortRule(
+        flowRules.add(buildExpectedVlanInPortRule(
                 PORT_1,
                 VlanId.NONE,
                 VlanId.NONE,
                 VLAN_100,
-                FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN);
+                FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN));
 
-        FlowRule classifierFlowRuleExpected = buildExpectedFwdClassifierRule(
+        flowRules.addAll(buildExpectedFwdClassifierRule(
                 PORT_1,
                 MacAddress.IPV6_MULTICAST,
                 MacAddress.IPV6_MULTICAST_MASK,
                 Ethernet.TYPE_IPV6,
-                FilteringObjectiveTranslator.FWD_IPV6_ROUTING);
+                FilteringObjectiveTranslator.FWD_IPV6_ROUTING));
 
-        ObjectiveTranslation expectedTranslation = ObjectiveTranslation.builder()
-                .addFlowRule(inportFlowRuleExpected)
-                .addFlowRule(classifierFlowRuleExpected)
-                .build();
+        ObjectiveTranslation expectedTranslation = buildExpectedTranslation(flowRules);
 
         assertEquals(expectedTranslation, actualTranslation);
     }
@@ -289,27 +294,22 @@
                 .permit()
                 .add();
         ObjectiveTranslation actualTranslation = translator.translate(filteringObjective);
-
+        Collection<FlowRule> expectedFlowRules = Lists.newArrayList();
         // Ingress port vlan rule
-        FlowRule inportFlowRuleExpected = buildExpectedVlanInPortRule(
+        expectedFlowRules.add(buildExpectedVlanInPortRule(
                 PORT_1, VLAN_100, VLAN_200, VlanId.NONE,
-                FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN);
+                FabricConstants.FABRIC_INGRESS_FILTERING_INGRESS_PORT_VLAN));
         // Forwarding classifier rules (ipv6, ipv4, mpls)
-        FlowRule classifierV4FlowRuleExpected = buildExpectedFwdClassifierRule(
+        expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
                 PORT_1, ROUTER_MAC, null, Ethernet.TYPE_IPV4,
-                FilteringObjectiveTranslator.FWD_IPV4_ROUTING);
-        FlowRule classifierV6FlowRuleExpected = buildExpectedFwdClassifierRule(
+                FilteringObjectiveTranslator.FWD_IPV4_ROUTING));
+        expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
                 PORT_1, ROUTER_MAC, null, Ethernet.TYPE_IPV6,
-                FilteringObjectiveTranslator.FWD_IPV6_ROUTING);
-        FlowRule classifierMplsFlowRuleExpected = buildExpectedFwdClassifierRule(
+                FilteringObjectiveTranslator.FWD_IPV6_ROUTING));
+        expectedFlowRules.addAll(buildExpectedFwdClassifierRule(
                 PORT_1, ROUTER_MAC, null, Ethernet.MPLS_UNICAST,
-                FilteringObjectiveTranslator.FWD_MPLS);
-        ObjectiveTranslation expectedTranslation = ObjectiveTranslation.builder()
-                .addFlowRule(inportFlowRuleExpected)
-                .addFlowRule(classifierV4FlowRuleExpected)
-                .addFlowRule(classifierV6FlowRuleExpected)
-                .addFlowRule(classifierMplsFlowRuleExpected)
-                .build();
+                FilteringObjectiveTranslator.FWD_MPLS));
+        ObjectiveTranslation expectedTranslation = buildExpectedTranslation(expectedFlowRules);
 
         assertEquals(expectedTranslation, actualTranslation);
     }
@@ -344,48 +344,6 @@
         assertError(ObjectiveError.BADPARAMS, result2);
     }
 
-    /**
-     * Test the mapping between EtherType and conditions.
-     */
-    @Test
-    public void testMappingEthType() {
-        PiCriterion expectedMappingDefault = PiCriterion.builder()
-                .matchExact(FabricConstants.HDR_IS_MPLS, ZERO)
-                .matchExact(FabricConstants.HDR_IS_IPV4, ZERO)
-                .matchExact(FabricConstants.HDR_IS_IPV6, ZERO)
-                .build();
-        PiCriterion expectedMappingIpv6 = PiCriterion.builder()
-                .matchExact(FabricConstants.HDR_IS_MPLS, ZERO)
-                .matchExact(FabricConstants.HDR_IS_IPV4, ZERO)
-                .matchExact(FabricConstants.HDR_IS_IPV6, ONE)
-                .build();
-        PiCriterion expectedMappingIpv4 = PiCriterion.builder()
-                .matchExact(FabricConstants.HDR_IS_MPLS, ZERO)
-                .matchExact(FabricConstants.HDR_IS_IPV4, ONE)
-                .matchExact(FabricConstants.HDR_IS_IPV6, ZERO)
-                .build();
-        PiCriterion expectedMappingMpls = PiCriterion.builder()
-                .matchExact(FabricConstants.HDR_IS_MPLS, ONE)
-                .matchExact(FabricConstants.HDR_IS_IPV4, ZERO)
-                .matchExact(FabricConstants.HDR_IS_IPV6, ZERO)
-                .build();
-
-
-        PiCriterion actualMappingIpv6 = FilteringObjectiveTranslator.mapEthTypeFwdClassifier(Ethernet.TYPE_IPV6);
-        assertEquals(expectedMappingIpv6, actualMappingIpv6);
-
-        PiCriterion actualMappingIpv4 = FilteringObjectiveTranslator.mapEthTypeFwdClassifier(Ethernet.TYPE_IPV4);
-        assertEquals(expectedMappingIpv4, actualMappingIpv4);
-
-        PiCriterion actualMappingMpls = FilteringObjectiveTranslator.mapEthTypeFwdClassifier(Ethernet.MPLS_UNICAST);
-        assertEquals(expectedMappingMpls, actualMappingMpls);
-
-        PiCriterion actualMapping = FilteringObjectiveTranslator.mapEthTypeFwdClassifier(Ethernet.TYPE_ARP);
-        assertEquals(expectedMappingDefault, actualMapping);
-
-
-    }
-
     /* Utilities */
 
     private void assertError(ObjectiveError error, ObjectiveTranslation actualTranslation) {
@@ -463,21 +421,11 @@
         return piCriterionBuilder.build();
     }
 
-    private FlowRule buildExpectedFwdClassifierRule(PortNumber inPort,
-                                                    MacAddress dstMac,
-                                                    MacAddress dstMacMask,
-                                                    short ethType,
-                                                    byte fwdClass) {
-        TrafficSelector.Builder sbuilder = DefaultTrafficSelector.builder()
-                .matchInPort(inPort)
-                .matchPi(FilteringObjectiveTranslator.mapEthTypeFwdClassifier(ethType));
-        if (dstMacMask != null) {
-            sbuilder.matchEthDstMasked(dstMac, dstMacMask);
-        } else {
-            sbuilder.matchEthDstMasked(dstMac, MacAddress.EXACT_MASK);
-        }
-        TrafficSelector selector = sbuilder.build();
-
+    private Collection<FlowRule> buildExpectedFwdClassifierRule(PortNumber inPort,
+                                                                MacAddress dstMac,
+                                                                MacAddress dstMacMask,
+                                                                short ethType,
+                                                                byte fwdClass) {
         PiActionParam classParam = new PiActionParam(FabricConstants.FWD_TYPE,
                                                      ImmutableByteSequence.copyFrom(fwdClass));
         PiAction fwdClassifierAction = PiAction.builder()
@@ -488,14 +436,76 @@
                 .piTableAction(fwdClassifierAction)
                 .build();
 
-        return DefaultFlowRule.builder()
-                .withPriority(PRIORITY)
-                .withSelector(selector)
-                .withTreatment(treatment)
-                .fromApp(APP_ID)
-                .forDevice(DEVICE_ID)
-                .makePermanent()
-                .forTable(FabricConstants.FABRIC_INGRESS_FILTERING_FWD_CLASSIFIER)
+        TrafficSelector.Builder sbuilder = DefaultTrafficSelector.builder()
+                .matchInPort(inPort);
+        if (dstMacMask != null) {
+            sbuilder.matchEthDstMasked(dstMac, dstMacMask);
+        } else {
+            sbuilder.matchEthDstMasked(dstMac, MacAddress.EXACT_MASK);
+        }
+        // Special case for MPLS UNICAST forwarding, need to build 2 rules for MPLS+IPv4 and MPLS+IPv6
+        if (ethType == Ethernet.MPLS_UNICAST) {
+            return buildExpectedFwdClassifierRulesMpls(fwdClassifierAction, treatment, sbuilder);
+        }
+        sbuilder.matchPi(PiCriterion.builder()
+                                 .matchExact(FabricConstants.HDR_IP_ETH_TYPE, ethType)
+                                 .build());
+        TrafficSelector selector = sbuilder.build();
+        return List.of(DefaultFlowRule.builder()
+                               .withPriority(PRIORITY)
+                               .withSelector(selector)
+                               .withTreatment(treatment)
+                               .fromApp(APP_ID)
+                               .forDevice(DEVICE_ID)
+                               .makePermanent()
+                               .forTable(FabricConstants.FABRIC_INGRESS_FILTERING_FWD_CLASSIFIER)
+                               .build());
+    }
+
+    private Collection<FlowRule> buildExpectedFwdClassifierRulesMpls(PiAction fwdClassifierAction,
+                                                                     TrafficTreatment treatment,
+                                                                     TrafficSelector.Builder selectorBuilder) {
+
+        Collection<FlowRule> flowRules = Lists.newArrayList();
+        TrafficSelector selectorIpv4 = selectorBuilder
+                .add(PiCriterion.builder()
+                             .matchTernary(FabricConstants.HDR_ETH_TYPE, Ethernet.MPLS_UNICAST, EXACT_MATCH_ETH_TYPE)
+                             .matchExact(FabricConstants.HDR_IP_ETH_TYPE, Ethernet.TYPE_IPV4)
+                             .build())
                 .build();
+        TrafficSelector selectorIpv6 = selectorBuilder
+                .add(PiCriterion.builder()
+                             .matchTernary(FabricConstants.HDR_ETH_TYPE, Ethernet.MPLS_UNICAST, EXACT_MATCH_ETH_TYPE)
+                             .matchExact(FabricConstants.HDR_IP_ETH_TYPE, Ethernet.TYPE_IPV6)
+                             .build())
+                .build();
+        flowRules.add(DefaultFlowRule.builder()
+                              .withPriority(PRIORITY + 1)
+                              .withSelector(selectorIpv4)
+                              .withTreatment(treatment)
+                              .fromApp(APP_ID)
+                              .forDevice(DEVICE_ID)
+                              .makePermanent()
+                              .forTable(FabricConstants.FABRIC_INGRESS_FILTERING_FWD_CLASSIFIER)
+                              .build());
+        flowRules.add(DefaultFlowRule.builder()
+                              .withPriority(PRIORITY + 1)
+                              .withSelector(selectorIpv6)
+                              .withTreatment(treatment)
+                              .fromApp(APP_ID)
+                              .forDevice(DEVICE_ID)
+                              .makePermanent()
+                              .forTable(FabricConstants.FABRIC_INGRESS_FILTERING_FWD_CLASSIFIER)
+                              .build());
+        return flowRules;
+    }
+
+    private ObjectiveTranslation buildExpectedTranslation(Collection<FlowRule> flowRules)
+            throws FabricPipelinerException {
+        ObjectiveTranslation.Builder expectedTranslationBuilder = ObjectiveTranslation.builder();
+        for (FlowRule flowRule : flowRules) {
+            expectedTranslationBuilder.addFlowRule(flowRule);
+        }
+        return expectedTranslationBuilder.build();
     }
 }