Refactored INT service impl to support multi-instance ONOS and fabric.p4

Change-Id: Ic82a3ab72d71a774606b25997e283b93aedc6ec9
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 246401b..c7d78e8 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
@@ -5013,7 +5013,7 @@
       "primitives" : []
     },
     {
-      "name" : "NoAction",
+      "name" : "nop",
       "id" : 79,
       "runtime_data" : [],
       "primitives" : []
@@ -13300,7 +13300,7 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 370,
+            "line" : 374,
             "column" : 12,
             "source_fragment" : "return"
           }
@@ -13349,7 +13349,7 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 378,
+            "line" : 382,
             "column" : 12,
             "source_fragment" : "hdr.ipv4.total_len = hdr.ipv4.total_len + fmeta.int_meta.new_bytes"
           }
@@ -13398,7 +13398,7 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 375,
+            "line" : 379,
             "column" : 8,
             "source_fragment" : "hdr.int_header.total_hop_cnt = hdr.int_header.total_hop_cnt + 1"
           }
@@ -13447,7 +13447,7 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 381,
+            "line" : 385,
             "column" : 12,
             "source_fragment" : "hdr.udp.len = hdr.udp.len + fmeta.int_meta.new_bytes"
           }
@@ -13496,7 +13496,7 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 384,
+            "line" : 388,
             "column" : 12,
             "source_fragment" : "hdr.intl4_shim.len_words = hdr.intl4_shim.len_words + fmeta.int_meta.new_words"
           }
@@ -15829,25 +15829,32 @@
             "column" : 10,
             "source_fragment" : "tb_int_insert"
           },
-          "key" : [],
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "hdr.int_header.is_valid",
+              "target" : ["int_header", "$valid$"],
+              "mask" : null
+            }
+          ],
           "match_type" : "exact",
           "type" : "simple",
-          "max_size" : 1024,
+          "max_size" : 1,
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [85, 76],
-          "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "NoAction"],
+          "action_ids" : [85, 79],
+          "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"],
           "base_default_next" : "node_94",
           "next_tables" : {
             "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_94",
-            "NoAction" : "node_94"
+            "nop" : "node_94"
           },
           "default_entry" : {
-            "action_id" : 76,
-            "action_const" : false,
+            "action_id" : 79,
+            "action_const" : true,
             "action_data" : [],
-            "action_entry_const" : false
+            "action_entry_const" : true
           }
         },
         {
@@ -15878,7 +15885,7 @@
           "id" : 59,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 280,
+            "line" : 284,
             "column" : 10,
             "source_fragment" : "tb_int_inst_0003"
           },
@@ -15896,7 +15903,7 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 77],
+          "action_ids" : [86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 76],
           "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" : {
@@ -15919,7 +15926,7 @@
             "NoAction" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407"
           },
           "default_entry" : {
-            "action_id" : 77,
+            "action_id" : 76,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -16140,7 +16147,7 @@
           "id" : 60,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 324,
+            "line" : 328,
             "column" : 10,
             "source_fragment" : "tb_int_inst_0407"
           },
@@ -16158,7 +16165,7 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 78],
+          "action_ids" : [102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 77],
           "actions" : ["FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i0", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i1", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i2", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i3", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i4", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i5", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i6", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i7", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i8", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i9", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i10", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i11", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i12", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i13", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i14", "FabricEgress.process_int_main.process_int_transit.int_set_header_0407_i15", "NoAction"],
           "base_default_next" : "tbl_act_34",
           "next_tables" : {
@@ -16181,7 +16188,7 @@
             "NoAction" : "tbl_act_34"
           },
           "default_entry" : {
-            "action_id" : 78,
+            "action_id" : 77,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -16505,7 +16512,7 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [118, 79],
+          "action_ids" : [118, 78],
           "actions" : ["FabricEgress.process_int_main.process_int_report.do_report_encapsulation", "NoAction"],
           "base_default_next" : "node_108",
           "next_tables" : {
@@ -16513,7 +16520,7 @@
             "NoAction" : "node_108"
           },
           "default_entry" : {
-            "action_id" : 79,
+            "action_id" : 78,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -16957,7 +16964,7 @@
           "id" : 32,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 369,
+            "line" : 373,
             "column" : 12,
             "source_fragment" : "fmeta.int_meta.transit == false"
           },
@@ -17014,7 +17021,7 @@
           "id" : 34,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 377,
+            "line" : 381,
             "column" : 12,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -17037,7 +17044,7 @@
           "id" : 35,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 380,
+            "line" : 384,
             "column" : 12,
             "source_fragment" : "hdr.udp.isValid()"
           },
@@ -17060,7 +17067,7 @@
           "id" : 36,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 383,
+            "line" : 387,
             "column" : 12,
             "source_fragment" : "hdr.intl4_shim.isValid()"
           },
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 5fcf0f6..943fb1c1 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
@@ -518,14 +518,21 @@
     name: "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
     alias: "tb_int_insert"
   }
