[AETHER-1032] Backport AETHER-538 to fabric.p4

AETHER-538 introduces a new design for the egress pipeline
where the tagged ports are explicitily matched in the
egress_vlan table. Moreover, no match means dropped with
this new design.

Change-Id: If6f8c73aad0effd01f18c87c147535378e8db84c
diff --git a/pipelines/fabric/api/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java b/pipelines/fabric/api/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java
index 05bf7cf..05e738f 100644
--- a/pipelines/fabric/api/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java
+++ b/pipelines/fabric/api/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java
@@ -266,6 +266,8 @@
             PiActionId.of("FabricIngress.forwarding.set_next_id_routing_v6");
     public static final PiActionId FABRIC_INGRESS_NEXT_ROUTING_SIMPLE =
             PiActionId.of("FabricIngress.next.routing_simple");
+    public static final PiActionId FABRIC_EGRESS_EGRESS_NEXT_PUSH_VLAN =
+            PiActionId.of("FabricEgress.egress_next.push_vlan");
     public static final PiActionId FABRIC_EGRESS_BNG_EGRESS_DOWNSTREAM_ENCAP_V4 =
             PiActionId.of("FabricEgress.bng_egress.downstream.encap_v4");
     public static final PiActionId FABRIC_INGRESS_NEXT_OUTPUT_HASHED =
@@ -282,6 +284,8 @@
             PiActionId.of("FabricIngress.acl.punt_to_cpu");
     public static final PiActionId FABRIC_INGRESS_BNG_INGRESS_DOWNSTREAM_QOS_PRIO =
             PiActionId.of("FabricIngress.bng_ingress.downstream.qos_prio");
+    public static final PiActionId FABRIC_EGRESS_EGRESS_NEXT_DROP =
+            PiActionId.of("FabricEgress.egress_next.drop");
     public static final PiActionId FABRIC_INGRESS_SPGW_LOAD_PDR =
             PiActionId.of("FabricIngress.spgw.load_pdr");
     public static final PiActionId FABRIC_EGRESS_EGRESS_NEXT_POP_VLAN =
diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricTreatmentInterpreter.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricTreatmentInterpreter.java
index 21ff675..2da557a 100644
--- a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricTreatmentInterpreter.java
+++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/FabricTreatmentInterpreter.java
@@ -38,12 +38,7 @@
 
 import static java.lang.String.format;
 import static org.onosproject.net.flow.instructions.Instruction.Type.OUTPUT;
-import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.ETH_DST;
-import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.ETH_SRC;
-import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.MPLS_LABEL;
-import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.MPLS_PUSH;
-import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.VLAN_ID;
-import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.VLAN_POP;
+import static org.onosproject.net.flow.instructions.L2ModificationInstruction.L2SubType.*;
 import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.instruction;
 import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.l2Instruction;
 import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.l2Instructions;
@@ -225,6 +220,12 @@
     static PiAction mapEgressNextTreatment(
             TrafficTreatment treatment, PiTableId tableId)
             throws PiInterpreterException {
+        L2ModificationInstruction pushVlan = l2Instruction(treatment, VLAN_PUSH);
+        if (pushVlan != null) {
+            return PiAction.builder()
+                    .withId(FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_PUSH_VLAN)
+                    .build();
+        }
         l2InstructionOrFail(treatment, VLAN_POP, tableId);
         return PiAction.builder()
                 .withId(FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_POP_VLAN)
diff --git a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/NextObjectiveTranslator.java b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/NextObjectiveTranslator.java
index 1e0e52d..a8c4c6f 100644
--- a/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/NextObjectiveTranslator.java
+++ b/pipelines/fabric/impl/src/main/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/NextObjectiveTranslator.java
@@ -247,35 +247,30 @@
             throws FabricPipelinerException {
         final PortNumber outPort = outputPort(treatment);
         final Instruction popVlanInst = l2Instruction(treatment, VLAN_POP);
-        if (popVlanInst != null && outPort != null) {
+        if (outPort != null) {
             if (strict && treatment.allInstructions().size() > 2) {
                 throw new FabricPipelinerException(
                         "Treatment contains instructions other " +
                                 "than OUTPUT and VLAN_POP, cannot generate " +
                                 "egress rules");
             }
-            egressVlanPop(outPort, obj, resultBuilder);
+            // We cannot program if there are no proper metadata in the objective
+            if (obj.meta() != null && obj.meta().getCriterion(Criterion.Type.VLAN_VID) != null) {
+                egressVlan(outPort, obj, popVlanInst, resultBuilder);
+            } else {
+                log.warn("NextObjective {} is trying to program {} without {} information",
+                        obj, FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_EGRESS_VLAN,
+                        obj.meta() == null ? "metadata" : "vlanId");
+            }
         }
     }
 
-    private void egressVlanPop(PortNumber outPort, NextObjective obj,
-                               ObjectiveTranslation.Builder resultBuilder)
+    private void egressVlan(PortNumber outPort, NextObjective obj, Instruction popVlanInst,
+                            ObjectiveTranslation.Builder resultBuilder)
             throws FabricPipelinerException {
 
-        if (obj.meta() == null) {
-            throw new FabricPipelinerException(
-                    "Cannot process egress pop VLAN rule, NextObjective has null meta",
-                    ObjectiveError.BADPARAMS);
-        }
-
         final VlanIdCriterion vlanIdCriterion = (VlanIdCriterion) criterion(
                 obj.meta(), Criterion.Type.VLAN_VID);
-        if (vlanIdCriterion == null) {
-            throw new FabricPipelinerException(
-                    "Cannot process egress pop VLAN rule, missing VLAN_VID criterion " +
-                            "in NextObjective meta",
-                    ObjectiveError.BADPARAMS);
-        }
 
         final PiCriterion egressVlanTableMatch = PiCriterion.builder()
                 .matchExact(FabricConstants.HDR_EG_PORT, outPort.toLong())
@@ -284,13 +279,16 @@
                 .matchPi(egressVlanTableMatch)
                 .matchVlanId(vlanIdCriterion.vlanId())
                 .build();
-        final TrafficTreatment treatment = DefaultTrafficTreatment.builder()
-                .popVlan()
-                .build();
+        final TrafficTreatment.Builder treatmentBuilder = DefaultTrafficTreatment.builder();
+        if (popVlanInst == null) {
+            treatmentBuilder.pushVlan();
+        } else {
+            treatmentBuilder.popVlan();
+        }
 
         resultBuilder.addFlowRule(flowRule(
                 obj, FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_EGRESS_VLAN,
-                selector, treatment));
+                selector, treatmentBuilder.build()));
     }
 
     private TrafficSelector nextIdSelector(int nextId) {
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 0a624b2..11437b1 100644
--- a/pipelines/fabric/impl/src/main/resources/include/control/next.p4
+++ b/pipelines/fabric/impl/src/main/resources/include/control/next.p4
@@ -283,7 +283,7 @@
     }
 
     @hidden
-    action push_vlan() {
+    action push_outer_vlan() {
         // If VLAN is already valid, we overwrite it with a potentially new VLAN
         // ID, and same CFI, PRI, and eth_type values found in ingress.
         hdr.vlan_tag.setValid();
@@ -308,25 +308,37 @@
 
     /*
      * Egress VLAN Table.
-     * Pops the VLAN tag if the pair egress port and VLAN ID is matched.
+     * Pushes or Pops the VLAN tag if the pair egress port and VLAN ID is matched.
+     * Instead, it drops the packets on miss.
      */
     direct_counter(CounterType.packets_and_bytes) egress_vlan_counter;
 
+    action push_vlan() {
+        push_outer_vlan();
+        egress_vlan_counter.count();
+    }
+
     action pop_vlan() {
         hdr.vlan_tag.setInvalid();
         egress_vlan_counter.count();
     }
 
+    action drop() {
+        mark_to_drop(standard_metadata);
+        egress_vlan_counter.count();
+    }
+
     table egress_vlan {
         key = {
             fabric_metadata.vlan_id: exact @name("vlan_id");
             standard_metadata.egress_port: exact @name("eg_port");
         }
         actions = {
+            push_vlan;
             pop_vlan;
-            @defaultonly nop;
+            @defaultonly drop;
         }
-        const default_action = nop();
+        const default_action = drop();
         counters = egress_vlan_counter;
         size = EGRESS_VLAN_TABLE_SIZE;
     }
@@ -346,20 +358,14 @@
 #ifdef WITH_DOUBLE_VLAN_TERMINATION
         if (fabric_metadata.push_double_vlan == _TRUE) {
             // Double VLAN termination.
-            push_vlan();
+            push_outer_vlan();
             push_inner_vlan();
         } else {
             // If no push double vlan, inner_vlan_tag must be popped
             hdr.inner_vlan_tag.setInvalid();
 #endif // WITH_DOUBLE_VLAN_TERMINATION
-            // Port-based VLAN tagging (by default all
-            // ports are assumed tagged)
-            if (!egress_vlan.apply().hit) {
-                // Push VLAN tag if not the default one.
-                if (fabric_metadata.vlan_id != DEFAULT_VLAN_ID) {
-                    push_vlan();
-                }
-            }
+            // Port-based VLAN tagging; if there is no match drop the packet!
+            egress_vlan.apply();
 #ifdef WITH_DOUBLE_VLAN_TERMINATION
         }
 #endif // WITH_DOUBLE_VLAN_TERMINATION
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 a44e179..9086045 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,15 +4,14 @@
       "name" : "scalars_0",
       "id" : 0,
       "fields" : [
+        ["tmp", 16, false],
         ["tmp_0", 16, false],
-        ["tmp_1", 16, false],
-        ["tmp_2", 4, false],
-        ["tmp", 32, false],
+        ["tmp_1", 4, false],
+        ["tmp_2", 32, false],
         ["tmp_3", 32, 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._ip_eth_type0", 16, false],
         ["fabric_metadata_t._vlan_id1", 12, false],
         ["fabric_metadata_t._vlan_pri2", 3, false],
@@ -40,7 +39,7 @@
         ["fabric_metadata_t._bng_ds_meter_result24", 32, false],
         ["fabric_metadata_t._bng_s_tag25", 12, false],
         ["fabric_metadata_t._bng_c_tag26", 12, false],
-        ["_padding_0", 2, false]
+        ["_padding_0", 3, false]
       ]
     },
     {
@@ -409,7 +408,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_0"]
+                  "value" : ["scalars", "tmp"]
                 },
                 {
                   "type" : "lookahead",
@@ -447,7 +446,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_0"]
+              "value" : ["scalars", "tmp"]
             }
           ]
         },
@@ -481,7 +480,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_1"]
+                  "value" : ["scalars", "tmp_0"]
                 },
                 {
                   "type" : "lookahead",
@@ -507,7 +506,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_0"]
             }
           ]
         },
@@ -682,7 +681,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_2"]
+                  "value" : ["scalars", "tmp_1"]
                 },
                 {
                   "type" : "lookahead",
@@ -708,7 +707,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_2"]
+              "value" : ["scalars", "tmp_1"]
             }
           ]
         },
@@ -1171,7 +1170,7 @@
       "binding" : "FabricEgress.egress_next.egress_vlan",
       "source_info" : {
         "filename" : "include/control/next.p4",
-        "line" : 313,
+        "line" : 314,
         "column" : 50,
         "source_fragment" : "egress_vlan_counter"
       }
@@ -2778,7 +2777,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp"]
+              "value" : ["scalars", "tmp_2"]
             },
             {
               "type" : "expression",
@@ -2814,7 +2813,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp"]
+              "value" : ["scalars", "tmp_2"]
             }
           ],
           "source_info" : {
@@ -3176,14 +3175,8 @@
       ]
     },
     {
-      "name" : "nop",
-      "id" : 50,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricEgress.bng_egress.downstream.encap_v4",
-      "id" : 51,
+      "id" : 50,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3380,7 +3373,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.pop_mpls_if_present",
-      "id" : 52,
+      "id" : 51,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3421,7 +3414,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.set_mpls",
-      "id" : 53,
+      "id" : 52,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3537,106 +3530,8 @@
       ]
     },
     {
-      "name" : "FabricEgress.egress_next.push_vlan",
-      "id" : 54,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "vlan_tag"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 289,
-            "column" : 8,
-            "source_fragment" : "hdr.vlan_tag.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["vlan_tag", "cfi"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 290,
-            "column" : 8,
-            "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["vlan_tag", "pri"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 291,
-            "column" : 8,
-            "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["vlan_tag", "eth_type"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x8100"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 115,
-            "column" : 31,
-            "source_fragment" : "0x8100; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["vlan_tag", "vlan_id"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 293,
-            "column" : 8,
-            "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.egress_next.push_vlan",
-      "id" : 55,
+      "name" : "FabricEgress.egress_next.push_outer_vlan",
+      "id" : 53,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3734,7 +3629,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.push_inner_vlan",
-      "id" : 56,
+      "id" : 54,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3850,8 +3745,106 @@
       ]
     },
     {
+      "name" : "FabricEgress.egress_next.push_vlan",
+      "id" : 55,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "vlan_tag"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 289,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["vlan_tag", "cfi"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 290,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["vlan_tag", "pri"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 291,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["vlan_tag", "eth_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x8100"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../define.p4",
+            "line" : 115,
+            "column" : 31,
+            "source_fragment" : "0x8100; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["vlan_tag", "vlan_id"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 293,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
+          }
+        }
+      ]
+    },
+    {
       "name" : "FabricEgress.egress_next.pop_vlan",
-      "id" : 57,
+      "id" : 56,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3864,7 +3857,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 316,
+            "line" : 322,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
           }
@@ -3872,6 +3865,28 @@
       ]
     },
     {
+      "name" : "FabricEgress.egress_next.drop",
+      "id" : 57,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "mark_to_drop",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "standard_metadata"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 327,
+            "column" : 8,
+            "source_fragment" : "mark_to_drop(standard_metadata)"
+          }
+        }
+      ]
+    },
+    {
       "name" : "act_14",
       "id" : 58,
       "runtime_data" : [],
@@ -3954,7 +3969,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 337,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -3967,66 +3982,6 @@
       "runtime_data" : [],
       "primitives" : [
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "egress_next_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_18",
-      "id" : 62,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "egress_next_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : false
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_19",
-      "id" : 63,
-      "runtime_data" : [],
-      "primitives" : [
-        {
           "op" : "remove_header",
           "parameters" : [
             {
@@ -4036,7 +3991,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 353,
+            "line" : 365,
             "column" : 12,
             "source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
           }
@@ -4044,8 +3999,8 @@
       ]
     },
     {
-      "name" : "act_20",
-      "id" : 64,
+      "name" : "act_18",
+      "id" : 62,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4058,7 +4013,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 376,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -4066,8 +4021,8 @@
       ]
     },
     {
-      "name" : "act_21",
-      "id" : 65,
+      "name" : "act_19",
+      "id" : 63,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4107,7 +4062,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 369,
+            "line" : 375,
             "column" : 12,
             "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
           }
@@ -4115,8 +4070,8 @@
       ]
     },
     {
-      "name" : "act_22",
-      "id" : 66,
+      "name" : "act_20",
+      "id" : 64,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4129,7 +4084,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 374,
+            "line" : 380,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -4137,8 +4092,8 @@
       ]
     },
     {
-      "name" : "act_23",
-      "id" : 67,
+      "name" : "act_21",
+      "id" : 65,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4178,7 +4133,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 373,
+            "line" : 379,
             "column" : 16,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
           }
@@ -5816,7 +5771,7 @@
           "id" : 31,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 337,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -5845,7 +5800,7 @@
           "id" : 32,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 353,
             "column" : 36,
             "source_fragment" : "pop_mpls_if_present()"
           },
@@ -5856,14 +5811,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [52],
+          "action_ids" : [51],
           "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
           "base_default_next" : "node_60",
           "next_tables" : {
             "FabricEgress.egress_next.pop_mpls_if_present" : "node_60"
           },
           "default_entry" : {
-            "action_id" : 52,
+            "action_id" : 51,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5874,7 +5829,7 @@
           "id" : 33,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 343,
+            "line" : 355,
             "column" : 12,
             "source_fragment" : "set_mpls()"
           },
@@ -5885,27 +5840,27 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [53],
+          "action_ids" : [52],
           "actions" : ["FabricEgress.egress_next.set_mpls"],
           "base_default_next" : "node_60",
           "next_tables" : {
             "FabricEgress.egress_next.set_mpls" : "node_60"
           },
           "default_entry" : {
-            "action_id" : 53,
+            "action_id" : 52,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_egress_next_push_vlan",
+          "name" : "tbl_egress_next_push_outer_vlan",
           "id" : 34,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 349,
+            "line" : 361,
             "column" : 12,
-            "source_fragment" : "push_vlan()"
+            "source_fragment" : "push_outer_vlan()"
           },
           "key" : [],
           "match_type" : "exact",
@@ -5914,14 +5869,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [54],
-          "actions" : ["FabricEgress.egress_next.push_vlan"],
+          "action_ids" : [53],
+          "actions" : ["FabricEgress.egress_next.push_outer_vlan"],
           "base_default_next" : "tbl_egress_next_push_inner_vlan",
           "next_tables" : {
-            "FabricEgress.egress_next.push_vlan" : "tbl_egress_next_push_inner_vlan"
+            "FabricEgress.egress_next.push_outer_vlan" : "tbl_egress_next_push_inner_vlan"
           },
           "default_entry" : {
-            "action_id" : 54,
+            "action_id" : 53,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5932,7 +5887,7 @@
           "id" : 35,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 350,
+            "line" : 362,
             "column" : 12,
             "source_fragment" : "push_inner_vlan()"
           },
@@ -5943,14 +5898,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [56],
+          "action_ids" : [54],
           "actions" : ["FabricEgress.egress_next.push_inner_vlan"],
-          "base_default_next" : "node_70",
+          "base_default_next" : "node_65",
           "next_tables" : {
-            "FabricEgress.egress_next.push_inner_vlan" : "node_70"
+            "FabricEgress.egress_next.push_inner_vlan" : "node_65"
           },
           "default_entry" : {
-            "action_id" : 56,
+            "action_id" : 54,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5961,7 +5916,7 @@
           "id" : 36,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 353,
+            "line" : 365,
             "column" : 12,
             "source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
           },
@@ -5972,14 +5927,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [63],
-          "actions" : ["act_19"],
+          "action_ids" : [61],
+          "actions" : ["act_17"],
           "base_default_next" : "FabricEgress.egress_next.egress_vlan",
           "next_tables" : {
-            "act_19" : "FabricEgress.egress_next.egress_vlan"
+            "act_17" : "FabricEgress.egress_next.egress_vlan"
           },
           "default_entry" : {
-            "action_id" : 63,
+            "action_id" : 61,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5990,7 +5945,7 @@
           "id" : 37,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 320,
+            "line" : 331,
             "column" : 10,
             "source_fragment" : "egress_vlan"
           },
