NoAction in ACL should be mapped to NOP

Change-Id: Ia3c9038eb726379ed2f95635c28ddf5794e646de
diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java
index 23580f4..d3137e5 100644
--- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java
+++ b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricConstants.java
@@ -197,8 +197,8 @@
             PiActionId.of("FabricEgress.process_int_transit.int_set_header_0003_i15");
     public static final PiActionId FABRIC_EGRESS_PROCESS_INT_TRANSIT_INT_SET_HEADER_0407_I2 =
             PiActionId.of("FabricEgress.process_int_transit.int_set_header_0407_i2");
-    public static final PiActionId FABRIC_EGRESS_PROCESS_INT_OUTER_ENCAP_INT_UPDATE_IPV4 =
-            PiActionId.of("FabricEgress.process_int_outer_encap.int_update_ipv4");
+    public static final PiActionId FABRIC_EGRESS_PROCESS_INT_TRANSIT_INT_SET_HEADER_0003_I5 =
+            PiActionId.of("FabricEgress.process_int_transit.int_set_header_0003_i5");
     public static final PiActionId FABRIC_EGRESS_PROCESS_INT_TRANSIT_INT_SET_HEADER_0003_I4 =
             PiActionId.of("FabricEgress.process_int_transit.int_set_header_0003_i4");
     public static final PiActionId FABRIC_EGRESS_PROCESS_INT_SINK_INT_SINK =
@@ -285,6 +285,8 @@
             PiActionId.of("FabricIngress.next.output_simple");
     public static final PiActionId FABRIC_INGRESS_FILTERING_DROP =
             PiActionId.of("FabricIngress.filtering.drop");
+    public static final PiActionId FABRIC_EGRESS_PROCESS_INT_OUTER_ENCAP_INT_UPDATE_IPV4 =
+            PiActionId.of("FabricEgress.process_int_outer_encap.int_update_ipv4");
     public static final PiActionId FABRIC_EGRESS_PROCESS_INT_TRANSIT_INT_SET_HEADER_0003_I8 =
             PiActionId.of("FabricEgress.process_int_transit.int_set_header_0003_i8");
     public static final PiActionId FABRIC_EGRESS_PROCESS_INT_TRANSIT_INT_SET_HEADER_0003_I9 =
@@ -314,8 +316,8 @@
             PiActionId.of("FabricIngress.forwarding.set_next_id_multicast_v4");
     public static final PiActionId FABRIC_INGRESS_NEXT_MPLS_ROUTING_V4_SIMPLE =
             PiActionId.of("FabricIngress.next.mpls_routing_v4_simple");
-    public static final PiActionId FABRIC_EGRESS_PROCESS_INT_TRANSIT_INT_SET_HEADER_0003_I5 =
-            PiActionId.of("FabricEgress.process_int_transit.int_set_header_0003_i5");
+    public static final PiActionId FABRIC_INGRESS_FORWARDING_NOP_ACL =
+            PiActionId.of("FabricIngress.forwarding.nop_acl");
     public static final PiActionId FABRIC_INGRESS_NEXT_L3_ROUTING_VLAN =
             PiActionId.of("FabricIngress.next.l3_routing_vlan");
     public static final PiActionId FABRIC_INGRESS_FORWARDING_SET_NEXT_ID_ACL =
diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricTreatmentInterpreter.java b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricTreatmentInterpreter.java
index 79b3f48..ca00687 100644
--- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricTreatmentInterpreter.java
+++ b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/FabricTreatmentInterpreter.java
@@ -52,9 +52,9 @@
     private static final Logger log = getLogger(FabricTreatmentInterpreter.class);
     private static final String INVALID_TREATMENT = "Invalid treatment for %s block [%s]";
     private static final String INVALID_TREATMENT_WITH_EXP = "Invalid treatment for %s block: %s [%s]";
-    private static final PiAction NOP = PiAction.builder()
-            .withId(FabricConstants.NOP)
-            .build();
+    private static final PiAction NOP = PiAction.builder().withId(FabricConstants.NOP).build();
+    private static final PiAction NOP_ACL = PiAction.builder()
+            .withId(FabricConstants.FABRIC_INGRESS_FORWARDING_NOP_ACL).build();
 
     private static final PiAction POP_VLAN = PiAction.builder()
             .withId(FabricConstants.FABRIC_EGRESS_EGRESS_NEXT_POP_VLAN)