+  match_fields {
+    id: 1
+    name: "hdr.int_header.is_valid"
+    bitwidth: 1
+    match_type: EXACT
+  }
   action_refs {
     id: 16780783
   }
   action_refs {
-    id: 16800567
+    id: 16819938
     annotations: "@defaultonly()"
   }
-  size: 1024
+  const_default_action_id: 16819938
+  size: 1
   idle_timeout_behavior: NO_TIMEOUT
 }
 tables {
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 a179079..293212f 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
@@ -3608,7 +3608,7 @@
       "primitives" : []
     },
     {
-      "name" : "NoAction",
+      "name" : "nop",
       "id" : 53,
       "runtime_data" : [],
       "primitives" : []
@@ -10280,7 +10280,7 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 370,
+            "line" : 374,
             "column" : 12,
             "source_fragment" : "return"
           }
@@ -10329,7 +10329,7 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 378,
+            "line" : 382,
             "column" : 12,
             "source_fragment" : "hdr.ipv4.total_len = hdr.ipv4.total_len + fmeta.int_meta.new_bytes"
           }
@@ -10378,7 +10378,7 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 375,
+            "line" : 379,
             "column" : 8,
             "source_fragment" : "hdr.int_header.total_hop_cnt = hdr.int_header.total_hop_cnt + 1"
           }
@@ -10427,7 +10427,7 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 381,
+            "line" : 385,
             "column" : 12,
             "source_fragment" : "hdr.udp.len = hdr.udp.len + fmeta.int_meta.new_bytes"
           }
@@ -10476,7 +10476,7 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 384,
+            "line" : 388,
             "column" : 12,
             "source_fragment" : "hdr.intl4_shim.len_words = hdr.intl4_shim.len_words + fmeta.int_meta.new_words"
           }
@@ -11971,25 +11971,32 @@
             "column" : 10,
             "source_fragment" : "tb_int_insert"
           },
-          "key" : [],
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "hdr.int_header.is_valid",
+              "target" : ["int_header", "$valid$"],
+              "mask" : null
+            }
+          ],
           "match_type" : "exact",
           "type" : "simple",
-          "max_size" : 1024,
+          "max_size" : 1,
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [58, 51],
-          "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "NoAction"],
+          "action_ids" : [58, 53],
+          "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"],
           "base_default_next" : "node_60",
           "next_tables" : {
             "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_60",
-            "NoAction" : "node_60"
+            "nop" : "node_60"
           },
           "default_entry" : {
-            "action_id" : 51,
-            "action_const" : false,
+            "action_id" : 53,
+            "action_const" : true,
             "action_data" : [],
-            "action_entry_const" : false
+            "action_entry_const" : true
           }
         },
         {
@@ -12020,7 +12027,7 @@
           "id" : 36,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 280,
+            "line" : 284,
             "column" : 10,
             "source_fragment" : "tb_int_inst_0003"
           },
@@ -12038,7 +12045,7 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 52],
+          "action_ids" : [59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 51],
           "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" : {
@@ -12061,7 +12068,7 @@
             "NoAction" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407"
           },
           "default_entry" : {
-            "action_id" : 52,
+            "action_id" : 51,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -12282,7 +12289,7 @@
           "id" : 37,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 324,
+            "line" : 328,
             "column" : 10,
             "source_fragment" : "tb_int_inst_0407"
           },
@@ -12300,7 +12307,7 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 53],
+          "action_ids" : [75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 52],
           "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_18",
           "next_tables" : {
@@ -12323,7 +12330,7 @@
             "NoAction" : "tbl_act_18"
           },
           "default_entry" : {
-            "action_id" : 53,
+            "action_id" : 52,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -12997,7 +13004,7 @@
           "id" : 21,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 369,
+            "line" : 373,
             "column" : 12,
             "source_fragment" : "fmeta.int_meta.transit == false"
           },
@@ -13054,7 +13061,7 @@
           "id" : 23,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 377,
+            "line" : 381,
             "column" : 12,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -13077,7 +13084,7 @@
           "id" : 24,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 380,
+            "line" : 384,
             "column" : 12,
             "source_fragment" : "hdr.udp.isValid()"
           },
@@ -13100,7 +13107,7 @@
           "id" : 25,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 383,
+            "line" : 387,
             "column" : 12,
             "source_fragment" : "hdr.intl4_shim.isValid()"
           },
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 cc19487..6213234 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
@@ -431,14 +431,21 @@
     name: "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
     alias: "tb_int_insert"
   }
+  match_fields {
+    id: 1
+    name: "hdr.int_header.is_valid"
+    bitwidth: 1
+    match_type: EXACT
+  }
   action_refs {
     id: 16780783
   }
   action_refs {
-    id: 16800567
+    id: 16819938
     annotations: "@defaultonly()"
   }