@@ -6014,15 +5969,16 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [57, 50],
-          "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
-          "base_default_next" : null,
+          "action_ids" : [55, 56, 57],
+          "actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
+          "base_default_next" : "node_65",
           "next_tables" : {
-            "__HIT__" : "tbl_act_18",
-            "__MISS__" : "tbl_act_19"
+            "FabricEgress.egress_next.push_vlan" : "node_65",
+            "FabricEgress.egress_next.pop_vlan" : "node_65",
+            "FabricEgress.egress_next.drop" : "node_65"
           },
           "default_entry" : {
-            "action_id" : 50,
+            "action_id" : 57,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6031,6 +5987,12 @@
         {
           "name" : "tbl_act_18",
           "id" : 38,
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 375,
+            "column" : 25,
+            "source_fragment" : "="
+          },
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -6038,14 +6000,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [61],
-          "actions" : ["act_17"],
+          "action_ids" : [63],
+          "actions" : ["act_19"],
           "base_default_next" : "node_67",
           "next_tables" : {
-            "act_17" : "node_67"
+            "act_19" : "node_67"
           },
           "default_entry" : {
-            "action_id" : 61,
+            "action_id" : 63,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6054,6 +6016,12 @@
         {
           "name" : "tbl_act_19",
           "id" : 39,
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 376,
+            "column" : 35,
+            "source_fragment" : "mark_to_drop(standard_metadata)"
+          },
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -6063,9 +6031,9 @@
           "direct_meters" : null,
           "action_ids" : [62],
           "actions" : ["act_18"],
-          "base_default_next" : "node_67",
+          "base_default_next" : "node_73",
           "next_tables" : {
-            "act_18" : "node_67"
+            "act_18" : "node_73"
           },
           "default_entry" : {
             "action_id" : 62,
@@ -6075,41 +6043,12 @@
           }
         },
         {
-          "name" : "tbl_egress_next_push_vlan_0",
+          "name" : "tbl_act_20",
           "id" : 40,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 360,
-            "column" : 20,
-            "source_fragment" : "push_vlan()"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [55],
-          "actions" : ["FabricEgress.egress_next.push_vlan"],
-          "base_default_next" : "node_70",
-          "next_tables" : {
-            "FabricEgress.egress_next.push_vlan" : "node_70"
-          },
-          "default_entry" : {
-            "action_id" : 55,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_20",
-          "id" : 41,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 369,
-            "column" : 25,
+            "line" : 379,
+            "column" : 29,
             "source_fragment" : "="
           },
           "key" : [],
@@ -6121,9 +6060,9 @@
           "direct_meters" : null,
           "action_ids" : [65],
           "actions" : ["act_21"],
-          "base_default_next" : "node_72",
+          "base_default_next" : "node_71",
           "next_tables" : {
-            "act_21" : "node_72"
+            "act_21" : "node_71"
           },
           "default_entry" : {
             "action_id" : 65,
@@ -6134,11 +6073,11 @@
         },
         {
           "name" : "tbl_act_21",
-          "id" : 42,
+          "id" : 41,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
-            "column" : 35,
+            "line" : 380,
+            "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
           "key" : [],
@@ -6150,9 +6089,9 @@
           "direct_meters" : null,
           "action_ids" : [64],
           "actions" : ["act_20"],
-          "base_default_next" : "node_78",
+          "base_default_next" : "node_73",
           "next_tables" : {
-            "act_20" : "node_78"
+            "act_20" : "node_73"
           },
           "default_entry" : {
             "action_id" : 64,
@@ -6162,66 +6101,8 @@
           }
         },
         {
-          "name" : "tbl_act_22",
-          "id" : 43,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 373,
-            "column" : 29,
-            "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_23"],
-          "base_default_next" : "node_76",
-          "next_tables" : {
-            "act_23" : "node_76"
-          },
-          "default_entry" : {
-            "action_id" : 67,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_23",
-          "id" : 44,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 374,
-            "column" : 39,
-            "source_fragment" : "mark_to_drop(standard_metadata)"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [66],
-          "actions" : ["act_22"],
-          "base_default_next" : "node_78",
-          "next_tables" : {
-            "act_22" : "node_78"
-          },
-          "default_entry" : {
-            "action_id" : 66,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
           "name" : "tbl_bng_egress_downstream_encap_v4",
-          "id" : 45,
+          "id" : 42,
           "source_info" : {
             "filename" : "include/bng.p4",
             "line" : 297,
@@ -6235,14 +6116,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [51],
+          "action_ids" : [50],
           "actions" : ["FabricEgress.bng_egress.downstream.encap_v4"],
           "base_default_next" : null,
           "next_tables" : {
             "FabricEgress.bng_egress.downstream.encap_v4" : null
           },
           "default_entry" : {
-            "action_id" : 51,
+            "action_id" : 50,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6315,7 +6196,7 @@
           "id" : 19,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 347,
             "column" : 12,
             "source_fragment" : "fabric_metadata.is_multicast == true ..."
           },
@@ -6368,7 +6249,7 @@
           "id" : 20,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 340,
+            "line" : 352,
             "column" : 12,
             "source_fragment" : "fabric_metadata.mpls_label == 0"
           },
@@ -6394,7 +6275,7 @@
           "id" : 21,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 353,
             "column" : 16,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -6417,7 +6298,7 @@
           "id" : 22,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 347,
+            "line" : 359,
             "column" : 12,
             "source_fragment" : "fabric_metadata.push_double_vlan == true"
           },
@@ -6442,71 +6323,15 @@
               }
             }
           },
-          "true_next" : "tbl_egress_next_push_vlan",
+          "true_next" : "tbl_egress_next_push_outer_vlan",
           "false_next" : "tbl_act_17"
         },
         {
-          "name" : "node_67",
+          "name" : "node_65",
           "id" : 23,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 357,
-            "column" : 16,
-            "source_fragment" : "!egress_vlan.apply().hit"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "not",
-              "left" : null,
-              "right" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "d2b",
-                  "left" : null,
-                  "right" : {
-                    "type" : "field",
-                    "value" : ["scalars", "egress_next_tmp"]
-                  }
-                }
-              }
-            }
-          },
-          "true_next" : "node_68",
-          "false_next" : "node_70"
-        },
-        {
-          "name" : "node_68",
-          "id" : 24,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 359,
-            "column" : 20,
-            "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "!=",
-              "left" : {
-                "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
-              },
-              "right" : {
-                "type" : "hexstr",
-                "value" : "0x0ffe"
-              }
-            }
-          },
-          "true_next" : "tbl_egress_next_push_vlan_0",
-          "false_next" : "node_70"
-        },
-        {
-          "name" : "node_70",
-          "id" : 25,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 374,
             "column" : 12,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -6521,15 +6346,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_20",
-          "false_next" : "node_74"
+          "true_next" : "tbl_act_18",
+          "false_next" : "node_69"
         },
         {
-          "name" : "node_72",
-          "id" : 26,
+          "name" : "node_67",
+          "id" : 24,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 376,
             "column" : 16,
             "source_fragment" : "hdr.mpls.ttl == 0"
           },
@@ -6547,15 +6372,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_21",
-          "false_next" : "node_78"
+          "true_next" : "tbl_act_19",
+          "false_next" : "node_73"
         },
         {
-          "name" : "node_74",
-          "id" : 27,
+          "name" : "node_69",
+          "id" : 25,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 378,
             "column" : 15,
             "source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
           },
@@ -6590,15 +6415,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_22",
-          "false_next" : "node_78"
+          "true_next" : "tbl_act_20",
+          "false_next" : "node_73"
         },
         {
-          "name" : "node_76",
-          "id" : 28,
+          "name" : "node_71",
+          "id" : 26,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 374,
+            "line" : 380,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl == 0"
           },
@@ -6616,12 +6441,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_23",
-          "false_next" : "node_78"
+          "true_next" : "tbl_act_21",
+          "false_next" : "node_73"
         },
         {
-          "name" : "node_78",
-          "id" : 29,
+          "name" : "node_73",
+          "id" : 27,
           "source_info" : {
             "filename" : "include/bng.p4",
             "line" : 358,
@@ -6643,11 +6468,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "node_79"
+          "true_next" : "node_74"
         },
         {
-          "name" : "node_79",
-          "id" : 30,
+          "name" : "node_74",
+          "id" : 28,
           "source_info" : {
             "filename" : "include/bng.p4",
             "line" : 296,
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 d95b294..2ad9fd0 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
@@ -511,14 +511,17 @@
     match_type: EXACT
   }
   action_refs {
+    id: 16807339
+  }
+  action_refs {
     id: 16790030
   }
   action_refs {
-    id: 16819938
+    id: 16787838
     annotations: "@defaultonly"
     scope: DEFAULT_ONLY
   }
-  const_default_action_id: 16819938
+  const_default_action_id: 16787838
   direct_resource_ids: 318827144
   size: 1024
 }
@@ -832,11 +835,25 @@
 }
 actions {
   preamble {
+    id: 16807339
+    name: "FabricEgress.egress_next.push_vlan"
+    alias: "push_vlan"
+  }
+}
+actions {
+  preamble {
     id: 16790030
     name: "FabricEgress.egress_next.pop_vlan"
     alias: "pop_vlan"
   }
 }
+actions {
+  preamble {
+    id: 16787838
+    name: "FabricEgress.egress_next.drop"
+    alias: "egress_next.drop"
+  }
+}
 action_profiles {
   preamble {
     id: 285217164
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 2cca7f8..7ff2d8a 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,18 +5,17 @@
       "id" : 0,
       "fields" : [
         ["last_ipv4_dscp_0", 6, false],
+        ["tmp_0", 16, false],
         ["tmp_1", 16, false],
-        ["tmp_2", 16, false],
-        ["tmp_3", 4, false],
+        ["tmp_2", 4, false],
         ["tmp", 32, false],
-        ["tmp_0", 32, false],
+        ["tmp_3", 32, false],
         ["tmp_4", 32, false],
         ["bng_ingress_upstream_tmp", 1, false],
         ["bng_ingress_downstream_tmp", 1, false],
         ["spgw_tmp", 1, false],
         ["bng_ingress_upstream_hasReturned", 1, false],
         ["key_0", 64, false],
-        ["egress_next_tmp", 1, false],
         ["process_int_main_process_int_transit_hasReturned", 1, false],
         ["fabric_metadata_t._ip_eth_type0", 16, false],
         ["fabric_metadata_t._vlan_id1", 12, false],
@@ -68,7 +67,7 @@
         ["fabric_metadata_t._int_meta_new_bytes47", 16, false],
         ["fabric_metadata_t._int_meta_ig_tstamp48", 32, false],
         ["fabric_metadata_t._int_meta_eg_tstamp49", 32, false],
-        ["_padding_0", 2, false]
+        ["_padding_0", 3, false]
       ]
     },
     {
@@ -799,7 +798,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_1"]
+                  "value" : ["scalars", "tmp_0"]
                 },
                 {
                   "type" : "lookahead",
@@ -837,7 +836,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_0"]
             }
           ]
         },
@@ -871,7 +870,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_2"]
+                  "value" : ["scalars", "tmp_1"]
                 },
                 {
                   "type" : "lookahead",
@@ -897,7 +896,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_2"]
+              "value" : ["scalars", "tmp_1"]
             }
           ]
         },
@@ -1084,7 +1083,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_3"]
+                  "value" : ["scalars", "tmp_2"]
                 },
                 {
                   "type" : "lookahead",
@@ -1116,7 +1115,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_3"]
+              "value" : ["scalars", "tmp_2"]
             }
           ]
         },
@@ -2057,7 +2056,7 @@
       "binding" : "FabricEgress.egress_next.egress_vlan",
       "source_info" : {
         "filename" : "include/control/next.p4",
-        "line" : 313,
+        "line" : 314,
         "column" : 50,
         "source_fragment" : "egress_vlan_counter"
       }
@@ -7162,7 +7161,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_0"]
+              "value" : ["scalars", "tmp_3"]
             },
             {
               "type" : "expression",
@@ -7198,7 +7197,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_0"]
+              "value" : ["scalars", "tmp_3"]
             }
           ],
           "source_info" : {
@@ -7749,7 +7748,7 @@
       "primitives" : []
     },
     {
-      "name" : "nop",
+      "name" : "NoAction",
       "id" : 96,
       "runtime_data" : [],
       "primitives" : []
@@ -7761,14 +7760,8 @@
       "primitives" : []
     },
     {
-      "name" : "NoAction",
-      "id" : 98,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricEgress.bng_egress.downstream.encap_v4",
-      "id" : 99,
+      "id" : 98,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7965,7 +7958,7 @@
     },
     {
       "name" : "FabricEgress.bng_egress.downstream.encap_v6",
-      "id" : 100,
+      "id" : 99,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8162,7 +8155,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_source.int_source_dscp",
-      "id" : 101,
+      "id" : 100,
       "runtime_data" : [
         {
           "name" : "max_hop",
@@ -8657,7 +8650,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.init_metadata",
-      "id" : 102,
+      "id" : 101,
       "runtime_data" : [
         {
           "name" : "switch_id",
@@ -8717,13 +8710,13 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0",
-      "id" : 103,
+      "id" : 102,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1",
-      "id" : 104,
+      "id" : 103,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8880,7 +8873,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2",
-      "id" : 105,
+      "id" : 104,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9005,7 +8998,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3",
-      "id" : 106,
+      "id" : 105,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9196,7 +9189,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4",
-      "id" : 107,
+      "id" : 106,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9366,7 +9359,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5",
-      "id" : 108,
+      "id" : 107,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9602,7 +9595,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6",
-      "id" : 109,
+      "id" : 108,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9806,7 +9799,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7",
-      "id" : 110,
+      "id" : 109,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10076,7 +10069,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8",
-      "id" : 111,
+      "id" : 110,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10201,7 +10194,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9",
-      "id" : 112,
+      "id" : 111,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10392,7 +10385,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10",
-      "id" : 113,
+      "id" : 112,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10551,7 +10544,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11",
-      "id" : 114,
+      "id" : 113,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10776,7 +10769,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12",
-      "id" : 115,
+      "id" : 114,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10980,7 +10973,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13",
-      "id" : 116,
+      "id" : 115,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11250,7 +11243,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14",
-      "id" : 117,
+      "id" : 116,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11488,7 +11481,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15",
-      "id" : 118,
+      "id" : 117,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11792,13 +11785,13 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0",
-      "id" : 119,
+      "id" : 118,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1",
-      "id" : 120,
+      "id" : 119,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11923,7 +11916,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2",
-      "id" : 121,
+      "id" : 120,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -12067,7 +12060,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3",
-      "id" : 122,
+      "id" : 121,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -12245,7 +12238,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4",
-      "id" : 123,
+      "id" : 122,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -12393,7 +12386,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5",
-      "id" : 124,
+      "id" : 123,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -12575,7 +12568,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6",
-      "id" : 125,
+      "id" : 124,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -12776,7 +12769,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7",
-      "id" : 126,
+      "id" : 125,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13011,7 +13004,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8",
-      "id" : 127,
+      "id" : 126,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13136,7 +13129,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9",
-      "id" : 128,
+      "id" : 127,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13295,7 +13288,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10",
-      "id" : 129,
+      "id" : 128,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13473,7 +13466,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11",
-      "id" : 130,
+      "id" : 129,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13685,7 +13678,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12",
-      "id" : 131,
+      "id" : 130,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13867,7 +13860,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13",
-      "id" : 132,
+      "id" : 131,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14083,7 +14076,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14",
-      "id" : 133,
+      "id" : 132,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14318,7 +14311,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15",
-      "id" : 134,
+      "id" : 133,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -14587,7 +14580,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_report.do_report_encapsulation",
-      "id" : 135,
+      "id" : 134,
       "runtime_data" : [
         {
           "name" : "src_mac",
@@ -15249,7 +15242,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_sink.restore_header",
-      "id" : 136,
+      "id" : 135,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15294,7 +15287,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_sink.int_sink",
-      "id" : 137,
+      "id" : 136,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15625,7 +15618,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.pop_mpls_if_present",
-      "id" : 138,
+      "id" : 137,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15666,7 +15659,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.set_mpls",
-      "id" : 139,
+      "id" : 138,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15782,106 +15775,8 @@
       ]
     },
     {
-      "name" : "FabricEgress.egress_next.push_vlan",
-      "id" : 140,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "vlan_tag"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 289,
-            "column" : 8,
-            "source_fragment" : "hdr.vlan_tag.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["vlan_tag", "cfi"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 290,
-            "column" : 8,
-            "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["vlan_tag", "pri"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 291,
-            "column" : 8,
-            "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["vlan_tag", "eth_type"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x8100"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/../define.p4",
-            "line" : 115,
-            "column" : 31,
-            "source_fragment" : "0x8100; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["vlan_tag", "vlan_id"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 293,
-            "column" : 8,
-            "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "FabricEgress.egress_next.push_vlan",
-      "id" : 141,
+      "name" : "FabricEgress.egress_next.push_outer_vlan",
+      "id" : 139,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15979,7 +15874,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.push_inner_vlan",
-      "id" : 142,
+      "id" : 140,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -16095,8 +15990,106 @@
       ]
     },
     {
+      "name" : "FabricEgress.egress_next.push_vlan",
+      "id" : 141,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "vlan_tag"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 289,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["vlan_tag", "cfi"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._vlan_cfi3"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 290,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.cfi = fabric_metadata.vlan_cfi; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["vlan_tag", "pri"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._vlan_pri2"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 291,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.pri = fabric_metadata.vlan_pri; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["vlan_tag", "eth_type"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x8100"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/../define.p4",
+            "line" : 115,
+            "column" : 31,
+            "source_fragment" : "0x8100; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["vlan_tag", "vlan_id"]
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 293,
+            "column" : 8,
+            "source_fragment" : "hdr.vlan_tag.vlan_id = fabric_metadata.vlan_id; ..."
+          }
+        }
+      ]
+    },
+    {
       "name" : "FabricEgress.egress_next.pop_vlan",
-      "id" : 143,
+      "id" : 142,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -16109,7 +16102,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 316,
+            "line" : 322,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
           }
@@ -16117,6 +16110,28 @@
       ]
     },
     {
+      "name" : "FabricEgress.egress_next.drop",
+      "id" : 143,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "mark_to_drop",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "standard_metadata"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 327,
+            "column" : 8,
+            "source_fragment" : "mark_to_drop(standard_metadata)"
+          }
+        }
+      ]
+    },
+    {
       "name" : "FabricEgress.spgw.gtpu_encap",
       "id" : 144,
       "runtime_data" : [],
@@ -16791,7 +16806,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 337,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -16804,66 +16819,6 @@
       "runtime_data" : [],
       "primitives" : [
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "egress_next_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_27",
-      "id" : 149,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "egress_next_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : false
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_28",
-      "id" : 150,
-      "runtime_data" : [],
-      "primitives" : [
-        {
           "op" : "remove_header",
           "parameters" : [
             {
@@ -16873,7 +16828,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 353,
+            "line" : 365,
             "column" : 12,
             "source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
           }
@@ -16881,8 +16836,8 @@
       ]
     },
     {
-      "name" : "act_29",
-      "id" : 151,
+      "name" : "act_27",
+      "id" : 149,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -16895,7 +16850,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 376,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -16903,8 +16858,8 @@
       ]
     },
     {
-      "name" : "act_30",
-      "id" : 152,
+      "name" : "act_28",
+      "id" : 150,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -16944,7 +16899,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 369,
+            "line" : 375,
             "column" : 12,
             "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
           }
@@ -16952,8 +16907,8 @@
       ]
     },
     {
-      "name" : "act_31",
-      "id" : 153,
+      "name" : "act_29",
+      "id" : 151,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -16966,7 +16921,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 374,
+            "line" : 380,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -16974,8 +16929,8 @@
       ]
     },
     {
-      "name" : "act_32",
-      "id" : 154,
+      "name" : "act_30",
+      "id" : 152,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -17015,7 +16970,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 373,
+            "line" : 379,
             "column" : 16,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
           }
@@ -17023,8 +16978,8 @@
       ]
     },
     {
-      "name" : "act_33",
-      "id" : 155,
+      "name" : "act_31",
+      "id" : 153,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -17037,7 +16992,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 379,
+            "line" : 385,
             "column" : 45,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -17045,8 +17000,8 @@
       ]
     },
     {
-      "name" : "act_34",
-      "id" : 156,
+      "name" : "act_32",
+      "id" : 154,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -17086,7 +17041,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 378,
+            "line" : 384,
             "column" : 16,
             "source_fragment" : "hdr.ipv6.hop_limit = hdr.ipv6.hop_limit - 1"
           }
@@ -17094,8 +17049,8 @@
       ]
     },
     {
-      "name" : "act_35",
-      "id" : 157,
+      "name" : "act_33",
+      "id" : 155,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -17120,8 +17075,8 @@
       ]
     },
     {
-      "name" : "act_36",
-      "id" : 158,
+      "name" : "act_34",
+      "id" : 156,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -17150,8 +17105,8 @@
       ]
     },
     {
-      "name" : "act_37",
-      "id" : 159,
+      "name" : "act_35",
+      "id" : 157,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -17186,8 +17141,8 @@
       ]
     },
     {
-      "name" : "act_38",
-      "id" : 160,
+      "name" : "act_36",
+      "id" : 158,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -17235,8 +17190,8 @@
       ]
     },
     {
-      "name" : "act_39",
-      "id" : 161,
+      "name" : "act_37",
+      "id" : 159,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -17284,8 +17239,8 @@
       ]
     },
     {
-      "name" : "act_40",
-      "id" : 162,
+      "name" : "act_38",
+      "id" : 160,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -17333,8 +17288,8 @@
       ]
     },
     {
-      "name" : "act_41",
-      "id" : 163,
+      "name" : "act_39",
+      "id" : 161,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -20212,7 +20167,7 @@
           "id" : 53,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 337,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -20241,7 +20196,7 @@
           "id" : 54,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 353,
             "column" : 36,
             "source_fragment" : "pop_mpls_if_present()"
           },
@@ -20252,14 +20207,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [138],
+          "action_ids" : [137],
           "actions" : ["FabricEgress.egress_next.pop_mpls_if_present"],
           "base_default_next" : "node_91",
           "next_tables" : {
             "FabricEgress.egress_next.pop_mpls_if_present" : "node_91"
           },
           "default_entry" : {
-            "action_id" : 138,
+            "action_id" : 137,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -20270,7 +20225,7 @@
           "id" : 55,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 343,
+            "line" : 355,
             "column" : 12,
             "source_fragment" : "set_mpls()"
           },
@@ -20281,27 +20236,27 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [139],
+          "action_ids" : [138],
           "actions" : ["FabricEgress.egress_next.set_mpls"],
           "base_default_next" : "node_91",
           "next_tables" : {
             "FabricEgress.egress_next.set_mpls" : "node_91"
           },
           "default_entry" : {
-            "action_id" : 139,
+            "action_id" : 138,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_egress_next_push_vlan",
+          "name" : "tbl_egress_next_push_outer_vlan",
           "id" : 56,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 349,
+            "line" : 361,
             "column" : 12,
-            "source_fragment" : "push_vlan()"
+            "source_fragment" : "push_outer_vlan()"
           },
           "key" : [],
           "match_type" : "exact",
@@ -20310,14 +20265,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [140],
-          "actions" : ["FabricEgress.egress_next.push_vlan"],
+          "action_ids" : [139],
+          "actions" : ["FabricEgress.egress_next.push_outer_vlan"],
           "base_default_next" : "tbl_egress_next_push_inner_vlan",
           "next_tables" : {
-            "FabricEgress.egress_next.push_vlan" : "tbl_egress_next_push_inner_vlan"
+            "FabricEgress.egress_next.push_outer_vlan" : "tbl_egress_next_push_inner_vlan"
           },
           "default_entry" : {
-            "action_id" : 140,
+            "action_id" : 139,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -20328,7 +20283,7 @@
           "id" : 57,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 350,
+            "line" : 362,
             "column" : 12,
             "source_fragment" : "push_inner_vlan()"
           },