@@ -141,7 +141,11 @@
             throws PiInterpreterException {
         // Empty treatment, generate table entry with no action
         if (treatment.equals(DefaultTrafficTreatment.emptyTreatment())) {
-            return null;
+            if (tableId.equals(FabricConstants.FABRIC_INGRESS_FORWARDING_ACL)) {
+                return NOP_ACL;
+            } else {
+                return NOP;
+            }
         }
         PortNumber outPort = getOutputPort(treatment);
         if (outPort == null
diff --git a/pipelines/fabric/src/main/resources/include/control/forwarding.p4 b/pipelines/fabric/src/main/resources/include/control/forwarding.p4
index 6098ed3..5b3b4b8 100644
--- a/pipelines/fabric/src/main/resources/include/control/forwarding.p4
+++ b/pipelines/fabric/src/main/resources/include/control/forwarding.p4
@@ -124,6 +124,10 @@
         acl_counter.count();
     }
 
+    action nop_acl() {
+        acl_counter.count();
+    }
+
     table acl {
         key = {
             standard_metadata.ingress_port: ternary; // 9
@@ -146,10 +150,10 @@
             punt_to_cpu;
             clone_to_cpu;
             drop;
-            @defaultonly nop;
+            nop_acl;
         }
 
-        const default_action = nop();
+        const default_action = nop_acl();
         size = 128;
         counters = acl_counter;
     }
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
index 8c90afc..520f2b1 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
@@ -7,7 +7,7 @@
         ["tmp", 4, false],
         ["tmp_0", 1, false],
         ["tmp_1", 32, false],
-        ["tmp_2", 9, false],
+        ["tmp_2", 8, false],
         ["tmp_3", 1, false],
         ["tmp_4", 32, false],
         ["tmp_5", 32, false],
@@ -28,7 +28,7 @@
         ["fabric_metadata_t.l4_src_port", 16, false],
         ["fabric_metadata_t.l4_dst_port", 16, false],
         ["fabric_metadata_t.compute_checksum", 1, false],
-        ["_padding_2", 2, false]
+        ["_padding_2", 3, false]
       ]
     },
     {
@@ -1452,12 +1452,32 @@
                     "value" : {
                       "op" : "&",
                       "left" : {
-                        "type" : "field",
-                        "value" : ["ipv4", "dst_addr"]
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : ">>",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["ipv4", "dst_addr"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x18"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x01ff"
+                        "value" : "0xff"
                       }
                     }
                   }
@@ -1469,7 +1489,7 @@
           "transitions" : [
             {
               "type" : "hexstr",
-              "value" : "0x0000",
+              "value" : "0x8c",
               "mask" : null,
               "next_state" : "do_parse_gtpu"
             },
@@ -1678,7 +1698,7 @@
       "id" : 0,
       "source_info" : {
         "filename" : "include/parser.p4",
-        "line" : 222,
+        "line" : 223,
         "column" : 8,
         "source_fragment" : "FabricDeparser"
       },
@@ -1906,7 +1926,7 @@
       "id" : 1,
       "source_info" : {
         "filename" : "include/spgw.p4",
-        "line" : 238,
+        "line" : 237,
         "column" : 8,
         "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
       },
@@ -2117,14 +2137,8 @@
       "primitives" : []
     },
     {
-      "name" : "nop",
-      "id" : 15,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "drop_now",
-      "id" : 16,
+      "id" : 15,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2151,7 +2165,7 @@
     },
     {
       "name" : "FabricIngress.spgw_ingress.gtpu_decap",
-      "id" : 17,
+      "id" : 16,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2203,7 +2217,7 @@
     },
     {
       "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
-      "id" : 18,
+      "id" : 17,
       "runtime_data" : [
         {
           "name" : "teid",
@@ -2280,7 +2294,7 @@
     },
     {
       "name" : "FabricIngress.process_set_source_sink.int_set_source",
-      "id" : 19,
+      "id" : 18,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2306,7 +2320,7 @@
     },
     {
       "name" : "FabricIngress.process_set_source_sink.int_set_sink",
-      "id" : 20,
+      "id" : 19,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2332,7 +2346,7 @@
     },
     {
       "name" : "FabricIngress.filtering.drop",
-      "id" : 21,
+      "id" : 20,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2349,7 +2363,7 @@
     },
     {
       "name" : "FabricIngress.filtering.set_vlan",
-      "id" : 22,
+      "id" : 21,
       "runtime_data" : [
         {
           "name" : "new_vlan_id",
@@ -2380,7 +2394,7 @@
     },
     {
       "name" : "FabricIngress.filtering.push_internal_vlan",
-      "id" : 23,
+      "id" : 22,
       "runtime_data" : [
         {
           "name" : "new_vlan_id",
@@ -2531,7 +2545,7 @@
     },
     {
       "name" : "FabricIngress.filtering.set_forwarding_type",
-      "id" : 24,
+      "id" : 23,
       "runtime_data" : [
         {
           "name" : "fwd_type",
@@ -2562,7 +2576,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_bridging",
-      "id" : 25,
+      "id" : 24,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -2593,7 +2607,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.pop_mpls_and_next",
-      "id" : 26,
+      "id" : 25,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -2639,7 +2653,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
-      "id" : 27,
+      "id" : 26,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -2670,7 +2684,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_acl",
-      "id" : 28,
+      "id" : 27,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -2701,7 +2715,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.punt_to_cpu",
-      "id" : 29,
+      "id" : 28,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2737,7 +2751,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.clone_to_cpu",
-      "id" : 30,
+      "id" : 29,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2773,7 +2787,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.drop",
-      "id" : 31,
+      "id" : 30,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2789,6 +2803,12 @@
       ]
     },
     {
+      "name" : "FabricIngress.forwarding.nop_acl",
+      "id" : 31,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
       "name" : "FabricIngress.forwarding.set_next_id_multicast_v4",
       "id" : 32,
       "runtime_data" : [
@@ -2812,7 +2832,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 164,
+            "line" : 168,
             "column" : 8,
             "source_fragment" : "fabric_metadata.next_id = next_id"
           }
@@ -2843,7 +2863,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 189,
+            "line" : 193,
             "column" : 8,
             "source_fragment" : "fabric_metadata.next_id = next_id"
           }
@@ -2874,7 +2894,7 @@
           ],
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 212,
+            "line" : 216,
             "column" : 8,
             "source_fragment" : "fabric_metadata.next_id = next_id"
           }
@@ -4544,7 +4564,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 154,
+            "line" : 153,
             "column" : 12,
             "source_fragment" : "return"
           }
@@ -4600,7 +4620,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 171,
+            "line" : 170,
             "column" : 8,
             "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
           }
@@ -5218,7 +5238,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 186,
+            "line" : 185,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.setValid()"
           }
@@ -5237,7 +5257,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 187,
+            "line" : 186,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.version = 4"
           }
@@ -5275,7 +5295,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 189,
+            "line" : 188,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.dscp = 0"
           }
@@ -5294,7 +5314,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 190,
+            "line" : 189,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.ecn = 0"
           }
@@ -5336,7 +5356,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 191,
+            "line" : 190,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
           }
@@ -5355,7 +5375,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 193,
+            "line" : 192,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.identification = 0x1513"
           }
@@ -5374,7 +5394,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 194,
+            "line" : 193,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.flags = 0"
           }
@@ -5393,7 +5413,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 195,
+            "line" : 194,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.frag_offset = 0"
           }
@@ -5450,7 +5470,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 198,
+            "line" : 197,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
           }
@@ -5469,7 +5489,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 199,
+            "line" : 198,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
           }
@@ -5488,7 +5508,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 200,
+            "line" : 199,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
           }
@@ -5503,7 +5523,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 202,
+            "line" : 201,
             "column" : 8,
             "source_fragment" : "gtpu_udp.setValid()"
           }
@@ -5522,7 +5542,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 203,
+            "line" : 202,
             "column" : 8,
             "source_fragment" : "gtpu_udp.src_port = 2152"
           }
@@ -5541,7 +5561,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 204,
+            "line" : 203,
             "column" : 8,
             "source_fragment" : "gtpu_udp.dst_port = 2152"
           }
@@ -5583,7 +5603,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 205,
+            "line" : 204,
             "column" : 8,
             "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
           }
@@ -5602,7 +5622,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 207,
+            "line" : 206,
             "column" : 8,
             "source_fragment" : "gtpu_udp.checksum = 0"
           }
@@ -5617,7 +5637,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 209,
+            "line" : 208,
             "column" : 8,
             "source_fragment" : "gtpu.setValid()"
           }
@@ -5636,7 +5656,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 210,
+            "line" : 209,
             "column" : 8,
             "source_fragment" : "gtpu.version = 0x01"
           }
@@ -5655,7 +5675,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 211,
+            "line" : 210,
             "column" : 8,
             "source_fragment" : "gtpu.pt = 0x01"
           }
@@ -5674,7 +5694,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 212,
+            "line" : 211,
             "column" : 8,
             "source_fragment" : "gtpu.spare = 0"
           }