-  size: 1024
+  const_default_action_id: 16819938
+  size: 1
   idle_timeout_behavior: NO_TIMEOUT
 }
 tables {
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json
index c4f0634..97da4eb 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json
@@ -4602,7 +4602,7 @@
       "primitives" : []
     },
     {
-      "name" : "NoAction",
+      "name" : "nop",
       "id" : 72,
       "runtime_data" : [],
       "primitives" : []
@@ -11866,7 +11866,7 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 370,
+            "line" : 374,
             "column" : 12,
             "source_fragment" : "return"
           }
@@ -11915,7 +11915,7 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 378,
+            "line" : 382,
             "column" : 12,
             "source_fragment" : "hdr.ipv4.total_len = hdr.ipv4.total_len + fmeta.int_meta.new_bytes"
           }
@@ -11964,7 +11964,7 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 375,
+            "line" : 379,
             "column" : 8,
             "source_fragment" : "hdr.int_header.total_hop_cnt = hdr.int_header.total_hop_cnt + 1"
           }
@@ -12013,7 +12013,7 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 381,
+            "line" : 385,
             "column" : 12,
             "source_fragment" : "hdr.udp.len = hdr.udp.len + fmeta.int_meta.new_bytes"
           }
@@ -12062,7 +12062,7 @@
           ],
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 384,
+            "line" : 388,
             "column" : 12,
             "source_fragment" : "hdr.intl4_shim.len_words = hdr.intl4_shim.len_words + fmeta.int_meta.new_words"
           }
@@ -14193,25 +14193,32 @@
             "column" : 10,
             "source_fragment" : "tb_int_insert"
           },
-          "key" : [],
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "hdr.int_header.is_valid",
+              "target" : ["int_header", "$valid$"],
+              "mask" : null
+            }
+          ],
           "match_type" : "exact",
           "type" : "simple",
-          "max_size" : 1024,
+          "max_size" : 1,
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [78, 70],
-          "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "NoAction"],
+          "action_ids" : [78, 72],
+          "actions" : ["FabricEgress.process_int_main.process_int_transit.init_metadata", "nop"],
           "base_default_next" : "node_87",
           "next_tables" : {
             "FabricEgress.process_int_main.process_int_transit.init_metadata" : "node_87",
-            "NoAction" : "node_87"
+            "nop" : "node_87"
           },
           "default_entry" : {
-            "action_id" : 70,
-            "action_const" : false,
+            "action_id" : 72,
+            "action_const" : true,
             "action_data" : [],
-            "action_entry_const" : false
+            "action_entry_const" : true
           }
         },
         {
@@ -14242,7 +14249,7 @@
           "id" : 55,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 280,
+            "line" : 284,
             "column" : 10,
             "source_fragment" : "tb_int_inst_0003"
           },
@@ -14260,7 +14267,7 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 71],
+          "action_ids" : [79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 70],
           "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" : {
@@ -14283,7 +14290,7 @@
             "NoAction" : "FabricEgress.process_int_main.process_int_transit.tb_int_inst_0407"
           },
           "default_entry" : {
-            "action_id" : 71,
+            "action_id" : 70,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -14504,7 +14511,7 @@
           "id" : 56,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 324,
+            "line" : 328,
             "column" : 10,
             "source_fragment" : "tb_int_inst_0407"
           },
@@ -14522,7 +14529,7 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 72],
+          "action_ids" : [95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 71],
           "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_32",
           "next_tables" : {
@@ -14545,7 +14552,7 @@
             "NoAction" : "tbl_act_32"
           },
           "default_entry" : {
-            "action_id" : 72,
+            "action_id" : 71,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -15245,7 +15252,7 @@
           "id" : 29,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 369,
+            "line" : 373,
             "column" : 12,
             "source_fragment" : "fmeta.int_meta.transit == false"
           },
@@ -15302,7 +15309,7 @@
           "id" : 31,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 377,
+            "line" : 381,
             "column" : 12,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -15325,7 +15332,7 @@
           "id" : 32,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 380,
+            "line" : 384,
             "column" : 12,
             "source_fragment" : "hdr.udp.isValid()"
           },
@@ -15348,7 +15355,7 @@
           "id" : 33,
           "source_info" : {
             "filename" : "include/int/int_transit.p4",
-            "line" : 383,
+            "line" : 387,
             "column" : 12,
             "source_fragment" : "hdr.intl4_shim.isValid()"
           },
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt
index f9bc88d..be3e607 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/p4info.txt
@@ -472,14 +472,21 @@
     name: "FabricEgress.process_int_main.process_int_transit.tb_int_insert"
     alias: "tb_int_insert"
   }
+  match_fields {
+    id: 1
+    name: "hdr.int_header.is_valid"
+    bitwidth: 1
+    match_type: EXACT
+  }
   action_refs {
     id: 16780783
   }
   action_refs {
-    id: 16800567
+    id: 16819938
     annotations: "@defaultonly()"
   }
-  size: 1024
+  const_default_action_id: 16819938
+  size: 1
   idle_timeout_behavior: NO_TIMEOUT
 }
 tables {