@@ -20339,14 +20294,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [142],
+          "action_ids" : [140],
           "actions" : ["FabricEgress.egress_next.push_inner_vlan"],
-          "base_default_next" : "node_101",
+          "base_default_next" : "node_96",
           "next_tables" : {
-            "FabricEgress.egress_next.push_inner_vlan" : "node_101"
+            "FabricEgress.egress_next.push_inner_vlan" : "node_96"
           },
           "default_entry" : {
-            "action_id" : 142,
+            "action_id" : 140,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -20357,7 +20312,7 @@
           "id" : 58,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 353,
+            "line" : 365,
             "column" : 12,
             "source_fragment" : "hdr.inner_vlan_tag.setInvalid()"
           },
@@ -20368,14 +20323,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [150],
-          "actions" : ["act_28"],
+          "action_ids" : [148],
+          "actions" : ["act_26"],
           "base_default_next" : "FabricEgress.egress_next.egress_vlan",
           "next_tables" : {
-            "act_28" : "FabricEgress.egress_next.egress_vlan"
+            "act_26" : "FabricEgress.egress_next.egress_vlan"
           },
           "default_entry" : {
-            "action_id" : 150,
+            "action_id" : 148,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -20386,7 +20341,7 @@
           "id" : 59,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 320,
+            "line" : 331,
             "column" : 10,
             "source_fragment" : "egress_vlan"
           },
@@ -20410,15 +20365,16 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [143, 96],
-          "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
-          "base_default_next" : null,
+          "action_ids" : [141, 142, 143],
+          "actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
+          "base_default_next" : "node_96",
           "next_tables" : {
-            "__HIT__" : "tbl_act_27",
-            "__MISS__" : "tbl_act_28"
+            "FabricEgress.egress_next.push_vlan" : "node_96",
+            "FabricEgress.egress_next.pop_vlan" : "node_96",
+            "FabricEgress.egress_next.drop" : "node_96"
           },
           "default_entry" : {
-            "action_id" : 96,
+            "action_id" : 143,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -20427,6 +20383,12 @@
         {
           "name" : "tbl_act_27",
           "id" : 60,
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 375,
+            "column" : 25,
+            "source_fragment" : "="
+          },
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -20434,14 +20396,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [148],
-          "actions" : ["act_26"],
+          "action_ids" : [150],
+          "actions" : ["act_28"],
           "base_default_next" : "node_98",
           "next_tables" : {
-            "act_26" : "node_98"
+            "act_28" : "node_98"
           },
           "default_entry" : {
-            "action_id" : 148,
+            "action_id" : 150,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -20450,6 +20412,12 @@
         {
           "name" : "tbl_act_28",
           "id" : 61,
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 376,
+            "column" : 35,
+            "source_fragment" : "mark_to_drop(standard_metadata)"
+          },
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -20459,9 +20427,9 @@
           "direct_meters" : null,
           "action_ids" : [149],
           "actions" : ["act_27"],
-          "base_default_next" : "node_98",
+          "base_default_next" : "node_108",
           "next_tables" : {
-            "act_27" : "node_98"
+            "act_27" : "node_108"
           },
           "default_entry" : {
             "action_id" : 149,
@@ -20471,41 +20439,12 @@
           }
         },
         {
-          "name" : "tbl_egress_next_push_vlan_0",
+          "name" : "tbl_act_29",
           "id" : 62,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 360,
-            "column" : 20,
-            "source_fragment" : "push_vlan()"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [141],
-          "actions" : ["FabricEgress.egress_next.push_vlan"],
-          "base_default_next" : "node_101",
-          "next_tables" : {
-            "FabricEgress.egress_next.push_vlan" : "node_101"
-          },
-          "default_entry" : {
-            "action_id" : 141,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_29",
-          "id" : 63,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 369,
-            "column" : 25,
+            "line" : 379,
+            "column" : 29,
             "source_fragment" : "="
           },
           "key" : [],
@@ -20517,9 +20456,9 @@
           "direct_meters" : null,
           "action_ids" : [152],
           "actions" : ["act_30"],
-          "base_default_next" : "node_103",
+          "base_default_next" : "node_102",
           "next_tables" : {
-            "act_30" : "node_103"
+            "act_30" : "node_102"
           },
           "default_entry" : {
             "action_id" : 152,
@@ -20530,11 +20469,11 @@
         },
         {
           "name" : "tbl_act_30",
-          "id" : 64,
+          "id" : 63,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
-            "column" : 35,
+            "line" : 380,
+            "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
           "key" : [],
@@ -20546,9 +20485,9 @@
           "direct_meters" : null,
           "action_ids" : [151],
           "actions" : ["act_29"],
-          "base_default_next" : "node_113",
+          "base_default_next" : "node_108",
           "next_tables" : {
-            "act_29" : "node_113"
+            "act_29" : "node_108"
           },
           "default_entry" : {
             "action_id" : 151,
@@ -20559,11 +20498,11 @@
         },
         {
           "name" : "tbl_act_31",
-          "id" : 65,
+          "id" : 64,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 373,
-            "column" : 29,
+            "line" : 384,
+            "column" : 35,
             "source_fragment" : "="
           },
           "key" : [],
@@ -20575,9 +20514,9 @@
           "direct_meters" : null,
           "action_ids" : [154],
           "actions" : ["act_32"],
-          "base_default_next" : "node_107",
+          "base_default_next" : "node_106",
           "next_tables" : {
-            "act_32" : "node_107"
+            "act_32" : "node_106"
           },
           "default_entry" : {
             "action_id" : 154,
@@ -20588,11 +20527,11 @@
         },
         {
           "name" : "tbl_act_32",
-          "id" : 66,
+          "id" : 65,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 374,
-            "column" : 39,
+            "line" : 385,
+            "column" : 45,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
           "key" : [],
@@ -20604,9 +20543,9 @@
           "direct_meters" : null,
           "action_ids" : [153],
           "actions" : ["act_31"],
-          "base_default_next" : "node_113",
+          "base_default_next" : "node_108",
           "next_tables" : {
-            "act_31" : "node_113"
+            "act_31" : "node_108"
           },
           "default_entry" : {
             "action_id" : 153,
@@ -20616,13 +20555,13 @@
           }
         },
         {
-          "name" : "tbl_act_33",
-          "id" : 67,
+          "name" : "tbl_spgw_gtpu_encap",
+          "id" : 66,
           "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 378,
-            "column" : 35,
-            "source_fragment" : "="
+            "filename" : "include/control/spgw.p4",
+            "line" : 330,
+            "column" : 16,
+            "source_fragment" : "gtpu_encap()"
           },
           "key" : [],
           "match_type" : "exact",
@@ -20631,27 +20570,27 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [156],
-          "actions" : ["act_34"],
+          "action_ids" : [144],
+          "actions" : ["FabricEgress.spgw.gtpu_encap"],
           "base_default_next" : "node_111",
           "next_tables" : {
-            "act_34" : "node_111"
+            "FabricEgress.spgw.gtpu_encap" : "node_111"
           },
           "default_entry" : {
-            "action_id" : 156,
+            "action_id" : 144,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_34",
-          "id" : 68,
+          "name" : "tbl_act_33",
+          "id" : 67,
           "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 379,
-            "column" : 45,
-            "source_fragment" : "mark_to_drop(standard_metadata)"
+            "filename" : "include/control/spgw.p4",
+            "line" : 333,
+            "column" : 16,
+            "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
           },
           "key" : [],
           "match_type" : "exact",
@@ -20674,66 +20613,8 @@
           }
         },
         {
-          "name" : "tbl_spgw_gtpu_encap",
-          "id" : 69,
-          "source_info" : {
-            "filename" : "include/control/spgw.p4",
-            "line" : 330,
-            "column" : 16,
-            "source_fragment" : "gtpu_encap()"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [144],
-          "actions" : ["FabricEgress.spgw.gtpu_encap"],
-          "base_default_next" : "node_116",
-          "next_tables" : {
-            "FabricEgress.spgw.gtpu_encap" : "node_116"
-          },
-          "default_entry" : {
-            "action_id" : 144,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_35",
-          "id" : 70,
-          "source_info" : {
-            "filename" : "include/control/spgw.p4",
-            "line" : 333,
-            "column" : 16,
-            "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [157],
-          "actions" : ["act_35"],
-          "base_default_next" : "node_118",
-          "next_tables" : {
-            "act_35" : "node_118"
-          },
-          "default_entry" : {
-            "action_id" : 157,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
           "name" : "tbl_bng_egress_downstream_encap_v4",
-          "id" : 71,
+          "id" : 68,
           "source_info" : {
             "filename" : "include/bng.p4",
             "line" : 297,
@@ -20747,14 +20628,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [99],
+          "action_ids" : [98],
           "actions" : ["FabricEgress.bng_egress.downstream.encap_v4"],
-          "base_default_next" : "node_123",
+          "base_default_next" : "node_118",
           "next_tables" : {
-            "FabricEgress.bng_egress.downstream.encap_v4" : "node_123"
+            "FabricEgress.bng_egress.downstream.encap_v4" : "node_118"
           },
           "default_entry" : {
-            "action_id" : 99,
+            "action_id" : 98,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -20762,7 +20643,7 @@
         },
         {
           "name" : "tbl_bng_egress_downstream_encap_v6",
-          "id" : 72,
+          "id" : 69,
           "source_info" : {
             "filename" : "include/bng.p4",
             "line" : 302,
@@ -20776,14 +20657,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [100],
+          "action_ids" : [99],
           "actions" : ["FabricEgress.bng_egress.downstream.encap_v6"],
-          "base_default_next" : "node_123",
+          "base_default_next" : "node_118",
           "next_tables" : {
-            "FabricEgress.bng_egress.downstream.encap_v6" : "node_123"
+            "FabricEgress.bng_egress.downstream.encap_v6" : "node_118"
           },
           "default_entry" : {
-            "action_id" : 100,
+            "action_id" : 99,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -20791,7 +20672,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
-          "id" : 73,
+          "id" : 70,
           "source_info" : {
             "filename" : "include/int/int_source.p4",
             "line" : 66,
@@ -20830,12 +20711,12 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [101, 93],
+          "action_ids" : [100, 93],
           "actions" : ["FabricEgress.process_int_main.process_int_source.int_source_dscp", "nop"],
-          "base_default_next" : "node_126",
+          "base_default_next" : "node_121",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_126",
-            "nop" : "node_126"
+            "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_121",
+            "nop" : "node_121"
           },
           "default_entry" : {
             "action_id" : 93,
@@ -20845,8 +20726,8 @@
           }
         },
         {
-          "name" : "tbl_act_36",
-          "id" : 74,
+          "name" : "tbl_act_34",
+          "id" : 71,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -20854,14 +20735,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [158],
-          "actions" : ["act_36"],
+          "action_ids" : [156],
+          "actions" : ["act_34"],
           "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
           "next_tables" : {
-            "act_36" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
+            "act_34" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
           },
           "default_entry" : {
-            "action_id" : 158,
+            "action_id" : 156,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -20869,7 +20750,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
-          "id" : 75,
+          "id" : 72,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 315,
@@ -20890,12 +20771,12 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [102, 94],
+          "action_ids" : [101, 94],
           "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"],
-          "base_default_next" : "node_129",
+          "base_default_next" : "node_124",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_129",
-            "nop" : "node_129"
+            "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_124",
+            "nop" : "node_124"
           },
           "default_entry" : {
             "action_id" : 94,
@@ -20905,8 +20786,8 @@
           }
         },
         {
-          "name" : "tbl_act_37",
-          "id" : 76,
+          "name" : "tbl_act_35",
+          "id" : 73,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 420,
@@ -20920,14 +20801,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [159],
-          "actions" : ["act_37"],
-          "base_default_next" : "node_131",
+          "action_ids" : [157],
+          "actions" : ["act_35"],
+          "base_default_next" : "node_126",
           "next_tables" : {
-            "act_37" : "node_131"
+            "act_35" : "node_126"
           },
           "default_entry" : {
-            "action_id" : 159,
+            "action_id" : 157,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -20935,7 +20816,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003",
-          "id" : 77,
+          "id" : 74,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 331,
@@ -20956,7 +20837,7 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 97],
+          "action_ids" : [102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 96],
           "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" : {
@@ -20979,7 +20860,7 @@
             "NoAction" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407"
           },
           "default_entry" : {
-            "action_id" : 97,
+            "action_id" : 96,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -20999,7 +20880,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 103,
+                "action_id" : 102,
                 "action_data" : []
               },
               "priority" : 1
@@ -21018,7 +20899,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 104,
+                "action_id" : 103,
                 "action_data" : []
               },
               "priority" : 2
@@ -21037,7 +20918,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 105,
+                "action_id" : 104,
                 "action_data" : []
               },
               "priority" : 3
@@ -21056,7 +20937,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 106,
+                "action_id" : 105,
                 "action_data" : []
               },
               "priority" : 4
@@ -21075,7 +20956,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 107,
+                "action_id" : 106,
                 "action_data" : []
               },
               "priority" : 5
@@ -21094,7 +20975,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 108,
+                "action_id" : 107,
                 "action_data" : []
               },
               "priority" : 6
@@ -21113,7 +20994,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 109,
+                "action_id" : 108,
                 "action_data" : []
               },
               "priority" : 7
@@ -21132,7 +21013,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 110,
+                "action_id" : 109,
                 "action_data" : []
               },
               "priority" : 8
@@ -21151,7 +21032,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 111,
+                "action_id" : 110,
                 "action_data" : []
               },
               "priority" : 9
@@ -21170,7 +21051,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 112,
+                "action_id" : 111,
                 "action_data" : []
               },
               "priority" : 10
@@ -21189,7 +21070,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 113,
+                "action_id" : 112,
                 "action_data" : []
               },
               "priority" : 11
@@ -21208,7 +21089,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 114,
+                "action_id" : 113,
                 "action_data" : []
               },
               "priority" : 12
@@ -21227,7 +21108,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 115,
+                "action_id" : 114,
                 "action_data" : []
               },
               "priority" : 13
@@ -21246,7 +21127,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 116,
+                "action_id" : 115,
                 "action_data" : []
               },
               "priority" : 14
@@ -21265,7 +21146,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 117,
+                "action_id" : 116,
                 "action_data" : []
               },
               "priority" : 15
@@ -21284,7 +21165,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 118,
+                "action_id" : 117,
                 "action_data" : []
               },
               "priority" : 16
@@ -21293,7 +21174,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407",
-          "id" : 78,
+          "id" : 75,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 375,
@@ -21314,30 +21195,30 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 98],
+          "action_ids" : [118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 97],
           "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_38",
+          "base_default_next" : "tbl_act_36",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_38",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_38",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_38",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_38",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_38",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_38",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_38",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_38",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_38",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_38",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_38",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_38",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_38",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_38",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_38",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_38",
-            "NoAction" : "tbl_act_38"
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_36",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_36",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_36",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_36",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_36",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_36",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_36",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_36",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_36",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_36",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_36",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_36",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_36",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_36",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_36",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_36",
+            "NoAction" : "tbl_act_36"
           },
           "default_entry" : {
-            "action_id" : 98,
+            "action_id" : 97,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -21357,7 +21238,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 119,
+                "action_id" : 118,
                 "action_data" : []
               },
               "priority" : 1
@@ -21376,7 +21257,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 120,
+                "action_id" : 119,
                 "action_data" : []
               },
               "priority" : 2
@@ -21395,7 +21276,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 121,
+                "action_id" : 120,
                 "action_data" : []
               },
               "priority" : 3
@@ -21414,7 +21295,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 122,
+                "action_id" : 121,
                 "action_data" : []
               },
               "priority" : 4
@@ -21433,7 +21314,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 123,
+                "action_id" : 122,
                 "action_data" : []
               },
               "priority" : 5
@@ -21452,7 +21333,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 124,
+                "action_id" : 123,
                 "action_data" : []
               },
               "priority" : 6
@@ -21471,7 +21352,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 125,
+                "action_id" : 124,
                 "action_data" : []
               },
               "priority" : 7
@@ -21490,7 +21371,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 126,
+                "action_id" : 125,
                 "action_data" : []
               },
               "priority" : 8
@@ -21509,7 +21390,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 127,
+                "action_id" : 126,
                 "action_data" : []
               },
               "priority" : 9
@@ -21528,7 +21409,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 128,
+                "action_id" : 127,
                 "action_data" : []
               },
               "priority" : 10
@@ -21547,7 +21428,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 129,
+                "action_id" : 128,
                 "action_data" : []
               },
               "priority" : 11
@@ -21566,7 +21447,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 130,
+                "action_id" : 129,
                 "action_data" : []
               },
               "priority" : 12
@@ -21585,7 +21466,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 131,
+                "action_id" : 130,
                 "action_data" : []
               },
               "priority" : 13
@@ -21604,7 +21485,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 132,
+                "action_id" : 131,
                 "action_data" : []
               },
               "priority" : 14
@@ -21623,7 +21504,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 133,
+                "action_id" : 132,
                 "action_data" : []
               },
               "priority" : 15
@@ -21642,7 +21523,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 134,
+                "action_id" : 133,
                 "action_data" : []
               },
               "priority" : 16
@@ -21650,8 +21531,8 @@
           ]
         },
         {
-          "name" : "tbl_act_38",
-          "id" : 79,
+          "name" : "tbl_act_36",
+          "id" : 76,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 425,
@@ -21665,22 +21546,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [161],
-          "actions" : ["act_39"],
-          "base_default_next" : "node_135",
+          "action_ids" : [159],
+          "actions" : ["act_37"],
+          "base_default_next" : "node_130",
           "next_tables" : {
-            "act_39" : "node_135"
+            "act_37" : "node_130"
           },
           "default_entry" : {
-            "action_id" : 161,
+            "action_id" : 159,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_39",
-          "id" : 80,
+          "name" : "tbl_act_37",
+          "id" : 77,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 428,
@@ -21694,22 +21575,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [160],
-          "actions" : ["act_38"],
-          "base_default_next" : "node_137",
+          "action_ids" : [158],
+          "actions" : ["act_36"],
+          "base_default_next" : "node_132",
           "next_tables" : {
-            "act_38" : "node_137"
+            "act_36" : "node_132"
           },
           "default_entry" : {
-            "action_id" : 160,
+            "action_id" : 158,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_40",
-          "id" : 81,
+          "name" : "tbl_act_38",
+          "id" : 78,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 431,
@@ -21723,22 +21604,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [162],
-          "actions" : ["act_40"],
-          "base_default_next" : "node_139",
+          "action_ids" : [160],
+          "actions" : ["act_38"],
+          "base_default_next" : "node_134",
           "next_tables" : {
-            "act_40" : "node_139"
+            "act_38" : "node_134"
           },
           "default_entry" : {
-            "action_id" : 162,
+            "action_id" : 160,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_41",
-          "id" : 82,
+          "name" : "tbl_act_39",
+          "id" : 79,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 434,
@@ -21752,14 +21633,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [163],
-          "actions" : ["act_41"],
-          "base_default_next" : "node_141",
+          "action_ids" : [161],
+          "actions" : ["act_39"],
+          "base_default_next" : "node_136",
           "next_tables" : {
-            "act_41" : "node_141"
+            "act_39" : "node_136"
           },
           "default_entry" : {
-            "action_id" : 163,
+            "action_id" : 161,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -21767,7 +21648,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_report.tb_generate_report",
-          "id" : 83,
+          "id" : 80,
           "source_info" : {
             "filename" : "include/int/int_report.p4",
             "line" : 87,
@@ -21781,12 +21662,12 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [135, 95],
+          "action_ids" : [134, 95],
           "actions" : ["FabricEgress.process_int_main.process_int_report.do_report_encapsulation", "nop"],
-          "base_default_next" : "node_143",
+          "base_default_next" : "node_138",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_report.do_report_encapsulation" : "node_143",
-            "nop" : "node_143"
+            "FabricEgress.process_int_main.process_int_report.do_report_encapsulation" : "node_138",
+            "nop" : "node_138"
           },
           "default_entry" : {
             "action_id" : 95,
@@ -21797,7 +21678,7 @@
         },
         {
           "name" : "tbl_process_int_main_process_int_sink_restore_header",
-          "id" : 84,
+          "id" : 81,
           "source_info" : {
             "filename" : "include/int/int_sink.p4",
             "line" : 53,
@@ -21811,14 +21692,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [136],
+          "action_ids" : [135],
           "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" : 136,
+            "action_id" : 135,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -21826,7 +21707,7 @@
         },
         {
           "name" : "tbl_process_int_main_process_int_sink_int_sink",
-          "id" : 85,
+          "id" : 82,
           "source_info" : {
             "filename" : "include/int/int_sink.p4",
             "line" : 54,
@@ -21840,14 +21721,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [137],
+          "action_ids" : [136],
           "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" : 137,
+            "action_id" : 136,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -21920,7 +21801,7 @@
           "id" : 28,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 347,
             "column" : 12,
             "source_fragment" : "fabric_metadata.is_multicast == true ..."
           },
@@ -21973,7 +21854,7 @@
           "id" : 29,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 340,
+            "line" : 352,
             "column" : 12,
             "source_fragment" : "fabric_metadata.mpls_label == 0"
           },
@@ -21999,7 +21880,7 @@
           "id" : 30,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 353,
             "column" : 16,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -22022,7 +21903,7 @@
           "id" : 31,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 347,
+            "line" : 359,
             "column" : 12,
             "source_fragment" : "fabric_metadata.push_double_vlan == true"
           },
@@ -22047,71 +21928,15 @@
               }
             }
           },
-          "true_next" : "tbl_egress_next_push_vlan",
+          "true_next" : "tbl_egress_next_push_outer_vlan",
           "false_next" : "tbl_act_26"
         },
         {
-          "name" : "node_98",
+          "name" : "node_96",
           "id" : 32,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 357,
-            "column" : 16,
-            "source_fragment" : "!egress_vlan.apply().hit"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "not",
-              "left" : null,
-              "right" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "d2b",
-                  "left" : null,
-                  "right" : {
-                    "type" : "field",
-                    "value" : ["scalars", "egress_next_tmp"]
-                  }
-                }
-              }
-            }
-          },
-          "true_next" : "node_99",
-          "false_next" : "node_101"
-        },
-        {
-          "name" : "node_99",
-          "id" : 33,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 359,
-            "column" : 20,
-            "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "!=",
-              "left" : {
-                "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
-              },
-              "right" : {
-                "type" : "hexstr",
-                "value" : "0x0ffe"
-              }
-            }
-          },
-          "true_next" : "tbl_egress_next_push_vlan_0",
-          "false_next" : "node_101"
-        },
-        {
-          "name" : "node_101",
-          "id" : 34,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 374,
             "column" : 12,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -22126,15 +21951,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_29",
-          "false_next" : "node_105"
+          "true_next" : "tbl_act_27",
+          "false_next" : "node_100"
         },
         {
-          "name" : "node_103",
-          "id" : 35,
+          "name" : "node_98",
+          "id" : 33,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 376,
             "column" : 16,
             "source_fragment" : "hdr.mpls.ttl == 0"
           },