@@ -5693,7 +5713,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 213,
+            "line" : 212,
             "column" : 8,
             "source_fragment" : "gtpu.ex_flag = 0"
           }
@@ -5712,7 +5732,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 214,
+            "line" : 213,
             "column" : 8,
             "source_fragment" : "gtpu.seq_flag = 0"
           }
@@ -5731,7 +5751,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 215,
+            "line" : 214,
             "column" : 8,
             "source_fragment" : "gtpu.npdu_flag = 0"
           }
@@ -5750,7 +5770,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 216,
+            "line" : 215,
             "column" : 8,
             "source_fragment" : "gtpu.msgtype = 0xff"
           }
@@ -5769,7 +5789,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 217,
+            "line" : 216,
             "column" : 8,
             "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
           }
@@ -5788,7 +5808,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 218,
+            "line" : 217,
             "column" : 8,
             "source_fragment" : "gtpu.teid = spgw_meta.teid"
           }
@@ -11397,14 +11417,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [16],
+          "action_ids" : [15],
           "actions" : ["drop_now"],
           "base_default_next" : "tbl_act_8",
           "next_tables" : {
             "drop_now" : "tbl_act_8"
           },
           "default_entry" : {
-            "action_id" : 16,
+            "action_id" : 15,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -11443,14 +11463,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [17],
+          "action_ids" : [16],
           "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
           "base_default_next" : "node_27",
           "next_tables" : {
             "FabricIngress.spgw_ingress.gtpu_decap" : "node_27"
           },
           "default_entry" : {
-            "action_id" : 17,
+            "action_id" : 16,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -11479,7 +11499,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [18, 0],
+          "action_ids" : [17, 0],
           "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
           "base_default_next" : null,
           "next_tables" : {
@@ -11643,7 +11663,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [23, 22, 13, 21],
+          "action_ids" : [22, 21, 13, 20],
           "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
           "base_default_next" : "FabricIngress.filtering.fwd_classifier",
           "next_tables" : {
@@ -11694,14 +11714,14 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [24],
+          "action_ids" : [23],
           "actions" : ["FabricIngress.filtering.set_forwarding_type"],
           "base_default_next" : "node_31",
           "next_tables" : {
             "FabricIngress.filtering.set_forwarding_type" : "node_31"
           },
           "default_entry" : {
-            "action_id" : 24,
+            "action_id" : 23,
             "action_const" : true,
             "action_data" : ["0x0"],
             "action_entry_const" : true
@@ -11736,7 +11756,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [25, 4],
+          "action_ids" : [24, 4],
           "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
           "base_default_next" : "FabricIngress.forwarding.acl",
           "next_tables" : {
@@ -11773,7 +11793,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [26, 5],
+          "action_ids" : [25, 5],
           "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
           "base_default_next" : "tbl_act_14",
           "next_tables" : {
@@ -11833,7 +11853,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [27, 6],
+          "action_ids" : [26, 6],
           "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v4", "NoAction"],
           "base_default_next" : "FabricIngress.forwarding.acl",
           "next_tables" : {
@@ -11852,7 +11872,7 @@
           "id" : 25,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 168,
+            "line" : 172,
             "column" : 10,
             "source_fragment" : "multicast_v4"
           },
@@ -11895,7 +11915,7 @@
           "id" : 26,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 193,
+            "line" : 197,
             "column" : 10,
             "source_fragment" : "unicast_v6"
           },
@@ -11932,7 +11952,7 @@
           "id" : 27,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 216,
+            "line" : 220,
             "column" : 10,
             "source_fragment" : "multicast_v6"
           },
@@ -11975,7 +11995,7 @@
           "id" : 28,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 127,
+            "line" : 131,
             "column" : 10,
             "source_fragment" : "acl"
           },
@@ -12059,18 +12079,18 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [28, 29, 30, 31, 14],
-          "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.punt_to_cpu", "FabricIngress.forwarding.clone_to_cpu", "FabricIngress.forwarding.drop", "nop"],
+          "action_ids" : [27, 28, 29, 30, 31],
+          "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.punt_to_cpu", "FabricIngress.forwarding.clone_to_cpu", "FabricIngress.forwarding.drop", "FabricIngress.forwarding.nop_acl"],
           "base_default_next" : "tbl_act_15",
           "next_tables" : {
             "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_15",
             "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_15",
             "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_15",
             "FabricIngress.forwarding.drop" : "tbl_act_15",
-            "nop" : "tbl_act_15"
+            "FabricIngress.forwarding.nop_acl" : "tbl_act_15"
           },
           "default_entry" : {
-            "action_id" : 14,
+            "action_id" : 31,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -12122,7 +12142,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [35, 15],
+          "action_ids" : [35, 14],
           "actions" : ["FabricIngress.next.set_vlan", "nop"],
           "base_default_next" : "FabricIngress.next.simple",
           "next_tables" : {
@@ -12130,7 +12150,7 @@
             "nop" : "FabricIngress.next.simple"
           },
           "default_entry" : {
-            "action_id" : 15,
+            "action_id" : 14,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -12518,7 +12538,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [19, 2],
+          "action_ids" : [18, 2],
           "actions" : ["FabricIngress.process_set_source_sink.int_set_source", "NoAction"],
           "base_default_next" : "FabricIngress.process_set_source_sink.tb_set_sink",
           "next_tables" : {
@@ -12555,7 +12575,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [20, 3],
+          "action_ids" : [19, 3],
           "actions" : ["FabricIngress.process_set_source_sink.int_set_sink", "NoAction"],
           "base_default_next" : "node_72",
           "next_tables" : {
@@ -12825,7 +12845,7 @@
           "id" : 8,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 231,
+            "line" : 235,
             "column" : 11,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
           },
@@ -12851,7 +12871,7 @@
           "id" : 9,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 232,
+            "line" : 236,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
           },
@@ -12877,7 +12897,7 @@
           "id" : 10,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 238,
+            "line" : 242,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
           },
@@ -12903,7 +12923,7 @@
           "id" : 11,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 240,
+            "line" : 244,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_MULTICAST"
           },
@@ -12929,7 +12949,7 @@
           "id" : 12,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 243,
+            "line" : 247,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_UNICAST"
           },
@@ -12955,7 +12975,7 @@
           "id" : 13,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 245,
+            "line" : 249,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_MULTICAST"
           },
@@ -13969,7 +13989,7 @@
           "id" : 28,
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 222,
+            "line" : 221,
             "column" : 12,
             "source_fragment" : "spgw_meta.direction == SPGW_DIR_DOWNLINK"
           },
