[ONOS-7654] Fix int.p4 to correctly specify src/sink

Change-Id: I298dee9eb7f85aa9467dae70c63c04c4b7bdd660
diff --git a/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/BasicConstants.java b/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/BasicConstants.java
index 0ef19bf..6182e18 100644
--- a/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/BasicConstants.java
+++ b/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/BasicConstants.java
@@ -33,7 +33,7 @@
 
     public static final String DOT = ".";
     private static final String INGRESS = "ingress";
-    private static final String EGRESS = "egress";
+    public static final String EGRESS = "egress";
     private static final String TABLE0_CTRL = INGRESS + DOT + "table0_control";
     private static final String WCMP_CTRL = INGRESS + DOT + "wcmp_control";
     private static final String PORT_COUNT_INGRESS_CTRL = INGRESS + DOT + "port_counters_ingress";
diff --git a/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/IntConstants.java b/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/IntConstants.java
index 22b983a..8ae743d 100644
--- a/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/IntConstants.java
+++ b/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/IntConstants.java
@@ -22,9 +22,7 @@
 import org.onosproject.net.pi.model.PiMatchFieldId;
 import org.onosproject.net.pi.model.PiTableId;
 
-import static org.onosproject.pipelines.basic.BasicConstants.DOT;
-import static org.onosproject.pipelines.basic.BasicConstants.HDR;
-import static org.onosproject.pipelines.basic.BasicConstants.LOCAL_METADATA;
+import static org.onosproject.pipelines.basic.BasicConstants.*;
 
 /**
  * Constants for INT pipeline.
@@ -36,11 +34,11 @@
     }
 
     // Strings
-    private static final String CTRL_SET_SOURCE_SINK = "process_set_source_sink";
-    private static final String CTRL_INT_SOURCE = "process_int_source";
-    private static final String CTRL_INT_TRANSIT = "process_int_transit";
-    private static final String CTRL_INT_SINK = "process_int_sink";
-    private static final String CTRL_INT_OUTER_ENCAP = "process_int_outer_encap";
+    private static final String CTRL_SET_SOURCE_SINK = EGRESS + DOT + "process_set_source_sink";
+    private static final String CTRL_INT_SOURCE = EGRESS + DOT + "process_int_source";
+    private static final String CTRL_INT_TRANSIT = EGRESS + DOT + "process_int_transit";
+    private static final String CTRL_INT_SINK = EGRESS + DOT + "process_int_sink";
+    private static final String CTRL_INT_OUTER_ENCAP = EGRESS + DOT + "process_int_outer_encap";
     private static final String INT_METADATA = "int_meta";
     private static final String INT_HDR = "int_header";
 
@@ -55,10 +53,14 @@
             PiMatchFieldId.of(HDR + DOT + INT_HDR + DOT + "instruction_mask_0003");
     public static final PiMatchFieldId INT_HDR_INST_MASK_0407_ID =
             PiMatchFieldId.of(HDR + DOT + INT_HDR + DOT + "instruction_mask_0407");
+    public static final PiMatchFieldId HDR_OUT_PORT_ID =
+            PiMatchFieldId.of(STANDARD_METADATA + DOT + "egress_port");
 
     // Table IDs
-    public static final PiTableId TBL_SET_SOURCE_SINK_ID =
-            PiTableId.of(CTRL_SET_SOURCE_SINK + DOT + "tb_set_source_sink");
+    public static final PiTableId TBL_SET_SOURCE_ID =
+            PiTableId.of(CTRL_SET_SOURCE_SINK + DOT + "tb_set_source");
+    public static final PiTableId TBL_SET_SINK_ID =
+            PiTableId.of(CTRL_SET_SOURCE_SINK + DOT + "tb_set_sink");
     public static final PiTableId TBL_INT_SOURCE_ID =
             PiTableId.of(CTRL_INT_SOURCE + DOT + "tb_int_source");
     public static final PiTableId TBL_INT_INSERT_ID =
diff --git a/pipelines/basic/src/main/resources/include/int_sink.p4 b/pipelines/basic/src/main/resources/include/int_sink.p4
index f87339e..f621533 100644
--- a/pipelines/basic/src/main/resources/include/int_sink.p4
+++ b/pipelines/basic/src/main/resources/include/int_sink.p4
@@ -48,10 +48,8 @@
     }
 
     apply {
-        if (local_metadata.int_meta.sink == 1) {
-            restore_header();
-            int_sink();
-        }
+        restore_header();
+        int_sink();
     }
 }
 #endif
\ No newline at end of file
diff --git a/pipelines/basic/src/main/resources/include/int_source.p4 b/pipelines/basic/src/main/resources/include/int_source.p4
index 15a8b264..1f16ba8 100644
--- a/pipelines/basic/src/main/resources/include/int_source.p4
+++ b/pipelines/basic/src/main/resources/include/int_source.p4
@@ -87,7 +87,8 @@
     inout local_metadata_t local_metadata,
     inout standard_metadata_t standard_metadata) {
 
-    direct_counter(CounterType.packets_and_bytes) counter_set_source_sink;
+    direct_counter(CounterType.packets_and_bytes) counter_set_source;
+    direct_counter(CounterType.packets_and_bytes) counter_set_sink;
 
     action int_set_source () {
         local_metadata.int_meta.source = 1;
@@ -97,23 +98,30 @@
         local_metadata.int_meta.sink = 1;
     }
 
-    table tb_set_source_sink {
+    table tb_set_source {
         key = {
-            hdr.ipv4.src_addr: ternary;
-            hdr.ipv4.dst_addr: ternary;
-            local_metadata.l4_src_port: ternary;
-            local_metadata.l4_dst_port: ternary;
+            standard_metadata.ingress_port: exact;
         }
         actions = {
             int_set_source;
+        }
+        counters = counter_set_source;
+        size = 256;
+    }
+    table tb_set_sink {
+        key = {
+            standard_metadata.egress_port: exact;
+        }
+        actions = {
             int_set_sink;
         }
-        counters = counter_set_source_sink;
-        size = 1024;
+        counters = counter_set_sink;
+        size = 256;
     }
 
     apply {
-        tb_set_source_sink.apply();
+        tb_set_source.apply();
+        tb_set_sink.apply();
     }
 }
 #endif
diff --git a/pipelines/basic/src/main/resources/include/int_transit.p4 b/pipelines/basic/src/main/resources/include/int_transit.p4
index 9c066bd0..658edfe 100644
--- a/pipelines/basic/src/main/resources/include/int_transit.p4
+++ b/pipelines/basic/src/main/resources/include/int_transit.p4
@@ -225,9 +225,7 @@
     }
 
     table tb_int_insert {
-        key = {
-            local_metadata.int_meta.sink: exact;
-        }
+        key = {}
         actions = {
             int_transit;
         }
diff --git a/pipelines/basic/src/main/resources/int.p4 b/pipelines/basic/src/main/resources/int.p4
index 5a8d23a..a452759 100644
--- a/pipelines/basic/src/main/resources/int.p4
+++ b/pipelines/basic/src/main/resources/int.p4
@@ -32,7 +32,7 @@
 #include "include/int_transit.p4"
 #include "include/int_sink.p4"
 
-control int_ingress (
+control ingress (
     inout headers_t hdr,
     inout local_metadata_t local_metadata,
     inout standard_metadata_t standard_metadata) {
@@ -41,11 +41,10 @@
         port_counters_ingress.apply(hdr, standard_metadata);
         packetio_ingress.apply(hdr, standard_metadata);
         table0_control.apply(hdr, local_metadata, standard_metadata);
-        process_set_source_sink.apply(hdr, local_metadata, standard_metadata);
     }
 }
 
-control int_egress (
+control egress (
     inout headers_t hdr,
     inout local_metadata_t local_metadata,
     inout standard_metadata_t standard_metadata) {
@@ -54,15 +53,18 @@
         if (standard_metadata.ingress_port != CPU_PORT &&
             standard_metadata.egress_port != CPU_PORT &&
             (hdr.udp.isValid() || hdr.tcp.isValid())) {
-            if (local_metadata.int_meta.sink == 0 && local_metadata.int_meta.source == 1) {
+            process_set_source_sink.apply(hdr, local_metadata, standard_metadata);
+            if (local_metadata.int_meta.source == 1) {
                 process_int_source.apply(hdr, local_metadata, standard_metadata);
             }
             if(hdr.int_header.isValid()) {
                 process_int_transit.apply(hdr, local_metadata, standard_metadata);
                 // update underlay header based on INT information inserted
                 process_int_outer_encap.apply(hdr, local_metadata, standard_metadata);
-                // int sink
-                process_int_sink.apply(hdr, local_metadata, standard_metadata);
+                if (local_metadata.int_meta.sink == 1) {
+                    // int sink
+                    process_int_sink.apply(hdr, local_metadata, standard_metadata);
+                }
             }
         }
         port_counters_egress.apply(hdr, standard_metadata);
@@ -73,8 +75,8 @@
 V1Switch(
     int_parser(),
     verify_checksum_control(),
-    int_ingress(),
-    int_egress(),
+    ingress(),
+    egress(),
     compute_checksum_control(),
     int_deparser()
 ) main;
\ No newline at end of file
diff --git a/pipelines/basic/src/main/resources/p4c-out/bmv2/int.json b/pipelines/basic/src/main/resources/p4c-out/bmv2/int.json
index 31f6705..650ea3a 100644
--- a/pipelines/basic/src/main/resources/p4c-out/bmv2/int.json
+++ b/pipelines/basic/src/main/resources/p4c-out/bmv2/int.json
@@ -228,12 +228,14 @@
         ["deq_timedelta", 32, false],
         ["deq_qdepth", 19, false],
         ["ingress_global_timestamp", 48, false],
+        ["egress_global_timestamp", 48, false],
         ["lf_field_list", 32, false],
         ["mcast_grp", 16, false],
-        ["resubmit_flag", 1, false],
+        ["resubmit_flag", 32, false],
         ["egress_rid", 16, false],
         ["checksum_error", 1, false],
-        ["_padding_2", 4, false]
+        ["recirculate_flag", 32, false],
+        ["_padding_2", 5, false]
       ]
     }
   ],
@@ -379,7 +381,7 @@
       "pi_omit" : true
     },
     {
-      "name" : "int_meta",
+      "name" : "userMetadata.int_meta",
       "id" : 20,
       "header_type" : "int_metadata_t",
       "metadata" : true,
@@ -392,12 +394,12 @@
   "header_union_stacks" : [],
   "field_lists" : [],
   "errors" : [
-    ["NoError", 0],
-    ["PacketTooShort", 1],
-    ["NoMatch", 2],
-    ["StackOutOfBounds", 3],
-    ["HeaderTooShort", 4],
-    ["ParserTimeout", 5]
+    ["NoError", 1],
+    ["PacketTooShort", 2],
+    ["NoMatch", 3],
+    ["StackOutOfBounds", 4],
+    ["HeaderTooShort", 5],
+    ["ParserTimeout", 6]
   ],
   "enums" : [],
   "parsers" : [
@@ -412,6 +414,7 @@
           "parser_ops" : [],
           "transitions" : [
             {
+              "type" : "hexstr",
               "value" : "0x00ff",
               "mask" : null,
               "next_state" : "parse_packet_out"
@@ -468,6 +471,7 @@
           ],
           "transitions" : [
             {
+              "type" : "hexstr",
               "value" : "0x0800",
               "mask" : null,
               "next_state" : "parse_ipv4"
@@ -501,11 +505,13 @@
           ],
           "transitions" : [
             {
+              "type" : "hexstr",
               "value" : "0x06",
               "mask" : null,
               "next_state" : "parse_tcp"
             },
             {
+              "type" : "hexstr",
               "value" : "0x11",
               "mask" : null,
               "next_state" : "parse_udp"
@@ -615,6 +621,7 @@
           ],
           "transitions" : [
             {
+              "type" : "hexstr",
               "value" : "0x01",
               "mask" : null,
               "next_state" : "parse_intl4_shim"
@@ -724,6 +731,7 @@
           ],
           "transitions" : [
             {
+              "type" : "hexstr",
               "value" : "0x01",
               "mask" : null,
               "next_state" : "parse_intl4_shim"
@@ -767,7 +775,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["int_meta", "metadata_len"]
+                  "value" : ["userMetadata.int_meta", "metadata_len"]
                 },
                 {
                   "type" : "expression",
@@ -802,6 +810,7 @@
           ],
           "transitions" : [
             {
+              "type" : "hexstr",
               "value" : "0x00",
               "mask" : null,
               "next_state" : "parse_intl4_tail"
@@ -815,7 +824,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["int_meta", "metadata_len"]
+              "value" : ["userMetadata.int_meta", "metadata_len"]
             }
           ]
         },
@@ -941,12 +950,13 @@
       ]
     }
   ],
+  "parse_vsets" : [],
   "deparsers" : [
     {
       "name" : "deparser",
       "id" : 0,
       "source_info" : {
-        "filename" : "./include/int_parser.p4",
+        "filename" : "include/int_parser.p4",
         "line" : 104,
         "column" : 8,
         "source_fragment" : "int_deparser"
@@ -957,10 +967,10 @@
   "meter_arrays" : [],
   "counter_arrays" : [
     {
-      "name" : "port_counters_ingress.ingress_port_counter",
+      "name" : "ingress.port_counters_ingress.ingress_port_counter",
       "id" : 0,
       "source_info" : {
-        "filename" : "./include/port_counters.p4",
+        "filename" : "include/port_counters.p4",
         "line" : 26,
         "column" : 38,
         "source_fragment" : "ingress_port_counter"
@@ -969,46 +979,52 @@
       "is_direct" : false
     },
     {
-      "name" : "table0_control.table0_counter",
+      "name" : "ingress.table0_control.table0_counter",
       "id" : 1,
       "is_direct" : true,
-      "binding" : "table0_control.table0"
+      "binding" : "ingress.table0_control.table0"
     },
     {
-      "name" : "process_set_source_sink.counter_set_source_sink",
+      "name" : "egress.process_set_source_sink.counter_set_source",
       "id" : 2,
       "is_direct" : true,
-      "binding" : "process_set_source_sink.tb_set_source_sink"
+      "binding" : "egress.process_set_source_sink.tb_set_source"
     },
     {
-      "name" : "process_int_source.counter_int_source",
+      "name" : "egress.process_set_source_sink.counter_set_sink",
       "id" : 3,
       "is_direct" : true,
-      "binding" : "process_int_source.tb_int_source"
+      "binding" : "egress.process_set_source_sink.tb_set_sink"
     },
     {
-      "name" : "process_int_transit.counter_int_insert",
+      "name" : "egress.process_int_source.counter_int_source",
       "id" : 4,
       "is_direct" : true,
-      "binding" : "process_int_transit.tb_int_insert"
+      "binding" : "egress.process_int_source.tb_int_source"
     },
     {
-      "name" : "process_int_transit.counter_int_inst_0003",
+      "name" : "egress.process_int_transit.counter_int_insert",
       "id" : 5,
       "is_direct" : true,
-      "binding" : "process_int_transit.tb_int_inst_0003"
+      "binding" : "egress.process_int_transit.tb_int_insert"
     },
     {
-      "name" : "process_int_transit.counter_int_inst_0407",
+      "name" : "egress.process_int_transit.counter_int_inst_0003",
       "id" : 6,
       "is_direct" : true,
-      "binding" : "process_int_transit.tb_int_inst_0407"
+      "binding" : "egress.process_int_transit.tb_int_inst_0003"
     },
     {
-      "name" : "port_counters_egress.egress_port_counter",
+      "name" : "egress.process_int_transit.counter_int_inst_0407",
       "id" : 7,
+      "is_direct" : true,
+      "binding" : "egress.process_int_transit.tb_int_inst_0407"
+    },
+    {
+      "name" : "egress.port_counters_egress.egress_port_counter",
+      "id" : 8,
       "source_info" : {
-        "filename" : "./include/port_counters.p4",
+        "filename" : "include/port_counters.p4",
         "line" : 36,
         "column" : 38,
         "source_fragment" : "egress_port_counter"
@@ -1044,7 +1060,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/actions.p4",
+            "filename" : "include/actions.p4",
             "line" : 28,
             "column" : 36,
             "source_fragment" : "port; ..."
@@ -1070,8 +1086,8 @@
             }
           ],
           "source_info" : {
-            "filename" : "int.p4",
-            "line" : 20,
+            "filename" : "include/defines.p4",
+            "line" : 28,
             "column" : 24,
             "source_fragment" : "255; ..."
           }
@@ -1087,7 +1103,7 @@
           "op" : "drop",
           "parameters" : [],
           "source_info" : {
-            "filename" : "./include/actions.p4",
+            "filename" : "include/actions.p4",
             "line" : 32,
             "column" : 4,
             "source_fragment" : "mark_to_drop()"
@@ -1096,14 +1112,8 @@
       ]
     },
     {
-      "name" : "NoAction",
+      "name" : "ingress.table0_control.set_next_hop_id",
       "id" : 3,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "table0_control.set_next_hop_id",
-      "id" : 4,
       "runtime_data" : [
         {
           "name" : "next_hop_id",
@@ -1124,7 +1134,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/table0.p4",
+            "filename" : "include/table0.p4",
             "line" : 30,
             "column" : 8,
             "source_fragment" : "local_metadata.next_hop_id = next_hop_id"
@@ -1133,60 +1143,8 @@
       ]
     },
     {
-      "name" : "process_set_source_sink.int_set_source",
-      "id" : 5,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_meta", "source"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x01"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_source.p4",
-            "line" : 93,
-            "column" : 8,
-            "source_fragment" : "local_metadata.int_meta.source = 1"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "process_set_source_sink.int_set_sink",
-      "id" : 6,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_meta", "sink"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x01"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_source.p4",
-            "line" : 97,
-            "column" : 8,
-            "source_fragment" : "local_metadata.int_meta.sink = 1"
-          }
-        }
-      ]
-    },
-    {
       "name" : "act",
-      "id" : 7,
+      "id" : 4,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1202,7 +1160,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/packet_io.p4",
+            "filename" : "include/packet_io.p4",
             "line" : 27,
             "column" : 12,
             "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
@@ -1217,7 +1175,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/packet_io.p4",
+            "filename" : "include/packet_io.p4",
             "line" : 28,
             "column" : 12,
             "source_fragment" : "hdr.packet_out.setInvalid()"
@@ -1227,7 +1185,7 @@
     },
     {
       "name" : "act_0",
-      "id" : 8,
+      "id" : 5,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1261,7 +1219,7 @@
           "parameters" : [
             {
               "type" : "counter_array",
-              "value" : "port_counters_ingress.ingress_port_counter"
+              "value" : "ingress.port_counters_ingress.ingress_port_counter"
             },
             {
               "type" : "field",
@@ -1269,7 +1227,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/port_counters.p4",
+            "filename" : "include/port_counters.p4",
             "line" : 29,
             "column" : 8,
             "source_fragment" : "ingress_port_counter.count((bit<32>) standard_metadata.ingress_port)"
@@ -1279,6 +1237,24 @@
     },
     {
       "name" : "NoAction",
+      "id" : 6,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "NoAction",
+      "id" : 7,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "NoAction",
+      "id" : 8,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "NoAction",
       "id" : 9,
       "runtime_data" : [],
       "primitives" : []
@@ -1296,14 +1272,60 @@
       "primitives" : []
     },
     {
-      "name" : "NoAction",
+      "name" : "egress.process_set_source_sink.int_set_source",
       "id" : 12,
       "runtime_data" : [],
-      "primitives" : []
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "source"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_source.p4",
+            "line" : 94,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.source = 1"
+          }
+        }
+      ]
     },
     {
-      "name" : "process_int_source.int_source_dscp",
+      "name" : "egress.process_set_source_sink.int_set_sink",
       "id" : 13,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "sink"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x01"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_source.p4",
+            "line" : 98,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.sink = 1"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_source.int_source_dscp",
+      "id" : 14,
       "runtime_data" : [
         {
           "name" : "max_hop",
@@ -1332,7 +1354,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 31,
             "column" : 8,
             "source_fragment" : "hdr.intl4_shim.setValid()"
@@ -1351,7 +1373,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 33,
             "column" : 8,
             "source_fragment" : "hdr.intl4_shim.int_type = 1"
@@ -1370,7 +1392,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_definitions.p4",
+            "filename" : "include/int_definitions.p4",
             "line" : 29,
             "column" : 35,
             "source_fragment" : "4; ..."
@@ -1385,7 +1407,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.int_header.setValid()"
@@ -1404,7 +1426,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 38,
             "column" : 8,
             "source_fragment" : "hdr.int_header.ver = 0"
@@ -1423,7 +1445,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 39,
             "column" : 8,
             "source_fragment" : "hdr.int_header.rep = 0"
@@ -1442,7 +1464,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 40,
             "column" : 8,
             "source_fragment" : "hdr.int_header.c = 0"
@@ -1461,7 +1483,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.int_header.e = 0"
@@ -1480,7 +1502,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 42,
             "column" : 8,
             "source_fragment" : "hdr.int_header.rsvd1 = 0"
@@ -1499,7 +1521,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 43,
             "column" : 8,
             "source_fragment" : "hdr.int_header.ins_cnt = ins_cnt; ..."
@@ -1518,7 +1540,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 44,
             "column" : 8,
             "source_fragment" : "hdr.int_header.max_hop_cnt = max_hop; ..."
@@ -1537,7 +1559,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 45,
             "column" : 8,
             "source_fragment" : "hdr.int_header.total_hop_cnt = 0"
@@ -1556,7 +1578,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 46,
             "column" : 8,
             "source_fragment" : "hdr.int_header.instruction_mask_0003 = ins_mask0003; ..."
@@ -1575,7 +1597,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 47,
             "column" : 8,
             "source_fragment" : "hdr.int_header.instruction_mask_0407 = ins_mask0407; ..."
@@ -1594,7 +1616,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 48,
             "column" : 8,
             "source_fragment" : "hdr.int_header.instruction_mask_0811 = 0"
@@ -1613,7 +1635,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.int_header.instruction_mask_1215 = 0"
@@ -1628,7 +1650,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 52,
             "column" : 8,
             "source_fragment" : "hdr.intl4_tail.setValid()"
@@ -1647,7 +1669,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 53,
             "column" : 8,
             "source_fragment" : "hdr.intl4_tail.next_proto = hdr.ipv4.protocol"
@@ -1666,7 +1688,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 54,
             "column" : 8,
             "source_fragment" : "hdr.intl4_tail.dest_port = local_metadata.l4_dst_port"
@@ -1698,7 +1720,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 55,
             "column" : 8,
             "source_fragment" : "hdr.intl4_tail.dscp = (bit<8>) hdr.ipv4.dscp"
@@ -1740,7 +1762,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 58,
             "column" : 8,
             "source_fragment" : "hdr.ipv4.len = hdr.ipv4.len + 16"
@@ -1782,7 +1804,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
             "line" : 59,
             "column" : 8,
             "source_fragment" : "hdr.udp.length_ = hdr.udp.length_ + 16"
@@ -1801,7 +1823,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_definitions.p4",
+            "filename" : "include/int_definitions.p4",
             "line" : 24,
             "column" : 24,
             "source_fragment" : "0x1; ..."
@@ -1810,8 +1832,8 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_update_total_hop_cnt",
-      "id" : 14,
+      "name" : "egress.process_int_transit.int_update_total_hop_cnt",
+      "id" : 15,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1850,7 +1872,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 30,
             "column" : 8,
             "source_fragment" : "hdr.int_header.total_hop_cnt = hdr.int_header.total_hop_cnt + 1"
@@ -1859,8 +1881,8 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_transit",
-      "id" : 15,
+      "name" : "egress.process_int_transit.int_transit",
+      "id" : 16,
       "runtime_data" : [
         {
           "name" : "switch_id",
@@ -1873,7 +1895,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_meta", "switch_id"]
+              "value" : ["userMetadata.int_meta", "switch_id"]
             },
             {
               "type" : "runtime_data",
@@ -1881,7 +1903,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 34,
             "column" : 8,
             "source_fragment" : "local_metadata.int_meta.switch_id = switch_id"
@@ -1892,7 +1914,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_meta", "insert_byte_cnt"]
+              "value" : ["userMetadata.int_meta", "insert_byte_cnt"]
             },
             {
               "type" : "expression",
@@ -1933,7 +1955,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 35,
             "column" : 8,
             "source_fragment" : "local_metadata.int_meta.insert_byte_cnt = (bit<16>) hdr.int_header.ins_cnt << 2"
@@ -1942,86 +1964,13 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0003_i0",
-      "id" : 16,
+      "name" : "egress.process_int_transit.int_set_header_0003_i0",
+      "id" : 17,
       "runtime_data" : [],
       "primitives" : []
     },
     {
-      "name" : "process_int_transit.int_set_header_0003_i1",
-      "id" : 17,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_q_occupancy"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 57,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 58,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_id = ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_occupancy"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "deq_qdepth"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 61,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "process_int_transit.int_set_header_0003_i2",
+      "name" : "egress.process_int_transit.int_set_header_0003_i1",
       "id" : 18,
       "runtime_data" : [],
       "primitives" : [
@@ -2030,14 +1979,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_hop_latency"
+              "value" : "int_q_occupancy"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 51,
+            "filename" : "include/int_transit.p4",
+            "line" : 57,
             "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.setValid()"
+            "source_fragment" : "hdr.int_q_occupancy.setValid()"
           }
         },
         {
@@ -2045,24 +1994,56 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_hop_latency", "hop_latency"]
+              "value" : ["int_q_occupancy", "q_id"]
             },
             {
-              "type" : "field",
-              "value" : ["standard_metadata", "deq_timedelta"]
+              "type" : "hexstr",
+              "value" : "0x00"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 52,
+            "filename" : "include/int_transit.p4",
+            "line" : 58,
             "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.hop_latency = ..."
+            "source_fragment" : "hdr.int_q_occupancy.q_id = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_occupancy"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "deq_qdepth"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 61,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
           }
         }
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0003_i3",
+      "name" : "egress.process_int_transit.int_set_header_0003_i2",
       "id" : 19,
       "runtime_data" : [],
       "primitives" : [
@@ -2071,77 +2052,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_q_occupancy"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 57,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 58,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_id = ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_occupancy"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "deq_qdepth"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 61,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_hop_latency"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 51,
             "column" : 8,
             "source_fragment" : "hdr.int_hop_latency.setValid()"
@@ -2160,7 +2075,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 52,
             "column" : 8,
             "source_fragment" : "hdr.int_hop_latency.hop_latency = ..."
@@ -2169,7 +2084,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0003_i4",
+      "name" : "egress.process_int_transit.int_set_header_0003_i3",
       "id" : 20,
       "runtime_data" : [],
       "primitives" : [
@@ -2178,14 +2093,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_port_ids"
+              "value" : "int_q_occupancy"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 44,
+            "filename" : "include/int_transit.p4",
+            "line" : 57,
             "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.setValid()"
+            "source_fragment" : "hdr.int_q_occupancy.setValid()"
           }
         },
         {
@@ -2193,7 +2108,26 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_port_ids", "ingress_port_id"]
+              "value" : ["int_q_occupancy", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 58,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_id = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_occupancy"]
             },
             {
               "type" : "expression",
@@ -2203,21 +2137,36 @@
                   "op" : "&",
                   "left" : {
                     "type" : "field",
-                    "value" : ["standard_metadata", "ingress_port"]
+                    "value" : ["standard_metadata", "deq_qdepth"]
                   },
                   "right" : {
                     "type" : "hexstr",
-                    "value" : "0xffff"
+                    "value" : "0xffffff"
                   }
                 }
               }
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 45,
+            "filename" : "include/int_transit.p4",
+            "line" : 61,
             "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.ingress_port_id = ..."
+            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_hop_latency"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 51,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
           }
         },
         {
@@ -2225,37 +2174,24 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_port_ids", "egress_port_id"]
+              "value" : ["int_hop_latency", "hop_latency"]
             },
             {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "egress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
+              "type" : "field",
+              "value" : ["standard_metadata", "deq_timedelta"]
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 47,
+            "filename" : "include/int_transit.p4",
+            "line" : 52,
             "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.egress_port_id = ..."
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = ..."
           }
         }
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0003_i5",
+      "name" : "egress.process_int_transit.int_set_header_0003_i4",
       "id" : 21,
       "runtime_data" : [],
       "primitives" : [
@@ -2264,77 +2200,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_q_occupancy"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 57,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 58,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_id = ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_occupancy"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "deq_qdepth"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 61,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_port_ids"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 44,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.setValid()"
@@ -2366,7 +2236,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 45,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.ingress_port_id = ..."
@@ -2398,7 +2268,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 47,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.egress_port_id = ..."
@@ -2407,7 +2277,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0003_i6",
+      "name" : "egress.process_int_transit.int_set_header_0003_i5",
       "id" : 22,
       "runtime_data" : [],
       "primitives" : [
@@ -2416,14 +2286,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_hop_latency"
+              "value" : "int_q_occupancy"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 51,
+            "filename" : "include/int_transit.p4",
+            "line" : 57,
             "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.setValid()"
+            "source_fragment" : "hdr.int_q_occupancy.setValid()"
           }
         },
         {
@@ -2431,18 +2301,50 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_hop_latency", "hop_latency"]
+              "value" : ["int_q_occupancy", "q_id"]
             },
             {
-              "type" : "field",
-              "value" : ["standard_metadata", "deq_timedelta"]
+              "type" : "hexstr",
+              "value" : "0x00"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 52,
+            "filename" : "include/int_transit.p4",
+            "line" : 58,
             "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.hop_latency = ..."
+            "source_fragment" : "hdr.int_q_occupancy.q_id = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_occupancy"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "deq_qdepth"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 61,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
           }
         },
         {
@@ -2454,7 +2356,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 44,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.setValid()"
@@ -2486,7 +2388,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 45,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.ingress_port_id = ..."
@@ -2518,7 +2420,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 47,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.egress_port_id = ..."
@@ -2527,7 +2429,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0003_i7",
+      "name" : "egress.process_int_transit.int_set_header_0003_i6",
       "id" : 23,
       "runtime_data" : [],
       "primitives" : [
@@ -2536,77 +2438,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_q_occupancy"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 57,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 58,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_id = ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_occupancy"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "deq_qdepth"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 61,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_hop_latency"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 51,
             "column" : 8,
             "source_fragment" : "hdr.int_hop_latency.setValid()"
@@ -2625,7 +2461,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 52,
             "column" : 8,
             "source_fragment" : "hdr.int_hop_latency.hop_latency = ..."
@@ -2640,7 +2476,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 44,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.setValid()"
@@ -2672,7 +2508,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 45,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.ingress_port_id = ..."
@@ -2704,7 +2540,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 47,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.egress_port_id = ..."
@@ -2713,7 +2549,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0003_i8",
+      "name" : "egress.process_int_transit.int_set_header_0003_i7",
       "id" : 24,
       "runtime_data" : [],
       "primitives" : [
@@ -2722,14 +2558,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_switch_id"
+              "value" : "int_q_occupancy"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 40,
+            "filename" : "include/int_transit.p4",
+            "line" : 57,
             "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.setValid()"
+            "source_fragment" : "hdr.int_q_occupancy.setValid()"
           }
         },
         {
@@ -2737,24 +2573,169 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_switch_id", "switch_id"]
+              "value" : ["int_q_occupancy", "q_id"]
             },
             {
-              "type" : "field",
-              "value" : ["int_meta", "switch_id"]
+              "type" : "hexstr",
+              "value" : "0x00"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 41,
+            "filename" : "include/int_transit.p4",
+            "line" : 58,
             "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
+            "source_fragment" : "hdr.int_q_occupancy.q_id = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_occupancy"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "deq_qdepth"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 61,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_hop_latency"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 51,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_hop_latency", "hop_latency"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "deq_timedelta"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 52,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 45,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.ingress_port_id = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 47,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.egress_port_id = ..."
           }
         }
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0003_i9",
+      "name" : "egress.process_int_transit.int_set_header_0003_i8",
       "id" : 25,
       "runtime_data" : [],
       "primitives" : [
@@ -2763,77 +2744,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_q_occupancy"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 57,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 58,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_id = ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_occupancy"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "deq_qdepth"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 61,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_switch_id"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 40,
             "column" : 8,
             "source_fragment" : "hdr.int_switch_id.setValid()"
@@ -2848,11 +2763,11 @@
             },
             {
               "type" : "field",
-              "value" : ["int_meta", "switch_id"]
+              "value" : ["userMetadata.int_meta", "switch_id"]
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
@@ -2861,7 +2776,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0003_i10",
+      "name" : "egress.process_int_transit.int_set_header_0003_i9",
       "id" : 26,
       "runtime_data" : [],
       "primitives" : [
@@ -2870,14 +2785,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_hop_latency"
+              "value" : "int_q_occupancy"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 51,
+            "filename" : "include/int_transit.p4",
+            "line" : 57,
             "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.setValid()"
+            "source_fragment" : "hdr.int_q_occupancy.setValid()"
           }
         },
         {
@@ -2885,18 +2800,50 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_hop_latency", "hop_latency"]
+              "value" : ["int_q_occupancy", "q_id"]
             },
             {
-              "type" : "field",
-              "value" : ["standard_metadata", "deq_timedelta"]
+              "type" : "hexstr",
+              "value" : "0x00"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 52,
+            "filename" : "include/int_transit.p4",
+            "line" : 58,
             "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.hop_latency = ..."
+            "source_fragment" : "hdr.int_q_occupancy.q_id = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_occupancy"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "deq_qdepth"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 61,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
           }
         },
         {
@@ -2908,7 +2855,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 40,
             "column" : 8,
             "source_fragment" : "hdr.int_switch_id.setValid()"
@@ -2923,11 +2870,11 @@
             },
             {
               "type" : "field",
-              "value" : ["int_meta", "switch_id"]
+              "value" : ["userMetadata.int_meta", "switch_id"]
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
@@ -2936,7 +2883,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0003_i11",
+      "name" : "egress.process_int_transit.int_set_header_0003_i10",
       "id" : 27,
       "runtime_data" : [],
       "primitives" : [
@@ -2945,77 +2892,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_q_occupancy"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 57,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 58,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_id = ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_occupancy"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "deq_qdepth"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 61,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_hop_latency"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 51,
             "column" : 8,
             "source_fragment" : "hdr.int_hop_latency.setValid()"
@@ -3034,7 +2915,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 52,
             "column" : 8,
             "source_fragment" : "hdr.int_hop_latency.hop_latency = ..."
@@ -3049,7 +2930,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 40,
             "column" : 8,
             "source_fragment" : "hdr.int_switch_id.setValid()"
@@ -3064,11 +2945,11 @@
             },
             {
               "type" : "field",
-              "value" : ["int_meta", "switch_id"]
+              "value" : ["userMetadata.int_meta", "switch_id"]
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
@@ -3077,7 +2958,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0003_i12",
+      "name" : "egress.process_int_transit.int_set_header_0003_i11",
       "id" : 28,
       "runtime_data" : [],
       "primitives" : [
@@ -3086,14 +2967,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_port_ids"
+              "value" : "int_q_occupancy"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 44,
+            "filename" : "include/int_transit.p4",
+            "line" : 57,
             "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.setValid()"
+            "source_fragment" : "hdr.int_q_occupancy.setValid()"
           }
         },
         {
@@ -3101,7 +2982,26 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_port_ids", "ingress_port_id"]
+              "value" : ["int_q_occupancy", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 58,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_id = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_occupancy"]
             },
             {
               "type" : "expression",
@@ -3111,21 +3011,36 @@
                   "op" : "&",
                   "left" : {
                     "type" : "field",
-                    "value" : ["standard_metadata", "ingress_port"]
+                    "value" : ["standard_metadata", "deq_qdepth"]
                   },
                   "right" : {
                     "type" : "hexstr",
-                    "value" : "0xffff"
+                    "value" : "0xffffff"
                   }
                 }
               }
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 45,
+            "filename" : "include/int_transit.p4",
+            "line" : 61,
             "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.ingress_port_id = ..."
+            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_hop_latency"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 51,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
           }
         },
         {
@@ -3133,31 +3048,18 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_port_ids", "egress_port_id"]
+              "value" : ["int_hop_latency", "hop_latency"]
             },
             {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "egress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
+              "type" : "field",
+              "value" : ["standard_metadata", "deq_timedelta"]
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 47,
+            "filename" : "include/int_transit.p4",
+            "line" : 52,
             "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.egress_port_id = ..."
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = ..."
           }
         },
         {
@@ -3169,7 +3071,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 40,
             "column" : 8,
             "source_fragment" : "hdr.int_switch_id.setValid()"
@@ -3184,11 +3086,11 @@
             },
             {
               "type" : "field",
-              "value" : ["int_meta", "switch_id"]
+              "value" : ["userMetadata.int_meta", "switch_id"]
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
@@ -3197,7 +3099,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0003_i13",
+      "name" : "egress.process_int_transit.int_set_header_0003_i12",
       "id" : 29,
       "runtime_data" : [],
       "primitives" : [
@@ -3206,77 +3108,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_q_occupancy"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 57,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 58,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_id = ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_occupancy", "q_occupancy"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "deq_qdepth"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 61,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_port_ids"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 44,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.setValid()"
@@ -3308,7 +3144,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 45,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.ingress_port_id = ..."
@@ -3340,7 +3176,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 47,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.egress_port_id = ..."
@@ -3355,7 +3191,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 40,
             "column" : 8,
             "source_fragment" : "hdr.int_switch_id.setValid()"
@@ -3370,11 +3206,11 @@
             },
             {
               "type" : "field",
-              "value" : ["int_meta", "switch_id"]
+              "value" : ["userMetadata.int_meta", "switch_id"]
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
@@ -3383,7 +3219,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0003_i14",
+      "name" : "egress.process_int_transit.int_set_header_0003_i13",
       "id" : 30,
       "runtime_data" : [],
       "primitives" : [
@@ -3392,165 +3228,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_hop_latency"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 51,
-            "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_hop_latency", "hop_latency"]
-            },
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "deq_timedelta"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 52,
-            "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.hop_latency = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_port_ids"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 44,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_port_ids", "ingress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "ingress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 45,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.ingress_port_id = ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_port_ids", "egress_port_id"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "egress_port"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 47,
-            "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.egress_port_id = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_switch_id"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 40,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_switch_id", "switch_id"]
-            },
-            {
-              "type" : "field",
-              "value" : ["int_meta", "switch_id"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 41,
-            "column" : 8,
-            "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "process_int_transit.int_set_header_0003_i15",
-      "id" : 31,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_q_occupancy"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 57,
             "column" : 8,
             "source_fragment" : "hdr.int_q_occupancy.setValid()"
@@ -3569,7 +3251,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 58,
             "column" : 8,
             "source_fragment" : "hdr.int_q_occupancy.q_id = ..."
@@ -3601,7 +3283,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 61,
             "column" : 8,
             "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
@@ -3612,45 +3294,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_hop_latency"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 51,
-            "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_hop_latency", "hop_latency"]
-            },
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "deq_timedelta"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 52,
-            "column" : 8,
-            "source_fragment" : "hdr.int_hop_latency.hop_latency = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_port_ids"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 44,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.setValid()"
@@ -3682,7 +3330,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 45,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.ingress_port_id = ..."
@@ -3714,7 +3362,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 47,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.egress_port_id = ..."
@@ -3729,7 +3377,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 40,
             "column" : 8,
             "source_fragment" : "hdr.int_switch_id.setValid()"
@@ -3744,11 +3392,11 @@
             },
             {
               "type" : "field",
-              "value" : ["int_meta", "switch_id"]
+              "value" : ["userMetadata.int_meta", "switch_id"]
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
@@ -3757,14 +3405,8 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0407_i0",
-      "id" : 32,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "process_int_transit.int_set_header_0407_i1",
-      "id" : 33,
+      "name" : "egress.process_int_transit.int_set_header_0003_i14",
+      "id" : 31,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -3772,14 +3414,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_egress_tx_util"
+              "value" : "int_hop_latency"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 88,
+            "filename" : "include/int_transit.p4",
+            "line" : 51,
             "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
           }
         },
         {
@@ -3787,24 +3429,363 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
+              "value" : ["int_hop_latency", "hop_latency"]
             },
             {
-              "type" : "hexstr",
-              "value" : "0x00000000"
+              "type" : "field",
+              "value" : ["standard_metadata", "deq_timedelta"]
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 89,
+            "filename" : "include/int_transit.p4",
+            "line" : 52,
             "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 45,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.ingress_port_id = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 47,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.egress_port_id = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_switch_id"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 40,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_switch_id", "switch_id"]
+            },
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "switch_id"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 41,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
           }
         }
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0407_i2",
+      "name" : "egress.process_int_transit.int_set_header_0003_i15",
+      "id" : 32,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_occupancy"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 57,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 58,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_id = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_occupancy", "q_occupancy"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "deq_qdepth"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 61,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_hop_latency"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 51,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_hop_latency", "hop_latency"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "deq_timedelta"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 52,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 45,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.ingress_port_id = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 47,
+            "column" : 8,
+            "source_fragment" : "hdr.int_port_ids.egress_port_id = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_switch_id"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 40,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_switch_id", "switch_id"]
+            },
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "switch_id"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 41,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i0",
+      "id" : 33,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i1",
       "id" : 34,
       "runtime_data" : [],
       "primitives" : [
@@ -3813,14 +3794,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_q_congestion"
+              "value" : "int_egress_tx_util"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 78,
+            "filename" : "include/int_transit.p4",
+            "line" : 88,
             "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.setValid()"
+            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
           }
         },
         {
@@ -3828,43 +3809,24 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_q_congestion", "q_id"]
+              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
             },
             {
               "type" : "hexstr",
-              "value" : "0x00"
+              "value" : "0x00000000"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 79,
+            "filename" : "include/int_transit.p4",
+            "line" : 89,
             "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_id = ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_congestion", "q_congestion"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 82,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_congestion = ..."
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
           }
         }
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0407_i3",
+      "name" : "egress.process_int_transit.int_set_header_0407_i2",
       "id" : 35,
       "runtime_data" : [],
       "primitives" : [
@@ -3873,45 +3835,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_egress_tx_util"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 88,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 89,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_q_congestion"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 78,
             "column" : 8,
             "source_fragment" : "hdr.int_q_congestion.setValid()"
@@ -3930,7 +3858,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 79,
             "column" : 8,
             "source_fragment" : "hdr.int_q_congestion.q_id = ..."
@@ -3949,7 +3877,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 82,
             "column" : 8,
             "source_fragment" : "hdr.int_q_congestion.q_congestion = ..."
@@ -3958,7 +3886,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0407_i4",
+      "name" : "egress.process_int_transit.int_set_header_0407_i3",
       "id" : 36,
       "runtime_data" : [],
       "primitives" : [
@@ -3967,14 +3895,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_egress_tstamp"
+              "value" : "int_egress_tx_util"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 70,
+            "filename" : "include/int_transit.p4",
+            "line" : 88,
             "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
           }
         },
         {
@@ -3982,47 +3910,77 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_egress_tstamp", "egress_tstamp"]
+              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
             },
             {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "enq_timestamp"]
-                      },
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "deq_timedelta"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffff"
-                  }
-                }
-              }
+              "type" : "hexstr",
+              "value" : "0x00000000"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 71,
+            "filename" : "include/int_transit.p4",
+            "line" : 89,
             "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = ..."
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_congestion"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 78,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 79,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_id = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_congestion"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 82,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_congestion = ..."
           }
         }
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0407_i5",
+      "name" : "egress.process_int_transit.int_set_header_0407_i4",
       "id" : 37,
       "runtime_data" : [],
       "primitives" : [
@@ -4031,45 +3989,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_egress_tx_util"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 88,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 89,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_egress_tstamp"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 70,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tstamp.setValid()"
@@ -4111,7 +4035,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 71,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = ..."
@@ -4120,7 +4044,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0407_i6",
+      "name" : "egress.process_int_transit.int_set_header_0407_i5",
       "id" : 38,
       "runtime_data" : [],
       "primitives" : [
@@ -4129,14 +4053,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_q_congestion"
+              "value" : "int_egress_tx_util"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 78,
+            "filename" : "include/int_transit.p4",
+            "line" : 88,
             "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.setValid()"
+            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
           }
         },
         {
@@ -4144,37 +4068,18 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_q_congestion", "q_id"]
+              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
             },
             {
               "type" : "hexstr",
-              "value" : "0x00"
+              "value" : "0x00000000"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 79,
+            "filename" : "include/int_transit.p4",
+            "line" : 89,
             "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_id = ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_congestion", "q_congestion"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 82,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_congestion = ..."
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
           }
         },
         {
@@ -4186,7 +4091,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 70,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tstamp.setValid()"
@@ -4228,7 +4133,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 71,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = ..."
@@ -4237,7 +4142,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0407_i7",
+      "name" : "egress.process_int_transit.int_set_header_0407_i6",
       "id" : 39,
       "runtime_data" : [],
       "primitives" : [
@@ -4246,45 +4151,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_egress_tx_util"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 88,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 89,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_q_congestion"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 78,
             "column" : 8,
             "source_fragment" : "hdr.int_q_congestion.setValid()"
@@ -4303,7 +4174,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 79,
             "column" : 8,
             "source_fragment" : "hdr.int_q_congestion.q_id = ..."
@@ -4322,7 +4193,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 82,
             "column" : 8,
             "source_fragment" : "hdr.int_q_congestion.q_congestion = ..."
@@ -4337,7 +4208,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 70,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tstamp.setValid()"
@@ -4379,7 +4250,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 71,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = ..."
@@ -4388,7 +4259,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0407_i8",
+      "name" : "egress.process_int_transit.int_set_header_0407_i7",
       "id" : 40,
       "runtime_data" : [],
       "primitives" : [
@@ -4397,14 +4268,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_ingress_tstamp"
+              "value" : "int_egress_tx_util"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 65,
+            "filename" : "include/int_transit.p4",
+            "line" : 88,
             "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
+            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
           }
         },
         {
@@ -4412,24 +4283,134 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
             },
             {
-              "type" : "field",
-              "value" : ["standard_metadata", "enq_timestamp"]
+              "type" : "hexstr",
+              "value" : "0x00000000"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 66,
+            "filename" : "include/int_transit.p4",
+            "line" : 89,
             "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_congestion"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 78,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 79,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_id = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_congestion"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 82,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_congestion = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 70,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tstamp", "egress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "enq_timestamp"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "deq_timedelta"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 71,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = ..."
           }
         }
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0407_i9",
+      "name" : "egress.process_int_transit.int_set_header_0407_i8",
       "id" : 41,
       "runtime_data" : [],
       "primitives" : [
@@ -4438,45 +4419,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_egress_tx_util"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 88,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 89,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_ingress_tstamp"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 65,
             "column" : 8,
             "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
@@ -4495,7 +4442,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 66,
             "column" : 8,
             "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
@@ -4504,7 +4451,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0407_i10",
+      "name" : "egress.process_int_transit.int_set_header_0407_i9",
       "id" : 42,
       "runtime_data" : [],
       "primitives" : [
@@ -4513,14 +4460,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_q_congestion"
+              "value" : "int_egress_tx_util"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 78,
+            "filename" : "include/int_transit.p4",
+            "line" : 88,
             "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.setValid()"
+            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
           }
         },
         {
@@ -4528,37 +4475,18 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_q_congestion", "q_id"]
+              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
             },
             {
               "type" : "hexstr",
-              "value" : "0x00"
+              "value" : "0x00000000"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 79,
+            "filename" : "include/int_transit.p4",
+            "line" : 89,
             "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_id = ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_congestion", "q_congestion"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 82,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_congestion = ..."
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
           }
         },
         {
@@ -4570,7 +4498,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 65,
             "column" : 8,
             "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
@@ -4589,7 +4517,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 66,
             "column" : 8,
             "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
@@ -4598,7 +4526,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0407_i11",
+      "name" : "egress.process_int_transit.int_set_header_0407_i10",
       "id" : 43,
       "runtime_data" : [],
       "primitives" : [
@@ -4607,45 +4535,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_egress_tx_util"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 88,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 89,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_q_congestion"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 78,
             "column" : 8,
             "source_fragment" : "hdr.int_q_congestion.setValid()"
@@ -4664,7 +4558,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 79,
             "column" : 8,
             "source_fragment" : "hdr.int_q_congestion.q_id = ..."
@@ -4683,7 +4577,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 82,
             "column" : 8,
             "source_fragment" : "hdr.int_q_congestion.q_congestion = ..."
@@ -4698,7 +4592,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 65,
             "column" : 8,
             "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
@@ -4717,7 +4611,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 66,
             "column" : 8,
             "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
@@ -4726,7 +4620,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0407_i12",
+      "name" : "egress.process_int_transit.int_set_header_0407_i11",
       "id" : 44,
       "runtime_data" : [],
       "primitives" : [
@@ -4735,14 +4629,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_egress_tstamp"
+              "value" : "int_egress_tx_util"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 70,
+            "filename" : "include/int_transit.p4",
+            "line" : 88,
             "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
           }
         },
         {
@@ -4750,41 +4644,71 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_egress_tstamp", "egress_tstamp"]
+              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
             },
             {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "enq_timestamp"]
-                      },
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "deq_timedelta"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffff"
-                  }
-                }
-              }
+              "type" : "hexstr",
+              "value" : "0x00000000"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 71,
+            "filename" : "include/int_transit.p4",
+            "line" : 89,
             "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = ..."
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_congestion"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 78,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 79,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_id = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_congestion"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 82,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_congestion = ..."
           }
         },
         {
@@ -4796,7 +4720,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 65,
             "column" : 8,
             "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
@@ -4815,7 +4739,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 66,
             "column" : 8,
             "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
@@ -4824,7 +4748,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0407_i13",
+      "name" : "egress.process_int_transit.int_set_header_0407_i12",
       "id" : 45,
       "runtime_data" : [],
       "primitives" : [
@@ -4833,45 +4757,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_egress_tx_util"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 88,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 89,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_egress_tstamp"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 70,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tstamp.setValid()"
@@ -4913,7 +4803,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 71,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = ..."
@@ -4928,7 +4818,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 65,
             "column" : 8,
             "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
@@ -4947,7 +4837,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 66,
             "column" : 8,
             "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
@@ -4956,7 +4846,7 @@
       ]
     },
     {
-      "name" : "process_int_transit.int_set_header_0407_i14",
+      "name" : "egress.process_int_transit.int_set_header_0407_i13",
       "id" : 46,
       "runtime_data" : [],
       "primitives" : [
@@ -4965,162 +4855,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_q_congestion"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 78,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_congestion", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 79,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_id = ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_congestion", "q_congestion"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 82,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_congestion = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_egress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 70,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_egress_tstamp", "egress_tstamp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "enq_timestamp"]
-                      },
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "deq_timedelta"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 71,
-            "column" : 8,
-            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "int_ingress_tstamp"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 65,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
-            },
-            {
-              "type" : "field",
-              "value" : ["standard_metadata", "enq_timestamp"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 66,
-            "column" : 8,
-            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "process_int_transit.int_set_header_0407_i15",
-      "id" : 47,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_egress_tx_util"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 88,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tx_util.setValid()"
@@ -5139,7 +4878,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 89,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
@@ -5150,64 +4889,11 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_q_congestion"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 78,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_congestion", "q_id"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x00"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 79,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_id = ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_q_congestion", "q_congestion"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x000000"
-            }
-          ],
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 82,
-            "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.q_congestion = ..."
-          }
-        },
-        {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_egress_tstamp"
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 70,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tstamp.setValid()"
@@ -5249,7 +4935,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 71,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = ..."
@@ -5264,7 +4950,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 65,
             "column" : 8,
             "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
@@ -5283,7 +4969,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
+            "filename" : "include/int_transit.p4",
             "line" : 66,
             "column" : 8,
             "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
@@ -5292,11 +4978,347 @@
       ]
     },
     {
-      "name" : "process_int_outer_encap.int_update_ipv4",
+      "name" : "egress.process_int_transit.int_set_header_0407_i14",
+      "id" : 47,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_congestion"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 78,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 79,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_id = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_congestion"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 82,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_congestion = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 70,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tstamp", "egress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "enq_timestamp"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "deq_timedelta"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 71,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_ingress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 65,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "enq_timestamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 66,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i15",
       "id" : 48,
       "runtime_data" : [],
       "primitives" : [
         {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tx_util"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 88,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tx_util.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tx_util", "egress_port_tx_util"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 89,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_congestion"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 78,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_id"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 79,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_id = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_q_congestion", "q_congestion"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x000000"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 82,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_congestion.q_congestion = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 70,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_egress_tstamp", "egress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "enq_timestamp"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["standard_metadata", "deq_timedelta"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 71,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_ingress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 65,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["standard_metadata", "enq_timestamp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 66,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_outer_encap.int_update_ipv4",
+      "id" : 49,
+      "runtime_data" : [],
+      "primitives" : [
+        {
           "op" : "assign",
           "parameters" : [
             {
@@ -5319,7 +5341,7 @@
                       },
                       "right" : {
                         "type" : "field",
-                        "value" : ["int_meta", "insert_byte_cnt"]
+                        "value" : ["userMetadata.int_meta", "insert_byte_cnt"]
                       }
                     }
                   },
@@ -5332,8 +5354,8 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 306,
+            "filename" : "include/int_transit.p4",
+            "line" : 304,
             "column" : 8,
             "source_fragment" : "hdr.ipv4.len = hdr.ipv4.len + local_metadata.int_meta.insert_byte_cnt"
           }
@@ -5341,8 +5363,8 @@
       ]
     },
     {
-      "name" : "process_int_outer_encap.int_update_udp",
-      "id" : 49,
+      "name" : "egress.process_int_outer_encap.int_update_udp",
+      "id" : 50,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5368,7 +5390,7 @@
                       },
                       "right" : {
                         "type" : "field",
-                        "value" : ["int_meta", "insert_byte_cnt"]
+                        "value" : ["userMetadata.int_meta", "insert_byte_cnt"]
                       }
                     }
                   },
@@ -5381,8 +5403,8 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 309,
+            "filename" : "include/int_transit.p4",
+            "line" : 307,
             "column" : 8,
             "source_fragment" : "hdr.udp.length_ = hdr.udp.length_ + local_metadata.int_meta.insert_byte_cnt"
           }
@@ -5390,8 +5412,8 @@
       ]
     },
     {
-      "name" : "process_int_outer_encap.int_update_shim",
-      "id" : 50,
+      "name" : "egress.process_int_outer_encap.int_update_shim",
+      "id" : 51,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5440,8 +5462,8 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 312,
+            "filename" : "include/int_transit.p4",
+            "line" : 310,
             "column" : 8,
             "source_fragment" : "hdr.intl4_shim.len = hdr.intl4_shim.len + (bit<8>)hdr.int_header.ins_cnt"
           }
@@ -5449,8 +5471,8 @@
       ]
     },
     {
-      "name" : "process_int_sink.restore_header",
-      "id" : 51,
+      "name" : "egress.process_int_sink.restore_header",
+      "id" : 52,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5466,7 +5488,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 27,
             "column" : 8,
             "source_fragment" : "hdr.udp.dst_port = hdr.intl4_tail.dest_port"
@@ -5498,7 +5520,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 28,
             "column" : 8,
             "source_fragment" : "hdr.ipv4.dscp = (bit<6>)hdr.intl4_tail.dscp"
@@ -5507,8 +5529,8 @@
       ]
     },
     {
-      "name" : "process_int_sink.int_sink",
-      "id" : 52,
+      "name" : "egress.process_int_sink.int_sink",
+      "id" : 53,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5607,7 +5629,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 33,
             "column" : 8,
             "source_fragment" : "hdr.ipv4.len = hdr.ipv4.len - (bit<16>)((hdr.intl4_shim.len - (bit<8>)hdr.int_header.ins_cnt) << 2)"
@@ -5709,7 +5731,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 34,
             "column" : 8,
             "source_fragment" : "hdr.udp.length_ = hdr.udp.length_ - (bit<16>)((hdr.intl4_shim.len - (bit<8>)hdr.int_header.ins_cnt) << 2)"
@@ -5724,7 +5746,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 36,
             "column" : 8,
             "source_fragment" : "hdr.int_header.setInvalid()"
@@ -5739,7 +5761,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.int_data.setInvalid()"
@@ -5754,7 +5776,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 38,
             "column" : 8,
             "source_fragment" : "hdr.intl4_shim.setInvalid()"
@@ -5769,7 +5791,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 39,
             "column" : 8,
             "source_fragment" : "hdr.intl4_tail.setInvalid()"
@@ -5784,7 +5806,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 40,
             "column" : 8,
             "source_fragment" : "hdr.int_switch_id.setInvalid()"
@@ -5799,7 +5821,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.int_port_ids.setInvalid()"
@@ -5814,7 +5836,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 42,
             "column" : 8,
             "source_fragment" : "hdr.int_hop_latency.setInvalid()"
@@ -5829,7 +5851,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 43,
             "column" : 8,
             "source_fragment" : "hdr.int_q_occupancy.setInvalid()"
@@ -5844,7 +5866,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 44,
             "column" : 8,
             "source_fragment" : "hdr.int_ingress_tstamp.setInvalid()"
@@ -5859,7 +5881,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 45,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tstamp.setInvalid()"
@@ -5874,7 +5896,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 46,
             "column" : 8,
             "source_fragment" : "hdr.int_q_congestion.setInvalid()"
@@ -5889,7 +5911,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 47,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tx_util.setInvalid()"
@@ -5899,7 +5921,7 @@
     },
     {
       "name" : "act_1",
-      "id" : 53,
+      "id" : 54,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5911,7 +5933,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/packet_io.p4",
+            "filename" : "include/packet_io.p4",
             "line" : 38,
             "column" : 12,
             "source_fragment" : "hdr.packet_in.setValid()"
@@ -5930,7 +5952,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/packet_io.p4",
+            "filename" : "include/packet_io.p4",
             "line" : 39,
             "column" : 12,
             "source_fragment" : "hdr.packet_in.ingress_port = standard_metadata.ingress_port"
@@ -5940,7 +5962,7 @@
     },
     {
       "name" : "act_2",
-      "id" : 54,
+      "id" : 55,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -5974,7 +5996,7 @@
           "parameters" : [
             {
               "type" : "counter_array",
-              "value" : "port_counters_egress.egress_port_counter"
+              "value" : "egress.port_counters_egress.egress_port_counter"
             },
             {
               "type" : "field",
@@ -5982,7 +6004,7 @@
             }
           ],
           "source_info" : {
-            "filename" : "./include/port_counters.p4",
+            "filename" : "include/port_counters.p4",
             "line" : 39,
             "column" : 8,
             "source_fragment" : "egress_port_counter.count((bit<32>) standard_metadata.egress_port)"
@@ -5999,7 +6021,7 @@
         "filename" : "int.p4",
         "line" : 35,
         "column" : 8,
-        "source_fragment" : "int_ingress"
+        "source_fragment" : "ingress"
       },
       "init_table" : "tbl_act",
       "tables" : [
@@ -6013,14 +6035,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [8],
+          "action_ids" : [5],
           "actions" : ["act_0"],
           "base_default_next" : "node_3",
           "next_tables" : {
             "act_0" : "node_3"
           },
           "default_entry" : {
-            "action_id" : 8,
+            "action_id" : 5,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6036,24 +6058,24 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [7],
+          "action_ids" : [4],
           "actions" : ["act"],
           "base_default_next" : null,
           "next_tables" : {
             "act" : null
           },
           "default_entry" : {
-            "action_id" : 7,
+            "action_id" : 4,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "table0_control.table0",
+          "name" : "ingress.table0_control.table0",
           "id" : 2,
           "source_info" : {
-            "filename" : "./include/table0.p4",
+            "filename" : "include/table0.p4",
             "line" : 33,
             "column" : 10,
             "source_fragment" : "table0"
@@ -6061,46 +6083,55 @@
           "key" : [
             {
               "match_type" : "ternary",
+              "name" : "standard_metadata.ingress_port",
               "target" : ["standard_metadata", "ingress_port"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
+              "name" : "hdr.ethernet.src_addr",
               "target" : ["ethernet", "src_addr"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
+              "name" : "hdr.ethernet.dst_addr",
               "target" : ["ethernet", "dst_addr"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
+              "name" : "hdr.ethernet.ether_type",
               "target" : ["ethernet", "ether_type"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
+              "name" : "hdr.ipv4.src_addr",
               "target" : ["ipv4", "src_addr"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
+              "name" : "hdr.ipv4.dst_addr",
               "target" : ["ipv4", "dst_addr"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
+              "name" : "hdr.ipv4.protocol",
               "target" : ["ipv4", "protocol"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
+              "name" : "local_metadata.l4_src_port",
               "target" : ["scalars", "local_metadata_t.l4_src_port"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
+              "name" : "local_metadata.l4_dst_port",
               "target" : ["scalars", "local_metadata_t.l4_dst_port"],
               "mask" : null
             }
@@ -6108,16 +6139,17 @@
           "match_type" : "ternary",
           "type" : "simple",
           "max_size" : 1024,
+          "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [0, 1, 4, 2],
-          "actions" : ["set_egress_port", "send_to_cpu", "table0_control.set_next_hop_id", "_drop"],
-          "base_default_next" : "process_set_source_sink.tb_set_source_sink",
+          "action_ids" : [0, 1, 3, 2],
+          "actions" : ["set_egress_port", "send_to_cpu", "ingress.table0_control.set_next_hop_id", "_drop"],
+          "base_default_next" : null,
           "next_tables" : {
-            "set_egress_port" : "process_set_source_sink.tb_set_source_sink",
-            "send_to_cpu" : "process_set_source_sink.tb_set_source_sink",
-            "table0_control.set_next_hop_id" : "process_set_source_sink.tb_set_source_sink",
-            "_drop" : "process_set_source_sink.tb_set_source_sink"
+            "set_egress_port" : null,
+            "send_to_cpu" : null,
+            "ingress.table0_control.set_next_hop_id" : null,
+            "_drop" : null
           },
           "default_entry" : {
             "action_id" : 2,
@@ -6125,57 +6157,6 @@
             "action_data" : [],
             "action_entry_const" : true
           }
-        },
-        {
-          "name" : "process_set_source_sink.tb_set_source_sink",
-          "id" : 3,
-          "source_info" : {
-            "filename" : "./include/int_source.p4",
-            "line" : 100,
-            "column" : 10,
-            "source_fragment" : "tb_set_source_sink"
-          },
-          "key" : [
-            {
-              "match_type" : "ternary",
-              "target" : ["ipv4", "src_addr"],
-              "mask" : null
-            },
-            {
-              "match_type" : "ternary",
-              "target" : ["ipv4", "dst_addr"],
-              "mask" : null
-            },
-            {
-              "match_type" : "ternary",
-              "target" : ["scalars", "local_metadata_t.l4_src_port"],
-              "mask" : null
-            },
-            {
-              "match_type" : "ternary",
-              "target" : ["scalars", "local_metadata_t.l4_dst_port"],
-              "mask" : null
-            }
-          ],
-          "match_type" : "ternary",
-          "type" : "simple",
-          "max_size" : 1024,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [5, 6, 3],
-          "actions" : ["process_set_source_sink.int_set_source", "process_set_source_sink.int_set_sink", "NoAction"],
-          "base_default_next" : null,
-          "next_tables" : {
-            "process_set_source_sink.int_set_source" : null,
-            "process_set_source_sink.int_set_sink" : null,
-            "NoAction" : null
-          },
-          "default_entry" : {
-            "action_id" : 3,
-            "action_const" : false,
-            "action_data" : [],
-            "action_entry_const" : false
-          }
         }
       ],
       "action_profiles" : [],
@@ -6184,7 +6165,7 @@
           "name" : "node_3",
           "id" : 0,
           "source_info" : {
-            "filename" : "./include/packet_io.p4",
+            "filename" : "include/packet_io.p4",
             "line" : 26,
             "column" : 12,
             "source_fragment" : "standard_metadata.ingress_port == CPU_PORT"
@@ -6204,7 +6185,7 @@
             }
           },
           "true_next" : "tbl_act_0",
-          "false_next" : "table0_control.table0"
+          "false_next" : "ingress.table0_control.table0"
         }
       ]
     },
@@ -6213,17 +6194,91 @@
       "id" : 1,
       "source_info" : {
         "filename" : "int.p4",
-        "line" : 48,
+        "line" : 47,
         "column" : 8,
-        "source_fragment" : "int_egress"
+        "source_fragment" : "egress"
       },
-      "init_table" : "node_9",
+      "init_table" : "node_8",
       "tables" : [
         {
-          "name" : "process_int_source.tb_int_source",
+          "name" : "egress.process_set_source_sink.tb_set_source",
+          "id" : 3,
+          "source_info" : {
+            "filename" : "include/int_source.p4",
+            "line" : 101,
+            "column" : 10,
+            "source_fragment" : "tb_set_source"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "standard_metadata.ingress_port",
+              "target" : ["standard_metadata", "ingress_port"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 256,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [12, 6],
+          "actions" : ["egress.process_set_source_sink.int_set_source", "NoAction"],
+          "base_default_next" : "egress.process_set_source_sink.tb_set_sink",
+          "next_tables" : {
+            "egress.process_set_source_sink.int_set_source" : "egress.process_set_source_sink.tb_set_sink",
+            "NoAction" : "egress.process_set_source_sink.tb_set_sink"
+          },
+          "default_entry" : {
+            "action_id" : 6,
+            "action_const" : false,
+            "action_data" : [],
+            "action_entry_const" : false
+          }
+        },
+        {
+          "name" : "egress.process_set_source_sink.tb_set_sink",
           "id" : 4,
           "source_info" : {
-            "filename" : "./include/int_source.p4",
+            "filename" : "include/int_source.p4",
+            "line" : 111,
+            "column" : 10,
+            "source_fragment" : "tb_set_sink"
+          },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "standard_metadata.egress_port",
+              "target" : ["standard_metadata", "egress_port"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 256,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [13, 7],
+          "actions" : ["egress.process_set_source_sink.int_set_sink", "NoAction"],
+          "base_default_next" : "node_11",
+          "next_tables" : {
+            "egress.process_set_source_sink.int_set_sink" : "node_11",
+            "NoAction" : "node_11"
+          },
+          "default_entry" : {
+            "action_id" : 7,
+            "action_const" : false,
+            "action_data" : [],
+            "action_entry_const" : false
+          }
+        },
+        {
+          "name" : "egress.process_int_source.tb_int_source",
+          "id" : 5,
+          "source_info" : {
+            "filename" : "include/int_source.p4",
             "line" : 66,
             "column" : 10,
             "source_fragment" : "tb_int_source"
@@ -6231,21 +6286,25 @@
           "key" : [
             {
               "match_type" : "ternary",
+              "name" : "hdr.ipv4.src_addr",
               "target" : ["ipv4", "src_addr"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
+              "name" : "hdr.ipv4.dst_addr",
               "target" : ["ipv4", "dst_addr"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
+              "name" : "local_metadata.l4_src_port",
               "target" : ["scalars", "local_metadata_t.l4_src_port"],
               "mask" : null
             },
             {
               "match_type" : "ternary",
+              "name" : "local_metadata.l4_dst_port",
               "target" : ["scalars", "local_metadata_t.l4_dst_port"],
               "mask" : null
             }
@@ -6253,14 +6312,45 @@
           "match_type" : "ternary",
           "type" : "simple",
           "max_size" : 1024,
+          "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [13, 9],
-          "actions" : ["process_int_source.int_source_dscp", "NoAction"],
-          "base_default_next" : "node_12",
+          "action_ids" : [14, 8],
+          "actions" : ["egress.process_int_source.int_source_dscp", "NoAction"],
+          "base_default_next" : "node_13",
           "next_tables" : {
-            "process_int_source.int_source_dscp" : "node_12",
-            "NoAction" : "node_12"
+            "egress.process_int_source.int_source_dscp" : "node_13",
+            "NoAction" : "node_13"
+          },
+          "default_entry" : {
+            "action_id" : 8,
+            "action_const" : false,
+            "action_data" : [],
+            "action_entry_const" : false
+          }
+        },
+        {
+          "name" : "egress.process_int_transit.tb_int_insert",
+          "id" : 6,
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 227,
+            "column" : 10,
+            "source_fragment" : "tb_int_insert"
+          },
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 2,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [16, 9],
+          "actions" : ["egress.process_int_transit.int_transit", "NoAction"],
+          "base_default_next" : "egress.process_int_transit.tb_int_inst_0003",
+          "next_tables" : {
+            "egress.process_int_transit.int_transit" : "egress.process_int_transit.tb_int_inst_0003",
+            "NoAction" : "egress.process_int_transit.tb_int_inst_0003"
           },
           "default_entry" : {
             "action_id" : 9,
@@ -6270,32 +6360,49 @@
           }
         },
         {
-          "name" : "process_int_transit.tb_int_insert",
-          "id" : 5,
+          "name" : "egress.process_int_transit.tb_int_inst_0003",
+          "id" : 7,
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 227,
+            "filename" : "include/int_transit.p4",
+            "line" : 237,
             "column" : 10,
-            "source_fragment" : "tb_int_insert"
+            "source_fragment" : "tb_int_inst_0003"
           },
           "key" : [
             {
               "match_type" : "exact",
-              "target" : ["int_meta", "sink"],
+              "name" : "hdr.int_header.instruction_mask_0003",
+              "target" : ["int_header", "instruction_mask_0003"],
               "mask" : null
             }
           ],
           "match_type" : "exact",
           "type" : "simple",
-          "max_size" : 2,
+          "max_size" : 16,
+          "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [15, 10],
-          "actions" : ["process_int_transit.int_transit", "NoAction"],
-          "base_default_next" : "process_int_transit.tb_int_inst_0003",
+          "action_ids" : [17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 10],
+          "actions" : ["egress.process_int_transit.int_set_header_0003_i0", "egress.process_int_transit.int_set_header_0003_i1", "egress.process_int_transit.int_set_header_0003_i2", "egress.process_int_transit.int_set_header_0003_i3", "egress.process_int_transit.int_set_header_0003_i4", "egress.process_int_transit.int_set_header_0003_i5", "egress.process_int_transit.int_set_header_0003_i6", "egress.process_int_transit.int_set_header_0003_i7", "egress.process_int_transit.int_set_header_0003_i8", "egress.process_int_transit.int_set_header_0003_i9", "egress.process_int_transit.int_set_header_0003_i10", "egress.process_int_transit.int_set_header_0003_i11", "egress.process_int_transit.int_set_header_0003_i12", "egress.process_int_transit.int_set_header_0003_i13", "egress.process_int_transit.int_set_header_0003_i14", "egress.process_int_transit.int_set_header_0003_i15", "NoAction"],
+          "base_default_next" : "egress.process_int_transit.tb_int_inst_0407",
           "next_tables" : {
-            "process_int_transit.int_transit" : "process_int_transit.tb_int_inst_0003",
-            "NoAction" : "process_int_transit.tb_int_inst_0003"
+            "egress.process_int_transit.int_set_header_0003_i0" : "egress.process_int_transit.tb_int_inst_0407",
+            "egress.process_int_transit.int_set_header_0003_i1" : "egress.process_int_transit.tb_int_inst_0407",
+            "egress.process_int_transit.int_set_header_0003_i2" : "egress.process_int_transit.tb_int_inst_0407",
+            "egress.process_int_transit.int_set_header_0003_i3" : "egress.process_int_transit.tb_int_inst_0407",
+            "egress.process_int_transit.int_set_header_0003_i4" : "egress.process_int_transit.tb_int_inst_0407",
+            "egress.process_int_transit.int_set_header_0003_i5" : "egress.process_int_transit.tb_int_inst_0407",
+            "egress.process_int_transit.int_set_header_0003_i6" : "egress.process_int_transit.tb_int_inst_0407",
+            "egress.process_int_transit.int_set_header_0003_i7" : "egress.process_int_transit.tb_int_inst_0407",
+            "egress.process_int_transit.int_set_header_0003_i8" : "egress.process_int_transit.tb_int_inst_0407",
+            "egress.process_int_transit.int_set_header_0003_i9" : "egress.process_int_transit.tb_int_inst_0407",
+            "egress.process_int_transit.int_set_header_0003_i10" : "egress.process_int_transit.tb_int_inst_0407",
+            "egress.process_int_transit.int_set_header_0003_i11" : "egress.process_int_transit.tb_int_inst_0407",
+            "egress.process_int_transit.int_set_header_0003_i12" : "egress.process_int_transit.tb_int_inst_0407",
+            "egress.process_int_transit.int_set_header_0003_i13" : "egress.process_int_transit.tb_int_inst_0407",
+            "egress.process_int_transit.int_set_header_0003_i14" : "egress.process_int_transit.tb_int_inst_0407",
+            "egress.process_int_transit.int_set_header_0003_i15" : "egress.process_int_transit.tb_int_inst_0407",
+            "NoAction" : "egress.process_int_transit.tb_int_inst_0407"
           },
           "default_entry" : {
             "action_id" : 10,
@@ -6305,47 +6412,49 @@
           }
         },
         {
-          "name" : "process_int_transit.tb_int_inst_0003",
-          "id" : 6,
+          "name" : "egress.process_int_transit.tb_int_inst_0407",
+          "id" : 8,
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 239,
+            "filename" : "include/int_transit.p4",
+            "line" : 264,
             "column" : 10,
-            "source_fragment" : "tb_int_inst_0003"
+            "source_fragment" : "tb_int_inst_0407"
           },
           "key" : [
             {
               "match_type" : "exact",
-              "target" : ["int_header", "instruction_mask_0003"],
+              "name" : "hdr.int_header.instruction_mask_0407",
+              "target" : ["int_header", "instruction_mask_0407"],
               "mask" : null
             }
           ],
           "match_type" : "exact",
           "type" : "simple",
           "max_size" : 16,
+          "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 11],
-          "actions" : ["process_int_transit.int_set_header_0003_i0", "process_int_transit.int_set_header_0003_i1", "process_int_transit.int_set_header_0003_i2", "process_int_transit.int_set_header_0003_i3", "process_int_transit.int_set_header_0003_i4", "process_int_transit.int_set_header_0003_i5", "process_int_transit.int_set_header_0003_i6", "process_int_transit.int_set_header_0003_i7", "process_int_transit.int_set_header_0003_i8", "process_int_transit.int_set_header_0003_i9", "process_int_transit.int_set_header_0003_i10", "process_int_transit.int_set_header_0003_i11", "process_int_transit.int_set_header_0003_i12", "process_int_transit.int_set_header_0003_i13", "process_int_transit.int_set_header_0003_i14", "process_int_transit.int_set_header_0003_i15", "NoAction"],
-          "base_default_next" : "process_int_transit.tb_int_inst_0407",
+          "action_ids" : [33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 11],
+          "actions" : ["egress.process_int_transit.int_set_header_0407_i0", "egress.process_int_transit.int_set_header_0407_i1", "egress.process_int_transit.int_set_header_0407_i2", "egress.process_int_transit.int_set_header_0407_i3", "egress.process_int_transit.int_set_header_0407_i4", "egress.process_int_transit.int_set_header_0407_i5", "egress.process_int_transit.int_set_header_0407_i6", "egress.process_int_transit.int_set_header_0407_i7", "egress.process_int_transit.int_set_header_0407_i8", "egress.process_int_transit.int_set_header_0407_i9", "egress.process_int_transit.int_set_header_0407_i10", "egress.process_int_transit.int_set_header_0407_i11", "egress.process_int_transit.int_set_header_0407_i12", "egress.process_int_transit.int_set_header_0407_i13", "egress.process_int_transit.int_set_header_0407_i14", "egress.process_int_transit.int_set_header_0407_i15", "NoAction"],
+          "base_default_next" : "tbl_process_int_transit_int_update_total_hop_cnt",
           "next_tables" : {
-            "process_int_transit.int_set_header_0003_i0" : "process_int_transit.tb_int_inst_0407",
-            "process_int_transit.int_set_header_0003_i1" : "process_int_transit.tb_int_inst_0407",
-            "process_int_transit.int_set_header_0003_i2" : "process_int_transit.tb_int_inst_0407",
-            "process_int_transit.int_set_header_0003_i3" : "process_int_transit.tb_int_inst_0407",
-            "process_int_transit.int_set_header_0003_i4" : "process_int_transit.tb_int_inst_0407",
-            "process_int_transit.int_set_header_0003_i5" : "process_int_transit.tb_int_inst_0407",
-            "process_int_transit.int_set_header_0003_i6" : "process_int_transit.tb_int_inst_0407",
-            "process_int_transit.int_set_header_0003_i7" : "process_int_transit.tb_int_inst_0407",
-            "process_int_transit.int_set_header_0003_i8" : "process_int_transit.tb_int_inst_0407",
-            "process_int_transit.int_set_header_0003_i9" : "process_int_transit.tb_int_inst_0407",
-            "process_int_transit.int_set_header_0003_i10" : "process_int_transit.tb_int_inst_0407",
-            "process_int_transit.int_set_header_0003_i11" : "process_int_transit.tb_int_inst_0407",
-            "process_int_transit.int_set_header_0003_i12" : "process_int_transit.tb_int_inst_0407",
-            "process_int_transit.int_set_header_0003_i13" : "process_int_transit.tb_int_inst_0407",
-            "process_int_transit.int_set_header_0003_i14" : "process_int_transit.tb_int_inst_0407",
-            "process_int_transit.int_set_header_0003_i15" : "process_int_transit.tb_int_inst_0407",
-            "NoAction" : "process_int_transit.tb_int_inst_0407"
+            "egress.process_int_transit.int_set_header_0407_i0" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "egress.process_int_transit.int_set_header_0407_i1" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "egress.process_int_transit.int_set_header_0407_i2" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "egress.process_int_transit.int_set_header_0407_i3" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "egress.process_int_transit.int_set_header_0407_i4" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "egress.process_int_transit.int_set_header_0407_i5" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "egress.process_int_transit.int_set_header_0407_i6" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "egress.process_int_transit.int_set_header_0407_i7" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "egress.process_int_transit.int_set_header_0407_i8" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "egress.process_int_transit.int_set_header_0407_i9" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "egress.process_int_transit.int_set_header_0407_i10" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "egress.process_int_transit.int_set_header_0407_i11" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "egress.process_int_transit.int_set_header_0407_i12" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "egress.process_int_transit.int_set_header_0407_i13" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "egress.process_int_transit.int_set_header_0407_i14" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "egress.process_int_transit.int_set_header_0407_i15" : "tbl_process_int_transit_int_update_total_hop_cnt",
+            "NoAction" : "tbl_process_int_transit_int_update_total_hop_cnt"
           },
           "default_entry" : {
             "action_id" : 11,
@@ -6355,80 +6464,7 @@
           }
         },
         {
-          "name" : "process_int_transit.tb_int_inst_0407",
-          "id" : 7,
-          "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 266,
-            "column" : 10,
-            "source_fragment" : "tb_int_inst_0407"
-          },
-          "key" : [
-            {
-              "match_type" : "exact",
-              "target" : ["int_header", "instruction_mask_0407"],
-              "mask" : null
-            }
-          ],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 16,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 12],
-          "actions" : ["process_int_transit.int_set_header_0407_i0", "process_int_transit.int_set_header_0407_i1", "process_int_transit.int_set_header_0407_i2", "process_int_transit.int_set_header_0407_i3", "process_int_transit.int_set_header_0407_i4", "process_int_transit.int_set_header_0407_i5", "process_int_transit.int_set_header_0407_i6", "process_int_transit.int_set_header_0407_i7", "process_int_transit.int_set_header_0407_i8", "process_int_transit.int_set_header_0407_i9", "process_int_transit.int_set_header_0407_i10", "process_int_transit.int_set_header_0407_i11", "process_int_transit.int_set_header_0407_i12", "process_int_transit.int_set_header_0407_i13", "process_int_transit.int_set_header_0407_i14", "process_int_transit.int_set_header_0407_i15", "NoAction"],
-          "base_default_next" : "tbl_process_int_transit_int_update_total_hop_cnt",
-          "next_tables" : {
-            "process_int_transit.int_set_header_0407_i0" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "process_int_transit.int_set_header_0407_i1" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "process_int_transit.int_set_header_0407_i2" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "process_int_transit.int_set_header_0407_i3" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "process_int_transit.int_set_header_0407_i4" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "process_int_transit.int_set_header_0407_i5" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "process_int_transit.int_set_header_0407_i6" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "process_int_transit.int_set_header_0407_i7" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "process_int_transit.int_set_header_0407_i8" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "process_int_transit.int_set_header_0407_i9" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "process_int_transit.int_set_header_0407_i10" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "process_int_transit.int_set_header_0407_i11" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "process_int_transit.int_set_header_0407_i12" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "process_int_transit.int_set_header_0407_i13" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "process_int_transit.int_set_header_0407_i14" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "process_int_transit.int_set_header_0407_i15" : "tbl_process_int_transit_int_update_total_hop_cnt",
-            "NoAction" : "tbl_process_int_transit_int_update_total_hop_cnt"
-          },
-          "default_entry" : {
-            "action_id" : 12,
-            "action_const" : false,
-            "action_data" : [],
-            "action_entry_const" : false
-          }
-        },
-        {
           "name" : "tbl_process_int_transit_int_update_total_hop_cnt",
-          "id" : 8,
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [14],
-          "actions" : ["process_int_transit.int_update_total_hop_cnt"],
-          "base_default_next" : "node_17",
-          "next_tables" : {
-            "process_int_transit.int_update_total_hop_cnt" : "node_17"
-          },
-          "default_entry" : {
-            "action_id" : 14,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_process_int_outer_encap_int_update_ipv4",
           "id" : 9,
           "key" : [],
           "match_type" : "exact",
@@ -6437,21 +6473,21 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [48],
-          "actions" : ["process_int_outer_encap.int_update_ipv4"],
-          "base_default_next" : "node_19",
+          "action_ids" : [15],
+          "actions" : ["egress.process_int_transit.int_update_total_hop_cnt"],
+          "base_default_next" : "node_18",
           "next_tables" : {
-            "process_int_outer_encap.int_update_ipv4" : "node_19"
+            "egress.process_int_transit.int_update_total_hop_cnt" : "node_18"
           },
           "default_entry" : {
-            "action_id" : 48,
+            "action_id" : 15,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_process_int_outer_encap_int_update_udp",
+          "name" : "tbl_process_int_outer_encap_int_update_ipv4",
           "id" : 10,
           "key" : [],
           "match_type" : "exact",
@@ -6461,10 +6497,10 @@
           "support_timeout" : false,
           "direct_meters" : null,
           "action_ids" : [49],
-          "actions" : ["process_int_outer_encap.int_update_udp"],
-          "base_default_next" : "node_21",
+          "actions" : ["egress.process_int_outer_encap.int_update_ipv4"],
+          "base_default_next" : "node_20",
           "next_tables" : {
-            "process_int_outer_encap.int_update_udp" : "node_21"
+            "egress.process_int_outer_encap.int_update_ipv4" : "node_20"
           },
           "default_entry" : {
             "action_id" : 49,
@@ -6474,7 +6510,7 @@
           }
         },
         {
-          "name" : "tbl_process_int_outer_encap_int_update_shim",
+          "name" : "tbl_process_int_outer_encap_int_update_udp",
           "id" : 11,
           "key" : [],
           "match_type" : "exact",
@@ -6484,10 +6520,10 @@
           "support_timeout" : false,
           "direct_meters" : null,
           "action_ids" : [50],
-          "actions" : ["process_int_outer_encap.int_update_shim"],
-          "base_default_next" : "node_23",
+          "actions" : ["egress.process_int_outer_encap.int_update_udp"],
+          "base_default_next" : "node_22",
           "next_tables" : {
-            "process_int_outer_encap.int_update_shim" : "node_23"
+            "egress.process_int_outer_encap.int_update_udp" : "node_22"
           },
           "default_entry" : {
             "action_id" : 50,
@@ -6497,7 +6533,7 @@
           }
         },
         {
-          "name" : "tbl_process_int_sink_restore_header",
+          "name" : "tbl_process_int_outer_encap_int_update_shim",
           "id" : 12,
           "key" : [],
           "match_type" : "exact",
@@ -6507,10 +6543,10 @@
           "support_timeout" : false,
           "direct_meters" : null,
           "action_ids" : [51],
-          "actions" : ["process_int_sink.restore_header"],
-          "base_default_next" : "tbl_process_int_sink_int_sink",
+          "actions" : ["egress.process_int_outer_encap.int_update_shim"],
+          "base_default_next" : "node_24",
           "next_tables" : {
-            "process_int_sink.restore_header" : "tbl_process_int_sink_int_sink"
+            "egress.process_int_outer_encap.int_update_shim" : "node_24"
           },
           "default_entry" : {
             "action_id" : 51,
@@ -6520,7 +6556,7 @@
           }
         },
         {
-          "name" : "tbl_process_int_sink_int_sink",
+          "name" : "tbl_process_int_sink_restore_header",
           "id" : 13,
           "key" : [],
           "match_type" : "exact",
@@ -6530,10 +6566,10 @@
           "support_timeout" : false,
           "direct_meters" : null,
           "action_ids" : [52],
-          "actions" : ["process_int_sink.int_sink"],
-          "base_default_next" : "tbl_act_1",
+          "actions" : ["egress.process_int_sink.restore_header"],
+          "base_default_next" : "tbl_process_int_sink_int_sink",
           "next_tables" : {
-            "process_int_sink.int_sink" : "tbl_act_1"
+            "egress.process_int_sink.restore_header" : "tbl_process_int_sink_int_sink"
           },
           "default_entry" : {
             "action_id" : 52,
@@ -6543,7 +6579,7 @@
           }
         },
         {
-          "name" : "tbl_act_1",
+          "name" : "tbl_process_int_sink_int_sink",
           "id" : 14,
           "key" : [],
           "match_type" : "exact",
@@ -6552,21 +6588,21 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [54],
-          "actions" : ["act_2"],
-          "base_default_next" : "node_27",
+          "action_ids" : [53],
+          "actions" : ["egress.process_int_sink.int_sink"],
+          "base_default_next" : "tbl_act_1",
           "next_tables" : {
-            "act_2" : "node_27"
+            "egress.process_int_sink.int_sink" : "tbl_act_1"
           },
           "default_entry" : {
-            "action_id" : 54,
+            "action_id" : 53,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
           }
         },
         {
-          "name" : "tbl_act_2",
+          "name" : "tbl_act_1",
           "id" : 15,
           "key" : [],
           "match_type" : "exact",
@@ -6575,14 +6611,37 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [53],
+          "action_ids" : [55],
+          "actions" : ["act_2"],
+          "base_default_next" : "node_29",
+          "next_tables" : {
+            "act_2" : "node_29"
+          },
+          "default_entry" : {
+            "action_id" : 55,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_2",
+          "id" : 16,
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [54],
           "actions" : ["act_1"],
           "base_default_next" : null,
           "next_tables" : {
             "act_1" : null
           },
           "default_entry" : {
-            "action_id" : 53,
+            "action_id" : 54,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -6592,11 +6651,11 @@
       "action_profiles" : [],
       "conditionals" : [
         {
-          "name" : "node_9",
+          "name" : "node_8",
           "id" : 1,
           "source_info" : {
             "filename" : "int.p4",
-            "line" : 54,
+            "line" : 53,
             "column" : 12,
             "source_fragment" : "standard_metadata.ingress_port != CPU_PORT && ..."
           },
@@ -6645,28 +6704,22 @@
                   "left" : {
                     "type" : "expression",
                     "value" : {
-                      "op" : "==",
-                      "left" : {
+                      "op" : "d2b",
+                      "left" : null,
+                      "right" : {
                         "type" : "field",
                         "value" : ["udp", "$valid$"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x01"
                       }
                     }
                   },
                   "right" : {
                     "type" : "expression",
                     "value" : {
-                      "op" : "==",
-                      "left" : {
+                      "op" : "d2b",
+                      "left" : null,
+                      "right" : {
                         "type" : "field",
                         "value" : ["tcp", "$valid$"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x01"
                       }
                     }
                   }
@@ -6674,57 +6727,37 @@
               }
             }
           },
-          "true_next" : "node_10",
+          "true_next" : "egress.process_set_source_sink.tb_set_source",
           "false_next" : "tbl_act_1"
         },
         {
-          "name" : "node_10",
+          "name" : "node_11",
           "id" : 2,
           "source_info" : {
             "filename" : "int.p4",
             "line" : 57,
             "column" : 16,
-            "source_fragment" : "local_metadata.int_meta.sink == 0 && local_metadata.int_meta.source == 1"
+            "source_fragment" : "local_metadata.int_meta.source == 1"
           },
           "expression" : {
             "type" : "expression",
             "value" : {
-              "op" : "and",
+              "op" : "==",
               "left" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "==",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["int_meta", "sink"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0x00"
-                  }
-                }
+                "type" : "field",
+                "value" : ["userMetadata.int_meta", "source"]
               },
               "right" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "==",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["int_meta", "source"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0x01"
-                  }
-                }
+                "type" : "hexstr",
+                "value" : "0x01"
               }
             }
           },
-          "true_next" : "process_int_source.tb_int_source",
-          "false_next" : "node_12"
+          "true_next" : "egress.process_int_source.tb_int_source",
+          "false_next" : "node_13"
         },
         {
-          "name" : "node_12",
+          "name" : "node_13",
           "id" : 3,
           "source_info" : {
             "filename" : "int.p4",
@@ -6735,88 +6768,102 @@
           "expression" : {
             "type" : "expression",
             "value" : {
-              "op" : "==",
-              "left" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
                 "type" : "field",
                 "value" : ["int_header", "$valid$"]
-              },
-              "right" : {
-                "type" : "hexstr",
-                "value" : "0x01"
               }
             }
           },
-          "true_next" : "process_int_transit.tb_int_insert",
+          "true_next" : "egress.process_int_transit.tb_int_insert",
           "false_next" : "tbl_act_1"
         },
         {
-          "name" : "node_17",
+          "name" : "node_18",
           "id" : 4,
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 316,
+            "filename" : "include/int_transit.p4",
+            "line" : 314,
             "column" : 12,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
           "expression" : {
             "type" : "expression",
             "value" : {
-              "op" : "==",
-              "left" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
                 "type" : "field",
                 "value" : ["ipv4", "$valid$"]
-              },
-              "right" : {
-                "type" : "hexstr",
-                "value" : "0x01"
               }
             }
           },
           "true_next" : "tbl_process_int_outer_encap_int_update_ipv4",
-          "false_next" : "node_19"
+          "false_next" : "node_20"
         },
         {
-          "name" : "node_19",
+          "name" : "node_20",
           "id" : 5,
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 319,
+            "filename" : "include/int_transit.p4",
+            "line" : 317,
             "column" : 12,
             "source_fragment" : "hdr.udp.isValid()"
           },
           "expression" : {
             "type" : "expression",
             "value" : {
-              "op" : "==",
-              "left" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
                 "type" : "field",
                 "value" : ["udp", "$valid$"]
-              },
-              "right" : {
-                "type" : "hexstr",
-                "value" : "0x01"
               }
             }
           },
           "true_next" : "tbl_process_int_outer_encap_int_update_udp",
-          "false_next" : "node_21"
+          "false_next" : "node_22"
         },
         {
-          "name" : "node_21",
+          "name" : "node_22",
           "id" : 6,
           "source_info" : {
-            "filename" : "./include/int_transit.p4",
-            "line" : 322,
+            "filename" : "include/int_transit.p4",
+            "line" : 320,
             "column" : 12,
             "source_fragment" : "hdr.intl4_shim.isValid()"
           },
           "expression" : {
             "type" : "expression",
             "value" : {
+              "op" : "d2b",
+              "left" : null,
+              "right" : {
+                "type" : "field",
+                "value" : ["intl4_shim", "$valid$"]
+              }
+            }
+          },
+          "true_next" : "tbl_process_int_outer_encap_int_update_shim",
+          "false_next" : "node_24"
+        },
+        {
+          "name" : "node_24",
+          "id" : 7,
+          "source_info" : {
+            "filename" : "int.p4",
+            "line" : 64,
+            "column" : 20,
+            "source_fragment" : "local_metadata.int_meta.sink == 1"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["intl4_shim", "$valid$"]
+                "value" : ["userMetadata.int_meta", "sink"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -6824,14 +6871,14 @@
               }
             }
           },
-          "true_next" : "tbl_process_int_outer_encap_int_update_shim",
-          "false_next" : "node_23"
+          "true_next" : "node_25",
+          "false_next" : "tbl_act_1"
         },
         {
-          "name" : "node_23",
-          "id" : 7,
+          "name" : "node_25",
+          "id" : 8,
           "source_info" : {
-            "filename" : "./include/int_sink.p4",
+            "filename" : "include/int_sink.p4",
             "line" : 51,
             "column" : 12,
             "source_fragment" : "local_metadata.int_meta.sink == 1"
@@ -6842,7 +6889,7 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["int_meta", "sink"]
+                "value" : ["userMetadata.int_meta", "sink"]
               },
               "right" : {
                 "type" : "hexstr",
@@ -6854,10 +6901,10 @@
           "false_next" : "tbl_act_1"
         },
         {
-          "name" : "node_27",
-          "id" : 8,
+          "name" : "node_29",
+          "id" : 9,
           "source_info" : {
-            "filename" : "./include/packet_io.p4",
+            "filename" : "include/packet_io.p4",
             "line" : 37,
             "column" : 12,
             "source_fragment" : "standard_metadata.egress_port == CPU_PORT"
@@ -6907,6 +6954,10 @@
       ["standard_metadata", "ingress_global_timestamp"]
     ],
     [
+      "intrinsic_metadata.egress_global_timestamp",
+      ["standard_metadata", "egress_global_timestamp"]
+    ],
+    [
       "intrinsic_metadata.lf_field_list",
       ["standard_metadata", "lf_field_list"]
     ],
@@ -6921,6 +6972,10 @@
     [
       "intrinsic_metadata.egress_rid",
       ["standard_metadata", "egress_rid"]
+    ],
+    [
+      "intrinsic_metadata.recirculate_flag",
+      ["standard_metadata", "recirculate_flag"]
     ]
   ]
 }
\ No newline at end of file
diff --git a/pipelines/basic/src/main/resources/p4c-out/bmv2/int.p4info b/pipelines/basic/src/main/resources/p4c-out/bmv2/int.p4info
index db7c05e..a3d6b85 100644
--- a/pipelines/basic/src/main/resources/p4c-out/bmv2/int.p4info
+++ b/pipelines/basic/src/main/resources/p4c-out/bmv2/int.p4info
@@ -1,7 +1,7 @@
 tables {
   preamble {
-    id: 33571508
-    name: "table0_control.table0"
+    id: 33561568
+    name: "ingress.table0_control.table0"
     alias: "table0"
   }
   match_fields {
@@ -65,62 +65,63 @@
     id: 16829080
   }
   action_refs {
-    id: 16802895
+    id: 16777316
   }
   action_refs {
     id: 16784184
   }
   const_default_action_id: 16784184
-  direct_resource_ids: 302046050
+  direct_resource_ids: 302038973
   size: 1024
 }
 tables {
   preamble {
-    id: 33582667
-    name: "process_set_source_sink.tb_set_source_sink"
-    alias: "tb_set_source_sink"
+    id: 33578477
+    name: "egress.process_set_source_sink.tb_set_source"
+    alias: "tb_set_source"
   }
   match_fields {
     id: 1
-    name: "hdr.ipv4.src_addr"
-    bitwidth: 32
-    match_type: TERNARY
-  }
-  match_fields {
-    id: 2
-    name: "hdr.ipv4.dst_addr"
-    bitwidth: 32
-    match_type: TERNARY
-  }
-  match_fields {
-    id: 3
-    name: "local_metadata.l4_src_port"
-    bitwidth: 16
-    match_type: TERNARY
-  }
-  match_fields {
-    id: 4
-    name: "local_metadata.l4_dst_port"
-    bitwidth: 16
-    match_type: TERNARY
+    name: "standard_metadata.ingress_port"
+    bitwidth: 9
+    match_type: EXACT
   }
   action_refs {
-    id: 16816387
-  }
-  action_refs {
-    id: 16784579
+    id: 16782803
   }
   action_refs {
     id: 16800567
     annotations: "@defaultonly()"
   }
-  direct_resource_ids: 301997871
-  size: 1024
+  direct_resource_ids: 302052612
+  size: 256
 }
 tables {
   preamble {
-    id: 33564814
-    name: "process_int_source.tb_int_source"
+    id: 33575550
+    name: "egress.process_set_source_sink.tb_set_sink"
+    alias: "tb_set_sink"
+  }
+  match_fields {
+    id: 1
+    name: "standard_metadata.egress_port"
+    bitwidth: 9
+    match_type: EXACT
+  }
+  action_refs {
+    id: 16798719
+  }
+  action_refs {
+    id: 16800567
+    annotations: "@defaultonly()"
+  }
+  direct_resource_ids: 302033970
+  size: 256
+}
+tables {
+  preamble {
+    id: 33565369
+    name: "egress.process_int_source.tb_int_source"
     alias: "tb_int_source"
   }
   match_fields {
@@ -148,41 +149,35 @@
     match_type: TERNARY
   }
   action_refs {
-    id: 16820636
+    id: 16785626
   }
   action_refs {
     id: 16800567
     annotations: "@defaultonly()"
   }
-  direct_resource_ids: 302000881
+  direct_resource_ids: 302019133
   size: 1024
 }
 tables {
   preamble {
-    id: 33600740
-    name: "process_int_transit.tb_int_insert"
+    id: 33604451
+    name: "egress.process_int_transit.tb_int_insert"
     alias: "tb_int_insert"
   }
-  match_fields {
-    id: 1
-    name: "local_metadata.int_meta.sink"
-    bitwidth: 1
-    match_type: EXACT
-  }
   action_refs {
-    id: 16789590
+    id: 16798455
   }
   action_refs {
     id: 16800567
     annotations: "@defaultonly()"
   }
-  direct_resource_ids: 302042285
+  direct_resource_ids: 302026169
   size: 2
 }
 tables {
   preamble {
-    id: 33618009
-    name: "process_int_transit.tb_int_inst_0003"
+    id: 33607644
+    name: "egress.process_int_transit.tb_int_inst_0003"
     alias: "tb_int_inst_0003"
   }
   match_fields {
@@ -192,64 +187,64 @@
     match_type: EXACT
   }
   action_refs {
-    id: 16828526
+    id: 16783309
   }
   action_refs {
-    id: 16836578
+    id: 16823072
   }
   action_refs {
-    id: 16814467
+    id: 16782691
   }
   action_refs {
-    id: 16821517
+    id: 16822686
   }
   action_refs {
-    id: 16840381
+    id: 16830010
   }
   action_refs {
-    id: 16781880
+    id: 16804519
   }
   action_refs {
-    id: 16777709
+    id: 16810645
   }
   action_refs {
-    id: 16833199
+    id: 16834343
   }
   action_refs {
-    id: 16837746
+    id: 16809032
   }
   action_refs {
-    id: 16779495
+    id: 16783533
   }
   action_refs {
-    id: 16816340
+    id: 16824253
   }
   action_refs {
-    id: 16824234
+    id: 16830666
   }
   action_refs {
-    id: 16818993
+    id: 16809286
   }
   action_refs {
-    id: 16794339
+    id: 16816509
   }
   action_refs {
-    id: 16812675
+    id: 16803371
   }
   action_refs {
-    id: 16819981
+    id: 16810652
   }
   action_refs {
     id: 16800567
     annotations: "@defaultonly()"
   }
-  direct_resource_ids: 301996916
+  direct_resource_ids: 302027886
   size: 16
 }
 tables {
   preamble {
-    id: 33609974
-    name: "process_int_transit.tb_int_inst_0407"
+    id: 33560427
+    name: "egress.process_int_transit.tb_int_inst_0407"
     alias: "tb_int_inst_0407"
   }
   match_fields {
@@ -259,58 +254,58 @@
     match_type: EXACT
   }
   action_refs {
-    id: 16810351
+    id: 16837642
   }
   action_refs {
-    id: 16803354
+    id: 16796009
   }
   action_refs {
-    id: 16795736
+    id: 16819613
   }
   action_refs {
-    id: 16788717
+    id: 16813603
   }
   action_refs {
-    id: 16809154
+    id: 16800640
   }
   action_refs {
-    id: 16832591
+    id: 16779220
   }
   action_refs {
-    id: 16791085
+    id: 16782223
   }
   action_refs {
-    id: 16814496
+    id: 16841737
   }
   action_refs {
-    id: 16838516
+    id: 16828758
   }
   action_refs {
-    id: 16796409
+    id: 16823454
   }
   action_refs {
-    id: 16828750
+    id: 16790618
   }
   action_refs {
-    id: 16788965
+    id: 16829228
   }
   action_refs {
-    id: 16813720
+    id: 16783180
   }
   action_refs {
-    id: 16802606
+    id: 16813110
   }
   action_refs {
-    id: 16828339
+    id: 16789397
   }
   action_refs {
-    id: 16816215
+    id: 16835925
   }
   action_refs {
     id: 16800567
     annotations: "@defaultonly()"
   }
-  direct_resource_ids: 302022203
+  direct_resource_ids: 301998415
   size: 16
 }
 actions {
@@ -341,15 +336,8 @@
 }
 actions {
   preamble {
-    id: 16800567
-    name: "NoAction"
-    alias: "NoAction"
-  }
-}
-actions {
-  preamble {
-    id: 16802895
-    name: "table0_control.set_next_hop_id"
+    id: 16777316
+    name: "ingress.table0_control.set_next_hop_id"
     alias: "set_next_hop_id"
   }
   params {
@@ -360,22 +348,29 @@
 }
 actions {
   preamble {
-    id: 16816387
-    name: "process_set_source_sink.int_set_source"
+    id: 16800567
+    name: "NoAction"
+    alias: "NoAction"
+  }
+}
+actions {
+  preamble {
+    id: 16782803
+    name: "egress.process_set_source_sink.int_set_source"
     alias: "int_set_source"
   }
 }
 actions {
   preamble {
-    id: 16784579
-    name: "process_set_source_sink.int_set_sink"
+    id: 16798719
+    name: "egress.process_set_source_sink.int_set_sink"
     alias: "int_set_sink"
   }
 }
 actions {
   preamble {
-    id: 16820636
-    name: "process_int_source.int_source_dscp"
+    id: 16785626
+    name: "egress.process_int_source.int_source_dscp"
     alias: "int_source_dscp"
   }
   params {
@@ -401,15 +396,15 @@
 }
 actions {
   preamble {
-    id: 16793257
-    name: "process_int_transit.int_update_total_hop_cnt"
+    id: 16778237
+    name: "egress.process_int_transit.int_update_total_hop_cnt"
     alias: "int_update_total_hop_cnt"
   }
 }
 actions {
   preamble {
-    id: 16789590
-    name: "process_int_transit.int_transit"
+    id: 16798455
+    name: "egress.process_int_transit.int_transit"
     alias: "int_transit"
   }
   params {
@@ -420,267 +415,267 @@
 }
 actions {
   preamble {
-    id: 16828526
-    name: "process_int_transit.int_set_header_0003_i0"
+    id: 16783309
+    name: "egress.process_int_transit.int_set_header_0003_i0"
     alias: "int_set_header_0003_i0"
   }
 }
 actions {
   preamble {
-    id: 16836578
-    name: "process_int_transit.int_set_header_0003_i1"
+    id: 16823072
+    name: "egress.process_int_transit.int_set_header_0003_i1"
     alias: "int_set_header_0003_i1"
   }
 }
 actions {
   preamble {
-    id: 16814467
-    name: "process_int_transit.int_set_header_0003_i2"
+    id: 16782691
+    name: "egress.process_int_transit.int_set_header_0003_i2"
     alias: "int_set_header_0003_i2"
   }
 }
 actions {
   preamble {
-    id: 16821517
-    name: "process_int_transit.int_set_header_0003_i3"
+    id: 16822686
+    name: "egress.process_int_transit.int_set_header_0003_i3"
     alias: "int_set_header_0003_i3"
   }
 }
 actions {
   preamble {
-    id: 16840381
-    name: "process_int_transit.int_set_header_0003_i4"
+    id: 16830010
+    name: "egress.process_int_transit.int_set_header_0003_i4"
     alias: "int_set_header_0003_i4"
   }
 }
 actions {
   preamble {
-    id: 16781880
-    name: "process_int_transit.int_set_header_0003_i5"
+    id: 16804519
+    name: "egress.process_int_transit.int_set_header_0003_i5"
     alias: "int_set_header_0003_i5"
   }
 }
 actions {
   preamble {
-    id: 16777709
-    name: "process_int_transit.int_set_header_0003_i6"
+    id: 16810645
+    name: "egress.process_int_transit.int_set_header_0003_i6"
     alias: "int_set_header_0003_i6"
   }
 }
 actions {
   preamble {
-    id: 16833199
-    name: "process_int_transit.int_set_header_0003_i7"
+    id: 16834343
+    name: "egress.process_int_transit.int_set_header_0003_i7"
     alias: "int_set_header_0003_i7"
   }
 }
 actions {
   preamble {
-    id: 16837746
-    name: "process_int_transit.int_set_header_0003_i8"
+    id: 16809032
+    name: "egress.process_int_transit.int_set_header_0003_i8"
     alias: "int_set_header_0003_i8"
   }
 }
 actions {
   preamble {
-    id: 16779495
-    name: "process_int_transit.int_set_header_0003_i9"
+    id: 16783533
+    name: "egress.process_int_transit.int_set_header_0003_i9"
     alias: "int_set_header_0003_i9"
   }
 }
 actions {
   preamble {
-    id: 16816340
-    name: "process_int_transit.int_set_header_0003_i10"
+    id: 16824253
+    name: "egress.process_int_transit.int_set_header_0003_i10"
     alias: "int_set_header_0003_i10"
   }
 }
 actions {
   preamble {
-    id: 16824234
-    name: "process_int_transit.int_set_header_0003_i11"
+    id: 16830666
+    name: "egress.process_int_transit.int_set_header_0003_i11"
     alias: "int_set_header_0003_i11"
   }
 }
 actions {
   preamble {
-    id: 16818993
-    name: "process_int_transit.int_set_header_0003_i12"
+    id: 16809286
+    name: "egress.process_int_transit.int_set_header_0003_i12"
     alias: "int_set_header_0003_i12"
   }
 }
 actions {
   preamble {
-    id: 16794339
-    name: "process_int_transit.int_set_header_0003_i13"
+    id: 16816509
+    name: "egress.process_int_transit.int_set_header_0003_i13"
     alias: "int_set_header_0003_i13"
   }
 }
 actions {
   preamble {
-    id: 16812675
-    name: "process_int_transit.int_set_header_0003_i14"
+    id: 16803371
+    name: "egress.process_int_transit.int_set_header_0003_i14"
     alias: "int_set_header_0003_i14"
   }
 }
 actions {
   preamble {
-    id: 16819981
-    name: "process_int_transit.int_set_header_0003_i15"
+    id: 16810652
+    name: "egress.process_int_transit.int_set_header_0003_i15"
     alias: "int_set_header_0003_i15"
   }
 }
 actions {
   preamble {
-    id: 16810351
-    name: "process_int_transit.int_set_header_0407_i0"
+    id: 16837642
+    name: "egress.process_int_transit.int_set_header_0407_i0"
     alias: "int_set_header_0407_i0"
   }
 }
 actions {
   preamble {
-    id: 16803354
-    name: "process_int_transit.int_set_header_0407_i1"
+    id: 16796009
+    name: "egress.process_int_transit.int_set_header_0407_i1"
     alias: "int_set_header_0407_i1"
   }
 }
 actions {
   preamble {
-    id: 16795736
-    name: "process_int_transit.int_set_header_0407_i2"
+    id: 16819613
+    name: "egress.process_int_transit.int_set_header_0407_i2"
     alias: "int_set_header_0407_i2"
   }
 }
 actions {
   preamble {
-    id: 16788717
-    name: "process_int_transit.int_set_header_0407_i3"
+    id: 16813603
+    name: "egress.process_int_transit.int_set_header_0407_i3"
     alias: "int_set_header_0407_i3"
   }
 }
 actions {
   preamble {
-    id: 16809154
-    name: "process_int_transit.int_set_header_0407_i4"
+    id: 16800640
+    name: "egress.process_int_transit.int_set_header_0407_i4"
     alias: "int_set_header_0407_i4"
   }
 }
 actions {
   preamble {
-    id: 16832591
-    name: "process_int_transit.int_set_header_0407_i5"
+    id: 16779220
+    name: "egress.process_int_transit.int_set_header_0407_i5"
     alias: "int_set_header_0407_i5"
   }
 }
 actions {
   preamble {
-    id: 16791085
-    name: "process_int_transit.int_set_header_0407_i6"
+    id: 16782223
+    name: "egress.process_int_transit.int_set_header_0407_i6"
     alias: "int_set_header_0407_i6"
   }
 }
 actions {
   preamble {
-    id: 16814496
-    name: "process_int_transit.int_set_header_0407_i7"
+    id: 16841737
+    name: "egress.process_int_transit.int_set_header_0407_i7"
     alias: "int_set_header_0407_i7"
   }
 }
 actions {
   preamble {
-    id: 16838516
-    name: "process_int_transit.int_set_header_0407_i8"
+    id: 16828758
+    name: "egress.process_int_transit.int_set_header_0407_i8"
     alias: "int_set_header_0407_i8"
   }
 }
 actions {
   preamble {
-    id: 16796409
-    name: "process_int_transit.int_set_header_0407_i9"
+    id: 16823454
+    name: "egress.process_int_transit.int_set_header_0407_i9"
     alias: "int_set_header_0407_i9"
   }
 }
 actions {
   preamble {
-    id: 16828750
-    name: "process_int_transit.int_set_header_0407_i10"
+    id: 16790618
+    name: "egress.process_int_transit.int_set_header_0407_i10"
     alias: "int_set_header_0407_i10"
   }
 }
 actions {
   preamble {
-    id: 16788965
-    name: "process_int_transit.int_set_header_0407_i11"
+    id: 16829228
+    name: "egress.process_int_transit.int_set_header_0407_i11"
     alias: "int_set_header_0407_i11"
   }
 }
 actions {
   preamble {
-    id: 16813720
-    name: "process_int_transit.int_set_header_0407_i12"
+    id: 16783180
+    name: "egress.process_int_transit.int_set_header_0407_i12"
     alias: "int_set_header_0407_i12"
   }
 }
 actions {
   preamble {
-    id: 16802606
-    name: "process_int_transit.int_set_header_0407_i13"
+    id: 16813110
+    name: "egress.process_int_transit.int_set_header_0407_i13"
     alias: "int_set_header_0407_i13"
   }
 }
 actions {
   preamble {
-    id: 16828339
-    name: "process_int_transit.int_set_header_0407_i14"
+    id: 16789397
+    name: "egress.process_int_transit.int_set_header_0407_i14"
     alias: "int_set_header_0407_i14"
   }
 }
 actions {
   preamble {
-    id: 16816215
-    name: "process_int_transit.int_set_header_0407_i15"
+    id: 16835925
+    name: "egress.process_int_transit.int_set_header_0407_i15"
     alias: "int_set_header_0407_i15"
   }
 }
 actions {
   preamble {
-    id: 16805940
-    name: "process_int_outer_encap.int_update_ipv4"
+    id: 16819982
+    name: "egress.process_int_outer_encap.int_update_ipv4"
     alias: "int_update_ipv4"
   }
 }
 actions {
   preamble {
-    id: 16797634
-    name: "process_int_outer_encap.int_update_udp"
+    id: 16810571
+    name: "egress.process_int_outer_encap.int_update_udp"
     alias: "int_update_udp"
   }
 }
 actions {
   preamble {
-    id: 16835077
-    name: "process_int_outer_encap.int_update_shim"
+    id: 16789645
+    name: "egress.process_int_outer_encap.int_update_shim"
     alias: "int_update_shim"
   }
 }
 actions {
   preamble {
-    id: 16798801
-    name: "process_int_sink.restore_header"
+    id: 16839217
+    name: "egress.process_int_sink.restore_header"
     alias: "restore_header"
   }
 }
 actions {
   preamble {
-    id: 16826281
-    name: "process_int_sink.int_sink"
+    id: 16784498
+    name: "egress.process_int_sink.int_sink"
     alias: "int_sink"
   }
 }
 counters {
   preamble {
-    id: 302012579
-    name: "port_counters_ingress.ingress_port_counter"
+    id: 302004684
+    name: "ingress.port_counters_ingress.ingress_port_counter"
     alias: "ingress_port_counter"
   }
   spec {
@@ -690,8 +685,8 @@
 }
 counters {
   preamble {
-    id: 302012501
-    name: "port_counters_egress.egress_port_counter"
+    id: 302040487
+    name: "egress.port_counters_egress.egress_port_counter"
     alias: "egress_port_counter"
   }
   spec {
@@ -701,69 +696,80 @@
 }
 direct_counters {
   preamble {
-    id: 302046050
-    name: "table0_control.table0_counter"
+    id: 302038973
+    name: "ingress.table0_control.table0_counter"
     alias: "table0_counter"
   }
   spec {
     unit: BOTH
   }
-  direct_table_id: 33571508
+  direct_table_id: 33561568
 }
 direct_counters {
   preamble {
-    id: 301997871
-    name: "process_set_source_sink.counter_set_source_sink"
-    alias: "counter_set_source_sink"
+    id: 302052612
+    name: "egress.process_set_source_sink.counter_set_source"
+    alias: "counter_set_source"
   }
   spec {
     unit: BOTH
   }
-  direct_table_id: 33582667
+  direct_table_id: 33578477
 }
 direct_counters {
   preamble {
-    id: 302000881
-    name: "process_int_source.counter_int_source"
+    id: 302033970
+    name: "egress.process_set_source_sink.counter_set_sink"
+    alias: "counter_set_sink"
+  }
+  spec {
+    unit: BOTH
+  }
+  direct_table_id: 33575550
+}
+direct_counters {
+  preamble {
+    id: 302019133
+    name: "egress.process_int_source.counter_int_source"
     alias: "counter_int_source"
   }
   spec {
     unit: BOTH
   }
-  direct_table_id: 33564814
+  direct_table_id: 33565369
 }
 direct_counters {
   preamble {
-    id: 302042285
-    name: "process_int_transit.counter_int_insert"
+    id: 302026169
+    name: "egress.process_int_transit.counter_int_insert"
     alias: "counter_int_insert"
   }
   spec {
     unit: BOTH
   }
-  direct_table_id: 33600740
+  direct_table_id: 33604451
 }
 direct_counters {
   preamble {
-    id: 301996916
-    name: "process_int_transit.counter_int_inst_0003"
+    id: 302027886
+    name: "egress.process_int_transit.counter_int_inst_0003"
     alias: "counter_int_inst_0003"
   }
   spec {
     unit: BOTH
   }
-  direct_table_id: 33618009
+  direct_table_id: 33607644
 }
 direct_counters {
   preamble {
-    id: 302022203
-    name: "process_int_transit.counter_int_inst_0407"
+    id: 301998415
+    name: "egress.process_int_transit.counter_int_inst_0407"
     alias: "counter_int_inst_0407"
   }
   spec {
     unit: BOTH
   }
-  direct_table_id: 33609974
+  direct_table_id: 33560427
 }
 controller_packet_metadata {
   preamble {