@@ -22152,15 +21977,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_30",
-          "false_next" : "node_113"
+          "true_next" : "tbl_act_28",
+          "false_next" : "node_108"
         },
         {
-          "name" : "node_105",
-          "id" : 36,
+          "name" : "node_100",
+          "id" : 34,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 378,
             "column" : 15,
             "source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
           },
@@ -22195,15 +22020,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_31",
-          "false_next" : "node_109"
+          "true_next" : "tbl_act_29",
+          "false_next" : "node_104"
         },
         {
-          "name" : "node_107",
-          "id" : 37,
+          "name" : "node_102",
+          "id" : 35,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 374,
+            "line" : 380,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl == 0"
           },
@@ -22221,15 +22046,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_32",
-          "false_next" : "node_113"
+          "true_next" : "tbl_act_30",
+          "false_next" : "node_108"
         },
         {
-          "name" : "node_109",
-          "id" : 38,
+          "name" : "node_104",
+          "id" : 36,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 377,
+            "line" : 383,
             "column" : 21,
             "source_fragment" : "hdr.ipv6.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
           },
@@ -22264,15 +22089,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_33",
-          "false_next" : "node_113"
+          "true_next" : "tbl_act_31",
+          "false_next" : "node_108"
         },
         {
-          "name" : "node_111",
-          "id" : 39,
+          "name" : "node_106",
+          "id" : 37,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 379,
+            "line" : 385,
             "column" : 20,
             "source_fragment" : "hdr.ipv6.hop_limit == 0"
           },
@@ -22290,12 +22115,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_34",
-          "false_next" : "node_113"
+          "true_next" : "tbl_act_32",
+          "false_next" : "node_108"
         },
         {
-          "name" : "node_113",
-          "id" : 40,
+          "name" : "node_108",
+          "id" : 38,
           "source_info" : {
             "filename" : "include/control/spgw.p4",
             "line" : 328,
@@ -22323,12 +22148,12 @@
               }
             }
           },
-          "true_next" : "node_114",
-          "false_next" : "node_118"
+          "true_next" : "node_109",
+          "false_next" : "node_113"
         },
         {
-          "name" : "node_114",
-          "id" : 41,
+          "name" : "node_109",
+          "id" : 39,
           "source_info" : {
             "filename" : "include/control/spgw.p4",
             "line" : 329,
@@ -22357,11 +22182,11 @@
             }
           },
           "true_next" : "tbl_spgw_gtpu_encap",
-          "false_next" : "node_116"
+          "false_next" : "node_111"
         },
         {
-          "name" : "node_116",
-          "id" : 42,
+          "name" : "node_111",
+          "id" : 40,
           "source_info" : {
             "filename" : "include/control/spgw.p4",
             "line" : 332,
@@ -22389,12 +22214,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_35",
-          "false_next" : "node_118"
+          "true_next" : "tbl_act_33",
+          "false_next" : "node_113"
         },
         {
-          "name" : "node_118",
-          "id" : 43,
+          "name" : "node_113",
+          "id" : 41,
           "source_info" : {
             "filename" : "include/bng.p4",
             "line" : 358,
@@ -22415,12 +22240,12 @@
               }
             }
           },
-          "true_next" : "node_119",
-          "false_next" : "node_123"
+          "true_next" : "node_114",
+          "false_next" : "node_118"
         },
         {
-          "name" : "node_119",
-          "id" : 44,
+          "name" : "node_114",
+          "id" : 42,
           "source_info" : {
             "filename" : "include/bng.p4",
             "line" : 296,
@@ -22439,11 +22264,11 @@
             }
           },
           "true_next" : "tbl_bng_egress_downstream_encap_v4",
-          "false_next" : "node_121"
+          "false_next" : "node_116"
         },
         {
-          "name" : "node_121",
-          "id" : 45,
+          "name" : "node_116",
+          "id" : 43,
           "source_info" : {
             "filename" : "include/bng.p4",
             "line" : 301,
@@ -22462,11 +22287,11 @@
             }
           },
           "true_next" : "tbl_bng_egress_downstream_encap_v6",
-          "false_next" : "node_123"
+          "false_next" : "node_118"
         },
         {
-          "name" : "node_123",
-          "id" : 46,
+          "name" : "node_118",
+          "id" : 44,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 102,
@@ -22542,11 +22367,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "node_124"
+          "true_next" : "node_119"
         },
         {
-          "name" : "node_124",
-          "id" : 47,
+          "name" : "node_119",
+          "id" : 45,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 106,
@@ -22575,11 +22400,11 @@
             }
           },
           "true_next" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
-          "false_next" : "node_126"
+          "false_next" : "node_121"
         },
         {
-          "name" : "node_126",
-          "id" : 48,
+          "name" : "node_121",
+          "id" : 46,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 110,
@@ -22598,11 +22423,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_36"
+          "true_next" : "tbl_act_34"
         },
         {
-          "name" : "node_129",
-          "id" : 49,
+          "name" : "node_124",
+          "id" : 47,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 419,
@@ -22630,12 +22455,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_37",
-          "false_next" : "node_131"
+          "true_next" : "tbl_act_35",
+          "false_next" : "node_126"
         },
         {
-          "name" : "node_131",
-          "id" : 50,
+          "name" : "node_126",
+          "id" : 48,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -22655,11 +22480,11 @@
             }
           },
           "true_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003",
-          "false_next" : "node_141"
+          "false_next" : "node_136"
         },
         {
-          "name" : "node_135",
-          "id" : 51,
+          "name" : "node_130",
+          "id" : 49,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 427,
@@ -22677,12 +22502,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_39",
-          "false_next" : "node_137"
+          "true_next" : "tbl_act_37",
+          "false_next" : "node_132"
         },
         {
-          "name" : "node_137",
-          "id" : 52,
+          "name" : "node_132",
+          "id" : 50,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 430,
@@ -22700,12 +22525,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_40",
-          "false_next" : "node_139"
+          "true_next" : "tbl_act_38",
+          "false_next" : "node_134"
         },
         {
-          "name" : "node_139",
-          "id" : 53,
+          "name" : "node_134",
+          "id" : 51,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 433,
@@ -22723,12 +22548,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_41",
-          "false_next" : "node_141"
+          "true_next" : "tbl_act_39",
+          "false_next" : "node_136"
         },
         {
-          "name" : "node_141",
-          "id" : 54,
+          "name" : "node_136",
+          "id" : 52,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 115,
@@ -22750,11 +22575,11 @@
             }
           },
           "true_next" : "FabricEgress.process_int_main.process_int_report.tb_generate_report",
-          "false_next" : "node_143"
+          "false_next" : "node_138"
         },
         {
-          "name" : "node_143",
-          "id" : 55,
+          "name" : "node_138",
+          "id" : 53,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 119,
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 dd55cde..c02e04b 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
@@ -898,14 +898,17 @@
     match_type: EXACT
   }
   action_refs {
+    id: 16807339
+  }
+  action_refs {
     id: 16790030
   }
   action_refs {
-    id: 16819938
+    id: 16787838
     annotations: "@defaultonly"
     scope: DEFAULT_ONLY
   }
-  const_default_action_id: 16819938
+  const_default_action_id: 16787838
   direct_resource_ids: 318827144
   size: 1024
 }
@@ -1554,11 +1557,25 @@
 }
 actions {
   preamble {
+    id: 16807339
+    name: "FabricEgress.egress_next.push_vlan"
+    alias: "push_vlan"
+  }
+}
+actions {
+  preamble {
     id: 16790030
     name: "FabricEgress.egress_next.pop_vlan"
     alias: "pop_vlan"
   }
 }
+actions {
+  preamble {
+    id: 16787838
+    name: "FabricEgress.egress_next.drop"
+    alias: "egress_next.drop"
+  }
+}
 action_profiles {
   preamble {
     id: 285217164
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 1151554..739695a 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,12 +5,11 @@
       "id" : 0,
       "fields" : [
         ["last_ipv4_dscp_0", 6, false],
+        ["tmp", 16, false],
         ["tmp_0", 16, false],
-        ["tmp_1", 16, false],
-        ["tmp_2", 4, false],
-        ["tmp", 32, false],
+        ["tmp_1", 4, false],
+        ["tmp_2", 32, false],
         ["tmp_3", 32, false],
-        ["egress_next_tmp", 1, false],
         ["process_int_main_process_int_transit_hasReturned", 1, false],
         ["fabric_metadata_t._ip_eth_type0", 16, false],
         ["fabric_metadata_t._vlan_id1", 12, false],
@@ -37,7 +36,7 @@
         ["fabric_metadata_t._int_meta_new_bytes22", 16, false],
         ["fabric_metadata_t._int_meta_ig_tstamp23", 32, false],
         ["fabric_metadata_t._int_meta_eg_tstamp24", 32, false],
-        ["_padding_0", 6, false]
+        ["_padding_0", 7, false]
       ]
     },
     {
@@ -562,7 +561,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_0"]
+                  "value" : ["scalars", "tmp"]
                 },
                 {
                   "type" : "lookahead",
@@ -600,7 +599,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_0"]
+              "value" : ["scalars", "tmp"]
             }
           ]
         },
@@ -621,7 +620,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_1"]
+                  "value" : ["scalars", "tmp_0"]
                 },
                 {
                   "type" : "lookahead",
@@ -647,7 +646,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_0"]
             }
           ]
         },
@@ -757,7 +756,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_2"]
+                  "value" : ["scalars", "tmp_1"]
                 },
                 {
                   "type" : "lookahead",
@@ -783,7 +782,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_2"]
+              "value" : ["scalars", "tmp_1"]
             }
           ]
         },
@@ -1309,7 +1308,7 @@
       "binding" : "FabricEgress.egress_next.egress_vlan",
       "source_info" : {
         "filename" : "include/control/next.p4",
-        "line" : 313,
+        "line" : 314,
         "column" : 50,
         "source_fragment" : "egress_vlan_counter"
       }
@@ -2492,7 +2491,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp"]
+              "value" : ["scalars", "tmp_2"]
             },
             {
               "type" : "expression",
@@ -2528,7 +2527,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp"]
+              "value" : ["scalars", "tmp_2"]
             }
           ],
           "source_info" : {
@@ -2611,7 +2610,7 @@
       "primitives" : []
     },
     {
-      "name" : "nop",
+      "name" : "NoAction",
       "id" : 36,
       "runtime_data" : [],
       "primitives" : []
@@ -2623,14 +2622,8 @@
       "primitives" : []
     },
     {
-      "name" : "NoAction",
-      "id" : 38,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricEgress.process_int_main.process_int_source.int_source_dscp",
-      "id" : 39,
+      "id" : 38,
       "runtime_data" : [
         {
           "name" : "max_hop",
@@ -3125,7 +3118,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.init_metadata",
-      "id" : 40,
+      "id" : 39,
       "runtime_data" : [
         {
           "name" : "switch_id",
@@ -3185,13 +3178,13 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0",
-      "id" : 41,
+      "id" : 40,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1",
-      "id" : 42,
+      "id" : 41,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3348,7 +3341,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2",
-      "id" : 43,
+      "id" : 42,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3473,7 +3466,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3",
-      "id" : 44,
+      "id" : 43,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3664,7 +3657,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4",
-      "id" : 45,
+      "id" : 44,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3834,7 +3827,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5",
-      "id" : 46,
+      "id" : 45,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4070,7 +4063,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6",
-      "id" : 47,
+      "id" : 46,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4274,7 +4267,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7",
-      "id" : 48,
+      "id" : 47,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4544,7 +4537,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8",
-      "id" : 49,
+      "id" : 48,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4669,7 +4662,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9",
-      "id" : 50,
+      "id" : 49,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -4860,7 +4853,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10",
-      "id" : 51,
+      "id" : 50,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5019,7 +5012,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11",
-      "id" : 52,
+      "id" : 51,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5244,7 +5237,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12",
-      "id" : 53,
+      "id" : 52,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5448,7 +5441,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13",
-      "id" : 54,
+      "id" : 53,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5718,7 +5711,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14",
-      "id" : 55,
+      "id" : 54,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5956,7 +5949,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15",
-      "id" : 56,
+      "id" : 55,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6260,13 +6253,13 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0",
-      "id" : 57,
+      "id" : 56,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1",
-      "id" : 58,
+      "id" : 57,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6391,7 +6384,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2",
-      "id" : 59,
+      "id" : 58,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6535,7 +6528,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3",
-      "id" : 60,
+      "id" : 59,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6713,7 +6706,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4",
-      "id" : 61,
+      "id" : 60,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6861,7 +6854,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5",
-      "id" : 62,
+      "id" : 61,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7043,7 +7036,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6",
-      "id" : 63,
+      "id" : 62,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7244,7 +7237,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7",
-      "id" : 64,
+      "id" : 63,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7479,7 +7472,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8",
-      "id" : 65,
+      "id" : 64,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7604,7 +7597,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9",
-      "id" : 66,
+      "id" : 65,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7763,7 +7756,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10",
-      "id" : 67,
+      "id" : 66,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7941,7 +7934,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11",
-      "id" : 68,
+      "id" : 67,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8153,7 +8146,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12",
-      "id" : 69,
+      "id" : 68,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8335,7 +8328,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13",
-      "id" : 70,
+      "id" : 69,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8551,7 +8544,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14",
-      "id" : 71,
+      "id" : 70,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8786,7 +8779,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15",
-      "id" : 72,
+      "id" : 71,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9055,7 +9048,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.pop_mpls_if_present",
-      "id" : 73,
+      "id" : 72,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9096,7 +9089,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.set_mpls",
-      "id" : 74,
+      "id" : 73,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9213,7 +9206,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.push_vlan",
-      "id" : 75,
+      "id" : 74,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9311,7 +9304,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.pop_vlan",
-      "id" : 76,
+      "id" : 75,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9324,7 +9317,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 316,
+            "line" : 322,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
           }
@@ -9332,6 +9325,28 @@
       ]
     },
     {
+      "name" : "FabricEgress.egress_next.drop",
+      "id" : 76,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "mark_to_drop",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "standard_metadata"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 327,
+            "column" : 8,
+            "source_fragment" : "mark_to_drop(standard_metadata)"
+          }
+        }
+      ]
+    },
+    {
       "name" : "act_4",
       "id" : 77,
       "runtime_data" : [],
@@ -9414,7 +9429,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 337,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -9427,66 +9442,6 @@
       "runtime_data" : [],
       "primitives" : [
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "egress_next_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_8",
-      "id" : 81,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "egress_next_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : false
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_9",
-      "id" : 82,
-      "runtime_data" : [],
-      "primitives" : [
-        {
           "op" : "mark_to_drop",
           "parameters" : [
             {
@@ -9496,7 +9451,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 376,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -9504,8 +9459,8 @@
       ]
     },
     {
-      "name" : "act_10",
-      "id" : 83,
+      "name" : "act_8",
+      "id" : 81,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9545,7 +9500,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 369,
+            "line" : 375,
             "column" : 12,
             "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
           }
@@ -9553,8 +9508,8 @@
       ]
     },
     {
-      "name" : "act_11",
-      "id" : 84,
+      "name" : "act_9",
+      "id" : 82,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9567,7 +9522,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 374,
+            "line" : 380,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -9575,8 +9530,8 @@
       ]
     },
     {
-      "name" : "act_12",
-      "id" : 85,
+      "name" : "act_10",
+      "id" : 83,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9616,7 +9571,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 373,
+            "line" : 379,
             "column" : 16,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
           }
@@ -9624,8 +9579,8 @@
       ]
     },
     {
-      "name" : "act_13",
-      "id" : 86,
+      "name" : "act_11",
+      "id" : 84,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9654,8 +9609,8 @@
       ]
     },
     {
-      "name" : "act_14",
-      "id" : 87,
+      "name" : "act_12",
+      "id" : 85,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9690,8 +9645,8 @@
       ]
     },
     {
-      "name" : "act_15",
-      "id" : 88,
+      "name" : "act_13",
+      "id" : 86,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9739,8 +9694,8 @@
       ]
     },
     {
-      "name" : "act_16",
-      "id" : 89,
+      "name" : "act_14",
+      "id" : 87,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9788,8 +9743,8 @@
       ]
     },
     {
-      "name" : "act_17",
-      "id" : 90,
+      "name" : "act_15",
+      "id" : 88,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9837,8 +9792,8 @@
       ]
     },
     {
-      "name" : "act_18",
-      "id" : 91,
+      "name" : "act_16",
+      "id" : 89,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10948,7 +10903,7 @@
           "id" : 18,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 337,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -10977,7 +10932,7 @@
           "id" : 19,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 353,
             "column" : 36,
             "source_fragment" : "pop_mpls_if_present()"
           },
@@ -10988,14 +10943,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [73],
+          "action_ids" : [72],
           "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" : 73,
+            "action_id" : 72,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -11006,7 +10961,7 @@
           "id" : 20,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 343,
+            "line" : 355,
             "column" : 12,
             "source_fragment" : "set_mpls()"
           },
@@ -11017,14 +10972,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [74],
+          "action_ids" : [73],
           "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" : 74,
+            "action_id" : 73,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -11035,7 +10990,7 @@
           "id" : 21,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 320,
+            "line" : 331,
             "column" : 10,
             "source_fragment" : "egress_vlan"
           },