@@ -13995,7 +14015,7 @@
           "id" : 29,
           "source_info" : {
             "filename" : "fabric.p4",
-            "line" : 100,
+            "line" : 94,
             "column" : 12,
             "source_fragment" : "standard_metadata.ingress_port != 255 && ..."
           },
@@ -14075,7 +14095,7 @@
           "id" : 30,
           "source_info" : {
             "filename" : "fabric.p4",
-            "line" : 103,
+            "line" : 97,
             "column" : 16,
             "source_fragment" : "fabric_metadata.int_meta.source == 1"
           },
@@ -14101,7 +14121,7 @@
           "id" : 31,
           "source_info" : {
             "filename" : "fabric.p4",
-            "line" : 106,
+            "line" : 100,
             "column" : 15,
             "source_fragment" : "hdr.int_header.isValid()"
           },
@@ -14193,7 +14213,7 @@
           "id" : 35,
           "source_info" : {
             "filename" : "fabric.p4",
-            "line" : 110,
+            "line" : 104,
             "column" : 20,
             "source_fragment" : "standard_metadata.instance_type == 1"
           },
@@ -14219,7 +14239,7 @@
           "id" : 36,
           "source_info" : {
             "filename" : "fabric.p4",
-            "line" : 114,
+            "line" : 108,
             "column" : 20,
             "source_fragment" : "fabric_metadata.int_meta.sink == 1"
           },
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt b/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt
index 82cba68..75d039a 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/p4info.txt
@@ -325,10 +325,9 @@
     id: 16833260
   }
   action_refs {
-    id: 16819938
-    annotations: "@defaultonly()"
+    id: 16842570
   }
-  const_default_action_id: 16819938
+  const_default_action_id: 16842570
   direct_resource_ids: 318772272
   size: 128
   idle_timeout_behavior: NO_TIMEOUT