@@ -11059,15 +11014,16 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [76, 36],
-          "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
-          "base_default_next" : null,
+          "action_ids" : [74, 75, 76],
+          "actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
+          "base_default_next" : "node_41",
           "next_tables" : {
-            "__HIT__" : "tbl_act_7",
-            "__MISS__" : "tbl_act_8"
+            "FabricEgress.egress_next.push_vlan" : "node_41",
+            "FabricEgress.egress_next.pop_vlan" : "node_41",
+            "FabricEgress.egress_next.drop" : "node_41"
           },
           "default_entry" : {
-            "action_id" : 36,
+            "action_id" : 76,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -11076,29 +11032,12 @@
         {
           "name" : "tbl_act_7",
           "id" : 22,
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [80],
-          "actions" : ["act_7"],
-          "base_default_next" : "node_43",
-          "next_tables" : {
-            "act_7" : "node_43"
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 375,
+            "column" : 25,
+            "source_fragment" : "="
           },
-          "default_entry" : {
-            "action_id" : 80,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_8",
-          "id" : 23,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -11120,13 +11059,13 @@
           }
         },
         {
-          "name" : "tbl_egress_next_push_vlan",
-          "id" : 24,
+          "name" : "tbl_act_8",
+          "id" : 23,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 360,
-            "column" : 20,
-            "source_fragment" : "push_vlan()"
+            "line" : 376,
+            "column" : 35,
+            "source_fragment" : "mark_to_drop(standard_metadata)"
           },
           "key" : [],
           "match_type" : "exact",
@@ -11135,14 +11074,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [75],
-          "actions" : ["FabricEgress.egress_next.push_vlan"],
-          "base_default_next" : "node_46",
+          "action_ids" : [80],
+          "actions" : ["act_7"],
+          "base_default_next" : "node_49",
           "next_tables" : {
-            "FabricEgress.egress_next.push_vlan" : "node_46"
+            "act_7" : "node_49"
           },
           "default_entry" : {
-            "action_id" : 75,
+            "action_id" : 80,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -11150,11 +11089,11 @@
         },
         {
           "name" : "tbl_act_9",
-          "id" : 25,
+          "id" : 24,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 369,
-            "column" : 25,
+            "line" : 379,
+            "column" : 29,
             "source_fragment" : "="
           },
           "key" : [],
@@ -11166,9 +11105,9 @@
           "direct_meters" : null,
           "action_ids" : [83],
           "actions" : ["act_10"],
-          "base_default_next" : "node_48",
+          "base_default_next" : "node_47",
           "next_tables" : {
-            "act_10" : "node_48"
+            "act_10" : "node_47"
           },
           "default_entry" : {
             "action_id" : 83,
@@ -11179,11 +11118,11 @@
         },
         {
           "name" : "tbl_act_10",
-          "id" : 26,
+          "id" : 25,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
-            "column" : 35,
+            "line" : 380,
+            "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
           "key" : [],
@@ -11195,9 +11134,9 @@
           "direct_meters" : null,
           "action_ids" : [82],
           "actions" : ["act_9"],
-          "base_default_next" : "node_54",
+          "base_default_next" : "node_49",
           "next_tables" : {
-            "act_9" : "node_54"
+            "act_9" : "node_49"
           },
           "default_entry" : {
             "action_id" : 82,
@@ -11207,66 +11146,8 @@
           }
         },
         {
-          "name" : "tbl_act_11",
-          "id" : 27,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 373,
-            "column" : 29,
-            "source_fragment" : "="
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [85],
-          "actions" : ["act_12"],
-          "base_default_next" : "node_52",
-          "next_tables" : {
-            "act_12" : "node_52"
-          },
-          "default_entry" : {
-            "action_id" : 85,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_12",
-          "id" : 28,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 374,
-            "column" : 39,
-            "source_fragment" : "mark_to_drop(standard_metadata)"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [84],
-          "actions" : ["act_11"],
-          "base_default_next" : "node_54",
-          "next_tables" : {
-            "act_11" : "node_54"
-          },
-          "default_entry" : {
-            "action_id" : 84,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
           "name" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
-          "id" : 29,
+          "id" : 26,
           "source_info" : {
             "filename" : "include/int/int_source.p4",
             "line" : 66,
@@ -11305,12 +11186,12 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [39, 34],
+          "action_ids" : [38, 34],
           "actions" : ["FabricEgress.process_int_main.process_int_source.int_source_dscp", "nop"],
-          "base_default_next" : "node_57",
+          "base_default_next" : "node_52",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_57",
-            "nop" : "node_57"
+            "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_52",
+            "nop" : "node_52"
           },
           "default_entry" : {
             "action_id" : 34,
@@ -11320,8 +11201,8 @@
           }
         },
         {
-          "name" : "tbl_act_13",
-          "id" : 30,
+          "name" : "tbl_act_11",
+          "id" : 27,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -11329,14 +11210,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [86],
-          "actions" : ["act_13"],
+          "action_ids" : [84],
+          "actions" : ["act_11"],
           "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
           "next_tables" : {
-            "act_13" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
+            "act_11" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
           },
           "default_entry" : {
-            "action_id" : 86,
+            "action_id" : 84,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -11344,7 +11225,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
-          "id" : 31,
+          "id" : 28,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 315,
@@ -11365,12 +11246,12 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [40, 35],
+          "action_ids" : [39, 35],
           "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"],
-          "base_default_next" : "node_60",
+          "base_default_next" : "node_55",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_60",
-            "nop" : "node_60"
+            "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_55",
+            "nop" : "node_55"
           },
           "default_entry" : {
             "action_id" : 35,
@@ -11380,8 +11261,8 @@
           }
         },
         {
-          "name" : "tbl_act_14",
-          "id" : 32,
+          "name" : "tbl_act_12",
+          "id" : 29,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 420,
@@ -11395,14 +11276,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [87],
-          "actions" : ["act_14"],
-          "base_default_next" : "node_62",
+          "action_ids" : [85],
+          "actions" : ["act_12"],
+          "base_default_next" : "node_57",
           "next_tables" : {
-            "act_14" : "node_62"
+            "act_12" : "node_57"
           },
           "default_entry" : {
-            "action_id" : 87,
+            "action_id" : 85,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -11410,7 +11291,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003",
-          "id" : 33,
+          "id" : 30,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 331,
@@ -11431,7 +11312,7 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 37],
+          "action_ids" : [40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 36],
           "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" : {
@@ -11454,7 +11335,7 @@
             "NoAction" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407"
           },
           "default_entry" : {
-            "action_id" : 37,
+            "action_id" : 36,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -11474,7 +11355,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 41,
+                "action_id" : 40,
                 "action_data" : []
               },
               "priority" : 1
@@ -11493,7 +11374,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 42,
+                "action_id" : 41,
                 "action_data" : []
               },
               "priority" : 2
@@ -11512,7 +11393,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 43,
+                "action_id" : 42,
                 "action_data" : []
               },
               "priority" : 3
@@ -11531,7 +11412,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 44,
+                "action_id" : 43,
                 "action_data" : []
               },
               "priority" : 4
@@ -11550,7 +11431,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 45,
+                "action_id" : 44,
                 "action_data" : []
               },
               "priority" : 5
@@ -11569,7 +11450,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 46,
+                "action_id" : 45,
                 "action_data" : []
               },
               "priority" : 6
@@ -11588,7 +11469,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 47,
+                "action_id" : 46,
                 "action_data" : []
               },
               "priority" : 7
@@ -11607,7 +11488,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 48,
+                "action_id" : 47,
                 "action_data" : []
               },
               "priority" : 8
@@ -11626,7 +11507,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 49,
+                "action_id" : 48,
                 "action_data" : []
               },
               "priority" : 9
@@ -11645,7 +11526,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 50,
+                "action_id" : 49,
                 "action_data" : []
               },
               "priority" : 10
@@ -11664,7 +11545,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 51,
+                "action_id" : 50,
                 "action_data" : []
               },
               "priority" : 11
@@ -11683,7 +11564,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 52,
+                "action_id" : 51,
                 "action_data" : []
               },
               "priority" : 12
@@ -11702,7 +11583,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 53,
+                "action_id" : 52,
                 "action_data" : []
               },
               "priority" : 13
@@ -11721,7 +11602,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 54,
+                "action_id" : 53,
                 "action_data" : []
               },
               "priority" : 14
@@ -11740,7 +11621,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 55,
+                "action_id" : 54,
                 "action_data" : []
               },
               "priority" : 15
@@ -11759,7 +11640,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 56,
+                "action_id" : 55,
                 "action_data" : []
               },
               "priority" : 16
@@ -11768,7 +11649,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407",
-          "id" : 34,
+          "id" : 31,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 375,
@@ -11789,30 +11670,30 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 38],
+          "action_ids" : [56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 37],
           "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_15",
+          "base_default_next" : "tbl_act_13",
           "next_tables" : {
-            "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"
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_13",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_13",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_13",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_13",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_13",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_13",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_13",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_13",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_13",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_13",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_13",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_13",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_13",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_13",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_13",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_13",
+            "NoAction" : "tbl_act_13"
           },
           "default_entry" : {
-            "action_id" : 38,
+            "action_id" : 37,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -11832,7 +11713,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 57,
+                "action_id" : 56,
                 "action_data" : []
               },
               "priority" : 1
@@ -11851,7 +11732,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 58,
+                "action_id" : 57,
                 "action_data" : []
               },
               "priority" : 2
@@ -11870,7 +11751,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 59,
+                "action_id" : 58,
                 "action_data" : []
               },
               "priority" : 3
@@ -11889,7 +11770,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 60,
+                "action_id" : 59,
                 "action_data" : []
               },
               "priority" : 4
@@ -11908,7 +11789,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 61,
+                "action_id" : 60,
                 "action_data" : []
               },
               "priority" : 5
@@ -11927,7 +11808,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 62,
+                "action_id" : 61,
                 "action_data" : []
               },
               "priority" : 6
@@ -11946,7 +11827,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 63,
+                "action_id" : 62,
                 "action_data" : []
               },
               "priority" : 7
@@ -11965,7 +11846,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 64,
+                "action_id" : 63,
                 "action_data" : []
               },
               "priority" : 8
@@ -11984,7 +11865,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 65,
+                "action_id" : 64,
                 "action_data" : []
               },
               "priority" : 9
@@ -12003,7 +11884,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 66,
+                "action_id" : 65,
                 "action_data" : []
               },
               "priority" : 10
@@ -12022,7 +11903,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 67,
+                "action_id" : 66,
                 "action_data" : []
               },
               "priority" : 11
@@ -12041,7 +11922,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 68,
+                "action_id" : 67,
                 "action_data" : []
               },
               "priority" : 12
@@ -12060,7 +11941,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 69,
+                "action_id" : 68,
                 "action_data" : []
               },
               "priority" : 13
@@ -12079,7 +11960,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 70,
+                "action_id" : 69,
                 "action_data" : []
               },
               "priority" : 14
@@ -12098,7 +11979,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 71,
+                "action_id" : 70,
                 "action_data" : []
               },
               "priority" : 15
@@ -12117,7 +11998,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 72,
+                "action_id" : 71,
                 "action_data" : []
               },
               "priority" : 16
@@ -12125,8 +12006,8 @@
           ]
         },
         {
-          "name" : "tbl_act_15",
-          "id" : 35,
+          "name" : "tbl_act_13",
+          "id" : 32,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 425,
@@ -12140,22 +12021,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [89],
-          "actions" : ["act_16"],
-          "base_default_next" : "node_66",
+          "action_ids" : [87],
+          "actions" : ["act_14"],
+          "base_default_next" : "node_61",
           "next_tables" : {
-            "act_16" : "node_66"
+            "act_14" : "node_61"
           },
           "default_entry" : {
-            "action_id" : 89,
+            "action_id" : 87,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_16",
-          "id" : 36,
+          "name" : "tbl_act_14",
+          "id" : 33,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 428,
@@ -12169,22 +12050,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [88],
-          "actions" : ["act_15"],
-          "base_default_next" : "node_68",
+          "action_ids" : [86],
+          "actions" : ["act_13"],
+          "base_default_next" : "node_63",
           "next_tables" : {
-            "act_15" : "node_68"
+            "act_13" : "node_63"
           },
           "default_entry" : {
-            "action_id" : 88,
+            "action_id" : 86,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_17",
-          "id" : 37,
+          "name" : "tbl_act_15",
+          "id" : 34,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 431,
@@ -12198,22 +12079,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [90],
-          "actions" : ["act_17"],
-          "base_default_next" : "node_70",
+          "action_ids" : [88],
+          "actions" : ["act_15"],
+          "base_default_next" : "node_65",
           "next_tables" : {
-            "act_17" : "node_70"
+            "act_15" : "node_65"
           },
           "default_entry" : {
-            "action_id" : 90,
+            "action_id" : 88,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_18",
-          "id" : 38,
+          "name" : "tbl_act_16",
+          "id" : 35,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 434,
@@ -12227,14 +12108,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [91],
-          "actions" : ["act_18"],
+          "action_ids" : [89],
+          "actions" : ["act_16"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_18" : null
+            "act_16" : null
           },
           "default_entry" : {
-            "action_id" : 91,
+            "action_id" : 89,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -12307,7 +12188,7 @@
           "id" : 12,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 347,
             "column" : 12,
             "source_fragment" : "fabric_metadata.is_multicast == true ..."
           },
@@ -12360,7 +12241,7 @@
           "id" : 13,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 340,
+            "line" : 352,
             "column" : 12,
             "source_fragment" : "fabric_metadata.mpls_label == 0"
           },
@@ -12386,7 +12267,7 @@
           "id" : 14,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 353,
             "column" : 16,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -12405,67 +12286,11 @@
           "false_next" : "FabricEgress.egress_next.egress_vlan"
         },
         {
-          "name" : "node_43",
+          "name" : "node_41",
           "id" : 15,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 357,
-            "column" : 16,
-            "source_fragment" : "!egress_vlan.apply().hit"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "not",
-              "left" : null,
-              "right" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "d2b",
-                  "left" : null,
-                  "right" : {
-                    "type" : "field",
-                    "value" : ["scalars", "egress_next_tmp"]
-                  }
-                }
-              }
-            }
-          },
-          "true_next" : "node_44",
-          "false_next" : "node_46"
-        },
-        {
-          "name" : "node_44",
-          "id" : 16,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 359,
-            "column" : 20,
-            "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "!=",
-              "left" : {
-                "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
-              },
-              "right" : {
-                "type" : "hexstr",
-                "value" : "0x0ffe"
-              }
-            }
-          },
-          "true_next" : "tbl_egress_next_push_vlan",
-          "false_next" : "node_46"
-        },
-        {
-          "name" : "node_46",
-          "id" : 17,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 374,
             "column" : 12,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -12480,15 +12305,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_9",
-          "false_next" : "node_50"
+          "true_next" : "tbl_act_7",
+          "false_next" : "node_45"
         },
         {
-          "name" : "node_48",
-          "id" : 18,
+          "name" : "node_43",
+          "id" : 16,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 376,
             "column" : 16,
             "source_fragment" : "hdr.mpls.ttl == 0"
           },
@@ -12506,15 +12331,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_10",
-          "false_next" : "node_54"
+          "true_next" : "tbl_act_8",
+          "false_next" : "node_49"
         },
         {
-          "name" : "node_50",
-          "id" : 19,
+          "name" : "node_45",
+          "id" : 17,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 378,
             "column" : 15,
             "source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
           },
@@ -12549,15 +12374,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_11",
-          "false_next" : "node_54"
+          "true_next" : "tbl_act_9",
+          "false_next" : "node_49"
         },
         {
-          "name" : "node_52",
-          "id" : 20,
+          "name" : "node_47",
+          "id" : 18,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 374,
+            "line" : 380,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl == 0"
           },
@@ -12575,12 +12400,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_12",
-          "false_next" : "node_54"
+          "true_next" : "tbl_act_10",
+          "false_next" : "node_49"
         },
         {
-          "name" : "node_54",
-          "id" : 21,
+          "name" : "node_49",
+          "id" : 19,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 102,
@@ -12656,11 +12481,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "node_55"
+          "true_next" : "node_50"
         },
         {
-          "name" : "node_55",
-          "id" : 22,
+          "name" : "node_50",
+          "id" : 20,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 106,
@@ -12689,11 +12514,11 @@
             }
           },
           "true_next" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
-          "false_next" : "node_57"
+          "false_next" : "node_52"
         },
         {
-          "name" : "node_57",
-          "id" : 23,
+          "name" : "node_52",
+          "id" : 21,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 110,
@@ -12712,11 +12537,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_13"
+          "true_next" : "tbl_act_11"
         },
         {
-          "name" : "node_60",
-          "id" : 24,
+          "name" : "node_55",
+          "id" : 22,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 419,
@@ -12744,12 +12569,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_14",
-          "false_next" : "node_62"
+          "true_next" : "tbl_act_12",
+          "false_next" : "node_57"
         },
         {
-          "name" : "node_62",
-          "id" : 25,
+          "name" : "node_57",
+          "id" : 23,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -12772,8 +12597,8 @@
           "true_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003"
         },
         {
-          "name" : "node_66",
-          "id" : 26,
+          "name" : "node_61",
+          "id" : 24,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 427,
@@ -12791,12 +12616,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_16",
-          "false_next" : "node_68"
+          "true_next" : "tbl_act_14",
+          "false_next" : "node_63"
         },
         {
-          "name" : "node_68",
-          "id" : 27,
+          "name" : "node_63",
+          "id" : 25,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 430,
@@ -12814,12 +12639,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_17",
-          "false_next" : "node_70"
+          "true_next" : "tbl_act_15",
+          "false_next" : "node_65"
         },
         {
-          "name" : "node_70",
-          "id" : 28,
+          "name" : "node_65",
+          "id" : 26,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 433,
@@ -12838,7 +12663,7 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_18"
+          "true_next" : "tbl_act_16"
         }
       ]
     }
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 a661e7a..add34cf 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
@@ -471,14 +471,17 @@
     match_type: EXACT
   }
   action_refs {
+    id: 16807339
+  }
+  action_refs {
     id: 16790030
   }
   action_refs {
-    id: 16819938
+    id: 16787838
     annotations: "@defaultonly"
     scope: DEFAULT_ONLY
   }
-  const_default_action_id: 16819938
+  const_default_action_id: 16787838
   direct_resource_ids: 318827144
   size: 1024
 }
@@ -612,7 +615,7 @@
   preamble {
     id: 16820765
     name: "FabricIngress.acl.drop"
-    alias: "drop"
+    alias: "acl.drop"
   }
 }
 actions {
@@ -779,11 +782,25 @@
 }
 actions {
   preamble {
+    id: 16807339
+    name: "FabricEgress.egress_next.push_vlan"
+    alias: "push_vlan"
+  }
+}
+actions {
+  preamble {
     id: 16790030
     name: "FabricEgress.egress_next.pop_vlan"
     alias: "pop_vlan"
   }
 }
+actions {
+  preamble {
+    id: 16787838
+    name: "FabricEgress.egress_next.drop"
+    alias: "egress_next.drop"
+  }
+}
 action_profiles {
   preamble {
     id: 285217164
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 f5064b5..0f817fa 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,13 +5,12 @@
       "id" : 0,
       "fields" : [
         ["last_ipv4_dscp_0", 6, false],
+        ["tmp_0", 16, false],
         ["tmp_1", 16, false],
-        ["tmp_2", 16, false],
-        ["tmp_3", 4, false],
+        ["tmp_2", 4, false],
         ["tmp", 32, false],
-        ["tmp_0", 32, false],
+        ["tmp_3", 32, false],
         ["spgw_tmp", 1, false],
-        ["egress_next_tmp", 1, false],
         ["process_int_main_process_int_transit_hasReturned", 1, false],
         ["fabric_metadata_t._ip_eth_type0", 16, false],
         ["fabric_metadata_t._vlan_id1", 12, false],
@@ -52,7 +51,8 @@
         ["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]
+        ["fabric_metadata_t._int_meta_eg_tstamp39", 32, false],
+        ["_padding_0", 1, false]
       ]
     },
     {
@@ -648,7 +648,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_1"]
+                  "value" : ["scalars", "tmp_0"]
                 },
                 {
                   "type" : "lookahead",
@@ -686,7 +686,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_0"]
             }
           ]
         },
@@ -707,7 +707,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_2"]
+                  "value" : ["scalars", "tmp_1"]
                 },
                 {
                   "type" : "lookahead",
@@ -733,7 +733,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_2"]
+              "value" : ["scalars", "tmp_1"]
             }
           ]
         },
@@ -843,7 +843,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_3"]
+                  "value" : ["scalars", "tmp_2"]
                 },
                 {
                   "type" : "lookahead",
@@ -869,7 +869,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_3"]
+              "value" : ["scalars", "tmp_2"]
             }
           ]
         },
@@ -1530,7 +1530,7 @@
       "binding" : "FabricEgress.egress_next.egress_vlan",
       "source_info" : {
         "filename" : "include/control/next.p4",
-        "line" : 313,
+        "line" : 314,
         "column" : 50,
         "source_fragment" : "egress_vlan_counter"
       }
@@ -5753,7 +5753,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_0"]
+              "value" : ["scalars", "tmp_3"]
             },
             {
               "type" : "expression",
@@ -5789,7 +5789,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_0"]
+              "value" : ["scalars", "tmp_3"]
             }
           ],
           "source_info" : {
@@ -5814,7 +5814,7 @@
       "primitives" : []
     },
     {
-      "name" : "nop",
+      "name" : "NoAction",
       "id" : 57,
       "runtime_data" : [],
       "primitives" : []
@@ -5826,14 +5826,8 @@
       "primitives" : []
     },
     {
-      "name" : "NoAction",
-      "id" : 59,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricEgress.process_int_main.process_int_source.int_source_dscp",
-      "id" : 60,
+      "id" : 59,
       "runtime_data" : [
         {
           "name" : "max_hop",
@@ -6328,7 +6322,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.init_metadata",
-      "id" : 61,
+      "id" : 60,
       "runtime_data" : [
         {
           "name" : "switch_id",
@@ -6388,13 +6382,13 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i0",
-      "id" : 62,
+      "id" : 61,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i1",
-      "id" : 63,
+      "id" : 62,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6551,7 +6545,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i2",
-      "id" : 64,
+      "id" : 63,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6676,7 +6670,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i3",
-      "id" : 65,
+      "id" : 64,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6867,7 +6861,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i4",
-      "id" : 66,
+      "id" : 65,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7037,7 +7031,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i5",
-      "id" : 67,
+      "id" : 66,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7273,7 +7267,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i6",
-      "id" : 68,
+      "id" : 67,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7477,7 +7471,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i7",
-      "id" : 69,
+      "id" : 68,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7747,7 +7741,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i8",
-      "id" : 70,
+      "id" : 69,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7872,7 +7866,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i9",
-      "id" : 71,
+      "id" : 70,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8063,7 +8057,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i10",
-      "id" : 72,
+      "id" : 71,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8222,7 +8216,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i11",
-      "id" : 73,
+      "id" : 72,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8447,7 +8441,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i12",
-      "id" : 74,
+      "id" : 73,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8651,7 +8645,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i13",
-      "id" : 75,
+      "id" : 74,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8921,7 +8915,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i14",
-      "id" : 76,
+      "id" : 75,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9159,7 +9153,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0003_i15",
-      "id" : 77,
+      "id" : 76,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9463,13 +9457,13 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0",
-      "id" : 78,
+      "id" : 77,
       "runtime_data" : [],
       "primitives" : []
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1",
-      "id" : 79,
+      "id" : 78,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9594,7 +9588,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2",
-      "id" : 80,
+      "id" : 79,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9738,7 +9732,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3",
-      "id" : 81,
+      "id" : 80,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -9916,7 +9910,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4",
-      "id" : 82,
+      "id" : 81,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10064,7 +10058,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5",
-      "id" : 83,
+      "id" : 82,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10246,7 +10240,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6",
-      "id" : 84,
+      "id" : 83,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10447,7 +10441,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7",
-      "id" : 85,
+      "id" : 84,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10682,7 +10676,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8",
-      "id" : 86,
+      "id" : 85,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10807,7 +10801,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9",
-      "id" : 87,
+      "id" : 86,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -10966,7 +10960,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10",
-      "id" : 88,
+      "id" : 87,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11144,7 +11138,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11",
-      "id" : 89,
+      "id" : 88,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11356,7 +11350,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12",
-      "id" : 90,
+      "id" : 89,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11538,7 +11532,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13",
-      "id" : 91,
+      "id" : 90,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11754,7 +11748,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14",
-      "id" : 92,
+      "id" : 91,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -11989,7 +11983,7 @@
     },
     {
       "name" : "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15",
-      "id" : 93,
+      "id" : 92,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -12258,7 +12252,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.pop_mpls_if_present",
-      "id" : 94,
+      "id" : 93,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -12299,7 +12293,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.set_mpls",
-      "id" : 95,
+      "id" : 94,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -12416,7 +12410,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.push_vlan",
-      "id" : 96,
+      "id" : 95,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -12514,7 +12508,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.pop_vlan",
-      "id" : 97,
+      "id" : 96,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -12527,7 +12521,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 316,
+            "line" : 322,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
           }
@@ -12535,6 +12529,28 @@
       ]
     },
     {
+      "name" : "FabricEgress.egress_next.drop",
+      "id" : 97,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "mark_to_drop",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "standard_metadata"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 327,
+            "column" : 8,
+            "source_fragment" : "mark_to_drop(standard_metadata)"
+          }
+        }
+      ]
+    },
+    {
       "name" : "FabricEgress.spgw.gtpu_encap",
       "id" : 98,
       "runtime_data" : [],
@@ -13209,7 +13225,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 337,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -13222,66 +13238,6 @@
       "runtime_data" : [],
       "primitives" : [
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "egress_next_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_12",
-      "id" : 103,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "egress_next_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : false
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_13",
-      "id" : 104,
-      "runtime_data" : [],
-      "primitives" : [
-        {
           "op" : "mark_to_drop",
           "parameters" : [
             {
@@ -13291,7 +13247,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 376,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -13299,8 +13255,8 @@
       ]
     },
     {
-      "name" : "act_14",
-      "id" : 105,
+      "name" : "act_12",
+      "id" : 103,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13340,7 +13296,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 369,
+            "line" : 375,
             "column" : 12,
             "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
           }
@@ -13348,8 +13304,8 @@
       ]
     },
     {
-      "name" : "act_15",
-      "id" : 106,
+      "name" : "act_13",
+      "id" : 104,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13362,7 +13318,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 374,
+            "line" : 380,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -13370,8 +13326,8 @@
       ]
     },
     {
-      "name" : "act_16",
-      "id" : 107,
+      "name" : "act_14",
+      "id" : 105,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13411,7 +13367,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 373,
+            "line" : 379,
             "column" : 16,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
           }
@@ -13419,8 +13375,8 @@
       ]
     },
     {
-      "name" : "act_17",
-      "id" : 108,
+      "name" : "act_15",
+      "id" : 106,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13445,8 +13401,8 @@
       ]
     },
     {
-      "name" : "act_18",
-      "id" : 109,
+      "name" : "act_16",
+      "id" : 107,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13475,8 +13431,8 @@
       ]
     },
     {
-      "name" : "act_19",
-      "id" : 110,
+      "name" : "act_17",
+      "id" : 108,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13511,8 +13467,8 @@
       ]
     },
     {
-      "name" : "act_20",
-      "id" : 111,
+      "name" : "act_18",
+      "id" : 109,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13560,8 +13516,8 @@
       ]
     },
     {
-      "name" : "act_21",
-      "id" : 112,
+      "name" : "act_19",
+      "id" : 110,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13609,8 +13565,8 @@
       ]
     },
     {
-      "name" : "act_22",
-      "id" : 113,
+      "name" : "act_20",
+      "id" : 111,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -13658,8 +13614,8 @@
       ]
     },
     {
-      "name" : "act_23",
-      "id" : 114,
+      "name" : "act_21",
+      "id" : 112,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -15427,7 +15383,7 @@
           "id" : 28,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 337,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -15456,7 +15412,7 @@
           "id" : 29,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 353,
             "column" : 36,
             "source_fragment" : "pop_mpls_if_present()"
           },
@@ -15467,14 +15423,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [94],
+          "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" : 94,
+            "action_id" : 93,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15485,7 +15441,7 @@
           "id" : 30,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 343,
+            "line" : 355,
             "column" : 12,
             "source_fragment" : "set_mpls()"
           },
@@ -15496,14 +15452,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [95],
+          "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" : 95,
+            "action_id" : 94,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15514,7 +15470,7 @@
           "id" : 31,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 320,
+            "line" : 331,
             "column" : 10,
             "source_fragment" : "egress_vlan"
           },
@@ -15538,15 +15494,16 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [97, 57],
-          "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
-          "base_default_next" : null,
+          "action_ids" : [95, 96, 97],
+          "actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
+          "base_default_next" : "node_56",
           "next_tables" : {
-            "__HIT__" : "tbl_act_11",
-            "__MISS__" : "tbl_act_12"
+            "FabricEgress.egress_next.push_vlan" : "node_56",
+            "FabricEgress.egress_next.pop_vlan" : "node_56",
+            "FabricEgress.egress_next.drop" : "node_56"
           },
           "default_entry" : {
-            "action_id" : 57,
+            "action_id" : 97,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15555,29 +15512,12 @@
         {
           "name" : "tbl_act_11",
           "id" : 32,
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [102],
-          "actions" : ["act_11"],
-          "base_default_next" : "node_58",
-          "next_tables" : {
-            "act_11" : "node_58"
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 375,
+            "column" : 25,
+            "source_fragment" : "="
           },
-          "default_entry" : {
-            "action_id" : 102,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_12",
-          "id" : 33,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -15599,13 +15539,13 @@
           }
         },
         {
-          "name" : "tbl_egress_next_push_vlan",
-          "id" : 34,
+          "name" : "tbl_act_12",
+          "id" : 33,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 360,
-            "column" : 20,
-            "source_fragment" : "push_vlan()"
+            "line" : 376,
+            "column" : 35,
+            "source_fragment" : "mark_to_drop(standard_metadata)"
           },
           "key" : [],
           "match_type" : "exact",
@@ -15614,14 +15554,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [96],
-          "actions" : ["FabricEgress.egress_next.push_vlan"],
-          "base_default_next" : "node_61",
+          "action_ids" : [102],
+          "actions" : ["act_11"],
+          "base_default_next" : "node_64",
           "next_tables" : {
-            "FabricEgress.egress_next.push_vlan" : "node_61"
+            "act_11" : "node_64"
           },
           "default_entry" : {
-            "action_id" : 96,
+            "action_id" : 102,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15629,11 +15569,11 @@
         },
         {
           "name" : "tbl_act_13",
-          "id" : 35,
+          "id" : 34,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 369,
-            "column" : 25,
+            "line" : 379,
+            "column" : 29,
             "source_fragment" : "="
           },
           "key" : [],
@@ -15645,9 +15585,9 @@
           "direct_meters" : null,
           "action_ids" : [105],
           "actions" : ["act_14"],
-          "base_default_next" : "node_63",
+          "base_default_next" : "node_62",
           "next_tables" : {
-            "act_14" : "node_63"
+            "act_14" : "node_62"
           },
           "default_entry" : {
             "action_id" : 105,
@@ -15658,11 +15598,11 @@
         },
         {
           "name" : "tbl_act_14",
-          "id" : 36,
+          "id" : 35,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
-            "column" : 35,
+            "line" : 380,
+            "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
           "key" : [],
@@ -15674,9 +15614,9 @@
           "direct_meters" : null,
           "action_ids" : [104],
           "actions" : ["act_13"],
-          "base_default_next" : "node_69",
+          "base_default_next" : "node_64",
           "next_tables" : {
-            "act_13" : "node_69"
+            "act_13" : "node_64"
           },
           "default_entry" : {
             "action_id" : 104,
@@ -15686,13 +15626,13 @@
           }
         },
         {
-          "name" : "tbl_act_15",
-          "id" : 37,
+          "name" : "tbl_spgw_gtpu_encap",
+          "id" : 36,
           "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 373,
-            "column" : 29,
-            "source_fragment" : "="
+            "filename" : "include/control/spgw.p4",
+            "line" : 330,
+            "column" : 16,
+            "source_fragment" : "gtpu_encap()"
           },
           "key" : [],
           "match_type" : "exact",
@@ -15701,27 +15641,27 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [107],
-          "actions" : ["act_16"],
+          "action_ids" : [98],
+          "actions" : ["FabricEgress.spgw.gtpu_encap"],
           "base_default_next" : "node_67",
           "next_tables" : {
-            "act_16" : "node_67"
+            "FabricEgress.spgw.gtpu_encap" : "node_67"
           },
           "default_entry" : {
-            "action_id" : 107,
+            "action_id" : 98,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_16",
-          "id" : 38,
+          "name" : "tbl_act_15",
+          "id" : 37,
           "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 374,
-            "column" : 39,
-            "source_fragment" : "mark_to_drop(standard_metadata)"
+            "filename" : "include/control/spgw.p4",
+            "line" : 333,
+            "column" : 16,
+            "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
           },
           "key" : [],
           "match_type" : "exact",
@@ -15744,66 +15684,8 @@
           }
         },
         {
-          "name" : "tbl_spgw_gtpu_encap",
-          "id" : 39,
-          "source_info" : {
-            "filename" : "include/control/spgw.p4",
-            "line" : 330,
-            "column" : 16,
-            "source_fragment" : "gtpu_encap()"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [98],
-          "actions" : ["FabricEgress.spgw.gtpu_encap"],
-          "base_default_next" : "node_72",
-          "next_tables" : {
-            "FabricEgress.spgw.gtpu_encap" : "node_72"
-          },
-          "default_entry" : {
-            "action_id" : 98,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_17",
-          "id" : 40,
-          "source_info" : {
-            "filename" : "include/control/spgw.p4",
-            "line" : 333,
-            "column" : 16,
-            "source_fragment" : "pdr_counter.count(fabric_md.spgw.ctr_id)"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [108],
-          "actions" : ["act_17"],
-          "base_default_next" : "node_74",
-          "next_tables" : {
-            "act_17" : "node_74"
-          },
-          "default_entry" : {
-            "action_id" : 108,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
           "name" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
-          "id" : 41,
+          "id" : 38,
           "source_info" : {
             "filename" : "include/int/int_source.p4",
             "line" : 66,
@@ -15842,12 +15724,12 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [60, 55],
+          "action_ids" : [59, 55],
           "actions" : ["FabricEgress.process_int_main.process_int_source.int_source_dscp", "nop"],
-          "base_default_next" : "node_77",
+          "base_default_next" : "node_72",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_77",
-            "nop" : "node_77"
+            "FabricEgress.process_int_main.process_int_source.int_source_dscp" : "node_72",
+            "nop" : "node_72"
           },
           "default_entry" : {
             "action_id" : 55,
@@ -15857,8 +15739,8 @@
           }
         },
         {
-          "name" : "tbl_act_18",
-          "id" : 42,
+          "name" : "tbl_act_16",
+          "id" : 39,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -15866,14 +15748,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [109],
-          "actions" : ["act_18"],
+          "action_ids" : [107],
+          "actions" : ["act_16"],
           "base_default_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
           "next_tables" : {
-            "act_18" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
+            "act_16" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
           },
           "default_entry" : {
-            "action_id" : 109,
+            "action_id" : 107,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15881,7 +15763,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_insert",
-          "id" : 43,
+          "id" : 40,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 315,
@@ -15902,12 +15784,12 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [61, 56],
+          "action_ids" : [60, 56],
           "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"],
-          "base_default_next" : "node_80",
+          "base_default_next" : "node_75",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_80",
-            "nop" : "node_80"
+            "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_75",
+            "nop" : "node_75"
           },
           "default_entry" : {
             "action_id" : 56,
@@ -15917,8 +15799,8 @@
           }
         },
         {
-          "name" : "tbl_act_19",
-          "id" : 44,
+          "name" : "tbl_act_17",
+          "id" : 41,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 420,
@@ -15932,14 +15814,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [110],
-          "actions" : ["act_19"],
-          "base_default_next" : "node_82",
+          "action_ids" : [108],
+          "actions" : ["act_17"],
+          "base_default_next" : "node_77",
           "next_tables" : {
-            "act_19" : "node_82"
+            "act_17" : "node_77"
           },
           "default_entry" : {
-            "action_id" : 110,
+            "action_id" : 108,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -15947,7 +15829,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003",
-          "id" : 45,
+          "id" : 42,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 331,
@@ -15968,7 +15850,7 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 58],
+          "action_ids" : [61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 57],
           "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" : {
@@ -15991,7 +15873,7 @@
             "NoAction" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407"
           },
           "default_entry" : {
-            "action_id" : 58,
+            "action_id" : 57,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -16011,7 +15893,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 62,
+                "action_id" : 61,
                 "action_data" : []
               },
               "priority" : 1
@@ -16030,7 +15912,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 63,
+                "action_id" : 62,
                 "action_data" : []
               },
               "priority" : 2
@@ -16049,7 +15931,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 64,
+                "action_id" : 63,
                 "action_data" : []
               },
               "priority" : 3
@@ -16068,7 +15950,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 65,
+                "action_id" : 64,
                 "action_data" : []
               },
               "priority" : 4
@@ -16087,7 +15969,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 66,
+                "action_id" : 65,
                 "action_data" : []
               },
               "priority" : 5
@@ -16106,7 +15988,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 67,
+                "action_id" : 66,
                 "action_data" : []
               },
               "priority" : 6
@@ -16125,7 +16007,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 68,
+                "action_id" : 67,
                 "action_data" : []
               },
               "priority" : 7
@@ -16144,7 +16026,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 69,
+                "action_id" : 68,
                 "action_data" : []
               },
               "priority" : 8
@@ -16163,7 +16045,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 70,
+                "action_id" : 69,
                 "action_data" : []
               },
               "priority" : 9
@@ -16182,7 +16064,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 71,
+                "action_id" : 70,
                 "action_data" : []
               },
               "priority" : 10
@@ -16201,7 +16083,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 72,
+                "action_id" : 71,
                 "action_data" : []
               },
               "priority" : 11
@@ -16220,7 +16102,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 73,
+                "action_id" : 72,
                 "action_data" : []
               },
               "priority" : 12
@@ -16239,7 +16121,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 74,
+                "action_id" : 73,
                 "action_data" : []
               },
               "priority" : 13
@@ -16258,7 +16140,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 75,
+                "action_id" : 74,
                 "action_data" : []
               },
               "priority" : 14
@@ -16277,7 +16159,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 76,
+                "action_id" : 75,
                 "action_data" : []
               },
               "priority" : 15
@@ -16296,7 +16178,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 77,
+                "action_id" : 76,
                 "action_data" : []
               },
               "priority" : 16
@@ -16305,7 +16187,7 @@
         },
         {
           "name" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407",
-          "id" : 46,
+          "id" : 43,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 375,
@@ -16326,30 +16208,30 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 59],
+          "action_ids" : [77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 58],
           "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_20",
+          "base_default_next" : "tbl_act_18",
           "next_tables" : {
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_20",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_20",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_20",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_20",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_20",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_20",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_20",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_20",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_20",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_20",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_20",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_20",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_20",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_20",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_20",
-            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_20",
-            "NoAction" : "tbl_act_20"
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0" : "tbl_act_18",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1" : "tbl_act_18",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2" : "tbl_act_18",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3" : "tbl_act_18",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4" : "tbl_act_18",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5" : "tbl_act_18",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6" : "tbl_act_18",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7" : "tbl_act_18",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8" : "tbl_act_18",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9" : "tbl_act_18",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10" : "tbl_act_18",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11" : "tbl_act_18",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12" : "tbl_act_18",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13" : "tbl_act_18",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14" : "tbl_act_18",
+            "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15" : "tbl_act_18",
+            "NoAction" : "tbl_act_18"
           },
           "default_entry" : {
-            "action_id" : 59,
+            "action_id" : 58,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -16369,7 +16251,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 78,
+                "action_id" : 77,
                 "action_data" : []
               },
               "priority" : 1
@@ -16388,7 +16270,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 79,
+                "action_id" : 78,
                 "action_data" : []
               },
               "priority" : 2
@@ -16407,7 +16289,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 80,
+                "action_id" : 79,
                 "action_data" : []
               },
               "priority" : 3
@@ -16426,7 +16308,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 81,
+                "action_id" : 80,
                 "action_data" : []
               },
               "priority" : 4
@@ -16445,7 +16327,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 82,
+                "action_id" : 81,
                 "action_data" : []
               },
               "priority" : 5
@@ -16464,7 +16346,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 83,
+                "action_id" : 82,
                 "action_data" : []
               },
               "priority" : 6
@@ -16483,7 +16365,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 84,
+                "action_id" : 83,
                 "action_data" : []
               },
               "priority" : 7
@@ -16502,7 +16384,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 85,
+                "action_id" : 84,
                 "action_data" : []
               },
               "priority" : 8
@@ -16521,7 +16403,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 86,
+                "action_id" : 85,
                 "action_data" : []
               },
               "priority" : 9
@@ -16540,7 +16422,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 87,
+                "action_id" : 86,
                 "action_data" : []
               },
               "priority" : 10
@@ -16559,7 +16441,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 88,
+                "action_id" : 87,
                 "action_data" : []
               },
               "priority" : 11
@@ -16578,7 +16460,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 89,
+                "action_id" : 88,
                 "action_data" : []
               },
               "priority" : 12
@@ -16597,7 +16479,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 90,
+                "action_id" : 89,
                 "action_data" : []
               },
               "priority" : 13
@@ -16616,7 +16498,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 91,
+                "action_id" : 90,
                 "action_data" : []
               },
               "priority" : 14
@@ -16635,7 +16517,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 92,
+                "action_id" : 91,
                 "action_data" : []
               },
               "priority" : 15
@@ -16654,7 +16536,7 @@
                 }
               ],
               "action_entry" : {
-                "action_id" : 93,
+                "action_id" : 92,
                 "action_data" : []
               },
               "priority" : 16
@@ -16662,8 +16544,8 @@
           ]
         },
         {
-          "name" : "tbl_act_20",
-          "id" : 47,
+          "name" : "tbl_act_18",
+          "id" : 44,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 425,
@@ -16677,22 +16559,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [112],
-          "actions" : ["act_21"],
-          "base_default_next" : "node_86",
+          "action_ids" : [110],
+          "actions" : ["act_19"],
+          "base_default_next" : "node_81",
           "next_tables" : {
-            "act_21" : "node_86"
+            "act_19" : "node_81"
           },
           "default_entry" : {
-            "action_id" : 112,
+            "action_id" : 110,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_21",
-          "id" : 48,
+          "name" : "tbl_act_19",
+          "id" : 45,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 428,
@@ -16706,22 +16588,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [111],
-          "actions" : ["act_20"],
-          "base_default_next" : "node_88",
+          "action_ids" : [109],
+          "actions" : ["act_18"],
+          "base_default_next" : "node_83",
           "next_tables" : {
-            "act_20" : "node_88"
+            "act_18" : "node_83"
           },
           "default_entry" : {
-            "action_id" : 111,
+            "action_id" : 109,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_22",
-          "id" : 49,
+          "name" : "tbl_act_20",
+          "id" : 46,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 431,
@@ -16735,22 +16617,22 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [113],
-          "actions" : ["act_22"],
-          "base_default_next" : "node_90",
+          "action_ids" : [111],
+          "actions" : ["act_20"],
+          "base_default_next" : "node_85",
           "next_tables" : {
-            "act_22" : "node_90"
+            "act_20" : "node_85"
           },
           "default_entry" : {
-            "action_id" : 113,
+            "action_id" : 111,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_23",
-          "id" : 50,
+          "name" : "tbl_act_21",
+          "id" : 47,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 434,
@@ -16764,14 +16646,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [114],
-          "actions" : ["act_23"],
+          "action_ids" : [112],
+          "actions" : ["act_21"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_23" : null
+            "act_21" : null
           },
           "default_entry" : {
-            "action_id" : 114,
+            "action_id" : 112,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -16844,7 +16726,7 @@
           "id" : 17,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 347,
             "column" : 12,
             "source_fragment" : "fabric_metadata.is_multicast == true ..."
           },
@@ -16897,7 +16779,7 @@
           "id" : 18,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 340,
+            "line" : 352,
             "column" : 12,
             "source_fragment" : "fabric_metadata.mpls_label == 0"
           },
@@ -16923,7 +16805,7 @@
           "id" : 19,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 353,
             "column" : 16,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -16942,67 +16824,11 @@
           "false_next" : "FabricEgress.egress_next.egress_vlan"
         },
         {
-          "name" : "node_58",
+          "name" : "node_56",
           "id" : 20,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 357,
-            "column" : 16,
-            "source_fragment" : "!egress_vlan.apply().hit"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "not",
-              "left" : null,
-              "right" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "d2b",
-                  "left" : null,
-                  "right" : {
-                    "type" : "field",
-                    "value" : ["scalars", "egress_next_tmp"]
-                  }
-                }
-              }
-            }
-          },
-          "true_next" : "node_59",
-          "false_next" : "node_61"
-        },
-        {
-          "name" : "node_59",
-          "id" : 21,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 359,
-            "column" : 20,
-            "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "!=",
-              "left" : {
-                "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
-              },
-              "right" : {
-                "type" : "hexstr",
-                "value" : "0x0ffe"
-              }
-            }
-          },
-          "true_next" : "tbl_egress_next_push_vlan",
-          "false_next" : "node_61"
-        },
-        {
-          "name" : "node_61",
-          "id" : 22,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 374,
             "column" : 12,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -17017,15 +16843,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_13",
-          "false_next" : "node_65"
+          "true_next" : "tbl_act_11",
+          "false_next" : "node_60"
         },
         {
-          "name" : "node_63",
-          "id" : 23,
+          "name" : "node_58",
+          "id" : 21,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 376,
             "column" : 16,
             "source_fragment" : "hdr.mpls.ttl == 0"
           },