@@ -945,6 +944,13 @@
 }
 actions {
   preamble {
+    id: 16842570
+    name: "FabricIngress.forwarding.nop_acl"
+    alias: "nop_acl"
+  }
+}
+actions {
+  preamble {
     id: 16809157
     name: "FabricIngress.forwarding.set_next_id_multicast_v4"
     alias: "set_next_id_multicast_v4"
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json
index a347d4f..89b5743 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json
@@ -1340,7 +1340,7 @@
       "id" : 0,
       "source_info" : {
         "filename" : "include/parser.p4",
-        "line" : 222,
+        "line" : 223,
         "column" : 8,
         "source_fragment" : "FabricDeparser"
       },
@@ -1664,14 +1664,8 @@
       "primitives" : []
     },
     {
-      "name" : "nop",
-      "id" : 10,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricIngress.process_set_source_sink.int_set_source",
-      "id" : 11,
+      "id" : 10,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1697,7 +1691,7 @@
     },
     {
       "name" : "FabricIngress.process_set_source_sink.int_set_sink",
-      "id" : 12,
+      "id" : 11,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1723,7 +1717,7 @@
     },
     {
       "name" : "FabricIngress.filtering.drop",
-      "id" : 13,
+      "id" : 12,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1740,7 +1734,7 @@
     },
     {
       "name" : "FabricIngress.filtering.set_vlan",
-      "id" : 14,
+      "id" : 13,
       "runtime_data" : [
         {
           "name" : "new_vlan_id",
@@ -1771,7 +1765,7 @@
     },
     {
       "name" : "FabricIngress.filtering.push_internal_vlan",
-      "id" : 15,
+      "id" : 14,
       "runtime_data" : [
         {
           "name" : "new_vlan_id",
@@ -1922,7 +1916,7 @@
     },
     {
       "name" : "FabricIngress.filtering.set_forwarding_type",
-      "id" : 16,
+      "id" : 15,
       "runtime_data" : [
         {
           "name" : "fwd_type",
@@ -1953,7 +1947,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_bridging",
-      "id" : 17,
+      "id" : 16,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -1984,7 +1978,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.pop_mpls_and_next",
-      "id" : 18,
+      "id" : 17,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -2030,7 +2024,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
-      "id" : 19,
+      "id" : 18,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -2061,7 +2055,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_acl",
-      "id" : 20,
+      "id" : 19,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -2092,7 +2086,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.punt_to_cpu",
-      "id" : 21,
+      "id" : 20,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2128,7 +2122,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.clone_to_cpu",
-      "id" : 22,
+      "id" : 21,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2164,7 +2158,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.drop",
-      "id" : 23,
+      "id" : 22,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2180,6 +2174,12 @@
       ]
     },
     {
+      "name" : "FabricIngress.forwarding.nop_acl",
+      "id" : 23,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
       "name" : "FabricIngress.next.set_vlan",
       "id" : 24,
       "runtime_data" : [
@@ -9367,7 +9367,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [15, 14, 8, 13],
+          "action_ids" : [14, 13, 8, 12],
           "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
           "base_default_next" : "FabricIngress.filtering.fwd_classifier",
           "next_tables" : {
@@ -9418,14 +9418,14 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [16],
+          "action_ids" : [15],
           "actions" : ["FabricIngress.filtering.set_forwarding_type"],
           "base_default_next" : "node_6",
           "next_tables" : {
             "FabricIngress.filtering.set_forwarding_type" : "node_6"
           },
           "default_entry" : {
-            "action_id" : 16,
+            "action_id" : 15,
             "action_const" : true,
             "action_data" : ["0x0"],
             "action_entry_const" : true
@@ -9460,7 +9460,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [17, 2],
+          "action_ids" : [16, 2],
           "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
           "base_default_next" : "FabricIngress.forwarding.acl",
           "next_tables" : {
@@ -9497,7 +9497,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [18, 3],
+          "action_ids" : [17, 3],
           "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
           "base_default_next" : "tbl_act_0",
           "next_tables" : {
@@ -9557,7 +9557,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [19, 4],
+          "action_ids" : [18, 4],
           "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v4", "NoAction"],
           "base_default_next" : "FabricIngress.forwarding.acl",
           "next_tables" : {
@@ -9576,7 +9576,7 @@
           "id" : 7,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 127,
+            "line" : 131,
             "column" : 10,
             "source_fragment" : "acl"
           },
@@ -9660,18 +9660,18 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [20, 21, 22, 23, 9],
-          "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.punt_to_cpu", "FabricIngress.forwarding.clone_to_cpu", "FabricIngress.forwarding.drop", "nop"],
+          "action_ids" : [19, 20, 21, 22, 23],
+          "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.punt_to_cpu", "FabricIngress.forwarding.clone_to_cpu", "FabricIngress.forwarding.drop", "FabricIngress.forwarding.nop_acl"],
           "base_default_next" : "tbl_act_1",
           "next_tables" : {
             "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_1",
             "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_1",
             "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_1",
             "FabricIngress.forwarding.drop" : "tbl_act_1",
-            "nop" : "tbl_act_1"
+            "FabricIngress.forwarding.nop_acl" : "tbl_act_1"
           },
           "default_entry" : {
-            "action_id" : 9,
+            "action_id" : 23,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -9723,7 +9723,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [24, 10],
+          "action_ids" : [24, 9],
           "actions" : ["FabricIngress.next.set_vlan", "nop"],
           "base_default_next" : "FabricIngress.next.simple",
           "next_tables" : {
@@ -9731,7 +9731,7 @@
             "nop" : "FabricIngress.next.simple"
           },
           "default_entry" : {
-            "action_id" : 10,
+            "action_id" : 9,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -10096,7 +10096,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [11, 0],
+          "action_ids" : [10, 0],
           "actions" : ["FabricIngress.process_set_source_sink.int_set_source", "NoAction"],
           "base_default_next" : "FabricIngress.process_set_source_sink.tb_set_sink",
           "next_tables" : {
@@ -10133,7 +10133,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [12, 1],
+          "action_ids" : [11, 1],
           "actions" : ["FabricIngress.process_set_source_sink.int_set_sink", "NoAction"],
           "base_default_next" : "node_39",
           "next_tables" : {
@@ -10232,7 +10232,7 @@
           "id" : 1,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 231,
+            "line" : 235,
             "column" : 11,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
           },
@@ -10258,7 +10258,7 @@
           "id" : 2,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 232,
+            "line" : 236,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
           },
@@ -10284,7 +10284,7 @@
           "id" : 3,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 246,
+            "line" : 250,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
           },
@@ -11252,7 +11252,7 @@
           "id" : 17,
           "source_info" : {
             "filename" : "fabric.p4",
-            "line" : 100,
+            "line" : 94,
             "column" : 12,
             "source_fragment" : "standard_metadata.ingress_port != 255 && ..."
           },
@@ -11332,7 +11332,7 @@
           "id" : 18,
           "source_info" : {
             "filename" : "fabric.p4",
-            "line" : 103,
+            "line" : 97,
             "column" : 16,
             "source_fragment" : "fabric_metadata.int_meta.source == 1"
           },
@@ -11358,7 +11358,7 @@
           "id" : 19,
           "source_info" : {
             "filename" : "fabric.p4",
-            "line" : 106,
+            "line" : 100,
             "column" : 15,
             "source_fragment" : "hdr.int_header.isValid()"
           },
@@ -11450,7 +11450,7 @@
           "id" : 23,
           "source_info" : {
             "filename" : "fabric.p4",
-            "line" : 110,
+            "line" : 104,
             "column" : 20,
             "source_fragment" : "standard_metadata.instance_type == 1"
           },
@@ -11476,7 +11476,7 @@
           "id" : 24,
           "source_info" : {
             "filename" : "fabric.p4",
-            "line" : 114,
+            "line" : 108,
             "column" : 20,
             "source_fragment" : "fabric_metadata.int_meta.sink == 1"
           },
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt b/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt
index 7ddae9d..1a74a23 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt
@@ -284,10 +284,9 @@
     id: 16833260
   }
   action_refs {
-    id: 16819938
-    annotations: "@defaultonly()"
+    id: 16842570
   }
-  const_default_action_id: 16819938
+  const_default_action_id: 16842570
   direct_resource_ids: 318772272
   size: 128
   idle_timeout_behavior: NO_TIMEOUT
@@ -787,6 +786,13 @@
 }
 actions {
   preamble {
+    id: 16842570
+    name: "FabricIngress.forwarding.nop_acl"
+    alias: "nop_acl"
+  }
+}
+actions {
+  preamble {
     id: 16790685
     name: "FabricIngress.next.set_vlan"
     alias: "next.set_vlan"
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
index c0adbca..285ac8c 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
@@ -928,7 +928,7 @@
       "id" : 0,
       "source_info" : {
         "filename" : "include/parser.p4",
-        "line" : 222,
+        "line" : 223,
         "column" : 8,
         "source_fragment" : "FabricDeparser"
       },
@@ -1102,7 +1102,7 @@
       "id" : 1,
       "source_info" : {
         "filename" : "include/spgw.p4",
-        "line" : 238,
+        "line" : 237,
         "column" : 8,
         "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
       },
@@ -1283,14 +1283,8 @@
       "primitives" : []
     },
     {
-      "name" : "nop",
-      "id" : 10,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "drop_now",
-      "id" : 11,
+      "id" : 10,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1317,7 +1311,7 @@
     },
     {
       "name" : "FabricIngress.spgw_ingress.gtpu_decap",
-      "id" : 12,
+      "id" : 11,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1369,7 +1363,7 @@
     },
     {
       "name" : "FabricIngress.spgw_ingress.set_dl_sess_info",
-      "id" : 13,
+      "id" : 12,
       "runtime_data" : [
         {
           "name" : "teid",
@@ -1446,7 +1440,7 @@
     },
     {
       "name" : "FabricIngress.filtering.drop",
-      "id" : 14,
+      "id" : 13,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1463,7 +1457,7 @@
     },
     {
       "name" : "FabricIngress.filtering.set_vlan",
-      "id" : 15,
+      "id" : 14,
       "runtime_data" : [
         {
           "name" : "new_vlan_id",
@@ -1494,7 +1488,7 @@
     },
     {
       "name" : "FabricIngress.filtering.push_internal_vlan",
-      "id" : 16,
+      "id" : 15,
       "runtime_data" : [
         {
           "name" : "new_vlan_id",
@@ -1645,7 +1639,7 @@
     },
     {
       "name" : "FabricIngress.filtering.set_forwarding_type",
-      "id" : 17,
+      "id" : 16,
       "runtime_data" : [
         {
           "name" : "fwd_type",
@@ -1676,7 +1670,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_bridging",
-      "id" : 18,
+      "id" : 17,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -1707,7 +1701,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.pop_mpls_and_next",
-      "id" : 19,
+      "id" : 18,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -1753,7 +1747,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
-      "id" : 20,
+      "id" : 19,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -1784,7 +1778,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_acl",
-      "id" : 21,
+      "id" : 20,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -1815,7 +1809,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.punt_to_cpu",
-      "id" : 22,
+      "id" : 21,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1851,7 +1845,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.clone_to_cpu",
-      "id" : 23,
+      "id" : 22,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1887,7 +1881,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.drop",
-      "id" : 24,
+      "id" : 23,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1903,6 +1897,12 @@
       ]
     },
     {
+      "name" : "FabricIngress.forwarding.nop_acl",
+      "id" : 24,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
       "name" : "FabricIngress.next.set_vlan",
       "id" : 25,
       "runtime_data" : [
@@ -3565,7 +3565,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 154,
+            "line" : 153,
             "column" : 12,
             "source_fragment" : "return"
           }
@@ -3621,7 +3621,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 171,
+            "line" : 170,
             "column" : 8,
             "source_fragment" : "spgw_meta.ipv4_len = ipv4.total_len"
           }
@@ -4140,7 +4140,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 186,
+            "line" : 185,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.setValid()"
           }
@@ -4159,7 +4159,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 187,
+            "line" : 186,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.version = 4"
           }
@@ -4197,7 +4197,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 189,
+            "line" : 188,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.dscp = 0"
           }
@@ -4216,7 +4216,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 190,
+            "line" : 189,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.ecn = 0"
           }
@@ -4258,7 +4258,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 191,
+            "line" : 190,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.total_len = ipv4.total_len ..."
           }
@@ -4277,7 +4277,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 193,
+            "line" : 192,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.identification = 0x1513"
           }
@@ -4296,7 +4296,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 194,
+            "line" : 193,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.flags = 0"
           }
@@ -4315,7 +4315,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 195,
+            "line" : 194,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.frag_offset = 0"
           }
@@ -4372,7 +4372,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 198,
+            "line" : 197,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.dst_addr = spgw_meta.s1u_enb_addr"
           }
@@ -4391,7 +4391,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 199,
+            "line" : 198,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.src_addr = spgw_meta.s1u_sgw_addr"
           }
@@ -4410,7 +4410,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 200,
+            "line" : 199,
             "column" : 8,
             "source_fragment" : "gtpu_ipv4.hdr_checksum = 0"
           }
@@ -4425,7 +4425,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 202,
+            "line" : 201,
             "column" : 8,
             "source_fragment" : "gtpu_udp.setValid()"
           }
@@ -4444,7 +4444,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 203,
+            "line" : 202,
             "column" : 8,
             "source_fragment" : "gtpu_udp.src_port = 2152"
           }
@@ -4463,7 +4463,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 204,
+            "line" : 203,
             "column" : 8,
             "source_fragment" : "gtpu_udp.dst_port = 2152"
           }
@@ -4505,7 +4505,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 205,
+            "line" : 204,
             "column" : 8,
             "source_fragment" : "gtpu_udp.len = spgw_meta.ipv4_len ..."
           }
@@ -4524,7 +4524,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 207,
+            "line" : 206,
             "column" : 8,
             "source_fragment" : "gtpu_udp.checksum = 0"
           }
@@ -4539,7 +4539,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 209,
+            "line" : 208,
             "column" : 8,
             "source_fragment" : "gtpu.setValid()"
           }
@@ -4558,7 +4558,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 210,
+            "line" : 209,
             "column" : 8,
             "source_fragment" : "gtpu.version = 0x01"
           }
@@ -4577,7 +4577,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 211,
+            "line" : 210,
             "column" : 8,
             "source_fragment" : "gtpu.pt = 0x01"
           }
@@ -4596,7 +4596,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 212,
+            "line" : 211,
             "column" : 8,
             "source_fragment" : "gtpu.spare = 0"
           }
@@ -4615,7 +4615,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 213,
+            "line" : 212,
             "column" : 8,
             "source_fragment" : "gtpu.ex_flag = 0"
           }
@@ -4634,7 +4634,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 214,
+            "line" : 213,
             "column" : 8,
             "source_fragment" : "gtpu.seq_flag = 0"
           }
@@ -4653,7 +4653,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 215,
+            "line" : 214,
             "column" : 8,
             "source_fragment" : "gtpu.npdu_flag = 0"
           }
@@ -4672,7 +4672,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 216,
+            "line" : 215,
             "column" : 8,
             "source_fragment" : "gtpu.msgtype = 0xff"
           }
@@ -4691,7 +4691,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 217,
+            "line" : 216,
             "column" : 8,
             "source_fragment" : "gtpu.msglen = spgw_meta.ipv4_len"
           }
@@ -4710,7 +4710,7 @@
           ],
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 218,
+            "line" : 217,
             "column" : 8,
             "source_fragment" : "gtpu.teid = spgw_meta.teid"
           }