@@ -17043,15 +16869,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_14",
-          "false_next" : "node_69"
+          "true_next" : "tbl_act_12",
+          "false_next" : "node_64"
         },
         {
-          "name" : "node_65",
-          "id" : 24,
+          "name" : "node_60",
+          "id" : 22,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 378,
             "column" : 15,
             "source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
           },
@@ -17086,15 +16912,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_15",
-          "false_next" : "node_69"
+          "true_next" : "tbl_act_13",
+          "false_next" : "node_64"
         },
         {
-          "name" : "node_67",
-          "id" : 25,
+          "name" : "node_62",
+          "id" : 23,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 374,
+            "line" : 380,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl == 0"
           },
@@ -17112,12 +16938,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_16",
-          "false_next" : "node_69"
+          "true_next" : "tbl_act_14",
+          "false_next" : "node_64"
         },
         {
-          "name" : "node_69",
-          "id" : 26,
+          "name" : "node_64",
+          "id" : 24,
           "source_info" : {
             "filename" : "include/control/spgw.p4",
             "line" : 328,
@@ -17145,12 +16971,12 @@
               }
             }
           },
-          "true_next" : "node_70",
-          "false_next" : "node_74"
+          "true_next" : "node_65",
+          "false_next" : "node_69"
         },
         {
-          "name" : "node_70",
-          "id" : 27,
+          "name" : "node_65",
+          "id" : 25,
           "source_info" : {
             "filename" : "include/control/spgw.p4",
             "line" : 329,
@@ -17179,11 +17005,11 @@
             }
           },
           "true_next" : "tbl_spgw_gtpu_encap",
-          "false_next" : "node_72"
+          "false_next" : "node_67"
         },
         {
-          "name" : "node_72",
-          "id" : 28,
+          "name" : "node_67",
+          "id" : 26,
           "source_info" : {
             "filename" : "include/control/spgw.p4",
             "line" : 332,
@@ -17211,12 +17037,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_17",
-          "false_next" : "node_74"
+          "true_next" : "tbl_act_15",
+          "false_next" : "node_69"
         },
         {
-          "name" : "node_74",
-          "id" : 29,
+          "name" : "node_69",
+          "id" : 27,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 102,
@@ -17292,11 +17118,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "node_75"
+          "true_next" : "node_70"
         },
         {
-          "name" : "node_75",
-          "id" : 30,
+          "name" : "node_70",
+          "id" : 28,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 106,
@@ -17325,11 +17151,11 @@
             }
           },
           "true_next" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
-          "false_next" : "node_77"
+          "false_next" : "node_72"
         },
         {
-          "name" : "node_77",
-          "id" : 31,
+          "name" : "node_72",
+          "id" : 29,
           "source_info" : {
             "filename" : "include/int/int_main.p4",
             "line" : 110,
@@ -17348,11 +17174,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_18"
+          "true_next" : "tbl_act_16"
         },
         {
-          "name" : "node_80",
-          "id" : 32,
+          "name" : "node_75",
+          "id" : 30,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 419,
@@ -17380,12 +17206,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_19",
-          "false_next" : "node_82"
+          "true_next" : "tbl_act_17",
+          "false_next" : "node_77"
         },
         {
-          "name" : "node_82",
-          "id" : 33,
+          "name" : "node_77",
+          "id" : 31,
           "expression" : {
             "type" : "expression",
             "value" : {
@@ -17408,8 +17234,8 @@
           "true_next" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0003"
         },
         {
-          "name" : "node_86",
-          "id" : 34,
+          "name" : "node_81",
+          "id" : 32,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 427,
@@ -17427,12 +17253,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_21",
-          "false_next" : "node_88"
+          "true_next" : "tbl_act_19",
+          "false_next" : "node_83"
         },
         {
-          "name" : "node_88",
-          "id" : 35,
+          "name" : "node_83",
+          "id" : 33,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 430,
@@ -17450,12 +17276,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_22",
-          "false_next" : "node_90"
+          "true_next" : "tbl_act_20",
+          "false_next" : "node_85"
         },
         {
-          "name" : "node_90",
-          "id" : 36,
+          "name" : "node_85",
+          "id" : 34,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
             "line" : 433,
@@ -17474,7 +17300,7 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_23"
+          "true_next" : "tbl_act_21"
         }
       ]
     }
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 100c35a..c658bdd7 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
@@ -574,14 +574,17 @@
     match_type: EXACT
   }
   action_refs {
+    id: 16807339
+  }
+  action_refs {
     id: 16790030
   }
   action_refs {
-    id: 16819938
+    id: 16787838
     annotations: "@defaultonly"
     scope: DEFAULT_ONLY
   }
-  const_default_action_id: 16819938
+  const_default_action_id: 16787838
   direct_resource_ids: 318827144
   size: 1024
 }
@@ -722,7 +725,7 @@
   preamble {
     id: 16820765
     name: "FabricIngress.acl.drop"
-    alias: "drop"
+    alias: "acl.drop"
   }
 }
 actions {
@@ -1014,11 +1017,25 @@
 }
 actions {
   preamble {
+    id: 16807339
+    name: "FabricEgress.egress_next.push_vlan"
+    alias: "push_vlan"
+  }
+}
+actions {
+  preamble {
     id: 16790030
     name: "FabricEgress.egress_next.pop_vlan"
     alias: "pop_vlan"
   }
 }
+actions {
+  preamble {
+    id: 16787838
+    name: "FabricEgress.egress_next.drop"
+    alias: "egress_next.drop"
+  }
+}
 action_profiles {
   preamble {
     id: 285217164
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 036ea1d..8f5381e 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,13 +4,12 @@
       "name" : "scalars_0",
       "id" : 0,
       "fields" : [
+        ["tmp_0", 16, false],
         ["tmp_1", 16, false],
-        ["tmp_2", 16, false],
-        ["tmp_3", 4, false],
+        ["tmp_2", 4, false],
         ["tmp", 32, false],
-        ["tmp_0", 32, false],
+        ["tmp_3", 32, false],
         ["spgw_tmp", 1, false],
-        ["egress_next_tmp", 1, false],
         ["fabric_metadata_t._ip_eth_type0", 16, false],
         ["fabric_metadata_t._vlan_id1", 12, false],
         ["fabric_metadata_t._vlan_pri2", 3, false],
@@ -43,7 +42,7 @@
         ["fabric_metadata_t._spgw_needs_gtpu_encap29", 1, false],
         ["fabric_metadata_t._spgw_needs_gtpu_decap30", 1, false],
         ["fabric_metadata_t._spgw_skip_egress_pdr_ctr31", 1, false],
-        ["_padding_0", 2, false]
+        ["_padding_0", 3, false]
       ]
     },
     {
@@ -464,7 +463,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_1"]
+                  "value" : ["scalars", "tmp_0"]
                 },
                 {
                   "type" : "lookahead",
@@ -502,7 +501,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_0"]
             }
           ]
         },
@@ -523,7 +522,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_2"]
+                  "value" : ["scalars", "tmp_1"]
                 },
                 {
                   "type" : "lookahead",
@@ -549,7 +548,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_2"]
+              "value" : ["scalars", "tmp_1"]
             }
           ]
         },
@@ -659,7 +658,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_3"]
+                  "value" : ["scalars", "tmp_2"]
                 },
                 {
                   "type" : "lookahead",
@@ -685,7 +684,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_3"]
+              "value" : ["scalars", "tmp_2"]
             }
           ]
         },
@@ -1193,7 +1192,7 @@
       "binding" : "FabricEgress.egress_next.egress_vlan",
       "source_info" : {
         "filename" : "include/control/next.p4",
-        "line" : 313,
+        "line" : 314,
         "column" : 50,
         "source_fragment" : "egress_vlan_counter"
       }
@@ -5374,7 +5373,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_0"]
+              "value" : ["scalars", "tmp_3"]
             },
             {
               "type" : "expression",
@@ -5410,7 +5409,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_0"]
+              "value" : ["scalars", "tmp_3"]
             }
           ],
           "source_info" : {
@@ -5423,14 +5422,8 @@
       ]
     },
     {
-      "name" : "nop",
-      "id" : 53,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricEgress.egress_next.pop_mpls_if_present",
-      "id" : 54,
+      "id" : 53,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5471,7 +5464,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.set_mpls",
-      "id" : 55,
+      "id" : 54,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5588,7 +5581,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.push_vlan",
-      "id" : 56,
+      "id" : 55,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5686,7 +5679,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.pop_vlan",
-      "id" : 57,
+      "id" : 56,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5699,7 +5692,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 316,
+            "line" : 322,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
           }
@@ -5707,6 +5700,28 @@
       ]
     },
     {
+      "name" : "FabricEgress.egress_next.drop",
+      "id" : 57,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "mark_to_drop",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "standard_metadata"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 327,
+            "column" : 8,
+            "source_fragment" : "mark_to_drop(standard_metadata)"
+          }
+        }
+      ]
+    },
+    {
       "name" : "FabricEgress.spgw.gtpu_encap",
       "id" : 58,
       "runtime_data" : [],
@@ -6381,7 +6396,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 337,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -6394,66 +6409,6 @@
       "runtime_data" : [],
       "primitives" : [
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "egress_next_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_12",
-      "id" : 63,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "egress_next_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : false
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_13",
-      "id" : 64,
-      "runtime_data" : [],
-      "primitives" : [
-        {
           "op" : "mark_to_drop",
           "parameters" : [
             {
@@ -6463,7 +6418,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 376,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -6471,8 +6426,8 @@
       ]
     },
     {
-      "name" : "act_14",
-      "id" : 65,
+      "name" : "act_12",
+      "id" : 63,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6512,7 +6467,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 369,
+            "line" : 375,
             "column" : 12,
             "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
           }
@@ -6520,8 +6475,8 @@
       ]
     },
     {
-      "name" : "act_15",
-      "id" : 66,
+      "name" : "act_13",
+      "id" : 64,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6534,7 +6489,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 374,
+            "line" : 380,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -6542,8 +6497,8 @@
       ]
     },
     {
-      "name" : "act_16",
-      "id" : 67,
+      "name" : "act_14",
+      "id" : 65,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6583,7 +6538,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 373,
+            "line" : 379,
             "column" : 16,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
           }
@@ -6591,8 +6546,8 @@
       ]
     },
     {
-      "name" : "act_17",
-      "id" : 68,
+      "name" : "act_15",
+      "id" : 66,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -8300,7 +8255,7 @@
           "id" : 27,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 337,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -8329,7 +8284,7 @@
           "id" : 28,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 353,
             "column" : 36,
             "source_fragment" : "pop_mpls_if_present()"
           },
@@ -8340,14 +8295,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [54],
+          "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" : 54,
+            "action_id" : 53,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -8358,7 +8313,7 @@
           "id" : 29,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 343,
+            "line" : 355,
             "column" : 12,
             "source_fragment" : "set_mpls()"
           },
@@ -8369,14 +8324,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [55],
+          "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" : 55,
+            "action_id" : 54,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -8387,7 +8342,7 @@
           "id" : 30,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 320,
+            "line" : 331,
             "column" : 10,
             "source_fragment" : "egress_vlan"
           },
@@ -8411,15 +8366,16 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [57, 53],
-          "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
-          "base_default_next" : null,
+          "action_ids" : [55, 56, 57],
+          "actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
+          "base_default_next" : "node_55",
           "next_tables" : {
-            "__HIT__" : "tbl_act_11",
-            "__MISS__" : "tbl_act_12"
+            "FabricEgress.egress_next.push_vlan" : "node_55",
+            "FabricEgress.egress_next.pop_vlan" : "node_55",
+            "FabricEgress.egress_next.drop" : "node_55"
           },
           "default_entry" : {
-            "action_id" : 53,
+            "action_id" : 57,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -8428,29 +8384,12 @@
         {
           "name" : "tbl_act_11",
           "id" : 31,
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [62],
-          "actions" : ["act_11"],
-          "base_default_next" : "node_57",
-          "next_tables" : {
-            "act_11" : "node_57"
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 375,
+            "column" : 25,
+            "source_fragment" : "="
           },
-          "default_entry" : {
-            "action_id" : 62,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_12",
-          "id" : 32,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -8472,13 +8411,13 @@
           }
         },
         {
-          "name" : "tbl_egress_next_push_vlan",
-          "id" : 33,
+          "name" : "tbl_act_12",
+          "id" : 32,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 360,
-            "column" : 20,
-            "source_fragment" : "push_vlan()"
+            "line" : 376,
+            "column" : 35,
+            "source_fragment" : "mark_to_drop(standard_metadata)"
           },
           "key" : [],
           "match_type" : "exact",
@@ -8487,14 +8426,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [56],
-          "actions" : ["FabricEgress.egress_next.push_vlan"],
-          "base_default_next" : "node_60",
+          "action_ids" : [62],
+          "actions" : ["act_11"],
+          "base_default_next" : "node_63",
           "next_tables" : {
-            "FabricEgress.egress_next.push_vlan" : "node_60"
+            "act_11" : "node_63"
           },
           "default_entry" : {
-            "action_id" : 56,
+            "action_id" : 62,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -8502,11 +8441,11 @@
         },
         {
           "name" : "tbl_act_13",
-          "id" : 34,
+          "id" : 33,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 369,
-            "column" : 25,
+            "line" : 379,
+            "column" : 29,
             "source_fragment" : "="
           },
           "key" : [],
@@ -8518,9 +8457,9 @@
           "direct_meters" : null,
           "action_ids" : [65],
           "actions" : ["act_14"],
-          "base_default_next" : "node_62",
+          "base_default_next" : "node_61",
           "next_tables" : {
-            "act_14" : "node_62"
+            "act_14" : "node_61"
           },
           "default_entry" : {
             "action_id" : 65,
@@ -8531,11 +8470,11 @@
         },
         {
           "name" : "tbl_act_14",
-          "id" : 35,
+          "id" : 34,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
-            "column" : 35,
+            "line" : 380,
+            "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
           "key" : [],
@@ -8547,9 +8486,9 @@
           "direct_meters" : null,
           "action_ids" : [64],
           "actions" : ["act_13"],
-          "base_default_next" : "node_68",
+          "base_default_next" : "node_63",
           "next_tables" : {
-            "act_13" : "node_68"
+            "act_13" : "node_63"
           },
           "default_entry" : {
             "action_id" : 64,
@@ -8559,66 +8498,8 @@
           }
         },
         {
-          "name" : "tbl_act_15",
-          "id" : 36,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 373,
-            "column" : 29,
-            "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_16"],
-          "base_default_next" : "node_66",
-          "next_tables" : {
-            "act_16" : "node_66"
-          },
-          "default_entry" : {
-            "action_id" : 67,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_16",
-          "id" : 37,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 374,
-            "column" : 39,
-            "source_fragment" : "mark_to_drop(standard_metadata)"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [66],
-          "actions" : ["act_15"],
-          "base_default_next" : "node_68",
-          "next_tables" : {
-            "act_15" : "node_68"
-          },
-          "default_entry" : {
-            "action_id" : 66,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
           "name" : "tbl_spgw_gtpu_encap",
-          "id" : 38,
+          "id" : 35,
           "source_info" : {
             "filename" : "include/control/spgw.p4",
             "line" : 330,
@@ -8634,9 +8515,9 @@
           "direct_meters" : null,
           "action_ids" : [58],
           "actions" : ["FabricEgress.spgw.gtpu_encap"],
-          "base_default_next" : "node_71",
+          "base_default_next" : "node_66",
           "next_tables" : {
-            "FabricEgress.spgw.gtpu_encap" : "node_71"
+            "FabricEgress.spgw.gtpu_encap" : "node_66"
           },
           "default_entry" : {
             "action_id" : 58,
@@ -8646,8 +8527,8 @@
           }
         },
         {
-          "name" : "tbl_act_17",
-          "id" : 39,
+          "name" : "tbl_act_15",
+          "id" : 36,
           "source_info" : {
             "filename" : "include/control/spgw.p4",
             "line" : 333,
@@ -8661,14 +8542,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [68],
-          "actions" : ["act_17"],
+          "action_ids" : [66],
+          "actions" : ["act_15"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_17" : null
+            "act_15" : null
           },
           "default_entry" : {
-            "action_id" : 68,
+            "action_id" : 66,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -8741,7 +8622,7 @@
           "id" : 17,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 347,
             "column" : 12,
             "source_fragment" : "fabric_metadata.is_multicast == true ..."
           },
@@ -8794,7 +8675,7 @@
           "id" : 18,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 340,
+            "line" : 352,
             "column" : 12,
             "source_fragment" : "fabric_metadata.mpls_label == 0"
           },
@@ -8820,7 +8701,7 @@
           "id" : 19,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 353,
             "column" : 16,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -8839,67 +8720,11 @@
           "false_next" : "FabricEgress.egress_next.egress_vlan"
         },
         {
-          "name" : "node_57",
+          "name" : "node_55",
           "id" : 20,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 357,
-            "column" : 16,
-            "source_fragment" : "!egress_vlan.apply().hit"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "not",
-              "left" : null,
-              "right" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "d2b",
-                  "left" : null,
-                  "right" : {
-                    "type" : "field",
-                    "value" : ["scalars", "egress_next_tmp"]
-                  }
-                }
-              }
-            }
-          },
-          "true_next" : "node_58",
-          "false_next" : "node_60"
-        },
-        {
-          "name" : "node_58",
-          "id" : 21,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 359,
-            "column" : 20,
-            "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "!=",
-              "left" : {
-                "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t._vlan_id1"]
-              },
-              "right" : {
-                "type" : "hexstr",
-                "value" : "0x0ffe"
-              }
-            }
-          },
-          "true_next" : "tbl_egress_next_push_vlan",
-          "false_next" : "node_60"
-        },
-        {
-          "name" : "node_60",
-          "id" : 22,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 374,
             "column" : 12,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -8914,15 +8739,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_13",
-          "false_next" : "node_64"
+          "true_next" : "tbl_act_11",
+          "false_next" : "node_59"
         },
         {
-          "name" : "node_62",
-          "id" : 23,
+          "name" : "node_57",
+          "id" : 21,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 376,
             "column" : 16,
             "source_fragment" : "hdr.mpls.ttl == 0"
           },
@@ -8940,15 +8765,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_14",
-          "false_next" : "node_68"
+          "true_next" : "tbl_act_12",
+          "false_next" : "node_63"
         },
         {
-          "name" : "node_64",
-          "id" : 24,
+          "name" : "node_59",
+          "id" : 22,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 378,
             "column" : 15,
             "source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
           },
@@ -8983,15 +8808,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_15",
-          "false_next" : "node_68"
+          "true_next" : "tbl_act_13",
+          "false_next" : "node_63"
         },
         {
-          "name" : "node_66",
-          "id" : 25,
+          "name" : "node_61",
+          "id" : 23,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 374,
+            "line" : 380,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl == 0"
           },
@@ -9009,12 +8834,12 @@
               }
             }
           },
-          "true_next" : "tbl_act_16",
-          "false_next" : "node_68"
+          "true_next" : "tbl_act_14",
+          "false_next" : "node_63"
         },
         {
-          "name" : "node_68",
-          "id" : 26,
+          "name" : "node_63",
+          "id" : 24,
           "source_info" : {
             "filename" : "include/control/spgw.p4",
             "line" : 328,
@@ -9043,11 +8868,11 @@
             }
           },
           "false_next" : null,
-          "true_next" : "node_69"
+          "true_next" : "node_64"
         },
         {
-          "name" : "node_69",
-          "id" : 27,
+          "name" : "node_64",
+          "id" : 25,
           "source_info" : {
             "filename" : "include/control/spgw.p4",
             "line" : 329,
@@ -9076,11 +8901,11 @@
             }
           },
           "true_next" : "tbl_spgw_gtpu_encap",