@@ -5107,14 +5107,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [11],
+          "action_ids" : [10],
           "actions" : ["drop_now"],
           "base_default_next" : "tbl_act_8",
           "next_tables" : {
             "drop_now" : "tbl_act_8"
           },
           "default_entry" : {
-            "action_id" : 11,
+            "action_id" : 10,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5153,14 +5153,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [12],
+          "action_ids" : [11],
           "actions" : ["FabricIngress.spgw_ingress.gtpu_decap"],
           "base_default_next" : "node_27",
           "next_tables" : {
             "FabricIngress.spgw_ingress.gtpu_decap" : "node_27"
           },
           "default_entry" : {
-            "action_id" : 12,
+            "action_id" : 11,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5189,7 +5189,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [13, 0],
+          "action_ids" : [12, 0],
           "actions" : ["FabricIngress.spgw_ingress.set_dl_sess_info", "NoAction"],
           "base_default_next" : null,
           "next_tables" : {
@@ -5353,7 +5353,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [16, 15, 8, 14],
+          "action_ids" : [15, 14, 8, 13],
           "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
           "base_default_next" : "FabricIngress.filtering.fwd_classifier",
           "next_tables" : {
@@ -5404,14 +5404,14 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [17],
+          "action_ids" : [16],
           "actions" : ["FabricIngress.filtering.set_forwarding_type"],
           "base_default_next" : "node_31",
           "next_tables" : {
             "FabricIngress.filtering.set_forwarding_type" : "node_31"
           },
           "default_entry" : {
-            "action_id" : 17,
+            "action_id" : 16,
             "action_const" : true,
             "action_data" : ["0x0"],
             "action_entry_const" : true
@@ -5446,7 +5446,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [18, 2],
+          "action_ids" : [17, 2],
           "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
           "base_default_next" : "FabricIngress.forwarding.acl",
           "next_tables" : {
@@ -5483,7 +5483,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [19, 3],
+          "action_ids" : [18, 3],
           "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
           "base_default_next" : "tbl_act_14",
           "next_tables" : {
@@ -5543,7 +5543,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [20, 4],
+          "action_ids" : [19, 4],
           "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v4", "NoAction"],
           "base_default_next" : "FabricIngress.forwarding.acl",
           "next_tables" : {
@@ -5562,7 +5562,7 @@
           "id" : 25,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 127,
+            "line" : 131,
             "column" : 10,
             "source_fragment" : "acl"
           },
@@ -5646,18 +5646,18 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [21, 22, 23, 24, 9],
-          "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.punt_to_cpu", "FabricIngress.forwarding.clone_to_cpu", "FabricIngress.forwarding.drop", "nop"],
+          "action_ids" : [20, 21, 22, 23, 24],
+          "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.punt_to_cpu", "FabricIngress.forwarding.clone_to_cpu", "FabricIngress.forwarding.drop", "FabricIngress.forwarding.nop_acl"],
           "base_default_next" : "tbl_act_15",
           "next_tables" : {
             "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_15",
             "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_15",
             "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_15",
             "FabricIngress.forwarding.drop" : "tbl_act_15",
-            "nop" : "tbl_act_15"
+            "FabricIngress.forwarding.nop_acl" : "tbl_act_15"
           },
           "default_entry" : {
-            "action_id" : 9,
+            "action_id" : 24,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -5709,7 +5709,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [25, 10],
+          "action_ids" : [25, 9],
           "actions" : ["FabricIngress.next.set_vlan", "nop"],
           "base_default_next" : "FabricIngress.next.simple",
           "next_tables" : {
@@ -5717,7 +5717,7 @@
             "nop" : "FabricIngress.next.simple"
           },
           "default_entry" : {
-            "action_id" : 10,
+            "action_id" : 9,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -6292,7 +6292,7 @@
           "id" : 8,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 231,
+            "line" : 235,
             "column" : 11,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
           },
@@ -6318,7 +6318,7 @@
           "id" : 9,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 232,
+            "line" : 236,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
           },
@@ -6344,7 +6344,7 @@
           "id" : 10,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 246,
+            "line" : 250,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
           },
@@ -6952,7 +6952,7 @@
           "id" : 23,
           "source_info" : {
             "filename" : "include/spgw.p4",
-            "line" : 222,
+            "line" : 221,
             "column" : 12,
             "source_fragment" : "spgw_meta.direction == SPGW_DIR_DOWNLINK"
           },
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt
index aab0b4b..7568bc8 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/p4info.txt
@@ -279,10 +279,9 @@
     id: 16833260
   }
   action_refs {
-    id: 16819938
-    annotations: "@defaultonly()"
+    id: 16842570
   }
-  const_default_action_id: 16819938
+  const_default_action_id: 16842570
   direct_resource_ids: 318772272
   size: 128
   idle_timeout_behavior: NO_TIMEOUT
@@ -594,6 +593,13 @@
 }
 actions {
   preamble {
+    id: 16842570
+    name: "FabricIngress.forwarding.nop_acl"
+    alias: "nop_acl"
+  }
+}
+actions {
+  preamble {
     id: 16790685
     name: "FabricIngress.next.set_vlan"
     alias: "next.set_vlan"
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
index 2627604..8a6b8bb 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
@@ -668,7 +668,7 @@
       "id" : 0,
       "source_info" : {
         "filename" : "include/parser.p4",
-        "line" : 222,
+        "line" : 223,
         "column" : 8,
         "source_fragment" : "FabricDeparser"
       },
@@ -908,7 +908,7 @@
       "primitives" : []
     },
     {
-      "name" : "nop",
+      "name" : "NoAction",
       "id" : 2,
       "runtime_data" : [],
       "primitives" : []
@@ -944,14 +944,8 @@
       "primitives" : []
     },
     {
-      "name" : "NoAction",
-      "id" : 8,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
       "name" : "FabricIngress.filtering.drop",
-      "id" : 9,
+      "id" : 8,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -968,7 +962,7 @@
     },
     {
       "name" : "FabricIngress.filtering.set_vlan",
-      "id" : 10,
+      "id" : 9,
       "runtime_data" : [
         {
           "name" : "new_vlan_id",
@@ -999,7 +993,7 @@
     },
     {
       "name" : "FabricIngress.filtering.push_internal_vlan",
-      "id" : 11,
+      "id" : 10,
       "runtime_data" : [
         {
           "name" : "new_vlan_id",
@@ -1150,7 +1144,7 @@
     },
     {
       "name" : "FabricIngress.filtering.set_forwarding_type",
-      "id" : 12,
+      "id" : 11,
       "runtime_data" : [
         {
           "name" : "fwd_type",
@@ -1181,7 +1175,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_bridging",
-      "id" : 13,
+      "id" : 12,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -1212,7 +1206,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.pop_mpls_and_next",
-      "id" : 14,
+      "id" : 13,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -1258,7 +1252,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_unicast_v4",
-      "id" : 15,
+      "id" : 14,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -1289,7 +1283,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.set_next_id_acl",
-      "id" : 16,
+      "id" : 15,
       "runtime_data" : [
         {
           "name" : "next_id",
@@ -1320,7 +1314,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.punt_to_cpu",
-      "id" : 17,
+      "id" : 16,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1356,7 +1350,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.clone_to_cpu",
-      "id" : 18,
+      "id" : 17,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1392,7 +1386,7 @@
     },
     {
       "name" : "FabricIngress.forwarding.drop",
-      "id" : 19,
+      "id" : 18,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1408,6 +1402,12 @@
       ]
     },
     {
+      "name" : "FabricIngress.forwarding.nop_acl",
+      "id" : 19,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
       "name" : "FabricIngress.next.set_vlan",
       "id" : 20,
       "runtime_data" : [
@@ -3333,7 +3333,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [11, 10, 0, 9],
+          "action_ids" : [10, 9, 0, 8],
           "actions" : ["FabricIngress.filtering.push_internal_vlan", "FabricIngress.filtering.set_vlan", "nop", "FabricIngress.filtering.drop"],
           "base_default_next" : "FabricIngress.filtering.fwd_classifier",
           "next_tables" : {
@@ -3384,14 +3384,14 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [12],
+          "action_ids" : [11],
           "actions" : ["FabricIngress.filtering.set_forwarding_type"],
           "base_default_next" : "node_6",
           "next_tables" : {
             "FabricIngress.filtering.set_forwarding_type" : "node_6"
           },
           "default_entry" : {
-            "action_id" : 12,
+            "action_id" : 11,
             "action_const" : true,
             "action_data" : ["0x0"],
             "action_entry_const" : true
@@ -3426,7 +3426,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [13, 3],
+          "action_ids" : [12, 2],
           "actions" : ["FabricIngress.forwarding.set_next_id_bridging", "NoAction"],
           "base_default_next" : "FabricIngress.forwarding.acl",
           "next_tables" : {
@@ -3434,7 +3434,7 @@
             "NoAction" : "FabricIngress.forwarding.acl"
           },
           "default_entry" : {
-            "action_id" : 3,
+            "action_id" : 2,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -3463,7 +3463,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [14, 4],
+          "action_ids" : [13, 3],
           "actions" : ["FabricIngress.forwarding.pop_mpls_and_next", "NoAction"],
           "base_default_next" : "tbl_act_0",
           "next_tables" : {
@@ -3471,7 +3471,7 @@
             "NoAction" : "tbl_act_0"
           },
           "default_entry" : {
-            "action_id" : 4,
+            "action_id" : 3,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -3523,7 +3523,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [15, 5],
+          "action_ids" : [14, 4],
           "actions" : ["FabricIngress.forwarding.set_next_id_unicast_v4", "NoAction"],
           "base_default_next" : "FabricIngress.forwarding.acl",
           "next_tables" : {
@@ -3531,7 +3531,7 @@
             "NoAction" : "FabricIngress.forwarding.acl"
           },
           "default_entry" : {
-            "action_id" : 5,
+            "action_id" : 4,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -3542,7 +3542,7 @@
           "id" : 7,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 127,
+            "line" : 131,
             "column" : 10,
             "source_fragment" : "acl"
           },
@@ -3626,18 +3626,18 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [16, 17, 18, 19, 1],
-          "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.punt_to_cpu", "FabricIngress.forwarding.clone_to_cpu", "FabricIngress.forwarding.drop", "nop"],
+          "action_ids" : [15, 16, 17, 18, 19],
+          "actions" : ["FabricIngress.forwarding.set_next_id_acl", "FabricIngress.forwarding.punt_to_cpu", "FabricIngress.forwarding.clone_to_cpu", "FabricIngress.forwarding.drop", "FabricIngress.forwarding.nop_acl"],
           "base_default_next" : "tbl_act_1",
           "next_tables" : {
             "FabricIngress.forwarding.set_next_id_acl" : "tbl_act_1",
             "FabricIngress.forwarding.punt_to_cpu" : "tbl_act_1",
             "FabricIngress.forwarding.clone_to_cpu" : "tbl_act_1",
             "FabricIngress.forwarding.drop" : "tbl_act_1",
-            "nop" : "tbl_act_1"
+            "FabricIngress.forwarding.nop_acl" : "tbl_act_1"
           },
           "default_entry" : {
-            "action_id" : 1,
+            "action_id" : 19,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -3689,7 +3689,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [20, 2],
+          "action_ids" : [20, 1],
           "actions" : ["FabricIngress.next.set_vlan", "nop"],
           "base_default_next" : "FabricIngress.next.simple",
           "next_tables" : {
@@ -3697,7 +3697,7 @@
             "nop" : "FabricIngress.next.simple"
           },
           "default_entry" : {
-            "action_id" : 2,
+            "action_id" : 1,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -3726,7 +3726,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [21, 22, 23, 24, 25, 26, 6],
+          "action_ids" : [21, 22, 23, 24, 25, 26, 5],
           "actions" : ["FabricIngress.next.output_simple", "FabricIngress.next.set_vlan_output", "FabricIngress.next.l3_routing_simple", "FabricIngress.next.mpls_routing_v4_simple", "FabricIngress.next.mpls_routing_v6_simple", "FabricIngress.next.l3_routing_vlan", "NoAction"],
           "base_default_next" : null,
           "next_tables" : {
@@ -3734,7 +3734,7 @@
             "__MISS__" : "tbl_act_3"
           },
           "default_entry" : {
-            "action_id" : 6,
+            "action_id" : 5,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -3810,7 +3810,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [27, 28, 29, 7],
+          "action_ids" : [27, 28, 29, 6],
           "actions" : ["FabricIngress.next.l3_routing_hashed", "FabricIngress.next.mpls_routing_v4_hashed", "FabricIngress.next.mpls_routing_v6_hashed", "NoAction"],
           "base_default_next" : null,
           "next_tables" : {
@@ -3887,7 +3887,7 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [30, 8],
+          "action_ids" : [30, 7],
           "actions" : ["FabricIngress.next.set_mcast_group", "NoAction"],
           "base_default_next" : null,
           "next_tables" : {
@@ -3895,7 +3895,7 @@
             "__MISS__" : "tbl_act_7"
           },
           "default_entry" : {
-            "action_id" : 8,
+            "action_id" : 7,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -4101,7 +4101,7 @@
           "id" : 1,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 231,
+            "line" : 235,
             "column" : 11,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
           },
@@ -4127,7 +4127,7 @@
           "id" : 2,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 232,
+            "line" : 236,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
           },
@@ -4153,7 +4153,7 @@
           "id" : 3,
           "source_info" : {
             "filename" : "include/control/forwarding.p4",
-            "line" : 246,
+            "line" : 250,
             "column" : 17,
             "source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
           },
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt
index d018058..0768913 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt
@@ -238,10 +238,9 @@
     id: 16833260
   }
   action_refs {
-    id: 16819938
-    annotations: "@defaultonly()"
+    id: 16842570
   }
-  const_default_action_id: 16819938
+  const_default_action_id: 16842570
   direct_resource_ids: 318772272
   size: 128
   idle_timeout_behavior: NO_TIMEOUT
@@ -517,6 +516,13 @@
 }
 actions {
   preamble {
+    id: 16842570
+    name: "FabricIngress.forwarding.nop_acl"
+    alias: "nop_acl"
+  }
+}
+actions {
+  preamble {
     id: 16790685
     name: "FabricIngress.next.set_vlan"
     alias: "next.set_vlan"
diff --git a/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/FabricInterpreterTest.java b/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/FabricInterpreterTest.java
index bb6b45d..11f22e7 100644
--- a/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/FabricInterpreterTest.java
+++ b/pipelines/fabric/src/test/java/org/onosproject/pipelines/fabric/FabricInterpreterTest.java
@@ -30,7 +30,6 @@
 import org.onosproject.net.pi.runtime.PiActionParam;
 
 import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
 
 /**
  * Test for fabric interpreter.
@@ -132,9 +131,20 @@
     @Test
     public void testEmptyForwardingTreatment() throws Exception {
         TrafficTreatment treatment = DefaultTrafficTreatment.emptyTreatment();
+
         PiAction mappedAction = interpreter.mapTreatment(treatment,
                                                          FabricConstants.FABRIC_INGRESS_FORWARDING_UNICAST_V4);
-        assertNull(mappedAction);
+        PiAction expectedAction = PiAction.builder()
+                .withId(FabricConstants.NOP)
+                .build();
+        assertEquals(expectedAction, mappedAction);
+
+        mappedAction = interpreter.mapTreatment(treatment,
+                                                FabricConstants.FABRIC_INGRESS_FORWARDING_ACL);
+        expectedAction = PiAction.builder()
+                .withId(FabricConstants.FABRIC_INGRESS_FORWARDING_NOP_ACL)
+                .build();
+        assertEquals(expectedAction, mappedAction);
     }
 
     /* Next control block */