-          "false_next" : "node_71"
+          "false_next" : "node_66"
         },
         {
-          "name" : "node_71",
-          "id" : 28,
+          "name" : "node_66",
+          "id" : 26,
           "source_info" : {
             "filename" : "include/control/spgw.p4",
             "line" : 332,
@@ -9109,7 +8934,7 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_17"
+          "true_next" : "tbl_act_15"
         }
       ]
     }
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 13a2236..aaee8be 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
@@ -485,14 +485,17 @@
     match_type: EXACT
   }
   action_refs {
+    id: 16807339
+  }
+  action_refs {
     id: 16790030
   }
   action_refs {
-    id: 16819938
+    id: 16787838
     annotations: "@defaultonly"
     scope: DEFAULT_ONLY
   }
-  const_default_action_id: 16819938
+  const_default_action_id: 16787838
   direct_resource_ids: 318827144
   size: 1024
 }
@@ -626,7 +629,7 @@
   preamble {
     id: 16820765
     name: "FabricIngress.acl.drop"
-    alias: "drop"
+    alias: "acl.drop"
   }
 }
 actions {
@@ -879,11 +882,25 @@
 }
 actions {
   preamble {
+    id: 16807339
+    name: "FabricEgress.egress_next.push_vlan"
+    alias: "push_vlan"
+  }
+}
+actions {
+  preamble {
     id: 16790030
     name: "FabricEgress.egress_next.pop_vlan"
     alias: "pop_vlan"
   }
 }
+actions {
+  preamble {
+    id: 16787838
+    name: "FabricEgress.egress_next.drop"
+    alias: "egress_next.drop"
+  }
+}
 action_profiles {
   preamble {
     id: 285217164
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 2143288..f6c42ee 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,12 +4,11 @@
       "name" : "scalars_0",
       "id" : 0,
       "fields" : [
+        ["tmp", 16, false],
         ["tmp_0", 16, false],
-        ["tmp_1", 16, false],
-        ["tmp_2", 4, false],
-        ["tmp", 32, false],
+        ["tmp_1", 4, false],
+        ["tmp_2", 32, false],
         ["tmp_3", 32, false],
-        ["egress_next_tmp", 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,7 +25,8 @@
         ["fabric_metadata_t.l4_sport", 16, false],
         ["fabric_metadata_t.l4_dport", 16, false],
         ["fabric_metadata_t.ipv4_src_addr", 32, false],
-        ["fabric_metadata_t.ipv4_dst_addr", 32, false]
+        ["fabric_metadata_t.ipv4_dst_addr", 32, false],
+        ["_padding_0", 1, false]
       ]
     },
     {
@@ -376,7 +376,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_0"]
+                  "value" : ["scalars", "tmp"]
                 },
                 {
                   "type" : "lookahead",
@@ -414,7 +414,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_0"]
+              "value" : ["scalars", "tmp"]
             }
           ]
         },
@@ -435,7 +435,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_1"]
+                  "value" : ["scalars", "tmp_0"]
                 },
                 {
                   "type" : "lookahead",
@@ -461,7 +461,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_1"]
+              "value" : ["scalars", "tmp_0"]
             }
           ]
         },
@@ -571,7 +571,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["scalars", "tmp_2"]
+                  "value" : ["scalars", "tmp_1"]
                 },
                 {
                   "type" : "lookahead",
@@ -597,7 +597,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_2"]
+              "value" : ["scalars", "tmp_1"]
             }
           ]
         },
@@ -983,7 +983,7 @@
       "binding" : "FabricEgress.egress_next.egress_vlan",
       "source_info" : {
         "filename" : "include/control/next.p4",
-        "line" : 313,
+        "line" : 314,
         "column" : 50,
         "source_fragment" : "egress_vlan_counter"
       }
@@ -2124,7 +2124,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp"]
+              "value" : ["scalars", "tmp_2"]
             },
             {
               "type" : "expression",
@@ -2160,7 +2160,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp"]
+              "value" : ["scalars", "tmp_2"]
             }
           ],
           "source_info" : {
@@ -2231,14 +2231,8 @@
       ]
     },
     {
-      "name" : "nop",
-      "id" : 32,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricEgress.egress_next.pop_mpls_if_present",
-      "id" : 33,
+      "id" : 32,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2279,7 +2273,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.set_mpls",
-      "id" : 34,
+      "id" : 33,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2396,7 +2390,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.push_vlan",
-      "id" : 35,
+      "id" : 34,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2494,7 +2488,7 @@
     },
     {
       "name" : "FabricEgress.egress_next.pop_vlan",
-      "id" : 36,
+      "id" : 35,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2507,7 +2501,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 316,
+            "line" : 322,
             "column" : 8,
             "source_fragment" : "hdr.vlan_tag.setInvalid()"
           }
@@ -2515,6 +2509,28 @@
       ]
     },
     {
+      "name" : "FabricEgress.egress_next.drop",
+      "id" : 36,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "mark_to_drop",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "standard_metadata"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 327,
+            "column" : 8,
+            "source_fragment" : "mark_to_drop(standard_metadata)"
+          }
+        }
+      ]
+    },
+    {
       "name" : "act_4",
       "id" : 37,
       "runtime_data" : [],
@@ -2597,7 +2613,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 337,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -2610,66 +2626,6 @@
       "runtime_data" : [],
       "primitives" : [
         {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "egress_next_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : true
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_8",
-      "id" : 41,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "egress_next_tmp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "b2d",
-                  "left" : null,
-                  "right" : {
-                    "type" : "bool",
-                    "value" : false
-                  }
-                }
-              }
-            }
-          ]
-        }
-      ]
-    },
-    {
-      "name" : "act_9",
-      "id" : 42,
-      "runtime_data" : [],
-      "primitives" : [
-        {
           "op" : "mark_to_drop",
           "parameters" : [
             {
@@ -2679,7 +2635,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 376,
             "column" : 35,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -2687,8 +2643,8 @@
       ]
     },
     {
-      "name" : "act_10",
-      "id" : 43,
+      "name" : "act_8",
+      "id" : 41,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2728,7 +2684,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 369,
+            "line" : 375,
             "column" : 12,
             "source_fragment" : "hdr.mpls.ttl = hdr.mpls.ttl - 1"
           }
@@ -2736,8 +2692,8 @@
       ]
     },
     {
-      "name" : "act_11",
-      "id" : 44,
+      "name" : "act_9",
+      "id" : 42,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2750,7 +2706,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 374,
+            "line" : 380,
             "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           }
@@ -2758,8 +2714,8 @@
       ]
     },
     {
-      "name" : "act_12",
-      "id" : 45,
+      "name" : "act_10",
+      "id" : 43,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2799,7 +2755,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 373,
+            "line" : 379,
             "column" : 16,
             "source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
           }
@@ -3832,7 +3788,7 @@
           "id" : 17,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 337,
+            "line" : 349,
             "column" : 12,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
@@ -3861,7 +3817,7 @@
           "id" : 18,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 353,
             "column" : 36,
             "source_fragment" : "pop_mpls_if_present()"
           },
@@ -3872,14 +3828,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [33],
+          "action_ids" : [32],
           "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" : 33,
+            "action_id" : 32,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -3890,7 +3846,7 @@
           "id" : 19,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 343,
+            "line" : 355,
             "column" : 12,
             "source_fragment" : "set_mpls()"
           },
@@ -3901,14 +3857,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [34],
+          "action_ids" : [33],
           "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" : 34,
+            "action_id" : 33,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -3919,7 +3875,7 @@
           "id" : 20,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 320,
+            "line" : 331,
             "column" : 10,
             "source_fragment" : "egress_vlan"
           },
@@ -3943,15 +3899,16 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [36, 32],
-          "actions" : ["FabricEgress.egress_next.pop_vlan", "nop"],
-          "base_default_next" : null,
+          "action_ids" : [34, 35, 36],
+          "actions" : ["FabricEgress.egress_next.push_vlan", "FabricEgress.egress_next.pop_vlan", "FabricEgress.egress_next.drop"],
+          "base_default_next" : "node_40",
           "next_tables" : {
-            "__HIT__" : "tbl_act_7",
-            "__MISS__" : "tbl_act_8"
+            "FabricEgress.egress_next.push_vlan" : "node_40",
+            "FabricEgress.egress_next.pop_vlan" : "node_40",
+            "FabricEgress.egress_next.drop" : "node_40"
           },
           "default_entry" : {
-            "action_id" : 32,
+            "action_id" : 36,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -3960,29 +3917,12 @@
         {
           "name" : "tbl_act_7",
           "id" : 21,
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [40],
-          "actions" : ["act_7"],
-          "base_default_next" : "node_42",
-          "next_tables" : {
-            "act_7" : "node_42"
+          "source_info" : {
+            "filename" : "include/control/next.p4",
+            "line" : 375,
+            "column" : 25,
+            "source_fragment" : "="
           },
-          "default_entry" : {
-            "action_id" : 40,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_8",
-          "id" : 22,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -4004,13 +3944,13 @@
           }
         },
         {
-          "name" : "tbl_egress_next_push_vlan",
-          "id" : 23,
+          "name" : "tbl_act_8",
+          "id" : 22,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 360,
-            "column" : 20,
-            "source_fragment" : "push_vlan()"
+            "line" : 376,
+            "column" : 35,
+            "source_fragment" : "mark_to_drop(standard_metadata)"
           },
           "key" : [],
           "match_type" : "exact",
@@ -4019,14 +3959,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [35],
-          "actions" : ["FabricEgress.egress_next.push_vlan"],
-          "base_default_next" : "node_45",
+          "action_ids" : [40],
+          "actions" : ["act_7"],
+          "base_default_next" : null,
           "next_tables" : {
-            "FabricEgress.egress_next.push_vlan" : "node_45"
+            "act_7" : null
           },
           "default_entry" : {
-            "action_id" : 35,
+            "action_id" : 40,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -4034,11 +3974,11 @@
         },
         {
           "name" : "tbl_act_9",
-          "id" : 24,
+          "id" : 23,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 369,
-            "column" : 25,
+            "line" : 379,
+            "column" : 29,
             "source_fragment" : "="
           },
           "key" : [],
@@ -4050,9 +3990,9 @@
           "direct_meters" : null,
           "action_ids" : [43],
           "actions" : ["act_10"],
-          "base_default_next" : "node_47",
+          "base_default_next" : "node_46",
           "next_tables" : {
-            "act_10" : "node_47"
+            "act_10" : "node_46"
           },
           "default_entry" : {
             "action_id" : 43,
@@ -4063,11 +4003,11 @@
         },
         {
           "name" : "tbl_act_10",
-          "id" : 25,
+          "id" : 24,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
-            "column" : 35,
+            "line" : 380,
+            "column" : 39,
             "source_fragment" : "mark_to_drop(standard_metadata)"
           },
           "key" : [],
@@ -4089,64 +4029,6 @@
             "action_data" : [],
             "action_entry_const" : true
           }
-        },
-        {
-          "name" : "tbl_act_11",
-          "id" : 26,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 373,
-            "column" : 29,
-            "source_fragment" : "="
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [45],
-          "actions" : ["act_12"],
-          "base_default_next" : "node_51",
-          "next_tables" : {
-            "act_12" : "node_51"
-          },
-          "default_entry" : {
-            "action_id" : 45,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_12",
-          "id" : 27,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 374,
-            "column" : 39,
-            "source_fragment" : "mark_to_drop(standard_metadata)"
-          },
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [44],
-          "actions" : ["act_11"],
-          "base_default_next" : null,
-          "next_tables" : {
-            "act_11" : null
-          },
-          "default_entry" : {
-            "action_id" : 44,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
         }
       ],
       "action_profiles" : [],
@@ -4215,7 +4097,7 @@
           "id" : 12,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 335,
+            "line" : 347,
             "column" : 12,
             "source_fragment" : "fabric_metadata.is_multicast == true ..."
           },
@@ -4268,7 +4150,7 @@
           "id" : 13,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 340,
+            "line" : 352,
             "column" : 12,
             "source_fragment" : "fabric_metadata.mpls_label == 0"
           },
@@ -4294,7 +4176,7 @@
           "id" : 14,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 341,
+            "line" : 353,
             "column" : 16,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -4313,67 +4195,11 @@
           "false_next" : "FabricEgress.egress_next.egress_vlan"
         },
         {
-          "name" : "node_42",
+          "name" : "node_40",
           "id" : 15,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 357,
-            "column" : 16,
-            "source_fragment" : "!egress_vlan.apply().hit"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "not",
-              "left" : null,
-              "right" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "d2b",
-                  "left" : null,
-                  "right" : {
-                    "type" : "field",
-                    "value" : ["scalars", "egress_next_tmp"]
-                  }
-                }
-              }
-            }
-          },
-          "true_next" : "node_43",
-          "false_next" : "node_45"
-        },
-        {
-          "name" : "node_43",
-          "id" : 16,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 359,
-            "column" : 20,
-            "source_fragment" : "fabric_metadata.vlan_id != DEFAULT_VLAN_ID"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "!=",
-              "left" : {
-                "type" : "field",
-                "value" : ["scalars", "fabric_metadata_t.vlan_id"]
-              },
-              "right" : {
-                "type" : "hexstr",
-                "value" : "0x0ffe"
-              }
-            }
-          },
-          "true_next" : "tbl_egress_next_push_vlan",
-          "false_next" : "node_45"
-        },
-        {
-          "name" : "node_45",
-          "id" : 17,
-          "source_info" : {
-            "filename" : "include/control/next.p4",
-            "line" : 368,
+            "line" : 374,
             "column" : 12,
             "source_fragment" : "hdr.mpls.isValid()"
           },
@@ -4388,15 +4214,15 @@
               }
             }
           },
-          "true_next" : "tbl_act_9",
-          "false_next" : "node_49"
+          "true_next" : "tbl_act_7",
+          "false_next" : "node_44"
         },
         {
-          "name" : "node_47",
-          "id" : 18,
+          "name" : "node_42",
+          "id" : 16,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 370,
+            "line" : 376,
             "column" : 16,
             "source_fragment" : "hdr.mpls.ttl == 0"
           },
@@ -4415,14 +4241,14 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_10"
+          "true_next" : "tbl_act_8"
         },
         {
-          "name" : "node_49",
-          "id" : 19,
+          "name" : "node_44",
+          "id" : 17,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 372,
+            "line" : 378,
             "column" : 15,
             "source_fragment" : "hdr.ipv4.isValid() && fabric_metadata.fwd_type != FWD_BRIDGING"
           },
@@ -4458,14 +4284,14 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_11"
+          "true_next" : "tbl_act_9"
         },
         {
-          "name" : "node_51",
-          "id" : 20,
+          "name" : "node_46",
+          "id" : 18,
           "source_info" : {
             "filename" : "include/control/next.p4",
-            "line" : 374,
+            "line" : 380,
             "column" : 20,
             "source_fragment" : "hdr.ipv4.ttl == 0"
           },
@@ -4484,7 +4310,7 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_12"
+          "true_next" : "tbl_act_10"
         }
       ]
     }
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 d036bed..122ff9d 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
@@ -382,14 +382,17 @@
     match_type: EXACT
   }
   action_refs {
+    id: 16807339
+  }
+  action_refs {
     id: 16790030
   }
   action_refs {
-    id: 16819938
+    id: 16787838
     annotations: "@defaultonly"
     scope: DEFAULT_ONLY
   }
-  const_default_action_id: 16819938
+  const_default_action_id: 16787838
   direct_resource_ids: 318827144
   size: 1024
 }
@@ -516,7 +519,7 @@
   preamble {
     id: 16820765
     name: "FabricIngress.acl.drop"
-    alias: "drop"
+    alias: "acl.drop"
   }
 }
 actions {
@@ -637,11 +640,25 @@
 }
 actions {
   preamble {
+    id: 16807339
+    name: "FabricEgress.egress_next.push_vlan"
+    alias: "push_vlan"
+  }
+}
+actions {
+  preamble {
     id: 16790030
     name: "FabricEgress.egress_next.pop_vlan"
     alias: "pop_vlan"
   }
 }
+actions {
+  preamble {
+    id: 16787838
+    name: "FabricEgress.egress_next.drop"
+    alias: "egress_next.drop"
+  }
+}
 action_profiles {
   preamble {
     id: 285217164
diff --git a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricNextPipelinerTest.java b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricNextPipelinerTest.java
index ffe6221..8dfe887 100644
--- a/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricNextPipelinerTest.java
+++ b/pipelines/fabric/impl/src/test/java/org/onosproject/pipelines/fabric/impl/behaviour/pipeliner/FabricNextPipelinerTest.java
@@ -19,6 +19,7 @@
 import com.google.common.collect.ImmutableList;
 import org.junit.Before;
 import org.junit.Test;
+import org.onosproject.net.PortNumber;
 import org.onosproject.net.flow.DefaultFlowRule;
 import org.onosproject.net.flow.DefaultTrafficSelector;
 import org.onosproject.net.flow.DefaultTrafficTreatment;
@@ -45,6 +46,7 @@
 import java.util.stream.Collectors;
 
 import static org.junit.Assert.assertEquals;
+import static org.onosproject.pipelines.fabric.impl.behaviour.FabricUtils.outputPort;
 
 /**
  * Test cases for fabric.p4 pipeline next control block.
@@ -197,10 +199,35 @@
                 .withTreatment(DefaultTrafficTreatment.builder()
                                        .piTableAction(piAction).build())
                 .build();
+        // Expected egress VLAN_PUSH flow rule.
+        final PortNumber outPort = outputPort(treatment);
+        PiCriterion egressVlanTableMatch = PiCriterion.builder()
+                .matchExact(FabricConstants.HDR_EG_PORT, outPort.toLong())
+                .build();
+        TrafficSelector selectorForEgressVlan = DefaultTrafficSelector.builder()
+                .matchPi(egressVlanTableMatch)
+                .matchVlanId(VLAN_100)
+                .build();
+        PiAction piActionForEgressVlan = PiAction.builder()
+                .withId(FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_PUSH_VLAN)
+                .build();
+        TrafficTreatment treatmentForEgressVlan = DefaultTrafficTreatment.builder()
+                .piTableAction(piActionForEgressVlan)
+                .build();
+        FlowRule expectedEgressVlanPushRule = DefaultFlowRule.builder()
+                .withSelector(selectorForEgressVlan)
+                .withTreatment(treatmentForEgressVlan)
+                .forTable(FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_EGRESS_VLAN)
+                .makePermanent()
+                .withPriority(nextObjective.priority())
+                .forDevice(DEVICE_ID)
+                .fromApp(APP_ID)
+                .build();
 
         ObjectiveTranslation expectedTranslation = ObjectiveTranslation.builder()
                 .addFlowRule(vlanMetaFlowRule)
                 .addFlowRule(expectedFlowRule)
+                .addFlowRule(expectedEgressVlanPushRule)
                 .build();
 
         assertEquals(expectedTranslation, actualTranslation);
@@ -438,21 +465,44 @@
                 .withTreatment(treatment)
                 .build();
 
-        // Expected egress VLAN POP flow rule.
+        // Expected egress VLAN_PUSH flow rule.
         PiCriterion egressVlanTableMatch = PiCriterion.builder()
-                .matchExact(FabricConstants.HDR_EG_PORT, PORT_2.toLong())
+                .matchExact(FabricConstants.HDR_EG_PORT, PORT_1.toLong())
                 .build();
         TrafficSelector selectorForEgressVlan = DefaultTrafficSelector.builder()
                 .matchPi(egressVlanTableMatch)
                 .matchVlanId(VLAN_100)
                 .build();
         PiAction piActionForEgressVlan = PiAction.builder()
-                .withId(FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_POP_VLAN)
+                .withId(FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_PUSH_VLAN)
                 .build();
         TrafficTreatment treatmentForEgressVlan = DefaultTrafficTreatment.builder()
                 .piTableAction(piActionForEgressVlan)
                 .build();
-        FlowRule expectedEgressVlanRule = DefaultFlowRule.builder()
+        FlowRule expectedEgressVlanPushRule = DefaultFlowRule.builder()
+                .withSelector(selectorForEgressVlan)
+                .withTreatment(treatmentForEgressVlan)
+                .forTable(FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_EGRESS_VLAN)
+                .makePermanent()
+                .withPriority(nextObjective.priority())
+                .forDevice(DEVICE_ID)
+                .fromApp(APP_ID)
+                .build();
+        // Expected egress VLAN POP flow rule.
+        egressVlanTableMatch = PiCriterion.builder()
+                .matchExact(FabricConstants.HDR_EG_PORT, PORT_2.toLong())
+                .build();
+        selectorForEgressVlan = DefaultTrafficSelector.builder()
+                .matchPi(egressVlanTableMatch)
+                .matchVlanId(VLAN_100)
+                .build();
+        piActionForEgressVlan = PiAction.builder()
+                .withId(FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_POP_VLAN)
+                .build();
+        treatmentForEgressVlan = DefaultTrafficTreatment.builder()
+                .piTableAction(piActionForEgressVlan)
+                .build();
+        FlowRule expectedEgressVlanPopRule = DefaultFlowRule.builder()
                 .withSelector(selectorForEgressVlan)
                 .withTreatment(treatmentForEgressVlan)
                 .forTable(FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_EGRESS_VLAN)
@@ -488,7 +538,8 @@
         ObjectiveTranslation expectedTranslation = ObjectiveTranslation.builder()
                 .addFlowRule(expectedHashedFlowRule)
                 .addFlowRule(vlanMetaFlowRule)
-                .addFlowRule(expectedEgressVlanRule)
+                .addFlowRule(expectedEgressVlanPushRule)
+                .addFlowRule(expectedEgressVlanPopRule)
                 .addGroup(expectedAllGroup)
                 .build();