Update INT version to 1.0

Change-Id: I898501780cad9c1ad725ee624aa0cd4617ad2559
diff --git a/apps/inbandtelemetry/app/src/main/java/org/onosproject/inbandtelemetry/app/ui/IntAppUiMessageHandler.java b/apps/inbandtelemetry/app/src/main/java/org/onosproject/inbandtelemetry/app/ui/IntAppUiMessageHandler.java
index 5a81c60..0dc18a4 100644
--- a/apps/inbandtelemetry/app/src/main/java/org/onosproject/inbandtelemetry/app/ui/IntAppUiMessageHandler.java
+++ b/apps/inbandtelemetry/app/src/main/java/org/onosproject/inbandtelemetry/app/ui/IntAppUiMessageHandler.java
@@ -169,9 +169,6 @@
                             case "EGRESS_TIMESTAMP":
                                 builder.withMetadataType(IntIntent.IntMetadataType.EGRESS_TIMESTAMP);
                                 break;
-//                            case "QUEUE_CONGESTION":
-//                                builder.withMetadataType(IntIntent.IntMetadataType.QUEUE_CONGESTION);
-//                                break;
                             case "EGRESS_TX_UTIL":
                                 builder.withMetadataType(IntIntent.IntMetadataType.EGRESS_TX_UTIL);
                                 break;
diff --git a/apps/inbandtelemetry/app/src/main/resources/app/view/intApp/intApp.html b/apps/inbandtelemetry/app/src/main/resources/app/view/intApp/intApp.html
index 8c39cdc..7b69168 100644
--- a/apps/inbandtelemetry/app/src/main/resources/app/view/intApp/intApp.html
+++ b/apps/inbandtelemetry/app/src/main/resources/app/view/intApp/intApp.html
@@ -102,10 +102,6 @@
                         Egress Timestamp
                     </label>
                     <label>
-                        <input type="checkbox" ng-model="metaQCongestion">
-                        Queue Congestion Status
-                    </label>
-                    <label>
                         <input type="checkbox" ng-model="metaEgressTx">
                         Egress Port Tx Utilization
                     </label>
diff --git a/apps/inbandtelemetry/app/src/main/resources/app/view/intApp/intApp.js b/apps/inbandtelemetry/app/src/main/resources/app/view/intApp/intApp.js
index 6b2b6cc..e552001 100644
--- a/apps/inbandtelemetry/app/src/main/resources/app/view/intApp/intApp.js
+++ b/apps/inbandtelemetry/app/src/main/resources/app/view/intApp/intApp.js
@@ -30,7 +30,6 @@
         if ($scope.metaQOccupancy) inst.push("QUEUE_OCCUPANCY");
         if ($scope.metaIngressTstamp) inst.push("INGRESS_TIMESTAMP");
         if ($scope.metaEgressTstamp) inst.push("EGRESS_TIMESTAMP");
-        if ($scope.metaQCongestion) inst.push("QUEUE_CONGESTION");
         if ($scope.metaEgressTx) inst.push("EGRESS_TX_UTIL");
 
         var intentObjectNode = {
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 312a0b4..ccd9111 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
@@ -18,177 +18,111 @@
 
 import org.onosproject.net.pi.model.PiActionId;
 import org.onosproject.net.pi.model.PiActionParamId;
+import org.onosproject.net.pi.model.PiPacketMetadataId;
 import org.onosproject.net.pi.model.PiCounterId;
 import org.onosproject.net.pi.model.PiMatchFieldId;
 import org.onosproject.net.pi.model.PiTableId;
-
 /**
  * Constants for INT pipeline.
  */
 public final class IntConstants {
 
-    // Hide default constructor
+    // hide default constructor
     private IntConstants() {
     }
 
-    private static final String HDR = "hdr";
-    private static final String DOT = ".";
-    private static final String STANDARD_METADATA = "standard_metadata";
-    private static final String LOCAL_METADATA = "local_metadata";
-
-    // Strings
-    private static final String EGRESS = "egress";
-    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 CTRL_INT_REPORT = EGRESS + DOT + "process_int_report";
-    private static final String INT_METADATA = "int_meta";
-    private static final String INT_HDR = "int_header";
-
     // Header field IDs
-    public static final PiMatchFieldId LOCAL_META_SRC_PORT_ID =
-            PiMatchFieldId.of(LOCAL_METADATA + DOT + "l4_src_port");
-    public static final PiMatchFieldId LOCAL_META_DST_PORT_ID =
-            PiMatchFieldId.of(LOCAL_METADATA + DOT + "l4_dst_port");
-    public static final PiMatchFieldId INT_META_SINK_ID =
-            PiMatchFieldId.of(LOCAL_METADATA + DOT + INT_METADATA + DOT + "sink");
-    public static final PiMatchFieldId INT_HDR_INST_MASK_0003_ID =
-            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_spec");
-    public static final PiMatchFieldId STD_META_INSTANCE_TYPE_ID =
-            PiMatchFieldId.of(STANDARD_METADATA + DOT + "instance_type");
-
+    public static final PiMatchFieldId HDR_HDR_IPV4_PROTOCOL =
+            PiMatchFieldId.of("hdr.ipv4.protocol");
+    public static final PiMatchFieldId HDR_STANDARD_METADATA_EGRESS_SPEC =
+            PiMatchFieldId.of("standard_metadata.egress_spec");
+    public static final PiMatchFieldId HDR_HDR_IPV4_SRC_ADDR =
+            PiMatchFieldId.of("hdr.ipv4.src_addr");
+    public static final PiMatchFieldId HDR_HDR_ETHERNET_ETHER_TYPE =
+            PiMatchFieldId.of("hdr.ethernet.ether_type");
+    public static final PiMatchFieldId HDR_HDR_ETHERNET_SRC_ADDR =
+            PiMatchFieldId.of("hdr.ethernet.src_addr");
+    public static final PiMatchFieldId HDR_LOCAL_METADATA_L4_DST_PORT =
+            PiMatchFieldId.of("local_metadata.l4_dst_port");
+    public static final PiMatchFieldId HDR_LOCAL_METADATA_L4_SRC_PORT =
+            PiMatchFieldId.of("local_metadata.l4_src_port");
+    public static final PiMatchFieldId HDR_STANDARD_METADATA_INGRESS_PORT =
+            PiMatchFieldId.of("standard_metadata.ingress_port");
+    public static final PiMatchFieldId HDR_INT_IS_VALID =
+            PiMatchFieldId.of("int_is_valid");
+    public static final PiMatchFieldId HDR_HDR_IPV4_DST_ADDR =
+            PiMatchFieldId.of("hdr.ipv4.dst_addr");
+    public static final PiMatchFieldId HDR_HDR_ETHERNET_DST_ADDR =
+            PiMatchFieldId.of("hdr.ethernet.dst_addr");
     // Table IDs
-    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 =
-            PiTableId.of(CTRL_INT_TRANSIT + DOT + "tb_int_insert");
-    public static final PiTableId TBL_INT_INST_0003_ID =
-            PiTableId.of(CTRL_INT_TRANSIT + DOT + "tb_int_inst_0003");
-    public static final PiTableId TBL_INT_INST_0407_ID =
-            PiTableId.of(CTRL_INT_TRANSIT + DOT + "tb_int_inst_0407");
-    public static final PiTableId TBL_GENERATE_REPORT_ID =
-            PiTableId.of(CTRL_INT_REPORT + DOT + "tb_generate_report");
-
-    // Counter IDs
-    public static final PiCounterId CNT_SET_SOURCE_SINK_ID =
-            PiCounterId.of(CTRL_SET_SOURCE_SINK + DOT + "counter_set_source_sink");
-    public static final PiCounterId CNT_INT_SOURCE_ID =
-            PiCounterId.of(CTRL_INT_SOURCE + DOT + "counter_int_source");
-    public static final PiCounterId CNT_INT_INSERT_ID =
-            PiCounterId.of(CTRL_INT_TRANSIT + DOT + "counter_int_insert");
-    public static final PiCounterId CNT_INT_INST_0003_ID =
-            PiCounterId.of(CTRL_INT_TRANSIT + DOT + "counter_int_inst_0003");
-    public static final PiCounterId CNT_INT_INST_0407_ID =
-            PiCounterId.of(CTRL_INT_TRANSIT + DOT + "counter_int_inst_0407");
-
+    public static final PiTableId INGRESS_PROCESS_INT_SOURCE_TB_INT_SOURCE =
+            PiTableId.of("ingress.process_int_source.tb_int_source");
+    public static final PiTableId EGRESS_PROCESS_INT_REPORT_TB_GENERATE_REPORT =
+            PiTableId.of("egress.process_int_report.tb_generate_report");
+    public static final PiTableId INGRESS_TABLE0_CONTROL_TABLE0 =
+            PiTableId.of("ingress.table0_control.table0");
+    public static final PiTableId EGRESS_PROCESS_INT_TRANSIT_TB_INT_INSERT =
+            PiTableId.of("egress.process_int_transit.tb_int_insert");
+    public static final PiTableId INGRESS_PROCESS_INT_SOURCE_SINK_TB_SET_SINK =
+            PiTableId.of("ingress.process_int_source_sink.tb_set_sink");
+    public static final PiTableId INGRESS_PROCESS_INT_SOURCE_SINK_TB_SET_SOURCE =
+            PiTableId.of("ingress.process_int_source_sink.tb_set_source");
+    // Indirect Counter IDs
+    public static final PiCounterId EGRESS_PORT_COUNTERS_EGRESS_EGRESS_PORT_COUNTER =
+            PiCounterId.of("egress.port_counters_egress.egress_port_counter");
+    public static final PiCounterId INGRESS_PORT_COUNTERS_INGRESS_INGRESS_PORT_COUNTER =
+            PiCounterId.of("ingress.port_counters_ingress.ingress_port_counter");
+    // Direct Counter IDs
+    public static final PiCounterId INGRESS_PROCESS_INT_SOURCE_SINK_COUNTER_SET_SINK =
+            PiCounterId.of("ingress.process_int_source_sink.counter_set_sink");
+    public static final PiCounterId INGRESS_TABLE0_CONTROL_TABLE0_COUNTER =
+            PiCounterId.of("ingress.table0_control.table0_counter");
+    public static final PiCounterId INGRESS_PROCESS_INT_SOURCE_COUNTER_INT_SOURCE =
+            PiCounterId.of("ingress.process_int_source.counter_int_source");
+    public static final PiCounterId INGRESS_PROCESS_INT_SOURCE_SINK_COUNTER_SET_SOURCE =
+            PiCounterId.of("ingress.process_int_source_sink.counter_set_source");
     // Action IDs
-    public static final PiActionId ACT_INT_SET_SOURCE_ID =
-            PiActionId.of(CTRL_SET_SOURCE_SINK + DOT + "int_set_source");
-    public static final PiActionId ACT_INT_SET_SINK_ID =
-            PiActionId.of(CTRL_SET_SOURCE_SINK + DOT + "int_set_sink");
-    public static final PiActionId ACT_INT_SOURCE_DSCP_ID =
-            PiActionId.of(CTRL_INT_SOURCE + DOT + "int_source_dscp");
-    public static final PiActionId ACT_INT_UPDATE_TOTAL_HOP_CNT_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_update_total_hop_cnt");
-    public static final PiActionId ACT_INT_TRANSIT_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_transit");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I0_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i0");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I1_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i1");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I2_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i2");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I3_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i3");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I4_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i4");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I5_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i5");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I6_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i6");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I7_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i7");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I8_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i8");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I9_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i9");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I10_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i10");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I11_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i11");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I12_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i12");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I13_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i13");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I14_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i14");
-    public static final PiActionId ACT_INT_SET_HEADER_0003_I15_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0003_i15");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I0_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i0");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I1_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i1");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I2_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i2");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I3_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i3");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I4_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i4");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I5_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i5");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I6_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i6");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I7_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i7");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I8_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i8");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I9_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i9");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I10_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i10");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I11_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i11");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I12_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i12");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I13_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i13");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I14_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i14");
-    public static final PiActionId ACT_INT_SET_HEADER_0407_I15_ID =
-            PiActionId.of(CTRL_INT_TRANSIT + DOT + "int_set_header_0407_i15");
-    public static final PiActionId ACT_INT_UPDATE_IPV4_ID =
-            PiActionId.of(CTRL_INT_OUTER_ENCAP + DOT + "int_update_ipv4");
-    public static final PiActionId ACT_INT_UPDATE_UDP_ID =
-            PiActionId.of(CTRL_INT_OUTER_ENCAP + DOT + "int_update_udp");
-    public static final PiActionId ACT_INT_UPDATE_SHIM_ID =
-            PiActionId.of(CTRL_INT_OUTER_ENCAP + DOT + "int_update_shim");
-    public static final PiActionId ACT_INT_RESTORE_HEADER_ID =
-            PiActionId.of(CTRL_INT_SINK + DOT + "restore_header");
-    public static final PiActionId ACT_INT_SINK_ID =
-            PiActionId.of(CTRL_INT_SINK + DOT + "int_sink");
-    public static final PiActionId ACT_DO_REPORT_ENCAP_ID =
-            PiActionId.of(CTRL_INT_REPORT + DOT + "do_report_encapsulation");
-
-    // Action param IDs
-    public static final PiActionParamId ACT_PRM_MAX_HOP_ID = PiActionParamId.of("max_hop");
-    public static final PiActionParamId ACT_PRM_INS_CNT_ID = PiActionParamId.of("ins_cnt");
-    public static final PiActionParamId ACT_PRM_INS_MASK0003_ID = PiActionParamId.of("ins_mask0003");
-    public static final PiActionParamId ACT_PRM_INS_MASK0407_ID = PiActionParamId.of("ins_mask0407");
-    public static final PiActionParamId ACT_PRM_SWITCH_ID = PiActionParamId.of("switch_id");
-    public static final PiActionParamId ACT_PRM_SRC_MAC_ID = PiActionParamId.of("src_mac");
-    public static final PiActionParamId ACT_PRM_MON_MAC_ID = PiActionParamId.of("mon_mac");
-    public static final PiActionParamId ACT_PRM_SRC_IP_ID = PiActionParamId.of("src_ip");
-    public static final PiActionParamId ACT_PRM_MON_IP_ID = PiActionParamId.of("mon_ip");
-    public static final PiActionParamId ACT_PRM_MON_PORT_ID = PiActionParamId.of("mon_port");
-
+    public static final PiActionId INGRESS_PROCESS_INT_SOURCE_INT_SOURCE_DSCP =
+            PiActionId.of("ingress.process_int_source.int_source_dscp");
+    public static final PiActionId EGRESS_PROCESS_INT_REPORT_DO_REPORT_ENCAPSULATION =
+            PiActionId.of("egress.process_int_report.do_report_encapsulation");
+    public static final PiActionId INGRESS_TABLE0_CONTROL_SEND_TO_CPU =
+            PiActionId.of("ingress.table0_control.send_to_cpu");
+    public static final PiActionId INGRESS_PROCESS_INT_SOURCE_SINK_INT_SET_SOURCE =
+            PiActionId.of("ingress.process_int_source_sink.int_set_source");
+    public static final PiActionId NO_ACTION = PiActionId.of("NoAction");
+    public static final PiActionId INGRESS_PROCESS_INT_SOURCE_SINK_INT_SET_SINK =
+            PiActionId.of("ingress.process_int_source_sink.int_set_sink");
+    public static final PiActionId INGRESS_TABLE0_CONTROL_SET_NEXT_HOP_ID =
+            PiActionId.of("ingress.table0_control.set_next_hop_id");
+    public static final PiActionId INGRESS_TABLE0_CONTROL_SET_EGRESS_PORT =
+            PiActionId.of("ingress.table0_control.set_egress_port");
+    public static final PiActionId EGRESS_PROCESS_INT_TRANSIT_INIT_METADATA =
+            PiActionId.of("egress.process_int_transit.init_metadata");
+    public static final PiActionId NOP = PiActionId.of("nop");
+    // Action Param IDs
+    public static final PiActionParamId INS_MASK0407 =
+            PiActionParamId.of("ins_mask0407");
+    public static final PiActionParamId NEXT_HOP_ID =
+            PiActionParamId.of("next_hop_id");
+    public static final PiActionParamId MON_PORT =
+            PiActionParamId.of("mon_port");
+    public static final PiActionParamId MON_MAC = PiActionParamId.of("mon_mac");
+    public static final PiActionParamId MON_IP = PiActionParamId.of("mon_ip");
+    public static final PiActionParamId SWITCH_ID =
+            PiActionParamId.of("switch_id");
+    public static final PiActionParamId SRC_MAC = PiActionParamId.of("src_mac");
+    public static final PiActionParamId INS_MASK0003 =
+            PiActionParamId.of("ins_mask0003");
+    public static final PiActionParamId REMAINING_HOP_CNT =
+            PiActionParamId.of("remaining_hop_cnt");
+    public static final PiActionParamId HOP_METADATA_LEN =
+            PiActionParamId.of("hop_metadata_len");
+    public static final PiActionParamId SRC_IP = PiActionParamId.of("src_ip");
+    public static final PiActionParamId PORT = PiActionParamId.of("port");
+    // Packet Metadata IDs
+    public static final PiPacketMetadataId INGRESS_PORT =
+            PiPacketMetadataId.of("ingress_port");
+    public static final PiPacketMetadataId EGRESS_PORT =
+            PiPacketMetadataId.of("egress_port");
 }
diff --git a/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/IntProgrammableImpl.java b/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/IntProgrammableImpl.java
index 4f2cb1d..9a81e4c 100644
--- a/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/IntProgrammableImpl.java
+++ b/pipelines/basic/src/main/java/org/onosproject/pipelines/basic/IntProgrammableImpl.java
@@ -15,7 +15,6 @@
  */
 package org.onosproject.pipelines.basic;
 
-import com.google.common.collect.ImmutableBiMap;
 import com.google.common.collect.Sets;
 import org.osgi.service.component.annotations.Reference;
 import org.osgi.service.component.annotations.ReferenceCardinality;
@@ -61,7 +60,6 @@
     private static final int MAXHOP = 64;
     private static final int PORTMASK = 0xffff;
     private static final int IDLE_TIMEOUT = 100;
-    private static final int PKT_INSTANCE_TYPE_INGRESS_CLONE = 1;
     // Application name of the pipeline which adds this implementation to the pipeconf
     private static final String PIPELINE_APP_NAME = "org.onosproject.pipelines.basic";
     private final Logger log = getLogger(getClass());
@@ -74,13 +72,11 @@
             Criterion.Type.IP_PROTO);
 
     private static final Set<PiTableId> TABLES_TO_CLEANUP = Sets.newHashSet(
-            IntConstants.TBL_INT_INSERT_ID,
-            IntConstants.TBL_INT_INST_0003_ID,
-            IntConstants.TBL_INT_INST_0407_ID,
-            IntConstants.TBL_SET_SOURCE_ID,
-            IntConstants.TBL_SET_SINK_ID,
-            IntConstants.TBL_INT_SOURCE_ID,
-            IntConstants.TBL_GENERATE_REPORT_ID);
+            IntConstants.INGRESS_PROCESS_INT_SOURCE_TB_INT_SOURCE,
+            IntConstants.INGRESS_PROCESS_INT_SOURCE_SINK_TB_SET_SOURCE,
+            IntConstants.INGRESS_PROCESS_INT_SOURCE_SINK_TB_SET_SINK,
+            IntConstants.EGRESS_PROCESS_INT_TRANSIT_TB_INT_INSERT,
+            IntConstants.EGRESS_PROCESS_INT_REPORT_TB_GENERATE_REPORT);
 
     @Reference(cardinality = ReferenceCardinality.MANDATORY)
     private FlowRuleService flowRuleService;
@@ -90,45 +86,6 @@
 
     private DeviceId deviceId;
     private static final int DEFAULT_PRIORITY = 10000;
-    private static final ImmutableBiMap<Integer, PiActionId> INST_0003_ACTION_MAP =
-            ImmutableBiMap.<Integer, PiActionId>builder()
-                    .put(0, IntConstants.ACT_INT_SET_HEADER_0003_I0_ID)
-                    .put(1, IntConstants.ACT_INT_SET_HEADER_0003_I1_ID)
-                    .put(2, IntConstants.ACT_INT_SET_HEADER_0003_I2_ID)
-                    .put(3, IntConstants.ACT_INT_SET_HEADER_0003_I3_ID)
-                    .put(4, IntConstants.ACT_INT_SET_HEADER_0003_I4_ID)
-                    .put(5, IntConstants.ACT_INT_SET_HEADER_0003_I5_ID)
-                    .put(6, IntConstants.ACT_INT_SET_HEADER_0003_I6_ID)
-                    .put(7, IntConstants.ACT_INT_SET_HEADER_0003_I7_ID)
-                    .put(8, IntConstants.ACT_INT_SET_HEADER_0003_I8_ID)
-                    .put(9, IntConstants.ACT_INT_SET_HEADER_0003_I9_ID)
-                    .put(10, IntConstants.ACT_INT_SET_HEADER_0003_I10_ID)
-                    .put(11, IntConstants.ACT_INT_SET_HEADER_0003_I11_ID)
-                    .put(12, IntConstants.ACT_INT_SET_HEADER_0003_I12_ID)
-                    .put(13, IntConstants.ACT_INT_SET_HEADER_0003_I13_ID)
-                    .put(14, IntConstants.ACT_INT_SET_HEADER_0003_I14_ID)
-                    .put(15, IntConstants.ACT_INT_SET_HEADER_0003_I15_ID)
-                    .build();
-
-    private static final ImmutableBiMap<Integer, PiActionId> INST_0407_ACTION_MAP =
-            ImmutableBiMap.<Integer, PiActionId>builder()
-                    .put(0, IntConstants.ACT_INT_SET_HEADER_0407_I0_ID)
-                    .put(1, IntConstants.ACT_INT_SET_HEADER_0407_I1_ID)
-                    .put(2, IntConstants.ACT_INT_SET_HEADER_0407_I2_ID)
-                    .put(3, IntConstants.ACT_INT_SET_HEADER_0407_I3_ID)
-                    .put(4, IntConstants.ACT_INT_SET_HEADER_0407_I4_ID)
-                    .put(5, IntConstants.ACT_INT_SET_HEADER_0407_I5_ID)
-                    .put(6, IntConstants.ACT_INT_SET_HEADER_0407_I6_ID)
-                    .put(7, IntConstants.ACT_INT_SET_HEADER_0407_I7_ID)
-                    .put(8, IntConstants.ACT_INT_SET_HEADER_0407_I8_ID)
-                    .put(9, IntConstants.ACT_INT_SET_HEADER_0407_I9_ID)
-                    .put(10, IntConstants.ACT_INT_SET_HEADER_0407_I10_ID)
-                    .put(11, IntConstants.ACT_INT_SET_HEADER_0407_I11_ID)
-                    .put(12, IntConstants.ACT_INT_SET_HEADER_0407_I12_ID)
-                    .put(13, IntConstants.ACT_INT_SET_HEADER_0407_I13_ID)
-                    .put(14, IntConstants.ACT_INT_SET_HEADER_0407_I14_ID)
-                    .put(15, IntConstants.ACT_INT_SET_HEADER_0407_I15_ID)
-                    .build();
 
     private boolean setupBehaviour() {
         deviceId = this.data().deviceId();
@@ -148,14 +105,18 @@
             return false;
         }
 
-        // process_int_transit.tb_int_insert
         PiActionParam transitIdParam = new PiActionParam(
-                IntConstants.ACT_PRM_SWITCH_ID,
+                IntConstants.SWITCH_ID,
                 ImmutableByteSequence.copyFrom(
                         Integer.parseInt(deviceId.toString().substring(
                                 deviceId.toString().length() - 2))));
+        TrafficSelector selector = DefaultTrafficSelector.builder()
+                .matchPi(PiCriterion.builder().matchExact(
+                        IntConstants.HDR_INT_IS_VALID, (byte) 0x01)
+                         .build())
+                .build();
         PiAction transitAction = PiAction.builder()
-                .withId(IntConstants.ACT_INT_TRANSIT_ID)
+                .withId(IntConstants.EGRESS_PROCESS_INT_TRANSIT_INIT_METADATA)
                 .withParameter(transitIdParam)
                 .build();
         TrafficTreatment treatment = DefaultTrafficTreatment.builder()
@@ -163,31 +124,17 @@
                 .build();
 
         FlowRule transitFlowRule = DefaultFlowRule.builder()
+                .withSelector(selector)
                 .withTreatment(treatment)
                 .fromApp(appId)
                 .withPriority(DEFAULT_PRIORITY)
                 .makePermanent()
                 .forDevice(deviceId)
-                .forTable(IntConstants.TBL_INT_INSERT_ID)
+                .forTable(IntConstants.EGRESS_PROCESS_INT_TRANSIT_TB_INT_INSERT)
                 .build();
 
         flowRuleService.applyFlowRules(transitFlowRule);
 
-        // Populate tb_int_inst_0003 table
-        INST_0003_ACTION_MAP.forEach((matchValue, actionId) ->
-                                             populateInstTableEntry(IntConstants.TBL_INT_INST_0003_ID,
-                                                                    IntConstants.INT_HDR_INST_MASK_0003_ID,
-                                                                    matchValue,
-                                                                    actionId,
-                                                                    appId));
-        // Populate tb_int_inst_0407 table
-        INST_0407_ACTION_MAP.forEach((matchValue, actionId) ->
-                                             populateInstTableEntry(IntConstants.TBL_INT_INST_0407_ID,
-                                                                    IntConstants.INT_HDR_INST_MASK_0407_ID,
-                                                                    matchValue,
-                                                                    actionId,
-                                                                    appId));
-
         return true;
     }
 
@@ -197,15 +144,15 @@
             return false;
         }
 
-        // process_set_source_sink.tb_set_source for each host-facing port
+        // process_int_source_sink.tb_set_source for each host-facing port
         PiCriterion ingressCriterion = PiCriterion.builder()
-                .matchExact(BasicConstants.HDR_STANDARD_METADATA_INGRESS_PORT, port.toLong())
+                .matchExact(IntConstants.HDR_STANDARD_METADATA_INGRESS_PORT, port.toLong())
                 .build();
         TrafficSelector srcSelector = DefaultTrafficSelector.builder()
                 .matchPi(ingressCriterion)
                 .build();
         PiAction setSourceAct = PiAction.builder()
-                .withId(IntConstants.ACT_INT_SET_SOURCE_ID)
+                .withId(IntConstants.INGRESS_PROCESS_INT_SOURCE_SINK_INT_SET_SOURCE)
                 .build();
         TrafficTreatment srcTreatment = DefaultTrafficTreatment.builder()
                 .piTableAction(setSourceAct)
@@ -217,7 +164,7 @@
                 .withPriority(DEFAULT_PRIORITY)
                 .makePermanent()
                 .forDevice(deviceId)
-                .forTable(IntConstants.TBL_SET_SOURCE_ID)
+                .forTable(IntConstants.INGRESS_PROCESS_INT_SOURCE_SINK_TB_SET_SOURCE)
                 .build();
         flowRuleService.applyFlowRules(srcFlowRule);
         return true;
@@ -231,13 +178,13 @@
 
         // process_set_source_sink.tb_set_sink
         PiCriterion egressCriterion = PiCriterion.builder()
-                .matchExact(IntConstants.HDR_OUT_PORT_ID, port.toLong())
+                .matchExact(IntConstants.HDR_STANDARD_METADATA_EGRESS_SPEC, port.toLong())
                 .build();
         TrafficSelector sinkSelector = DefaultTrafficSelector.builder()
                 .matchPi(egressCriterion)
                 .build();
         PiAction setSinkAct = PiAction.builder()
-                .withId(IntConstants.ACT_INT_SET_SINK_ID)
+                .withId(IntConstants.INGRESS_PROCESS_INT_SOURCE_SINK_INT_SET_SINK)
                 .build();
         TrafficTreatment sinkTreatment = DefaultTrafficTreatment.builder()
                 .piTableAction(setSinkAct)
@@ -249,7 +196,7 @@
                 .withPriority(DEFAULT_PRIORITY)
                 .makePermanent()
                 .forDevice(deviceId)
-                .forTable(IntConstants.TBL_SET_SINK_ID)
+                .forTable(IntConstants.INGRESS_PROCESS_INT_SOURCE_SINK_TB_SET_SINK)
                 .build();
         flowRuleService.applyFlowRules(sinkFlowRule);
         return true;
@@ -328,23 +275,23 @@
 
     private FlowRule buildWatchlistEntry(IntObjective obj) {
         int instructionBitmap = buildInstructionBitmap(obj.metadataTypes());
-        PiActionParam maxHopParam = new PiActionParam(
-                IntConstants.ACT_PRM_MAX_HOP_ID,
-                ImmutableByteSequence.copyFrom(MAXHOP));
-        PiActionParam instCntParam = new PiActionParam(
-                IntConstants.ACT_PRM_INS_CNT_ID,
+        PiActionParam hopMetaLenParam = new PiActionParam(
+                IntConstants.HOP_METADATA_LEN,
                 ImmutableByteSequence.copyFrom(Integer.bitCount(instructionBitmap)));
+        PiActionParam hopCntParam = new PiActionParam(
+                IntConstants.REMAINING_HOP_CNT,
+                ImmutableByteSequence.copyFrom(MAXHOP));
         PiActionParam inst0003Param = new PiActionParam(
-                IntConstants.ACT_PRM_INS_MASK0003_ID,
+                IntConstants.INS_MASK0003,
                 ImmutableByteSequence.copyFrom((instructionBitmap >> 12) & 0xF));
         PiActionParam inst0407Param = new PiActionParam(
-                IntConstants.ACT_PRM_INS_MASK0407_ID,
+                IntConstants.INS_MASK0407,
                 ImmutableByteSequence.copyFrom((instructionBitmap >> 8) & 0xF));
 
         PiAction intSourceAction = PiAction.builder()
-                .withId(IntConstants.ACT_INT_SOURCE_DSCP_ID)
-                .withParameter(maxHopParam)
-                .withParameter(instCntParam)
+                .withId(IntConstants.INGRESS_PROCESS_INT_SOURCE_INT_SOURCE_DSCP)
+                .withParameter(hopMetaLenParam)
+                .withParameter(hopCntParam)
                 .withParameter(inst0003Param)
                 .withParameter(inst0407Param)
                 .build();
@@ -365,28 +312,28 @@
                 case TCP_SRC:
                     sBuilder.matchPi(
                             PiCriterion.builder().matchTernary(
-                                    IntConstants.LOCAL_META_SRC_PORT_ID,
+                                    IntConstants.HDR_LOCAL_METADATA_L4_SRC_PORT,
                                     ((TcpPortCriterion) criterion).tcpPort().toInt(), PORTMASK)
                                     .build());
                     break;
                 case UDP_SRC:
                     sBuilder.matchPi(
                             PiCriterion.builder().matchTernary(
-                                    IntConstants.LOCAL_META_SRC_PORT_ID,
+                                    IntConstants.HDR_LOCAL_METADATA_L4_SRC_PORT,
                                     ((UdpPortCriterion) criterion).udpPort().toInt(), PORTMASK)
                                     .build());
                     break;
                 case TCP_DST:
                     sBuilder.matchPi(
                             PiCriterion.builder().matchTernary(
-                                    IntConstants.LOCAL_META_DST_PORT_ID,
+                                    IntConstants.HDR_LOCAL_METADATA_L4_DST_PORT,
                                     ((TcpPortCriterion) criterion).tcpPort().toInt(), PORTMASK)
                                     .build());
                     break;
                 case UDP_DST:
                     sBuilder.matchPi(
                             PiCriterion.builder().matchTernary(
-                                    IntConstants.LOCAL_META_DST_PORT_ID,
+                                    IntConstants.HDR_LOCAL_METADATA_L4_DST_PORT,
                                     ((UdpPortCriterion) criterion).udpPort().toInt(), PORTMASK)
                                     .build());
                     break;
@@ -400,7 +347,7 @@
                 .withSelector(sBuilder.build())
                 .withTreatment(instTreatment)
                 .withPriority(DEFAULT_PRIORITY)
-                .forTable(IntConstants.TBL_INT_SOURCE_ID)
+                .forTable(IntConstants.INGRESS_PROCESS_INT_SOURCE_TB_INT_SOURCE)
                 .fromApp(appId)
                 .withIdleTimeout(IDLE_TIMEOUT)
                 .build();
@@ -488,7 +435,7 @@
             return false;
         }
 
-        FlowRule reportRule = buildReportEntry(cfg, PKT_INSTANCE_TYPE_INGRESS_CLONE);
+        FlowRule reportRule = buildReportEntry(cfg);
         if (reportRule != null) {
             flowRuleService.applyFlowRules(reportRule);
             log.info("Report entry {} has been added to {}", reportRule, this.data().deviceId());
@@ -499,30 +446,29 @@
         }
     }
 
-    private FlowRule buildReportEntry(IntConfig cfg, int type) {
-        PiCriterion instTypeCriterion = PiCriterion.builder()
-                .matchExact(IntConstants.STD_META_INSTANCE_TYPE_ID, type)
-                .build();
+    private FlowRule buildReportEntry(IntConfig cfg) {
         TrafficSelector selector = DefaultTrafficSelector.builder()
-                .matchPi(instTypeCriterion)
+                .matchPi(PiCriterion.builder().matchExact(
+                        IntConstants.HDR_INT_IS_VALID, (byte) 0x01)
+                                 .build())
                 .build();
         PiActionParam srcMacParam = new PiActionParam(
-                IntConstants.ACT_PRM_SRC_MAC_ID,
+                IntConstants.SRC_MAC,
                 ImmutableByteSequence.copyFrom(cfg.sinkMac().toBytes()));
         PiActionParam nextHopMacParam = new PiActionParam(
-                IntConstants.ACT_PRM_MON_MAC_ID,
+                IntConstants.MON_MAC,
                 ImmutableByteSequence.copyFrom(cfg.collectorNextHopMac().toBytes()));
         PiActionParam srcIpParam = new PiActionParam(
-                IntConstants.ACT_PRM_SRC_IP_ID,
+                IntConstants.SRC_IP,
                 ImmutableByteSequence.copyFrom(cfg.sinkIp().toOctets()));
         PiActionParam monIpParam = new PiActionParam(
-                IntConstants.ACT_PRM_MON_IP_ID,
+                IntConstants.MON_IP,
                 ImmutableByteSequence.copyFrom(cfg.collectorIp().toOctets()));
         PiActionParam monPortParam = new PiActionParam(
-                IntConstants.ACT_PRM_MON_PORT_ID,
+                IntConstants.MON_PORT,
                 ImmutableByteSequence.copyFrom(cfg.collectorPort().toInt()));
         PiAction reportAction = PiAction.builder()
-                .withId(IntConstants.ACT_DO_REPORT_ENCAP_ID)
+                .withId(IntConstants.EGRESS_PROCESS_INT_REPORT_DO_REPORT_ENCAPSULATION)
                 .withParameter(srcMacParam)
                 .withParameter(nextHopMacParam)
                 .withParameter(srcIpParam)
@@ -540,7 +486,7 @@
                 .withPriority(DEFAULT_PRIORITY)
                 .makePermanent()
                 .forDevice(this.data().deviceId())
-                .forTable(IntConstants.TBL_GENERATE_REPORT_ID)
+                .forTable(IntConstants.EGRESS_PROCESS_INT_REPORT_TB_GENERATE_REPORT)
                 .build();
     }
 
diff --git a/pipelines/basic/src/main/resources/Makefile b/pipelines/basic/src/main/resources/Makefile
index 2ea393e..67b9355 100644
--- a/pipelines/basic/src/main/resources/Makefile
+++ b/pipelines/basic/src/main/resources/Makefile
@@ -6,7 +6,7 @@
 		--p4runtime-format text basic.p4
 
 int: int.p4
-	p4c-bm2-ss --arch v1model -o p4c-out/bmv2/int.json \
+	p4c-bm2-ss --arch v1model -o p4c-out/bmv2/int.json "-DTARGET_BMV2" \
 		--p4runtime-file p4c-out/bmv2/int.p4info \
 		--p4runtime-format text int.p4
 
diff --git a/pipelines/basic/src/main/resources/include/actions.p4 b/pipelines/basic/src/main/resources/include/actions.p4
index 9504879..9f8bd4f 100644
--- a/pipelines/basic/src/main/resources/include/actions.p4
+++ b/pipelines/basic/src/main/resources/include/actions.p4
@@ -24,6 +24,8 @@
     mark_to_drop();
 }
 
-
+action nop() {
+    NoAction();
+}
 
 #endif
diff --git a/pipelines/basic/src/main/resources/include/defines.p4 b/pipelines/basic/src/main/resources/include/defines.p4
index 4933ec2..d2683bf 100644
--- a/pipelines/basic/src/main/resources/include/defines.p4
+++ b/pipelines/basic/src/main/resources/include/defines.p4
@@ -24,6 +24,15 @@
 #define IPV4_IHL_MIN 4w5
 #define MAX_PORTS 511
 
+#ifndef _BOOL
+#define _BOOL bool
+#endif
+#ifndef _TRUE
+#define _TRUE true
+#endif
+#ifndef _FALSE
+#define _FALSE false
+#endif
 
 typedef bit<48> mac_t;
 typedef bit<32> ip_address_t;
@@ -38,13 +47,4 @@
 const MeterColor MeterColor_YELLOW = 8w1;
 const MeterColor MeterColor_RED = 8w2;
 
-// FIXME: this works only on BMv2
-#define PKT_INSTANCE_TYPE_NORMAL 0
-#define PKT_INSTANCE_TYPE_INGRESS_CLONE 1
-#define PKT_INSTANCE_TYPE_EGRESS_CLONE 2
-#define PKT_INSTANCE_TYPE_COALESCED 3
-#define PKT_INSTANCE_TYPE_INGRESS_RECIRC 4
-#define PKT_INSTANCE_TYPE_REPLICATION 5
-#define PKT_INSTANCE_TYPE_RESUBMIT 6
-
 #endif
diff --git a/pipelines/basic/src/main/resources/include/int_definitions.p4 b/pipelines/basic/src/main/resources/include/int_definitions.p4
index 17fd69e..8672499 100644
--- a/pipelines/basic/src/main/resources/include/int_definitions.p4
+++ b/pipelines/basic/src/main/resources/include/int_definitions.p4
@@ -20,17 +20,44 @@
 
 #include "defines.p4"
 
-/* indicate INT at LSB of DSCP */
-const bit<6> INT_DSCP = 0x1;
+/* indicate INT by DSCP value */
+const bit<6> DSCP_INT = 0x17;
+const bit<6> DSCP_MASK = 0x3F;
 
 typedef bit<48> timestamp_t;
 typedef bit<32> switch_id_t;
 
-const bit<8> INT_HEADER_LEN_WORD = 4;
+const bit<8> INT_HEADER_LEN_WORD = 3;
+const bit<16> INT_HEADER_SIZE = 8;
+const bit<16> INT_SHIM_HEADER_SIZE = 4;
 
 const bit<8> CPU_MIRROR_SESSION_ID = 250;
 const bit<32> REPORT_MIRROR_SESSION_ID = 500;
 const bit<6> HW_ID = 1;
 const bit<8> REPORT_HDR_TTL = 64;
 
+#ifdef TARGET_BMV2
+// These definitions are from:
+// https://github.com/jafingerhut/p4-guide/blob/master/v1model-special-ops/v1model-special-ops.p4
+
+// These definitions are derived from the numerical values of the enum
+// named "PktInstanceType" in the p4lang/behavioral-model source file
+// targets/simple_switch/simple_switch.h
+// https://github.com/p4lang/behavioral-model/blob/master/targets/simple_switch/simple_switch.h#L126-L134
+
+const bit<32> BMV2_V1MODEL_INSTANCE_TYPE_NORMAL        = 0;
+const bit<32> BMV2_V1MODEL_INSTANCE_TYPE_INGRESS_CLONE = 1;
+const bit<32> BMV2_V1MODEL_INSTANCE_TYPE_EGRESS_CLONE  = 2;
+const bit<32> BMV2_V1MODEL_INSTANCE_TYPE_COALESCED     = 3;
+const bit<32> BMV2_V1MODEL_INSTANCE_TYPE_RECIRC        = 4;
+const bit<32> BMV2_V1MODEL_INSTANCE_TYPE_REPLICATION   = 5;
+const bit<32> BMV2_V1MODEL_INSTANCE_TYPE_RESUBMIT      = 6;
+
+#define IS_RESUBMITTED(smeta) (smeta.instance_type == BMV2_V1MODEL_INSTANCE_TYPE_RESUBMIT)
+#define IS_RECIRCULATED(smeta) (smeta.instance_type == BMV2_V1MODEL_INSTANCE_TYPE_RECIRC)
+#define IS_I2E_CLONE(smeta) (smeta.instance_type == BMV2_V1MODEL_INSTANCE_TYPE_INGRESS_CLONE)
+#define IS_E2E_CLONE(smeta) (smeta.instance_type == BMV2_V1MODEL_INSTANCE_TYPE_EGRESS_CLONE)
+#define IS_REPLICATED(smeta) (smeta.instance_type == BMV2_V1MODEL_INSTANCE_TYPE_REPLICATION)
+#endif // TARGET__BMV2
+
 #endif
diff --git a/pipelines/basic/src/main/resources/include/int_headers.p4 b/pipelines/basic/src/main/resources/include/int_headers.p4
index c98ea31..8ea6f0e 100644
--- a/pipelines/basic/src/main/resources/include/int_headers.p4
+++ b/pipelines/basic/src/main/resources/include/int_headers.p4
@@ -22,28 +22,31 @@
 #define __INT_HEADERS__
 #include "telemetry_report_headers.p4"
 
-// INT headers
+// INT version 1.0
+
+// INT header
 header int_header_t {
-    bit<2>  ver;
+    bit<4>  ver;
     bit<2>  rep;
     bit<1>  c;
     bit<1>  e;
-    bit<5>  rsvd1;
-    bit<5>  ins_cnt;
-    bit<8>  max_hop_cnt;
-    bit<8>  total_hop_cnt;
+    bit<1>  m;
+    bit<7>  rsvd1;
+    bit<3>  rsvd2;
+    bit<5>  hop_metadata_len;
+    bit<8>  remaining_hop_cnt;
     bit<4>  instruction_mask_0003; /* split the bits for lookup */
     bit<4>  instruction_mask_0407;
     bit<4>  instruction_mask_0811;
     bit<4>  instruction_mask_1215;
-    bit<16> rsvd2;
+    bit<16> rsvd3;
 }
 
 // INT meta-value headers - different header for each value type
 header int_switch_id_t {
     bit<32> switch_id;
 }
-header int_port_ids_t {
+header int_level1_port_ids_t {
     bit<16> ingress_port_id;
     bit<16> egress_port_id;
 }
@@ -60,9 +63,9 @@
 header int_egress_tstamp_t {
     bit<32> egress_tstamp;
 }
-header int_q_congestion_t {
-    bit<8> q_id;
-    bit<24> q_congestion;
+header int_level2_port_ids_t {
+    bit<32> ingress_port_id;
+    bit<32> egress_port_id;
 }
 header int_egress_port_tx_util_t {
     bit<32> egress_port_tx_util;
@@ -70,8 +73,8 @@
 
 header int_data_t {
     // Maximum int metadata stack size in bits:
-    // (0xFF -4) * 32 (excluding INT shim header, tail header and INT header)
-    varbit<8032> data;
+    // (0x3F - 3) * 4 * 8 (excluding INT shim header and INT header)
+    varbit<1920> data;
 }
 
 // INT shim header for TCP/UDP
@@ -79,23 +82,18 @@
     bit<8> int_type;
     bit<8> rsvd1;
     bit<8> len;
-    bit<8> rsvd2;
-}
-// INT tail header for TCP/UDP
-header intl4_tail_t {
-    bit<8> next_proto;
-    bit<16> dest_port;
-    bit<8> dscp;
+    bit<6> dscp;
+    bit<2> rsvd2;
 }
 
 struct int_metadata_t {
     switch_id_t switch_id;
-    bit<16> insert_byte_cnt;
-    bit<1>  source;
-    bit<1>  sink;
-    bit<8>  mirror_id;
-    bit<16> flow_id;
-    bit<8>  metadata_len;
+    bit<16> new_bytes;
+    bit<8>  new_words;
+    _BOOL  source;
+    _BOOL  sink;
+    _BOOL  transit;
+    bit<8> intl4_shim_len;
 }
 
 struct headers_t {
@@ -118,14 +116,13 @@
     int_header_t int_header;
     int_data_t int_data;
     int_switch_id_t int_switch_id;
-    int_port_ids_t int_port_ids;
+    int_level1_port_ids_t int_level1_port_ids;
     int_hop_latency_t int_hop_latency;
     int_q_occupancy_t int_q_occupancy;
     int_ingress_tstamp_t int_ingress_tstamp;
     int_egress_tstamp_t int_egress_tstamp;
-    int_q_congestion_t int_q_congestion;
+    int_level2_port_ids_t int_level2_port_ids;
     int_egress_port_tx_util_t int_egress_tx_util;
-    intl4_tail_t intl4_tail;
 }
 
 struct local_metadata_t {
diff --git a/pipelines/basic/src/main/resources/include/int_parser.p4 b/pipelines/basic/src/main/resources/include/int_parser.p4
index 2d03c20..a73e726 100644
--- a/pipelines/basic/src/main/resources/include/int_parser.p4
+++ b/pipelines/basic/src/main/resources/include/int_parser.p4
@@ -56,8 +56,8 @@
         packet.extract(hdr.tcp);
         local_metadata.l4_src_port = hdr.tcp.src_port;
         local_metadata.l4_dst_port = hdr.tcp.dst_port;
-        transition select((hdr.ipv4.dscp & INT_DSCP) == INT_DSCP) {
-            true: parse_intl4_shim;
+        transition select(hdr.ipv4.dscp) {
+            DSCP_INT &&& DSCP_MASK: parse_intl4_shim;
             default: accept;
         }
     }
@@ -66,37 +66,26 @@
         packet.extract(hdr.udp);
         local_metadata.l4_src_port = hdr.udp.src_port;
         local_metadata.l4_dst_port = hdr.udp.dst_port;
-        transition select((hdr.ipv4.dscp & INT_DSCP) == INT_DSCP) {
-            true: parse_intl4_shim;
+        transition select(hdr.ipv4.dscp) {
+            DSCP_INT &&& DSCP_MASK: parse_intl4_shim;
             default: accept;
         }
     }
 
     state parse_intl4_shim {
         packet.extract(hdr.intl4_shim);
+        local_metadata.int_meta.intl4_shim_len = hdr.intl4_shim.len;
         transition parse_int_header;
     }
 
     state parse_int_header {
         packet.extract(hdr.int_header);
-        // If there is no INT metadata but the INT header (and corresponding shim header
-        // and tail header) exists, default value of length field in shim header
-        // should be INT_HEADER_LEN_WORD.
-        local_metadata.int_meta.metadata_len = hdr.intl4_shim.len - INT_HEADER_LEN_WORD;
-        transition select (local_metadata.int_meta.metadata_len) {
-            0: parse_intl4_tail;
-            default: parse_int_data;
-        }
+        transition parse_int_data;
     }
 
     state parse_int_data {
-        // Parse INT metadata, not INT header, INT shim header and INT tail header
-        packet.extract(hdr.int_data, (bit<32>) ((hdr.intl4_shim.len - INT_HEADER_LEN_WORD) << 5));
-        transition parse_intl4_tail;
-    }
-
-    state parse_intl4_tail {
-        packet.extract(hdr.intl4_tail);
+        // Parse INT metadata stack
+        packet.extract(hdr.int_data, ((bit<32>) (local_metadata.int_meta.intl4_shim_len - INT_HEADER_LEN_WORD)) << 5);
         transition accept;
     }
 }
@@ -117,15 +106,14 @@
         packet.emit(hdr.intl4_shim);
         packet.emit(hdr.int_header);
         packet.emit(hdr.int_switch_id);
-        packet.emit(hdr.int_port_ids);
+        packet.emit(hdr.int_level1_port_ids);
         packet.emit(hdr.int_hop_latency);
         packet.emit(hdr.int_q_occupancy);
         packet.emit(hdr.int_ingress_tstamp);
         packet.emit(hdr.int_egress_tstamp);
-        packet.emit(hdr.int_q_congestion);
+        packet.emit(hdr.int_level2_port_ids);
         packet.emit(hdr.int_egress_tx_util);
         packet.emit(hdr.int_data);
-        packet.emit(hdr.intl4_tail);
     }
 }
 
diff --git a/pipelines/basic/src/main/resources/include/int_report.p4 b/pipelines/basic/src/main/resources/include/int_report.p4
index b7ca357..bf2a4e5 100644
--- a/pipelines/basic/src/main/resources/include/int_report.p4
+++ b/pipelines/basic/src/main/resources/include/int_report.p4
@@ -30,15 +30,18 @@
          * we'll not use local_report_header for this purpose.
          */
         hdr.report_fixed_header.setValid();
-        hdr.report_fixed_header.ver = 0;
+        hdr.report_fixed_header.ver = 1;
+        hdr.report_fixed_header.len = 4;
         /* only support for flow_watchlist */
         hdr.report_fixed_header.nproto = NPROTO_ETHERNET;
+        hdr.report_fixed_header.rep_md_bits = 0;
         hdr.report_fixed_header.d = 0;
         hdr.report_fixed_header.q = 0;
         hdr.report_fixed_header.f = 1;
         hdr.report_fixed_header.rsvd = 0;
         //TODO how to get information specific to the switch
         hdr.report_fixed_header.hw_id = HW_ID;
+        hdr.report_fixed_header.sw_id = local_metadata.int_meta.switch_id;
         // TODO how save a variable and increment
         hdr.report_fixed_header.seq_no = 0;
         //TODO how to get timestamp from ingress ns
@@ -61,8 +64,8 @@
         hdr.report_ipv4.dscp = 6w0;
         hdr.report_ipv4.ecn = 2w0;
         /* Total Len is report_ipv4_len + report_udp_len + report_fixed_hdr_len + ethernet_len + ipv4_totalLen */
-        hdr.report_ipv4.len = (bit<16>) IPV4_MIN_HEAD_LEN + (bit<16>) UDP_HEADER_LEN +
-                                (bit<16>) REPORT_FIXED_HEADER_LEN +  (bit<16>) ETH_HEADER_LEN + hdr.ipv4.len;
+        hdr.report_ipv4.len = (bit<16>) IPV4_MIN_HEAD_LEN + (bit<16>) UDP_HEADER_LEN + (bit<16>) REPORT_FIXED_HEADER_LEN +
+                              (bit<16>) ETH_HEADER_LEN + (bit<16>) IPV4_MIN_HEAD_LEN + (bit<16>) UDP_HEADER_LEN + (((bit<16>) hdr.intl4_shim.len)<< 2);
         /* Dont Fragment bit should be set */
         hdr.report_ipv4.identification = 0;
         hdr.report_ipv4.flags = 0;
@@ -76,23 +79,28 @@
         hdr.report_udp.setValid();
         hdr.report_udp.src_port = 0;
         hdr.report_udp.dst_port = mon_port;
-        hdr.report_udp.length_ =  (bit<16>) UDP_HEADER_LEN + (bit<16>) REPORT_FIXED_HEADER_LEN +
-                                    (bit<16>) ETH_HEADER_LEN + hdr.ipv4.len;
+        hdr.report_udp.length_ = (bit<16>) UDP_HEADER_LEN + (bit<16>) REPORT_FIXED_HEADER_LEN +
+                                 (bit<16>) ETH_HEADER_LEN + (bit<16>) IPV4_MIN_HEAD_LEN + (bit<16>) UDP_HEADER_LEN +
+                                 (((bit<16>) hdr.intl4_shim.len)<< 2);
 
         local_metadata.compute_checksum = true;
         add_report_fixed_header();
+
+        truncate((bit<32>)hdr.report_ipv4.len + (bit<32>) ETH_HEADER_LEN);
     }
 
-    /* Cloned packet instance_type is PKT_INSTANCE_TYPE_INGRESS_CLONE=1
-     * Packet is forwarded according to the mirroring_add command
-     */
+    // Cloned packet is forwarded according to the mirroring_add command
     table tb_generate_report {
+        // We don't really need a key here, however we add a dummy one as a
+        // workaround to ONOS inability to properly support default actions.
         key = {
-            standard_metadata.instance_type: exact;
+            hdr.int_header.isValid(): exact @name("int_is_valid");
         }
         actions = {
             do_report_encapsulation;
+            @defaultonly nop();
         }
+        default_action = nop;
     }
 
     apply {
diff --git a/pipelines/basic/src/main/resources/include/int_sink.p4 b/pipelines/basic/src/main/resources/include/int_sink.p4
index 7023671..549ae97 100644
--- a/pipelines/basic/src/main/resources/include/int_sink.p4
+++ b/pipelines/basic/src/main/resources/include/int_sink.p4
@@ -22,27 +22,28 @@
     inout headers_t hdr,
     inout local_metadata_t local_metadata,
     inout standard_metadata_t standard_metadata) {
+    @hidden
     action restore_header () {
-        hdr.udp.dst_port = hdr.intl4_tail.dest_port;
-        hdr.ipv4.dscp = (bit<6>)hdr.intl4_tail.dscp;
+        hdr.ipv4.dscp = hdr.intl4_shim.dscp;
+        // restore length fields of IPv4 header and UDP header
+        bit<16> len_bytes = ((bit<16>)hdr.intl4_shim.len) << 2;
+        hdr.ipv4.len = hdr.ipv4.len - len_bytes;
+        hdr.udp.length_ = hdr.udp.length_ - len_bytes;
     }
 
+    @hidden
     action int_sink() {
-        // restore length fields of IPv4 header and UDP header
-        hdr.ipv4.len = hdr.ipv4.len - (bit<16>)((hdr.intl4_shim.len - (bit<8>)hdr.int_header.ins_cnt) << 2);
-        hdr.udp.length_ = hdr.udp.length_ - (bit<16>)((hdr.intl4_shim.len - (bit<8>)hdr.int_header.ins_cnt) << 2);
         // remove all the INT information from the packet
         hdr.int_header.setInvalid();
         hdr.int_data.setInvalid();
         hdr.intl4_shim.setInvalid();
-        hdr.intl4_tail.setInvalid();
         hdr.int_switch_id.setInvalid();
-        hdr.int_port_ids.setInvalid();
+        hdr.int_level1_port_ids.setInvalid();
         hdr.int_hop_latency.setInvalid();
         hdr.int_q_occupancy.setInvalid();
         hdr.int_ingress_tstamp.setInvalid();
         hdr.int_egress_tstamp.setInvalid();
-        hdr.int_q_congestion.setInvalid();
+        hdr.int_level2_port_ids.setInvalid();
         hdr.int_egress_tx_util.setInvalid();
     }
 
diff --git a/pipelines/basic/src/main/resources/include/int_source.p4 b/pipelines/basic/src/main/resources/include/int_source.p4
index 6fd2730..b7c5046 100644
--- a/pipelines/basic/src/main/resources/include/int_source.p4
+++ b/pipelines/basic/src/main/resources/include/int_source.p4
@@ -26,12 +26,13 @@
 
     direct_counter(CounterType.packets_and_bytes) counter_int_source;
 
-    action int_source(bit<8> max_hop, bit<5> ins_cnt, bit<4> ins_mask0003, bit<4> ins_mask0407) {
+    action int_source(bit<5> hop_metadata_len, bit<8> remaining_hop_cnt, bit<4> ins_mask0003, bit<4> ins_mask0407) {
         // insert INT shim header
         hdr.intl4_shim.setValid();
         // int_type: Hop-by-hop type (1) , destination type (2)
         hdr.intl4_shim.int_type = 1;
         hdr.intl4_shim.len = INT_HEADER_LEN_WORD;
+        hdr.intl4_shim.dscp = hdr.ipv4.dscp;
 
         // insert INT header
         hdr.int_header.setValid();
@@ -39,28 +40,24 @@
         hdr.int_header.rep = 0;
         hdr.int_header.c = 0;
         hdr.int_header.e = 0;
+        hdr.int_header.m = 0;
         hdr.int_header.rsvd1 = 0;
-        hdr.int_header.ins_cnt = ins_cnt;
-        hdr.int_header.max_hop_cnt = max_hop;
-        hdr.int_header.total_hop_cnt = 0;
+        hdr.int_header.rsvd2 = 0;
+        hdr.int_header.hop_metadata_len = hop_metadata_len;
+        hdr.int_header.remaining_hop_cnt = remaining_hop_cnt;
         hdr.int_header.instruction_mask_0003 = ins_mask0003;
         hdr.int_header.instruction_mask_0407 = ins_mask0407;
         hdr.int_header.instruction_mask_0811 = 0; // not supported
         hdr.int_header.instruction_mask_1215 = 0; // not supported
 
-        // insert INT tail header
-        hdr.intl4_tail.setValid();
-        hdr.intl4_tail.next_proto = hdr.ipv4.protocol;
-        hdr.intl4_tail.dest_port = local_metadata.l4_dst_port;
-        hdr.intl4_tail.dscp = (bit<8>) hdr.ipv4.dscp;
-
-        // add the header len (8 bytes) to total len
-        hdr.ipv4.len = hdr.ipv4.len + 16;
-        hdr.udp.length_ = hdr.udp.length_ + 16;
+        // add the header len (3 words) to total len
+        hdr.ipv4.len = hdr.ipv4.len + INT_HEADER_SIZE + INT_SHIM_HEADER_SIZE;
+        hdr.udp.length_ = hdr.udp.length_ + INT_HEADER_SIZE + INT_SHIM_HEADER_SIZE;
     }
-    action int_source_dscp(bit<8> max_hop, bit<5> ins_cnt, bit<4> ins_mask0003, bit<4> ins_mask0407) {
-        int_source(max_hop, ins_cnt, ins_mask0003, ins_mask0407);
-        hdr.ipv4.dscp = INT_DSCP;
+    action int_source_dscp(bit<5> hop_metadata_len, bit<8> remaining_hop_cnt, bit<4> ins_mask0003, bit<4> ins_mask0407) {
+        int_source(hop_metadata_len, remaining_hop_cnt, ins_mask0003, ins_mask0407);
+        hdr.ipv4.dscp = DSCP_INT;
+        counter_int_source.count();
     }
 
     table tb_int_source {
@@ -72,9 +69,10 @@
         }
         actions = {
             int_source_dscp;
+            @defaultonly nop();
         }
         counters = counter_int_source;
-        size = 1024;
+        const default_action = nop();
     }
 
     apply {
@@ -82,7 +80,7 @@
     }
 }
 
-control process_set_source_sink (
+control process_int_source_sink (
     inout headers_t hdr,
     inout local_metadata_t local_metadata,
     inout standard_metadata_t standard_metadata) {
@@ -91,11 +89,13 @@
     direct_counter(CounterType.packets_and_bytes) counter_set_sink;
 
     action int_set_source () {
-        local_metadata.int_meta.source = 1;
+        local_metadata.int_meta.source = _TRUE;
+        counter_set_source.count();
     }
 
     action int_set_sink () {
-        local_metadata.int_meta.sink = 1;
+        local_metadata.int_meta.sink = _TRUE;
+        counter_set_sink.count();
     }
 
     table tb_set_source {
@@ -104,9 +104,11 @@
         }
         actions = {
             int_set_source;
+            @defaultonly nop();
         }
         counters = counter_set_source;
-        size = 256;
+        const default_action = nop();
+        size = MAX_PORTS;
     }
     table tb_set_sink {
         key = {
@@ -114,9 +116,11 @@
         }
         actions = {
             int_set_sink;
+            @defaultonly nop();
         }
         counters = counter_set_sink;
-        size = 256;
+        const default_action = nop();
+        size = MAX_PORTS;
     }
 
     apply {
diff --git a/pipelines/basic/src/main/resources/include/int_transit.p4 b/pipelines/basic/src/main/resources/include/int_transit.p4
index 658edfe..ad7d8d3 100644
--- a/pipelines/basic/src/main/resources/include/int_transit.p4
+++ b/pipelines/basic/src/main/resources/include/int_transit.p4
@@ -22,36 +22,28 @@
     inout local_metadata_t local_metadata,
     inout standard_metadata_t standard_metadata) {
 
-    direct_counter(CounterType.packets_and_bytes) counter_int_insert;
-    direct_counter(CounterType.packets_and_bytes) counter_int_inst_0003;
-    direct_counter(CounterType.packets_and_bytes) counter_int_inst_0407;
-
-    action int_update_total_hop_cnt() {
-        hdr.int_header.total_hop_cnt = hdr.int_header.total_hop_cnt + 1;
-    }
-
-    action int_transit(switch_id_t switch_id) {
+    action init_metadata(switch_id_t switch_id) {
+        local_metadata.int_meta.transit = _TRUE;
         local_metadata.int_meta.switch_id = switch_id;
-        local_metadata.int_meta.insert_byte_cnt = (bit<16>) hdr.int_header.ins_cnt << 2;
     }
 
-    /* Instr Bit 0 */
+    @hidden
     action int_set_header_0() { //switch_id
         hdr.int_switch_id.setValid();
         hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id;
     }
-    action int_set_header_1() { //port_ids
-        hdr.int_port_ids.setValid();
-        hdr.int_port_ids.ingress_port_id =
-        (bit<16>) standard_metadata.ingress_port;
-        hdr.int_port_ids.egress_port_id =
-        (bit<16>) standard_metadata.egress_port;
+    @hidden
+    action int_set_header_1() { //level1_port_id
+        hdr.int_level1_port_ids.setValid();
+        hdr.int_level1_port_ids.ingress_port_id = (bit<16>) standard_metadata.ingress_port;
+        hdr.int_level1_port_ids.egress_port_id = (bit<16>) standard_metadata.egress_port;
     }
+    @hidden
     action int_set_header_2() { //hop_latency
         hdr.int_hop_latency.setValid();
-        hdr.int_hop_latency.hop_latency =
-        (bit<32>) standard_metadata.deq_timedelta;
+        hdr.int_hop_latency.hop_latency = (bit<32>) standard_metadata.egress_global_timestamp - (bit<32>) standard_metadata.ingress_global_timestamp;
     }
+    @hidden
     action int_set_header_3() { //q_occupancy
         // TODO: Support egress queue ID
         hdr.int_q_occupancy.setValid();
@@ -61,28 +53,26 @@
         hdr.int_q_occupancy.q_occupancy =
         (bit<24>) standard_metadata.deq_qdepth;
     }
+    @hidden
     action int_set_header_4() { //ingress_tstamp
         hdr.int_ingress_tstamp.setValid();
         hdr.int_ingress_tstamp.ingress_tstamp =
-        (bit<32>) standard_metadata.enq_timestamp;
+        (bit<32>) standard_metadata.ingress_global_timestamp;
     }
+    @hidden
     action int_set_header_5() { //egress_timestamp
         hdr.int_egress_tstamp.setValid();
         hdr.int_egress_tstamp.egress_tstamp =
-        (bit<32>) standard_metadata.enq_timestamp +
-        (bit<32>) standard_metadata.deq_timedelta;
+        (bit<32>) standard_metadata.egress_global_timestamp;
     }
-    action int_set_header_6() { //q_congestion
-        // TODO: implement queue congestion support in BMv2
-        // TODO: update egress queue ID
-        hdr.int_q_congestion.setValid();
-        hdr.int_q_congestion.q_id =
-        0;
-        // (bit<8>) standard_metadata.egress_qid;
-        hdr.int_q_congestion.q_congestion =
-        // (bit<24>) queueing_metadata.deq_congestion;
-        0;
-    }
+    @hidden
+    action int_set_header_6() { //level2_port_id
+        hdr.int_level2_port_ids.setValid();
+        // level2_port_id indicates Logical port ID
+        hdr.int_level2_port_ids.ingress_port_id = (bit<32>) standard_metadata.ingress_port;
+        hdr.int_level2_port_ids.egress_port_id = (bit<32>) standard_metadata.egress_port;
+     }
+    @hidden
     action int_set_header_7() { //egress_port_tx_utilization
         // TODO: implement tx utilization support in BMv2
         hdr.int_egress_tx_util.setValid();
@@ -91,149 +81,249 @@
         0;
     }
 
-    /* action function for bits 0-3 combinations, 0 is msb, 3 is lsb */
-    /* Each bit set indicates that corresponding INT header should be added */
-    action int_set_header_0003_i0() {
+    // Actions to keep track of the new metadata added.
+    @hidden
+    action add_1() {
+        local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 1;
+        local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 4;
     }
-    action int_set_header_0003_i1() {
+
+    @hidden
+    action add_2() {
+        local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 2;
+        local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 8;
+    }
+
+    @hidden
+    action add_3() {
+        local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 3;
+        local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 12;
+    }
+
+    @hidden
+    action add_4() {
+        local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 4;
+       local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 16;
+    }
+
+    @hidden
+    action add_5() {
+        local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 5;
+        local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 20;
+    }
+
+     /* action function for bits 0-3 combinations, 0 is msb, 3 is lsb */
+     /* Each bit set indicates that corresponding INT header should be added */
+    @hidden
+     action int_set_header_0003_i0() {
+     }
+    @hidden
+     action int_set_header_0003_i1() {
         int_set_header_3();
+        add_1();
     }
+    @hidden
     action int_set_header_0003_i2() {
         int_set_header_2();
+        add_1();
     }
+    @hidden
     action int_set_header_0003_i3() {
         int_set_header_3();
         int_set_header_2();
+        add_2();
     }
+    @hidden
     action int_set_header_0003_i4() {
         int_set_header_1();
+        add_1();
     }
+    @hidden
     action int_set_header_0003_i5() {
         int_set_header_3();
         int_set_header_1();
+        add_2();
     }
+    @hidden
     action int_set_header_0003_i6() {
         int_set_header_2();
         int_set_header_1();
+        add_2();
     }
+    @hidden
     action int_set_header_0003_i7() {
         int_set_header_3();
         int_set_header_2();
         int_set_header_1();
+        add_3();
     }
+    @hidden
     action int_set_header_0003_i8() {
         int_set_header_0();
+        add_1();
     }
+    @hidden
     action int_set_header_0003_i9() {
         int_set_header_3();
         int_set_header_0();
+        add_2();
     }
+    @hidden
     action int_set_header_0003_i10() {
         int_set_header_2();
         int_set_header_0();
+        add_2();
     }
+    @hidden
     action int_set_header_0003_i11() {
         int_set_header_3();
         int_set_header_2();
         int_set_header_0();
+        add_3();
     }
+    @hidden
     action int_set_header_0003_i12() {
         int_set_header_1();
         int_set_header_0();
+        add_2();
     }
+    @hidden
     action int_set_header_0003_i13() {
         int_set_header_3();
         int_set_header_1();
         int_set_header_0();
+        add_3();
     }
+    @hidden
     action int_set_header_0003_i14() {
         int_set_header_2();
         int_set_header_1();
         int_set_header_0();
+        add_3();
     }
+    @hidden
     action int_set_header_0003_i15() {
         int_set_header_3();
         int_set_header_2();
         int_set_header_1();
         int_set_header_0();
+        add_4();
     }
 
-    /* action function for bits 4-7 combinations, 4 is msb, 7 is lsb */
+     /* action function for bits 4-7 combinations, 4 is msb, 7 is lsb */
+    @hidden
     action int_set_header_0407_i0() {
     }
+    @hidden
     action int_set_header_0407_i1() {
         int_set_header_7();
+        add_1();
     }
+    @hidden
     action int_set_header_0407_i2() {
         int_set_header_6();
+        add_2();
     }
+    @hidden
     action int_set_header_0407_i3() {
         int_set_header_7();
         int_set_header_6();
+        add_3();
     }
+    @hidden
     action int_set_header_0407_i4() {
         int_set_header_5();
+        add_1();
     }
+    @hidden
     action int_set_header_0407_i5() {
         int_set_header_7();
         int_set_header_5();
+        add_2();
     }
+    @hidden
     action int_set_header_0407_i6() {
         int_set_header_6();
         int_set_header_5();
+        add_3();
     }
+    @hidden
     action int_set_header_0407_i7() {
         int_set_header_7();
         int_set_header_6();
         int_set_header_5();
+        add_4();
     }
+    @hidden
     action int_set_header_0407_i8() {
         int_set_header_4();
+        add_1();
     }
+    @hidden
     action int_set_header_0407_i9() {
         int_set_header_7();
         int_set_header_4();
+        add_2();
     }
+    @hidden
     action int_set_header_0407_i10() {
         int_set_header_6();
         int_set_header_4();
+        add_3();
     }
+    @hidden
     action int_set_header_0407_i11() {
         int_set_header_7();
         int_set_header_6();
         int_set_header_4();
+        add_4();
     }
+    @hidden
     action int_set_header_0407_i12() {
         int_set_header_5();
         int_set_header_4();
+        add_2();
     }
+    @hidden
     action int_set_header_0407_i13() {
         int_set_header_7();
         int_set_header_5();
         int_set_header_4();
+        add_3();
     }
+    @hidden
     action int_set_header_0407_i14() {
         int_set_header_6();
         int_set_header_5();
         int_set_header_4();
+        add_4();
     }
+    @hidden
     action int_set_header_0407_i15() {
         int_set_header_7();
         int_set_header_6();
         int_set_header_5();
         int_set_header_4();
+        add_5();
     }
 
+    // Default action used to set switch ID.
     table tb_int_insert {
-        key = {}
-        actions = {
-            int_transit;
+        // We don't really need a key here, however we add a dummy one as a
+        // workaround to ONOS inability to properly support default actions.
+        key = {
+            hdr.int_header.isValid(): exact @name("int_is_valid");
         }
-        counters = counter_int_insert;
-        size = 2;
+        actions = {
+            init_metadata;
+            @defaultonly nop;
+        }
+        const default_action = nop();
+        size = 1;
     }
 
     /* Table to process instruction bits 0-3 */
+    @hidden
     table tb_int_inst_0003 {
         key = {
             hdr.int_header.instruction_mask_0003 : exact;
@@ -256,11 +346,28 @@
             int_set_header_0003_i14;
             int_set_header_0003_i15;
         }
-        counters = counter_int_inst_0003;
-        size = 16;
+        const entries = {
+            (0x0) : int_set_header_0003_i0();
+            (0x1) : int_set_header_0003_i1();
+            (0x2) : int_set_header_0003_i2();
+            (0x3) : int_set_header_0003_i3();
+            (0x4) : int_set_header_0003_i4();
+            (0x5) : int_set_header_0003_i5();
+            (0x6) : int_set_header_0003_i6();
+            (0x7) : int_set_header_0003_i7();
+            (0x8) : int_set_header_0003_i8();
+            (0x9) : int_set_header_0003_i9();
+            (0xA) : int_set_header_0003_i10();
+            (0xB) : int_set_header_0003_i11();
+            (0xC) : int_set_header_0003_i12();
+            (0xD) : int_set_header_0003_i13();
+            (0xE) : int_set_header_0003_i14();
+            (0xF) : int_set_header_0003_i15();
+        }
     }
 
     /* Table to process instruction bits 4-7 */
+    @hidden
     table tb_int_inst_0407 {
         key = {
             hdr.int_header.instruction_mask_0407 : exact;
@@ -283,42 +390,46 @@
             int_set_header_0407_i14;
             int_set_header_0407_i15;
         }
-        counters = counter_int_inst_0407;
-        size = 16;
+        const entries = {
+            (0x0) : int_set_header_0407_i0();
+            (0x1) : int_set_header_0407_i1();
+            (0x2) : int_set_header_0407_i2();
+            (0x3) : int_set_header_0407_i3();
+            (0x4) : int_set_header_0407_i4();
+            (0x5) : int_set_header_0407_i5();
+            (0x6) : int_set_header_0407_i6();
+            (0x7) : int_set_header_0407_i7();
+            (0x8) : int_set_header_0407_i8();
+            (0x9) : int_set_header_0407_i9();
+            (0xA) : int_set_header_0407_i10();
+            (0xB) : int_set_header_0407_i11();
+            (0xC) : int_set_header_0407_i12();
+            (0xD) : int_set_header_0407_i13();
+            (0xE) : int_set_header_0407_i14();
+            (0xF) : int_set_header_0407_i15();
+        }
     }
 
     apply {
         tb_int_insert.apply();
+        if (local_metadata.int_meta.transit == _FALSE) {
+            return;
+        }
         tb_int_inst_0003.apply();
         tb_int_inst_0407.apply();
-        int_update_total_hop_cnt();
-    }
-}
 
-control process_int_outer_encap (
-    inout headers_t hdr,
-    inout local_metadata_t local_metadata,
-    inout standard_metadata_t standard_metadata) {
+        // Decrement remaining hop cnt
+        hdr.int_header.remaining_hop_cnt = hdr.int_header.remaining_hop_cnt - 1;
 
-    action int_update_ipv4() {
-        hdr.ipv4.len = hdr.ipv4.len + local_metadata.int_meta.insert_byte_cnt;
-    }
-    action int_update_udp() {
-        hdr.udp.length_ = hdr.udp.length_ + local_metadata.int_meta.insert_byte_cnt;
-    }
-    action int_update_shim() {
-        hdr.intl4_shim.len = hdr.intl4_shim.len + (bit<8>)hdr.int_header.ins_cnt;
-    }
-
-    apply {
+        // Update headers lengths.
         if (hdr.ipv4.isValid()) {
-            int_update_ipv4();
+            hdr.ipv4.len = hdr.ipv4.len + local_metadata.int_meta.new_bytes;
         }
         if (hdr.udp.isValid()) {
-            int_update_udp();
+            hdr.udp.length_ = hdr.udp.length_ + local_metadata.int_meta.new_bytes;
         }
         if (hdr.intl4_shim.isValid()) {
-            int_update_shim();
+            hdr.intl4_shim.len = hdr.intl4_shim.len + local_metadata.int_meta.new_words;
         }
     }
 }
diff --git a/pipelines/basic/src/main/resources/include/telemetry_report_headers.p4 b/pipelines/basic/src/main/resources/include/telemetry_report_headers.p4
index bf0f6f7..73a56ec 100644
--- a/pipelines/basic/src/main/resources/include/telemetry_report_headers.p4
+++ b/pipelines/basic/src/main/resources/include/telemetry_report_headers.p4
@@ -18,24 +18,27 @@
 #ifndef __TELEMETRY_REPORT_HEADERS__
 #define __TELEMETRY_REPORT_HEADERS__
 
-const bit<4> NPROTO_ETHERNET = 0;
-const bit<4> NPROTO_TELEMETRY_DROP_HEADER = 1;
-const bit<4> NPROTO_TELEMETRY_SWITCH_LOCAL_HEADER = 2;
+const bit<3> NPROTO_ETHERNET = 0;
+const bit<3> NPROTO_TELEMETRY_DROP_HEADER = 1;
+const bit<3> NPROTO_TELEMETRY_SWITCH_LOCAL_HEADER = 2;
 
 
 // Report Telemetry Headers
 header report_fixed_header_t {
     bit<4>  ver;
-    bit<4>  nproto;
+    bit<4>  len;
+    bit<3>  nproto;
+    bit<6>  rep_md_bits;
     bit<1>  d;
     bit<1>  q;
     bit<1>  f;
-    bit<15> rsvd;
+    bit<6>  rsvd;
     bit<6>  hw_id;
+    bit<32> sw_id;
     bit<32> seq_no;
     bit<32> ingress_tstamp;
 }
-const bit<8> REPORT_FIXED_HEADER_LEN = 12;
+const bit<8> REPORT_FIXED_HEADER_LEN = 16;
 
 // Telemetry drop report header
 header drop_report_header_t {
diff --git a/pipelines/basic/src/main/resources/int.p4 b/pipelines/basic/src/main/resources/int.p4
index 725be96..508928c 100644
--- a/pipelines/basic/src/main/resources/int.p4
+++ b/pipelines/basic/src/main/resources/int.p4
@@ -43,13 +43,18 @@
         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);
-        if(local_metadata.int_meta.sink == 1) {
+        process_int_source_sink.apply(hdr, local_metadata, standard_metadata);
+
+        if (local_metadata.int_meta.source == _TRUE) {
+            process_int_source.apply(hdr, local_metadata, standard_metadata);
+        }
+
+        if (local_metadata.int_meta.sink == _TRUE && hdr.int_header.isValid()) {
             // clone packet for Telemetry Report
             // FIXME: this works only on BMv2
-            #ifdef __TARGET_BMV2__
-            clone(CloneType.I2E, REPORT_MIRROR_SESSION_ID);
-            #endif
+            #ifdef TARGET_BMV2
+            clone3(CloneType.I2E, REPORT_MIRROR_SESSION_ID, standard_metadata);
+            #endif // TARGET_BMV2
         }
     }
 }
@@ -60,24 +65,21 @@
     inout standard_metadata_t standard_metadata) {
 
     apply {
-        if (standard_metadata.ingress_port != CPU_PORT &&
-            standard_metadata.egress_port != CPU_PORT &&
-            (hdr.udp.isValid() || hdr.tcp.isValid())) {
-            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);
+
+            #ifdef TARGET_BMV2
+            if (IS_I2E_CLONE(standard_metadata)) {
+                /* send int report */
+                process_int_report.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);
-                if (local_metadata.int_meta.sink == 1) {
-                    /* send int report */
-                    process_int_report.apply(hdr, local_metadata, standard_metadata);
-                    /* int sink */
-                    process_int_sink.apply(hdr, local_metadata, standard_metadata);
-                }
-            }
+
+            if (local_metadata.int_meta.sink == _TRUE && !IS_I2E_CLONE(standard_metadata)) {
+            #else
+            if (local_metadata.int_meta.sink == _TRUE) {
+            #endif // TARGET_BMV2
+                process_int_sink.apply(hdr, local_metadata, standard_metadata);
+             }
         }
         port_counters_egress.apply(hdr, standard_metadata);
         packetio_egress.apply(hdr, standard_metadata);
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 f24c95e..70c184a 100644
--- a/pipelines/basic/src/main/resources/p4c-out/bmv2/int.json
+++ b/pipelines/basic/src/main/resources/p4c-out/bmv2/int.json
@@ -4,17 +4,17 @@
       "name" : "scalars_0",
       "id" : 0,
       "fields" : [
-        ["tmp", 1, false],
-        ["tmp_0", 1, false],
+        ["tmp", 32, false],
+        ["tmp_0", 32, false],
         ["tmp_1", 32, false],
         ["tmp_2", 32, false],
-        ["tmp_3", 32, false],
+        ["process_int_transit_hasReturned_0", 1, false],
         ["local_metadata_t.l4_src_port", 16, false],
         ["local_metadata_t.l4_dst_port", 16, false],
         ["local_metadata_t.next_hop_id", 16, false],
         ["local_metadata_t.selector", 16, false],
         ["local_metadata_t.compute_checksum", 1, false],
-        ["_padding_2", 5, false]
+        ["_padding_2", 6, false]
       ]
     },
     {
@@ -104,12 +104,15 @@
       "id" : 7,
       "fields" : [
         ["ver", 4, false],
-        ["nproto", 4, false],
+        ["len", 4, false],
+        ["nproto", 3, false],
+        ["rep_md_bits", 6, false],
         ["d", 1, false],
         ["q", 1, false],
         ["f", 1, false],
-        ["rsvd", 15, false],
+        ["rsvd", 6, false],
         ["hw_id", 6, false],
+        ["sw_id", 32, false],
         ["seq_no", 32, false],
         ["ingress_tstamp", 32, false]
       ]
@@ -162,26 +165,28 @@
         ["int_type", 8, false],
         ["rsvd1", 8, false],
         ["len", 8, false],
-        ["rsvd2", 8, false]
+        ["dscp", 6, false],
+        ["rsvd2", 2, false]
       ]
     },
     {
       "name" : "int_header_t",
       "id" : 12,
       "fields" : [
-        ["ver", 2, false],
+        ["ver", 4, false],
         ["rep", 2, false],
         ["c", 1, false],
         ["e", 1, false],
-        ["rsvd1", 5, false],
-        ["ins_cnt", 5, false],
-        ["max_hop_cnt", 8, false],
-        ["total_hop_cnt", 8, false],
+        ["m", 1, false],
+        ["rsvd1", 7, false],
+        ["rsvd2", 3, false],
+        ["hop_metadata_len", 5, false],
+        ["remaining_hop_cnt", 8, false],
         ["instruction_mask_0003", 4, false],
         ["instruction_mask_0407", 4, false],
         ["instruction_mask_0811", 4, false],
         ["instruction_mask_1215", 4, false],
-        ["rsvd2", 16, false]
+        ["rsvd3", 16, false]
       ]
     },
     {
@@ -190,7 +195,7 @@
       "fields" : [
         ["data", "*"]
       ],
-      "max_length" : 1004
+      "max_length" : 240
     },
     {
       "name" : "int_switch_id_t",
@@ -200,7 +205,7 @@
       ]
     },
     {
-      "name" : "int_port_ids_t",
+      "name" : "int_level1_port_ids_t",
       "id" : 15,
       "fields" : [
         ["ingress_port_id", 16, false],
@@ -237,11 +242,11 @@
       ]
     },
     {
-      "name" : "int_q_congestion_t",
+      "name" : "int_level2_port_ids_t",
       "id" : 20,
       "fields" : [
-        ["q_id", 8, false],
-        ["q_congestion", 24, false]
+        ["ingress_port_id", 32, false],
+        ["egress_port_id", 32, false]
       ]
     },
     {
@@ -252,26 +257,17 @@
       ]
     },
     {
-      "name" : "intl4_tail_t",
+      "name" : "int_metadata_t",
       "id" : 22,
       "fields" : [
-        ["next_proto", 8, false],
-        ["dest_port", 16, false],
-        ["dscp", 8, false]
-      ]
-    },
-    {
-      "name" : "int_metadata_t",
-      "id" : 23,
-      "fields" : [
         ["switch_id", 32, false],
-        ["insert_byte_cnt", 16, false],
-        ["source", 1, false],
-        ["sink", 1, false],
-        ["mirror_id", 8, false],
-        ["flow_id", 16, false],
-        ["metadata_len", 8, false],
-        ["_padding_1", 6, false]
+        ["new_bytes", 16, false],
+        ["new_words", 8, false],
+        ["source", 1, 0],
+        ["sink", 1, 0],
+        ["transit", 1, 0],
+        ["intl4_shim_len", 8, false],
+        ["_padding_1", 5, false]
       ]
     }
   ],
@@ -403,9 +399,9 @@
       "pi_omit" : true
     },
     {
-      "name" : "int_port_ids",
+      "name" : "int_level1_port_ids",
       "id" : 18,
-      "header_type" : "int_port_ids_t",
+      "header_type" : "int_level1_port_ids_t",
       "metadata" : false,
       "pi_omit" : true
     },
@@ -438,9 +434,9 @@
       "pi_omit" : true
     },
     {
-      "name" : "int_q_congestion",
+      "name" : "int_level2_port_ids",
       "id" : 23,
-      "header_type" : "int_q_congestion_t",
+      "header_type" : "int_level2_port_ids_t",
       "metadata" : false,
       "pi_omit" : true
     },
@@ -452,15 +448,8 @@
       "pi_omit" : true
     },
     {
-      "name" : "intl4_tail",
-      "id" : 25,
-      "header_type" : "intl4_tail_t",
-      "metadata" : false,
-      "pi_omit" : true
-    },
-    {
       "name" : "userMetadata.int_meta",
-      "id" : 26,
+      "id" : 25,
       "header_type" : "int_metadata_t",
       "metadata" : true,
       "pi_omit" : true
@@ -491,7 +480,98 @@
     {
       "id" : 1,
       "name" : "fl",
-      "elements" : []
+      "source_info" : {
+        "filename" : "int.p4",
+        "line" : 56,
+        "column" : 60,
+        "source_fragment" : "standard_metadata"
+      },
+      "elements" : [
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "ingress_port"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "egress_spec"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "egress_port"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "clone_spec"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "instance_type"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "drop"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "recirculate_port"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "packet_length"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "enq_timestamp"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "enq_qdepth"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "deq_timedelta"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "deq_qdepth"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "ingress_global_timestamp"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "egress_global_timestamp"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "lf_field_list"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "mcast_grp"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "resubmit_flag"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "egress_rid"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "checksum_error"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "recirculate_flag"]
+        },
+        {
+          "type" : "field",
+          "value" : ["standard_metadata", "parser_error"]
+        }
+      ]
     }
   ],
   "errors" : [
@@ -668,63 +748,13 @@
                 }
               ],
               "op" : "set"
-            },
-            {
-              "parameters" : [
-                {
-                  "type" : "field",
-                  "value" : ["scalars", "tmp"]
-                },
-                {
-                  "type" : "expression",
-                  "value" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "?",
-                      "left" : {
-                        "type" : "hexstr",
-                        "value" : "0x01"
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x00"
-                      },
-                      "cond" : {
-                        "type" : "expression",
-                        "value" : {
-                          "op" : "==",
-                          "left" : {
-                            "type" : "expression",
-                            "value" : {
-                              "op" : "&",
-                              "left" : {
-                                "type" : "field",
-                                "value" : ["ipv4", "dscp"]
-                              },
-                              "right" : {
-                                "type" : "hexstr",
-                                "value" : "0x01"
-                              }
-                            }
-                          },
-                          "right" : {
-                            "type" : "hexstr",
-                            "value" : "0x01"
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              ],
-              "op" : "set"
             }
           ],
           "transitions" : [
             {
               "type" : "hexstr",
-              "value" : "0x01",
-              "mask" : null,
+              "value" : "0x17",
+              "mask" : "0x3f",
               "next_state" : "parse_intl4_shim"
             },
             {
@@ -736,7 +766,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp"]
+              "value" : ["ipv4", "dscp"]
             }
           ]
         },
@@ -778,63 +808,13 @@
                 }
               ],
               "op" : "set"
-            },
-            {
-              "parameters" : [
-                {
-                  "type" : "field",
-                  "value" : ["scalars", "tmp_0"]
-                },
-                {
-                  "type" : "expression",
-                  "value" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "?",
-                      "left" : {
-                        "type" : "hexstr",
-                        "value" : "0x01"
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x00"
-                      },
-                      "cond" : {
-                        "type" : "expression",
-                        "value" : {
-                          "op" : "==",
-                          "left" : {
-                            "type" : "expression",
-                            "value" : {
-                              "op" : "&",
-                              "left" : {
-                                "type" : "field",
-                                "value" : ["ipv4", "dscp"]
-                              },
-                              "right" : {
-                                "type" : "hexstr",
-                                "value" : "0x01"
-                              }
-                            }
-                          },
-                          "right" : {
-                            "type" : "hexstr",
-                            "value" : "0x01"
-                          }
-                        }
-                      }
-                    }
-                  }
-                }
-              ],
-              "op" : "set"
             }
           ],
           "transitions" : [
             {
               "type" : "hexstr",
-              "value" : "0x01",
-              "mask" : null,
+              "value" : "0x17",
+              "mask" : "0x3f",
               "next_state" : "parse_intl4_shim"
             },
             {
@@ -846,7 +826,7 @@
           "transition_key" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_0"]
+              "value" : ["ipv4", "dscp"]
             }
           ]
         },
@@ -866,6 +846,19 @@
             {
               "parameters" : [
                 {
+                  "type" : "field",
+                  "value" : ["userMetadata.int_meta", "intl4_shim_len"]
+                },
+                {
+                  "type" : "field",
+                  "value" : ["intl4_shim", "len"]
+                }
+              ],
+              "op" : "set"
+            },
+            {
+              "parameters" : [
+                {
                   "type" : "regular",
                   "value" : "int_header"
                 }
@@ -876,7 +869,7 @@
               "parameters" : [
                 {
                   "type" : "field",
-                  "value" : ["userMetadata.int_meta", "metadata_len"]
+                  "value" : ["scalars", "tmp"]
                 },
                 {
                   "type" : "expression",
@@ -887,72 +880,11 @@
                       "left" : {
                         "type" : "expression",
                         "value" : {
-                          "op" : "+",
-                          "left" : {
-                            "type" : "field",
-                            "value" : ["intl4_shim", "len"]
-                          },
-                          "right" : {
-                            "type" : "hexstr",
-                            "value" : "0xfc"
-                          }
-                        }
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0xff"
-                      }
-                    }
-                  }
-                }
-              ],
-              "op" : "set"
-            }
-          ],
-          "transitions" : [
-            {
-              "type" : "hexstr",
-              "value" : "0x00",
-              "mask" : null,
-              "next_state" : "parse_intl4_tail"
-            },
-            {
-              "value" : "default",
-              "mask" : null,
-              "next_state" : "parse_int_data"
-            }
-          ],
-          "transition_key" : [
-            {
-              "type" : "field",
-              "value" : ["userMetadata.int_meta", "metadata_len"]
-            }
-          ]
-        },
-        {
-          "name" : "parse_int_data",
-          "id" : 7,
-          "parser_ops" : [
-            {
-              "parameters" : [
-                {
-                  "type" : "field",
-                  "value" : ["scalars", "tmp_1"]
-                },
-                {
-                  "type" : "expression",
-                  "value" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "&",
-                      "left" : {
-                        "type" : "expression",
-                        "value" : {
-                          "op" : "&",
+                          "op" : "<<",
                           "left" : {
                             "type" : "expression",
                             "value" : {
-                              "op" : "<<",
+                              "op" : "&",
                               "left" : {
                                 "type" : "expression",
                                 "value" : {
@@ -963,11 +895,11 @@
                                       "op" : "+",
                                       "left" : {
                                         "type" : "field",
-                                        "value" : ["intl4_shim", "len"]
+                                        "value" : ["userMetadata.int_meta", "intl4_shim_len"]
                                       },
                                       "right" : {
                                         "type" : "hexstr",
-                                        "value" : "0xfc"
+                                        "value" : "0xfd"
                                       }
                                     }
                                   },
@@ -979,13 +911,13 @@
                               },
                               "right" : {
                                 "type" : "hexstr",
-                                "value" : "0x5"
+                                "value" : "0xffffffff"
                               }
                             }
                           },
                           "right" : {
                             "type" : "hexstr",
-                            "value" : "0xff"
+                            "value" : "0x5"
                           }
                         }
                       },
@@ -1009,7 +941,7 @@
                   "type" : "expression",
                   "value" : {
                     "type" : "field",
-                    "value" : ["scalars", "tmp_1"]
+                    "value" : ["scalars", "tmp"]
                   }
                 }
               ],
@@ -1020,29 +952,6 @@
             {
               "value" : "default",
               "mask" : null,
-              "next_state" : "parse_intl4_tail"
-            }
-          ],
-          "transition_key" : []
-        },
-        {
-          "name" : "parse_intl4_tail",
-          "id" : 8,
-          "parser_ops" : [
-            {
-              "parameters" : [
-                {
-                  "type" : "regular",
-                  "value" : "intl4_tail"
-                }
-              ],
-              "op" : "extract"
-            }
-          ],
-          "transitions" : [
-            {
-              "value" : "default",
-              "mask" : null,
               "next_state" : null
             }
           ],
@@ -1058,11 +967,11 @@
       "id" : 0,
       "source_info" : {
         "filename" : "include/int_parser.p4",
-        "line" : 104,
+        "line" : 93,
         "column" : 8,
         "source_fragment" : "int_deparser"
       },
-      "order" : ["packet_in", "report_ethernet", "report_ipv4", "report_udp", "report_fixed_header", "ethernet", "ipv4", "tcp", "udp", "intl4_shim", "int_header", "int_switch_id", "int_port_ids", "int_hop_latency", "int_q_occupancy", "int_ingress_tstamp", "int_egress_tstamp", "int_q_congestion", "int_egress_tx_util", "int_data", "intl4_tail"]
+      "order" : ["packet_in", "report_ethernet", "report_ipv4", "report_udp", "report_fixed_header", "ethernet", "ipv4", "tcp", "udp", "intl4_shim", "int_header", "int_switch_id", "int_level1_port_ids", "int_hop_latency", "int_q_occupancy", "int_ingress_tstamp", "int_egress_tstamp", "int_level2_port_ids", "int_egress_tx_util", "int_data"]
     }
   ],
   "meter_arrays" : [],
@@ -1092,58 +1001,34 @@
       }
     },
     {
-      "name" : "ingress.process_set_source_sink.counter_set_source",
+      "name" : "ingress.process_int_source_sink.counter_set_source",
       "id" : 2,
       "is_direct" : true,
-      "binding" : "ingress.process_set_source_sink.tb_set_source",
+      "binding" : "ingress.process_int_source_sink.tb_set_source",
       "source_info" : {
         "filename" : "include/int_source.p4",
-        "line" : 90,
+        "line" : 88,
         "column" : 50,
         "source_fragment" : "counter_set_source"
       }
     },
     {
-      "name" : "ingress.process_set_source_sink.counter_set_sink",
+      "name" : "ingress.process_int_source_sink.counter_set_sink",
       "id" : 3,
       "is_direct" : true,
-      "binding" : "ingress.process_set_source_sink.tb_set_sink",
+      "binding" : "ingress.process_int_source_sink.tb_set_sink",
       "source_info" : {
         "filename" : "include/int_source.p4",
-        "line" : 91,
+        "line" : 89,
         "column" : 50,
         "source_fragment" : "counter_set_sink"
       }
     },
     {
-      "name" : "egress.process_set_source_sink.counter_set_source",
+      "name" : "ingress.process_int_source.counter_int_source",
       "id" : 4,
       "is_direct" : true,
-      "binding" : "egress.process_set_source_sink.tb_set_source",
-      "source_info" : {
-        "filename" : "include/int_source.p4",
-        "line" : 90,
-        "column" : 50,
-        "source_fragment" : "counter_set_source"
-      }
-    },
-    {
-      "name" : "egress.process_set_source_sink.counter_set_sink",
-      "id" : 5,
-      "is_direct" : true,
-      "binding" : "egress.process_set_source_sink.tb_set_sink",
-      "source_info" : {
-        "filename" : "include/int_source.p4",
-        "line" : 91,
-        "column" : 50,
-        "source_fragment" : "counter_set_sink"
-      }
-    },
-    {
-      "name" : "egress.process_int_source.counter_int_source",
-      "id" : 6,
-      "is_direct" : true,
-      "binding" : "egress.process_int_source.tb_int_source",
+      "binding" : "ingress.process_int_source.tb_int_source",
       "source_info" : {
         "filename" : "include/int_source.p4",
         "line" : 27,
@@ -1152,44 +1037,8 @@
       }
     },
     {
-      "name" : "egress.process_int_transit.counter_int_insert",
-      "id" : 7,
-      "is_direct" : true,
-      "binding" : "egress.process_int_transit.tb_int_insert",
-      "source_info" : {
-        "filename" : "include/int_transit.p4",
-        "line" : 25,
-        "column" : 50,
-        "source_fragment" : "counter_int_insert"
-      }
-    },
-    {
-      "name" : "egress.process_int_transit.counter_int_inst_0003",
-      "id" : 8,
-      "is_direct" : true,
-      "binding" : "egress.process_int_transit.tb_int_inst_0003",
-      "source_info" : {
-        "filename" : "include/int_transit.p4",
-        "line" : 26,
-        "column" : 50,
-        "source_fragment" : "counter_int_inst_0003"
-      }
-    },
-    {
-      "name" : "egress.process_int_transit.counter_int_inst_0407",
-      "id" : 9,
-      "is_direct" : true,
-      "binding" : "egress.process_int_transit.tb_int_inst_0407",
-      "source_info" : {
-        "filename" : "include/int_transit.p4",
-        "line" : 27,
-        "column" : 50,
-        "source_fragment" : "counter_int_inst_0407"
-      }
-    },
-    {
       "name" : "egress.port_counters_egress.egress_port_counter",
-      "id" : 10,
+      "id" : 5,
       "source_info" : {
         "filename" : "include/port_counters.p4",
         "line" : 36,
@@ -1345,20 +1194,26 @@
       ]
     },
     {
-      "name" : "NoAction",
+      "name" : "nop",
       "id" : 1,
       "runtime_data" : [],
       "primitives" : []
     },
     {
-      "name" : "NoAction",
+      "name" : "nop",
       "id" : 2,
       "runtime_data" : [],
       "primitives" : []
     },
     {
-      "name" : "ingress.table0_control.set_next_hop_id",
+      "name" : "nop",
       "id" : 3,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "ingress.table0_control.set_next_hop_id",
+      "id" : 4,
       "runtime_data" : [
         {
           "name" : "next_hop_id",
@@ -1389,7 +1244,7 @@
     },
     {
       "name" : "ingress.table0_control.send_to_cpu",
-      "id" : 4,
+      "id" : 5,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -1406,7 +1261,7 @@
           ],
           "source_info" : {
             "filename" : "include/defines.p4",
-            "line" : 34,
+            "line" : 43,
             "column" : 24,
             "source_fragment" : "255; ..."
           }
@@ -1415,7 +1270,7 @@
     },
     {
       "name" : "ingress.table0_control.set_egress_port",
-      "id" : 5,
+      "id" : 6,
       "runtime_data" : [
         {
           "name" : "port",
@@ -1445,33 +1300,7 @@
       ]
     },
     {
-      "name" : "ingress.process_set_source_sink.int_set_source",
-      "id" : 6,
-      "runtime_data" : [],
-      "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" : "ingress.process_set_source_sink.int_set_sink",
+      "name" : "ingress.process_int_source_sink.int_set_source",
       "id" : 7,
       "runtime_data" : [],
       "primitives" : [
@@ -1480,24 +1309,34 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["userMetadata.int_meta", "sink"]
+              "value" : ["userMetadata.int_meta", "source"]
             },
             {
-              "type" : "hexstr",
-              "value" : "0x01"
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
             }
           ],
           "source_info" : {
             "filename" : "include/int_source.p4",
-            "line" : 98,
+            "line" : 92,
             "column" : 8,
-            "source_fragment" : "local_metadata.int_meta.sink = 1"
+            "source_fragment" : "local_metadata.int_meta.source = true"
           }
         }
       ]
     },
     {
-      "name" : "act",
+      "name" : "ingress.process_int_source_sink.int_set_sink",
       "id" : 8,
       "runtime_data" : [],
       "primitives" : [
@@ -1506,226 +1345,43 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["standard_metadata", "egress_spec"]
-            },
-            {
-              "type" : "field",
-              "value" : ["packet_out", "egress_port"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/packet_io.p4",
-            "line" : 27,
-            "column" : 12,
-            "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
-          }
-        },
-        {
-          "op" : "remove_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "packet_out"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/packet_io.p4",
-            "line" : 28,
-            "column" : 12,
-            "source_fragment" : "hdr.packet_out.setInvalid()"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_0",
-      "id" : 9,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["scalars", "tmp_2"]
+              "value" : ["userMetadata.int_meta", "sink"]
             },
             {
               "type" : "expression",
               "value" : {
                 "type" : "expression",
                 "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["standard_metadata", "ingress_port"]
-                  },
+                  "op" : "b2d",
+                  "left" : null,
                   "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffffffff"
+                    "type" : "bool",
+                    "value" : true
                   }
                 }
               }
             }
           ],
           "source_info" : {
-            "filename" : "include/port_counters.p4",
-            "line" : 29,
-            "column" : 35,
-            "source_fragment" : "(bit<32>) standard_metadata.ingress_port"
-          }
-        },
-        {
-          "op" : "count",
-          "parameters" : [
-            {
-              "type" : "counter_array",
-              "value" : "ingress.port_counters_ingress.ingress_port_counter"
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "tmp_2"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/port_counters.p4",
-            "line" : 29,
-            "column" : 8,
-            "source_fragment" : "ingress_port_counter.count((bit<32>) standard_metadata.ingress_port)"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "act_1",
-      "id" : 10,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "clone_ingress_pkt_to_egress",
-          "parameters" : [
-            {
-              "type" : "hexstr",
-              "value" : "0x000001f4"
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x1"
-            }
-          ],
-          "source_info" : {
-            "filename" : "int.p4",
-            "line" : 51,
-            "column" : 12,
-            "source_fragment" : "clone(CloneType.I2E, REPORT_MIRROR_SESSION_ID)"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "NoAction",
-      "id" : 11,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "NoAction",
-      "id" : 12,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "NoAction",
-      "id" : 13,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "NoAction",
-      "id" : 14,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "NoAction",
-      "id" : 15,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "NoAction",
-      "id" : 16,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "NoAction",
-      "id" : 17,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "egress.process_set_source_sink.int_set_source",
-      "id" : 18,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["userMetadata.int_meta", "source"]
-            },
-            {
-              "type" : "hexstr",
-              "value" : "0x01"
-            }
-          ],
-          "source_info" : {
             "filename" : "include/int_source.p4",
-            "line" : 94,
+            "line" : 97,
             "column" : 8,
-            "source_fragment" : "local_metadata.int_meta.source = 1"
+            "source_fragment" : "local_metadata.int_meta.sink = true"
           }
         }
       ]
     },
     {
-      "name" : "egress.process_set_source_sink.int_set_sink",
-      "id" : 19,
-      "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" : 20,
+      "name" : "ingress.process_int_source.int_source_dscp",
+      "id" : 9,
       "runtime_data" : [
         {
-          "name" : "max_hop",
-          "bitwidth" : 8
+          "name" : "hop_metadata_len",
+          "bitwidth" : 5
         },
         {
-          "name" : "ins_cnt",
-          "bitwidth" : 5
+          "name" : "remaining_hop_cnt",
+          "bitwidth" : 8
         },
         {
           "name" : "ins_mask0003",
@@ -1780,14 +1436,33 @@
             },
             {
               "type" : "hexstr",
-              "value" : "0x04"
+              "value" : "0x03"
             }
           ],
           "source_info" : {
             "filename" : "include/int_definitions.p4",
-            "line" : 29,
+            "line" : 30,
             "column" : 35,
-            "source_fragment" : "4; ..."
+            "source_fragment" : "3; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["intl4_shim", "dscp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["ipv4", "dscp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_source.p4",
+            "line" : 35,
+            "column" : 8,
+            "source_fragment" : "hdr.intl4_shim.dscp = hdr.ipv4.dscp"
           }
         },
         {
@@ -1800,7 +1475,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_source.p4",
-            "line" : 37,
+            "line" : 38,
             "column" : 8,
             "source_fragment" : "hdr.int_header.setValid()"
           }
@@ -1819,7 +1494,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_source.p4",
-            "line" : 38,
+            "line" : 39,
             "column" : 8,
             "source_fragment" : "hdr.int_header.ver = 0"
           }
@@ -1838,7 +1513,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_source.p4",
-            "line" : 39,
+            "line" : 40,
             "column" : 8,
             "source_fragment" : "hdr.int_header.rep = 0"
           }
@@ -1857,7 +1532,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_source.p4",
-            "line" : 40,
+            "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.int_header.c = 0"
           }
@@ -1876,7 +1551,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_source.p4",
-            "line" : 41,
+            "line" : 42,
             "column" : 8,
             "source_fragment" : "hdr.int_header.e = 0"
           }
@@ -1886,6 +1561,25 @@
           "parameters" : [
             {
               "type" : "field",
+              "value" : ["int_header", "m"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_source.p4",
+            "line" : 43,
+            "column" : 8,
+            "source_fragment" : "hdr.int_header.m = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
               "value" : ["int_header", "rsvd1"]
             },
             {
@@ -1895,7 +1589,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_source.p4",
-            "line" : 42,
+            "line" : 44,
             "column" : 8,
             "source_fragment" : "hdr.int_header.rsvd1 = 0"
           }
@@ -1905,45 +1599,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_header", "ins_cnt"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 1
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int_source.p4",
-            "line" : 43,
-            "column" : 8,
-            "source_fragment" : "hdr.int_header.ins_cnt = ins_cnt; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_header", "max_hop_cnt"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int_source.p4",
-            "line" : 44,
-            "column" : 8,
-            "source_fragment" : "hdr.int_header.max_hop_cnt = max_hop; ..."
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["int_header", "total_hop_cnt"]
+              "value" : ["int_header", "rsvd2"]
             },
             {
               "type" : "hexstr",
@@ -1954,7 +1610,45 @@
             "filename" : "include/int_source.p4",
             "line" : 45,
             "column" : 8,
-            "source_fragment" : "hdr.int_header.total_hop_cnt = 0"
+            "source_fragment" : "hdr.int_header.rsvd2 = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_header", "hop_metadata_len"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_source.p4",
+            "line" : 46,
+            "column" : 8,
+            "source_fragment" : "hdr.int_header.hop_metadata_len = hop_metadata_len; ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_header", "remaining_hop_cnt"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 1
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_source.p4",
+            "line" : 47,
+            "column" : 8,
+            "source_fragment" : "hdr.int_header.remaining_hop_cnt = remaining_hop_cnt; ..."
           }
         },
         {
@@ -1971,7 +1665,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_source.p4",
-            "line" : 46,
+            "line" : 48,
             "column" : 8,
             "source_fragment" : "hdr.int_header.instruction_mask_0003 = ins_mask0003; ..."
           }
@@ -1990,7 +1684,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_source.p4",
-            "line" : 47,
+            "line" : 49,
             "column" : 8,
             "source_fragment" : "hdr.int_header.instruction_mask_0407 = ins_mask0407; ..."
           }
@@ -2009,7 +1703,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_source.p4",
-            "line" : 48,
+            "line" : 50,
             "column" : 8,
             "source_fragment" : "hdr.int_header.instruction_mask_0811 = 0"
           }
@@ -2028,97 +1722,12 @@
           ],
           "source_info" : {
             "filename" : "include/int_source.p4",
-            "line" : 49,
+            "line" : 51,
             "column" : 8,
             "source_fragment" : "hdr.int_header.instruction_mask_1215 = 0"
           }
         },
         {
-          "op" : "add_header",
-          "parameters" : [
-            {
-              "type" : "header",
-              "value" : "intl4_tail"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int_source.p4",
-            "line" : 52,
-            "column" : 8,
-            "source_fragment" : "hdr.intl4_tail.setValid()"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["intl4_tail", "next_proto"]
-            },
-            {
-              "type" : "field",
-              "value" : ["ipv4", "protocol"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int_source.p4",
-            "line" : 53,
-            "column" : 8,
-            "source_fragment" : "hdr.intl4_tail.next_proto = hdr.ipv4.protocol"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["intl4_tail", "dest_port"]
-            },
-            {
-              "type" : "field",
-              "value" : ["scalars", "local_metadata_t.l4_dst_port"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int_source.p4",
-            "line" : 54,
-            "column" : 8,
-            "source_fragment" : "hdr.intl4_tail.dest_port = local_metadata.l4_dst_port"
-          }
-        },
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["intl4_tail", "dscp"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "field",
-                    "value" : ["ipv4", "dscp"]
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int_source.p4",
-            "line" : 55,
-            "column" : 8,
-            "source_fragment" : "hdr.intl4_tail.dscp = (bit<8>) hdr.ipv4.dscp"
-          }
-        },
-        {
           "op" : "assign",
           "parameters" : [
             {
@@ -2136,12 +1745,32 @@
                     "value" : {
                       "op" : "+",
                       "left" : {
-                        "type" : "field",
-                        "value" : ["ipv4", "len"]
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : "+",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["ipv4", "len"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x0008"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffff"
+                          }
+                        }
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x0010"
+                        "value" : "0x0004"
                       }
                     }
                   },
@@ -2155,9 +1784,9 @@
           ],
           "source_info" : {
             "filename" : "include/int_source.p4",
-            "line" : 58,
+            "line" : 54,
             "column" : 8,
-            "source_fragment" : "hdr.ipv4.len = hdr.ipv4.len + 16"
+            "source_fragment" : "hdr.ipv4.len = hdr.ipv4.len + INT_HEADER_SIZE + INT_SHIM_HEADER_SIZE"
           }
         },
         {
@@ -2178,12 +1807,32 @@
                     "value" : {
                       "op" : "+",
                       "left" : {
-                        "type" : "field",
-                        "value" : ["udp", "length_"]
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : "+",
+                              "left" : {
+                                "type" : "field",
+                                "value" : ["udp", "length_"]
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x0008"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffff"
+                          }
+                        }
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x0010"
+                        "value" : "0x0004"
                       }
                     }
                   },
@@ -2197,9 +1846,9 @@
           ],
           "source_info" : {
             "filename" : "include/int_source.p4",
-            "line" : 59,
+            "line" : 55,
             "column" : 8,
-            "source_fragment" : "hdr.udp.length_ = hdr.udp.length_ + 16"
+            "source_fragment" : "hdr.udp.length_ = hdr.udp.length_ + INT_HEADER_SIZE + INT_SHIM_HEADER_SIZE"
           }
         },
         {
@@ -2211,21 +1860,21 @@
             },
             {
               "type" : "hexstr",
-              "value" : "0x01"
+              "value" : "0x17"
             }
           ],
           "source_info" : {
             "filename" : "include/int_definitions.p4",
             "line" : 24,
             "column" : 24,
-            "source_fragment" : "0x1; ..."
+            "source_fragment" : "0x17; ..."
           }
         }
       ]
     },
     {
-      "name" : "egress.process_int_transit.int_update_total_hop_cnt",
-      "id" : 21,
+      "name" : "act",
+      "id" : 10,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2233,7 +1882,288 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["int_header", "total_hop_cnt"]
+              "value" : ["standard_metadata", "egress_spec"]
+            },
+            {
+              "type" : "field",
+              "value" : ["packet_out", "egress_port"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/packet_io.p4",
+            "line" : 27,
+            "column" : 12,
+            "source_fragment" : "standard_metadata.egress_spec = hdr.packet_out.egress_port"
+          }
+        },
+        {
+          "op" : "remove_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "packet_out"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/packet_io.p4",
+            "line" : 28,
+            "column" : 12,
+            "source_fragment" : "hdr.packet_out.setInvalid()"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_0",
+      "id" : 11,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_0"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/port_counters.p4",
+            "line" : 29,
+            "column" : 35,
+            "source_fragment" : "(bit<32>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "count",
+          "parameters" : [
+            {
+              "type" : "counter_array",
+              "value" : "ingress.port_counters_ingress.ingress_port_counter"
+            },
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_0"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/port_counters.p4",
+            "line" : 29,
+            "column" : 8,
+            "source_fragment" : "ingress_port_counter.count((bit<32>) standard_metadata.ingress_port)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_1",
+      "id" : 12,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "clone_ingress_pkt_to_egress",
+          "parameters" : [
+            {
+              "type" : "hexstr",
+              "value" : "0x000001f4"
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x1"
+            }
+          ],
+          "source_info" : {
+            "filename" : "int.p4",
+            "line" : 56,
+            "column" : 12,
+            "source_fragment" : "clone3(CloneType.I2E, REPORT_MIRROR_SESSION_ID, standard_metadata)"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "nop",
+      "id" : 13,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "nop",
+      "id" : 14,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "NoAction",
+      "id" : 15,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "NoAction",
+      "id" : 16,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "egress.process_int_transit.init_metadata",
+      "id" : 17,
+      "runtime_data" : [
+        {
+          "name" : "switch_id",
+          "bitwidth" : 32
+        }
+      ],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "transit"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 26,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.transit = true"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "switch_id"]
+            },
+            {
+              "type" : "runtime_data",
+              "value" : 0
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 27,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.switch_id = switch_id"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0003_i0",
+      "id" : 18,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0003_i1",
+      "id" : 19,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_occupancy"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 49,
+            "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" : 50,
+            "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" : 53,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
             },
             {
               "type" : "expression",
@@ -2247,7 +2177,7 @@
                       "op" : "+",
                       "left" : {
                         "type" : "field",
-                        "value" : ["int_header", "total_hop_cnt"]
+                        "value" : ["userMetadata.int_meta", "new_words"]
                       },
                       "right" : {
                         "type" : "hexstr",
@@ -2265,40 +2195,9 @@
           ],
           "source_info" : {
             "filename" : "include/int_transit.p4",
-            "line" : 30,
+            "line" : 87,
             "column" : 8,
-            "source_fragment" : "hdr.int_header.total_hop_cnt = hdr.int_header.total_hop_cnt + 1"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "egress.process_int_transit.int_transit",
-      "id" : 22,
-      "runtime_data" : [
-        {
-          "name" : "switch_id",
-          "bitwidth" : 32
-        }
-      ],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["userMetadata.int_meta", "switch_id"]
-            },
-            {
-              "type" : "runtime_data",
-              "value" : 0
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int_transit.p4",
-            "line" : 34,
-            "column" : 8,
-            "source_fragment" : "local_metadata.int_meta.switch_id = switch_id"
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 1"
           }
         },
         {
@@ -2306,7 +2205,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["userMetadata.int_meta", "insert_byte_cnt"]
+              "value" : ["userMetadata.int_meta", "new_bytes"]
             },
             {
               "type" : "expression",
@@ -2317,24 +2216,14 @@
                   "left" : {
                     "type" : "expression",
                     "value" : {
-                      "op" : "<<",
+                      "op" : "+",
                       "left" : {
-                        "type" : "expression",
-                        "value" : {
-                          "op" : "&",
-                          "left" : {
-                            "type" : "field",
-                            "value" : ["int_header", "ins_cnt"]
-                          },
-                          "right" : {
-                            "type" : "hexstr",
-                            "value" : "0xffff"
-                          }
-                        }
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
                       },
                       "right" : {
                         "type" : "hexstr",
-                        "value" : "0x2"
+                        "value" : "0x0004"
                       }
                     }
                   },
@@ -2348,95 +2237,16 @@
           ],
           "source_info" : {
             "filename" : "include/int_transit.p4",
-            "line" : 35,
+            "line" : 88,
             "column" : 8,
-            "source_fragment" : "local_metadata.int_meta.insert_byte_cnt = (bit<16>) hdr.int_header.ins_cnt << 2"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "egress.process_int_transit.int_set_header_0003_i0",
-      "id" : 23,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "egress.process_int_transit.int_set_header_0003_i1",
-      "id" : 24,
-      "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 = ..."
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 4"
           }
         }
       ]
     },
     {
       "name" : "egress.process_int_transit.int_set_header_0003_i2",
-      "id" : 25,
+      "id" : 20,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -2449,7 +2259,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_transit.p4",
-            "line" : 51,
+            "line" : 43,
             "column" : 8,
             "source_fragment" : "hdr.int_hop_latency.setValid()"
           }
@@ -2462,1943 +2272,6 @@
               "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 = ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "egress.process_int_transit.int_set_header_0003_i3",
-      "id" : 26,
-      "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 = ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "egress.process_int_transit.int_set_header_0003_i4",
-      "id" : 27,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "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" : "egress.process_int_transit.int_set_header_0003_i5",
-      "id" : 28,
-      "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_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" : "egress.process_int_transit.int_set_header_0003_i6",
-      "id" : 29,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "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" : "egress.process_int_transit.int_set_header_0003_i7",
-      "id" : 30,
-      "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 = ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "egress.process_int_transit.int_set_header_0003_i8",
-      "id" : 31,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "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_0003_i9",
-      "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_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_0003_i10",
-      "id" : 33,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "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_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_0003_i11",
-      "id" : 34,
-      "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_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_0003_i12",
-      "id" : 35,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "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_0003_i13",
-      "id" : 36,
-      "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_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_0003_i14",
-      "id" : 37,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "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_0003_i15",
-      "id" : 38,
-      "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" : 39,
-      "runtime_data" : [],
-      "primitives" : []
-    },
-    {
-      "name" : "egress.process_int_transit.int_set_header_0407_i1",
-      "id" : 40,
-      "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 = ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "egress.process_int_transit.int_set_header_0407_i2",
-      "id" : 41,
-      "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 = ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "egress.process_int_transit.int_set_header_0407_i3",
-      "id" : 42,
-      "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 = ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "egress.process_int_transit.int_set_header_0407_i4",
-      "id" : 43,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "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",
@@ -4407,1427 +2280,20 @@
                   "left" : {
                     "type" : "expression",
                     "value" : {
-                      "op" : "+",
+                      "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" : "egress.process_int_transit.int_set_header_0407_i5",
-      "id" : 44,
-      "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_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" : "egress.process_int_transit.int_set_header_0407_i6",
-      "id" : 45,
-      "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 = ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "egress.process_int_transit.int_set_header_0407_i7",
-      "id" : 46,
-      "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 = ..."
-          }
-        }
-      ]
-    },
-    {
-      "name" : "egress.process_int_transit.int_set_header_0407_i8",
-      "id" : 47,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "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_i9",
-      "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_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_i10",
-      "id" : 49,
-      "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_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_i11",
-      "id" : 50,
-      "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_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_i12",
-      "id" : 51,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "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_i13",
-      "id" : 52,
-      "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_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_i14",
-      "id" : 53,
-      "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" : 54,
-      "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" : 55,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["ipv4", "len"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["ipv4", "len"]
-                      },
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["userMetadata.int_meta", "insert_byte_cnt"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int_transit.p4",
-            "line" : 304,
-            "column" : 8,
-            "source_fragment" : "hdr.ipv4.len = hdr.ipv4.len + local_metadata.int_meta.insert_byte_cnt"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "egress.process_int_outer_encap.int_update_udp",
-      "id" : 56,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["udp", "length_"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["udp", "length_"]
-                      },
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["userMetadata.int_meta", "insert_byte_cnt"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "hexstr",
-                    "value" : "0xffff"
-                  }
-                }
-              }
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int_transit.p4",
-            "line" : 307,
-            "column" : 8,
-            "source_fragment" : "hdr.udp.length_ = hdr.udp.length_ + local_metadata.int_meta.insert_byte_cnt"
-          }
-        }
-      ]
-    },
-    {
-      "name" : "egress.process_int_outer_encap.int_update_shim",
-      "id" : 57,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["intl4_shim", "len"]
-            },
-            {
-              "type" : "expression",
-              "value" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "&",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "+",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["intl4_shim", "len"]
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "egress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
                       },
                       "right" : {
                         "type" : "expression",
@@ -5835,11 +2301,11 @@
                           "op" : "&",
                           "left" : {
                             "type" : "field",
-                            "value" : ["int_header", "ins_cnt"]
+                            "value" : ["standard_metadata", "ingress_global_timestamp"]
                           },
                           "right" : {
                             "type" : "hexstr",
-                            "value" : "0xff"
+                            "value" : "0xffffffff"
                           }
                         }
                       }
@@ -5847,6 +2313,48 @@
                   },
                   "right" : {
                     "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) standard_metadata.egress_global_timestamp - (bit<32>) standard_metadata.ingress_global_timestamp"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
                     "value" : "0xff"
                   }
                 }
@@ -5855,16 +2363,6173 @@
           ],
           "source_info" : {
             "filename" : "include/int_transit.p4",
-            "line" : 310,
+            "line" : 87,
             "column" : 8,
-            "source_fragment" : "hdr.intl4_shim.len = hdr.intl4_shim.len + (bit<8>)hdr.int_header.ins_cnt"
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 1"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0004"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 88,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 4"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0003_i3",
+      "id" : 21,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_occupancy"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 49,
+            "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" : 50,
+            "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" : 53,
+            "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" : 43,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_hop_latency", "hop_latency"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "-",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "egress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "ingress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) standard_metadata.egress_global_timestamp - (bit<32>) standard_metadata.ingress_global_timestamp"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 93,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 2"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 94,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 8"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0003_i4",
+      "id" : 22,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level1_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 37,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 38,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.ingress_port_id = (bit<16>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 39,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.egress_port_id = (bit<16>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 87,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 1"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0004"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 88,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 4"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0003_i5",
+      "id" : 23,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_occupancy"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 49,
+            "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" : 50,
+            "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" : 53,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level1_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 37,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 38,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.ingress_port_id = (bit<16>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 39,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.egress_port_id = (bit<16>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 93,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 2"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 94,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 8"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0003_i6",
+      "id" : 24,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_hop_latency"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 43,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_hop_latency", "hop_latency"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "-",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "egress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "ingress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) standard_metadata.egress_global_timestamp - (bit<32>) standard_metadata.ingress_global_timestamp"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level1_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 37,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 38,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.ingress_port_id = (bit<16>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 39,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.egress_port_id = (bit<16>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 93,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 2"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 94,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 8"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0003_i7",
+      "id" : 25,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_occupancy"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 49,
+            "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" : 50,
+            "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" : 53,
+            "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" : 43,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_hop_latency", "hop_latency"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "-",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "egress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "ingress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) standard_metadata.egress_global_timestamp - (bit<32>) standard_metadata.ingress_global_timestamp"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level1_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 37,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 38,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.ingress_port_id = (bit<16>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 39,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.egress_port_id = (bit<16>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 99,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 3"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 100,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 12"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0003_i8",
+      "id" : 26,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_switch_id"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 32,
+            "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" : 33,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 87,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 1"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0004"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 88,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 4"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0003_i9",
+      "id" : 27,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_occupancy"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 49,
+            "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" : 50,
+            "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" : 53,
+            "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",
+            "line" : 32,
+            "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" : 33,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 93,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 2"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 94,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 8"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0003_i10",
+      "id" : 28,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_hop_latency"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 43,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_hop_latency", "hop_latency"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "-",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "egress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "ingress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) standard_metadata.egress_global_timestamp - (bit<32>) standard_metadata.ingress_global_timestamp"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_switch_id"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 32,
+            "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" : 33,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 93,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 2"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 94,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 8"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0003_i11",
+      "id" : 29,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_occupancy"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 49,
+            "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" : 50,
+            "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" : 53,
+            "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" : 43,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_hop_latency", "hop_latency"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "-",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "egress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "ingress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) standard_metadata.egress_global_timestamp - (bit<32>) standard_metadata.ingress_global_timestamp"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_switch_id"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 32,
+            "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" : 33,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 99,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 3"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 100,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 12"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0003_i12",
+      "id" : 30,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level1_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 37,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 38,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.ingress_port_id = (bit<16>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 39,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.egress_port_id = (bit<16>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_switch_id"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 32,
+            "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" : 33,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 93,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 2"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 94,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 8"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0003_i13",
+      "id" : 31,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_occupancy"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 49,
+            "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" : 50,
+            "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" : 53,
+            "column" : 8,
+            "source_fragment" : "hdr.int_q_occupancy.q_occupancy = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level1_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 37,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 38,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.ingress_port_id = (bit<16>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 39,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.egress_port_id = (bit<16>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_switch_id"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 32,
+            "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" : 33,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 99,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 3"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 100,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 12"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0003_i14",
+      "id" : 32,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_hop_latency"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 43,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_hop_latency", "hop_latency"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "-",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "egress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "ingress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) standard_metadata.egress_global_timestamp - (bit<32>) standard_metadata.ingress_global_timestamp"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level1_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 37,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 38,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.ingress_port_id = (bit<16>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 39,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.egress_port_id = (bit<16>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_switch_id"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 32,
+            "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" : 33,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 99,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 3"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 100,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 12"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0003_i15",
+      "id" : 33,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_q_occupancy"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 49,
+            "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" : 50,
+            "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" : 53,
+            "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" : 43,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_hop_latency", "hop_latency"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "-",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "egress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["standard_metadata", "ingress_global_timestamp"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.int_hop_latency.hop_latency = (bit<32>) standard_metadata.egress_global_timestamp - (bit<32>) standard_metadata.ingress_global_timestamp"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level1_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 37,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 38,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.ingress_port_id = (bit<16>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level1_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" : 39,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level1_port_ids.egress_port_id = (bit<16>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_switch_id"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 32,
+            "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" : 33,
+            "column" : 8,
+            "source_fragment" : "hdr.int_switch_id.switch_id = local_metadata.int_meta.switch_id"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x04"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 105,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 4"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0010"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 106,
+            "column" : 7,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 16"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i0",
+      "id" : 34,
+      "runtime_data" : [],
+      "primitives" : []
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i1",
+      "id" : 35,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tx_util"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 78,
+            "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" : 79,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 87,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 1"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0004"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 88,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 4"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i2",
+      "id" : 36,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level2_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 70,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 72,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.ingress_port_id = (bit<32>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 73,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.egress_port_id = (bit<32>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 93,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 2"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 94,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 8"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i3",
+      "id" : 37,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tx_util"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 78,
+            "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" : 79,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level2_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 70,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 72,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.ingress_port_id = (bit<32>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 73,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.egress_port_id = (bit<32>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 99,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 3"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 100,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 12"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i4",
+      "id" : 38,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 64,
+            "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" : "field",
+                    "value" : ["standard_metadata", "egress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 65,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 87,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 1"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0004"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 88,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 4"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i5",
+      "id" : 39,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tx_util"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 78,
+            "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" : 79,
+            "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",
+            "line" : 64,
+            "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" : "field",
+                    "value" : ["standard_metadata", "egress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 65,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 93,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 2"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 94,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 8"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i6",
+      "id" : 40,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level2_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 70,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 72,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.ingress_port_id = (bit<32>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 73,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.egress_port_id = (bit<32>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 64,
+            "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" : "field",
+                    "value" : ["standard_metadata", "egress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 65,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 99,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 3"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 100,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 12"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i7",
+      "id" : 41,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tx_util"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 78,
+            "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" : 79,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level2_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 70,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 72,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.ingress_port_id = (bit<32>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 73,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.egress_port_id = (bit<32>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 64,
+            "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" : "field",
+                    "value" : ["standard_metadata", "egress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 65,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tstamp.egress_tstamp = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x04"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 105,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 4"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0010"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 106,
+            "column" : 7,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 16"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i8",
+      "id" : 42,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_ingress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 58,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 59,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x01"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 87,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 1"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0004"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 88,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 4"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i9",
+      "id" : 43,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tx_util"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 78,
+            "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" : 79,
+            "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",
+            "line" : 58,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 59,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 93,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 2"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 94,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 8"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i10",
+      "id" : 44,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level2_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 70,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 72,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.ingress_port_id = (bit<32>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 73,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.egress_port_id = (bit<32>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_ingress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 58,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 59,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 99,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 3"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 100,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 12"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i11",
+      "id" : 45,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tx_util"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 78,
+            "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" : 79,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level2_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 70,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 72,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.ingress_port_id = (bit<32>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 73,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.egress_port_id = (bit<32>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_ingress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 58,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 59,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x04"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 105,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 4"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0010"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 106,
+            "column" : 7,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 16"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i12",
+      "id" : 46,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 64,
+            "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" : "field",
+                    "value" : ["standard_metadata", "egress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 65,
+            "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" : 58,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 59,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x02"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 93,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 2"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0008"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 94,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 8"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i13",
+      "id" : 47,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tx_util"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 78,
+            "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" : 79,
+            "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",
+            "line" : 64,
+            "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" : "field",
+                    "value" : ["standard_metadata", "egress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 65,
+            "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" : 58,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 59,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x03"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 99,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 3"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x000c"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 100,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 12"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i14",
+      "id" : 48,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level2_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 70,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 72,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.ingress_port_id = (bit<32>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 73,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.egress_port_id = (bit<32>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 64,
+            "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" : "field",
+                    "value" : ["standard_metadata", "egress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 65,
+            "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" : 58,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 59,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x04"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 105,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 4"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0010"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 106,
+            "column" : 7,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 16"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_transit.int_set_header_0407_i15",
+      "id" : 49,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tx_util"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 78,
+            "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" : 79,
+            "column" : 8,
+            "source_fragment" : "hdr.int_egress_tx_util.egress_port_tx_util = ..."
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_level2_port_ids"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 70,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "ingress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 72,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.ingress_port_id = (bit<32>) standard_metadata.ingress_port"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_level2_port_ids", "egress_port_id"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "egress_port"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 73,
+            "column" : 8,
+            "source_fragment" : "hdr.int_level2_port_ids.egress_port_id = (bit<32>) standard_metadata.egress_port"
+          }
+        },
+        {
+          "op" : "add_header",
+          "parameters" : [
+            {
+              "type" : "header",
+              "value" : "int_egress_tstamp"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 64,
+            "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" : "field",
+                    "value" : ["standard_metadata", "egress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 65,
+            "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" : 58,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.setValid()"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_ingress_tstamp", "ingress_tstamp"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "ingress_global_timestamp"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffffffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 59,
+            "column" : 8,
+            "source_fragment" : "hdr.int_ingress_tstamp.ingress_tstamp = ..."
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_words"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x05"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 111,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_words = local_metadata.int_meta.new_words + 5"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "new_bytes"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0014"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 112,
+            "column" : 8,
+            "source_fragment" : "local_metadata.int_meta.new_bytes = local_metadata.int_meta.new_bytes + 20"
           }
         }
       ]
     },
     {
       "name" : "egress.process_int_report.do_report_encapsulation",
-      "id" : 58,
+      "id" : 50,
       "runtime_data" : [
         {
           "name" : "src_mac",
@@ -5898,7 +8563,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 52,
+            "line" : 55,
             "column" : 8,
             "source_fragment" : "hdr.report_ethernet.setValid()"
           }
@@ -5917,7 +8582,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 53,
+            "line" : 56,
             "column" : 8,
             "source_fragment" : "hdr.report_ethernet.dst_addr = mon_mac"
           }
@@ -5936,7 +8601,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 54,
+            "line" : 57,
             "column" : 8,
             "source_fragment" : "hdr.report_ethernet.src_addr = src_mac"
           }
@@ -5955,7 +8620,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 55,
+            "line" : 58,
             "column" : 8,
             "source_fragment" : "hdr.report_ethernet.ether_type = 0x0800"
           }
@@ -5970,7 +8635,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 58,
+            "line" : 61,
             "column" : 8,
             "source_fragment" : "hdr.report_ipv4.setValid()"
           }
@@ -5989,7 +8654,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 59,
+            "line" : 62,
             "column" : 8,
             "source_fragment" : "hdr.report_ipv4.version = 4w4"
           }
@@ -6008,7 +8673,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 60,
+            "line" : 63,
             "column" : 8,
             "source_fragment" : "hdr.report_ipv4.ihl = 4w5"
           }
@@ -6027,7 +8692,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 61,
+            "line" : 64,
             "column" : 8,
             "source_fragment" : "hdr.report_ipv4.dscp = 6w0"
           }
@@ -6046,7 +8711,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 62,
+            "line" : 65,
             "column" : 8,
             "source_fragment" : "hdr.report_ipv4.ecn = 2w0"
           }
@@ -6070,11 +8735,41 @@
                       "op" : "+",
                       "left" : {
                         "type" : "hexstr",
-                        "value" : "0x0036"
+                        "value" : "0x0056"
                       },
                       "right" : {
-                        "type" : "field",
-                        "value" : ["ipv4", "len"]
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : "<<",
+                              "left" : {
+                                "type" : "expression",
+                                "value" : {
+                                  "op" : "&",
+                                  "left" : {
+                                    "type" : "field",
+                                    "value" : ["intl4_shim", "len"]
+                                  },
+                                  "right" : {
+                                    "type" : "hexstr",
+                                    "value" : "0xffff"
+                                  }
+                                }
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x2"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffff"
+                          }
+                        }
                       }
                     }
                   },
@@ -6088,9 +8783,9 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 64,
+            "line" : 67,
             "column" : 8,
-            "source_fragment" : "hdr.report_ipv4.len = (bit<16>) IPV4_MIN_HEAD_LEN + (bit<16>) UDP_HEADER_LEN + ..."
+            "source_fragment" : "hdr.report_ipv4.len = (bit<16>) IPV4_MIN_HEAD_LEN + (bit<16>) UDP_HEADER_LEN + (bit<16>) REPORT_FIXED_HEADER_LEN + ..."
           }
         },
         {
@@ -6107,7 +8802,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 67,
+            "line" : 70,
             "column" : 8,
             "source_fragment" : "hdr.report_ipv4.identification = 0"
           }
@@ -6126,7 +8821,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 68,
+            "line" : 71,
             "column" : 8,
             "source_fragment" : "hdr.report_ipv4.flags = 0"
           }
@@ -6145,7 +8840,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 69,
+            "line" : 72,
             "column" : 8,
             "source_fragment" : "hdr.report_ipv4.frag_offset = 0"
           }
@@ -6163,8 +8858,8 @@
             }
           ],
           "source_info" : {
-            "filename" : "int.p4",
-            "line" : 23,
+            "filename" : "include/int_definitions.p4",
+            "line" : 37,
             "column" : 30,
             "source_fragment" : "64; ..."
           }
@@ -6183,7 +8878,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 71,
+            "line" : 74,
             "column" : 8,
             "source_fragment" : "hdr.report_ipv4.protocol = 8w17"
           }
@@ -6202,7 +8897,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 72,
+            "line" : 75,
             "column" : 8,
             "source_fragment" : "hdr.report_ipv4.src_addr = src_ip"
           }
@@ -6221,7 +8916,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 73,
+            "line" : 76,
             "column" : 8,
             "source_fragment" : "hdr.report_ipv4.dst_addr = mon_ip"
           }
@@ -6236,7 +8931,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 76,
+            "line" : 79,
             "column" : 8,
             "source_fragment" : "hdr.report_udp.setValid()"
           }
@@ -6255,7 +8950,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 77,
+            "line" : 80,
             "column" : 8,
             "source_fragment" : "hdr.report_udp.src_port = 0"
           }
@@ -6274,7 +8969,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 78,
+            "line" : 81,
             "column" : 8,
             "source_fragment" : "hdr.report_udp.dst_port = mon_port"
           }
@@ -6298,11 +8993,41 @@
                       "op" : "+",
                       "left" : {
                         "type" : "hexstr",
-                        "value" : "0x0022"
+                        "value" : "0x0042"
                       },
                       "right" : {
-                        "type" : "field",
-                        "value" : ["ipv4", "len"]
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "expression",
+                            "value" : {
+                              "op" : "<<",
+                              "left" : {
+                                "type" : "expression",
+                                "value" : {
+                                  "op" : "&",
+                                  "left" : {
+                                    "type" : "field",
+                                    "value" : ["intl4_shim", "len"]
+                                  },
+                                  "right" : {
+                                    "type" : "hexstr",
+                                    "value" : "0xffff"
+                                  }
+                                }
+                              },
+                              "right" : {
+                                "type" : "hexstr",
+                                "value" : "0x2"
+                              }
+                            }
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffff"
+                          }
+                        }
                       }
                     }
                   },
@@ -6316,7 +9041,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 79,
+            "line" : 82,
             "column" : 8,
             "source_fragment" : "hdr.report_udp.length_ = (bit<16>) UDP_HEADER_LEN + (bit<16>) REPORT_FIXED_HEADER_LEN + ..."
           }
@@ -6345,7 +9070,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 82,
+            "line" : 86,
             "column" : 8,
             "source_fragment" : "local_metadata.compute_checksum = true"
           }
@@ -6374,14 +9099,33 @@
             },
             {
               "type" : "hexstr",
-              "value" : "0x00"
+              "value" : "0x01"
             }
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
             "line" : 33,
             "column" : 8,
-            "source_fragment" : "hdr.report_fixed_header.ver = 0"
+            "source_fragment" : "hdr.report_fixed_header.ver = 1"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["report_fixed_header", "len"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x04"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_report.p4",
+            "line" : 34,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.len = 4"
           }
         },
         {
@@ -6408,6 +9152,25 @@
           "parameters" : [
             {
               "type" : "field",
+              "value" : ["report_fixed_header", "rep_md_bits"]
+            },
+            {
+              "type" : "hexstr",
+              "value" : "0x00"
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_report.p4",
+            "line" : 37,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.rep_md_bits = 0"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
               "value" : ["report_fixed_header", "d"]
             },
             {
@@ -6417,7 +9180,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 36,
+            "line" : 38,
             "column" : 8,
             "source_fragment" : "hdr.report_fixed_header.d = 0"
           }
@@ -6436,7 +9199,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 37,
+            "line" : 39,
             "column" : 8,
             "source_fragment" : "hdr.report_fixed_header.q = 0"
           }
@@ -6455,7 +9218,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 38,
+            "line" : 40,
             "column" : 8,
             "source_fragment" : "hdr.report_fixed_header.f = 1"
           }
@@ -6469,12 +9232,12 @@
             },
             {
               "type" : "hexstr",
-              "value" : "0x0000"
+              "value" : "0x00"
             }
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 39,
+            "line" : 41,
             "column" : 8,
             "source_fragment" : "hdr.report_fixed_header.rsvd = 0"
           }
@@ -6493,7 +9256,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_definitions.p4",
-            "line" : 33,
+            "line" : 36,
             "column" : 21,
             "source_fragment" : "1; ..."
           }
@@ -6503,6 +9266,25 @@
           "parameters" : [
             {
               "type" : "field",
+              "value" : ["report_fixed_header", "sw_id"]
+            },
+            {
+              "type" : "field",
+              "value" : ["userMetadata.int_meta", "switch_id"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_report.p4",
+            "line" : 44,
+            "column" : 8,
+            "source_fragment" : "hdr.report_fixed_header.sw_id = local_metadata.int_meta.switch_id"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
               "value" : ["report_fixed_header", "seq_no"]
             },
             {
@@ -6512,7 +9294,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 43,
+            "line" : 46,
             "column" : 8,
             "source_fragment" : "hdr.report_fixed_header.seq_no = 0"
           }
@@ -6531,43 +9313,17 @@
           ],
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 45,
+            "line" : 48,
             "column" : 8,
             "source_fragment" : "hdr.report_fixed_header.ingress_tstamp = (bit<32>) standard_metadata.enq_timestamp"
           }
-        }
-      ]
-    },
-    {
-      "name" : "egress.process_int_sink.restore_header",
-      "id" : 59,
-      "runtime_data" : [],
-      "primitives" : [
-        {
-          "op" : "assign",
-          "parameters" : [
-            {
-              "type" : "field",
-              "value" : ["udp", "dst_port"]
-            },
-            {
-              "type" : "field",
-              "value" : ["intl4_tail", "dest_port"]
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int_sink.p4",
-            "line" : 26,
-            "column" : 8,
-            "source_fragment" : "hdr.udp.dst_port = hdr.intl4_tail.dest_port"
-          }
         },
         {
           "op" : "assign",
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["ipv4", "dscp"]
+              "value" : ["scalars", "tmp_1"]
             },
             {
               "type" : "expression",
@@ -6576,29 +9332,64 @@
                 "value" : {
                   "op" : "&",
                   "left" : {
-                    "type" : "field",
-                    "value" : ["intl4_tail", "dscp"]
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "expression",
+                        "value" : {
+                          "op" : "&",
+                          "left" : {
+                            "type" : "field",
+                            "value" : ["report_ipv4", "len"]
+                          },
+                          "right" : {
+                            "type" : "hexstr",
+                            "value" : "0xffffffff"
+                          }
+                        }
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0x0000000e"
+                      }
+                    }
                   },
                   "right" : {
                     "type" : "hexstr",
-                    "value" : "0x3f"
+                    "value" : "0xffffffff"
                   }
                 }
               }
             }
           ],
           "source_info" : {
-            "filename" : "include/int_sink.p4",
-            "line" : 27,
+            "filename" : "include/int_report.p4",
+            "line" : 89,
+            "column" : 17,
+            "source_fragment" : "(bit<32>)hdr.report_ipv4.len + (bit<32>) ETH_HEADER_LEN"
+          }
+        },
+        {
+          "op" : "truncate",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "tmp_1"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_report.p4",
+            "line" : 89,
             "column" : 8,
-            "source_fragment" : "hdr.ipv4.dscp = (bit<6>)hdr.intl4_tail.dscp"
+            "source_fragment" : "truncate((bit<32>)hdr.report_ipv4.len + (bit<32>) ETH_HEADER_LEN)"
           }
         }
       ]
     },
     {
-      "name" : "egress.process_int_sink.int_sink",
-      "id" : 60,
+      "name" : "egress.process_int_sink.restore_header",
+      "id" : 51,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -6606,6 +9397,25 @@
           "parameters" : [
             {
               "type" : "field",
+              "value" : ["ipv4", "dscp"]
+            },
+            {
+              "type" : "field",
+              "value" : ["intl4_shim", "dscp"]
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_sink.p4",
+            "line" : 27,
+            "column" : 8,
+            "source_fragment" : "hdr.ipv4.dscp = hdr.intl4_shim.dscp"
+          }
+        },
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
               "value" : ["ipv4", "len"]
             },
             {
@@ -6629,54 +9439,24 @@
                           "left" : {
                             "type" : "expression",
                             "value" : {
-                              "op" : "&",
+                              "op" : "<<",
                               "left" : {
                                 "type" : "expression",
                                 "value" : {
-                                  "op" : "<<",
+                                  "op" : "&",
                                   "left" : {
-                                    "type" : "expression",
-                                    "value" : {
-                                      "op" : "&",
-                                      "left" : {
-                                        "type" : "expression",
-                                        "value" : {
-                                          "op" : "-",
-                                          "left" : {
-                                            "type" : "field",
-                                            "value" : ["intl4_shim", "len"]
-                                          },
-                                          "right" : {
-                                            "type" : "expression",
-                                            "value" : {
-                                              "op" : "&",
-                                              "left" : {
-                                                "type" : "field",
-                                                "value" : ["int_header", "ins_cnt"]
-                                              },
-                                              "right" : {
-                                                "type" : "hexstr",
-                                                "value" : "0xff"
-                                              }
-                                            }
-                                          }
-                                        }
-                                      },
-                                      "right" : {
-                                        "type" : "hexstr",
-                                        "value" : "0xff"
-                                      }
-                                    }
+                                    "type" : "field",
+                                    "value" : ["intl4_shim", "len"]
                                   },
                                   "right" : {
                                     "type" : "hexstr",
-                                    "value" : "0x2"
+                                    "value" : "0xffff"
                                   }
                                 }
                               },
                               "right" : {
                                 "type" : "hexstr",
-                                "value" : "0xff"
+                                "value" : "0x2"
                               }
                             }
                           },
@@ -6698,9 +9478,9 @@
           ],
           "source_info" : {
             "filename" : "include/int_sink.p4",
-            "line" : 32,
+            "line" : 30,
             "column" : 8,
-            "source_fragment" : "hdr.ipv4.len = hdr.ipv4.len - (bit<16>)((hdr.intl4_shim.len - (bit<8>)hdr.int_header.ins_cnt) << 2)"
+            "source_fragment" : "hdr.ipv4.len = hdr.ipv4.len - len_bytes"
           }
         },
         {
@@ -6731,54 +9511,24 @@
                           "left" : {
                             "type" : "expression",
                             "value" : {
-                              "op" : "&",
+                              "op" : "<<",
                               "left" : {
                                 "type" : "expression",
                                 "value" : {
-                                  "op" : "<<",
+                                  "op" : "&",
                                   "left" : {
-                                    "type" : "expression",
-                                    "value" : {
-                                      "op" : "&",
-                                      "left" : {
-                                        "type" : "expression",
-                                        "value" : {
-                                          "op" : "-",
-                                          "left" : {
-                                            "type" : "field",
-                                            "value" : ["intl4_shim", "len"]
-                                          },
-                                          "right" : {
-                                            "type" : "expression",
-                                            "value" : {
-                                              "op" : "&",
-                                              "left" : {
-                                                "type" : "field",
-                                                "value" : ["int_header", "ins_cnt"]
-                                              },
-                                              "right" : {
-                                                "type" : "hexstr",
-                                                "value" : "0xff"
-                                              }
-                                            }
-                                          }
-                                        }
-                                      },
-                                      "right" : {
-                                        "type" : "hexstr",
-                                        "value" : "0xff"
-                                      }
-                                    }
+                                    "type" : "field",
+                                    "value" : ["intl4_shim", "len"]
                                   },
                                   "right" : {
                                     "type" : "hexstr",
-                                    "value" : "0x2"
+                                    "value" : "0xffff"
                                   }
                                 }
                               },
                               "right" : {
                                 "type" : "hexstr",
-                                "value" : "0xff"
+                                "value" : "0x2"
                               }
                             }
                           },
@@ -6800,11 +9550,18 @@
           ],
           "source_info" : {
             "filename" : "include/int_sink.p4",
-            "line" : 33,
+            "line" : 31,
             "column" : 8,
-            "source_fragment" : "hdr.udp.length_ = hdr.udp.length_ - (bit<16>)((hdr.intl4_shim.len - (bit<8>)hdr.int_header.ins_cnt) << 2)"
+            "source_fragment" : "hdr.udp.length_ = hdr.udp.length_ - len_bytes"
           }
-        },
+        }
+      ]
+    },
+    {
+      "name" : "egress.process_int_sink.int_sink",
+      "id" : 52,
+      "runtime_data" : [],
+      "primitives" : [
         {
           "op" : "remove_header",
           "parameters" : [
@@ -6815,7 +9572,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_sink.p4",
-            "line" : 35,
+            "line" : 37,
             "column" : 8,
             "source_fragment" : "hdr.int_header.setInvalid()"
           }
@@ -6830,7 +9587,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_sink.p4",
-            "line" : 36,
+            "line" : 38,
             "column" : 8,
             "source_fragment" : "hdr.int_data.setInvalid()"
           }
@@ -6845,7 +9602,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_sink.p4",
-            "line" : 37,
+            "line" : 39,
             "column" : 8,
             "source_fragment" : "hdr.intl4_shim.setInvalid()"
           }
@@ -6855,27 +9612,12 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "intl4_tail"
-            }
-          ],
-          "source_info" : {
-            "filename" : "include/int_sink.p4",
-            "line" : 38,
-            "column" : 8,
-            "source_fragment" : "hdr.intl4_tail.setInvalid()"
-          }
-        },
-        {
-          "op" : "remove_header",
-          "parameters" : [
-            {
-              "type" : "header",
               "value" : "int_switch_id"
             }
           ],
           "source_info" : {
             "filename" : "include/int_sink.p4",
-            "line" : 39,
+            "line" : 40,
             "column" : 8,
             "source_fragment" : "hdr.int_switch_id.setInvalid()"
           }
@@ -6885,14 +9627,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_port_ids"
+              "value" : "int_level1_port_ids"
             }
           ],
           "source_info" : {
             "filename" : "include/int_sink.p4",
-            "line" : 40,
+            "line" : 41,
             "column" : 8,
-            "source_fragment" : "hdr.int_port_ids.setInvalid()"
+            "source_fragment" : "hdr.int_level1_port_ids.setInvalid()"
           }
         },
         {
@@ -6905,7 +9647,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_sink.p4",
-            "line" : 41,
+            "line" : 42,
             "column" : 8,
             "source_fragment" : "hdr.int_hop_latency.setInvalid()"
           }
@@ -6920,7 +9662,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_sink.p4",
-            "line" : 42,
+            "line" : 43,
             "column" : 8,
             "source_fragment" : "hdr.int_q_occupancy.setInvalid()"
           }
@@ -6935,7 +9677,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_sink.p4",
-            "line" : 43,
+            "line" : 44,
             "column" : 8,
             "source_fragment" : "hdr.int_ingress_tstamp.setInvalid()"
           }
@@ -6950,7 +9692,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_sink.p4",
-            "line" : 44,
+            "line" : 45,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tstamp.setInvalid()"
           }
@@ -6960,14 +9702,14 @@
           "parameters" : [
             {
               "type" : "header",
-              "value" : "int_q_congestion"
+              "value" : "int_level2_port_ids"
             }
           ],
           "source_info" : {
             "filename" : "include/int_sink.p4",
-            "line" : 45,
+            "line" : 46,
             "column" : 8,
-            "source_fragment" : "hdr.int_q_congestion.setInvalid()"
+            "source_fragment" : "hdr.int_level2_port_ids.setInvalid()"
           }
         },
         {
@@ -6980,7 +9722,7 @@
           ],
           "source_info" : {
             "filename" : "include/int_sink.p4",
-            "line" : 46,
+            "line" : 47,
             "column" : 8,
             "source_fragment" : "hdr.int_egress_tx_util.setInvalid()"
           }
@@ -6989,7 +9731,269 @@
     },
     {
       "name" : "act_2",
-      "id" : 61,
+      "id" : 53,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "process_int_transit_hasReturned_0"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : false
+                  }
+                }
+              }
+            }
+          ]
+        }
+      ]
+    },
+    {
+      "name" : "act_3",
+      "id" : 54,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["scalars", "process_int_transit_hasReturned_0"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "b2d",
+                  "left" : null,
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 416,
+            "column" : 12,
+            "source_fragment" : "return"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_4",
+      "id" : 55,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["ipv4", "len"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["ipv4", "len"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 426,
+            "column" : 12,
+            "source_fragment" : "hdr.ipv4.len = hdr.ipv4.len + local_metadata.int_meta.new_bytes"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_5",
+      "id" : 56,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["int_header", "remaining_hop_cnt"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["int_header", "remaining_hop_cnt"]
+                      },
+                      "right" : {
+                        "type" : "hexstr",
+                        "value" : "0xff"
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 422,
+            "column" : 8,
+            "source_fragment" : "hdr.int_header.remaining_hop_cnt = hdr.int_header.remaining_hop_cnt - 1"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_6",
+      "id" : 57,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["udp", "length_"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["udp", "length_"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_bytes"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xffff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 429,
+            "column" : 12,
+            "source_fragment" : "hdr.udp.length_ = hdr.udp.length_ + local_metadata.int_meta.new_bytes"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_7",
+      "id" : 58,
+      "runtime_data" : [],
+      "primitives" : [
+        {
+          "op" : "assign",
+          "parameters" : [
+            {
+              "type" : "field",
+              "value" : ["intl4_shim", "len"]
+            },
+            {
+              "type" : "expression",
+              "value" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "&",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "+",
+                      "left" : {
+                        "type" : "field",
+                        "value" : ["intl4_shim", "len"]
+                      },
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "new_words"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0xff"
+                  }
+                }
+              }
+            }
+          ],
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 432,
+            "column" : 12,
+            "source_fragment" : "hdr.intl4_shim.len = hdr.intl4_shim.len + local_metadata.int_meta.new_words"
+          }
+        }
+      ]
+    },
+    {
+      "name" : "act_8",
+      "id" : 59,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7029,8 +10033,8 @@
       ]
     },
     {
-      "name" : "act_3",
-      "id" : 62,
+      "name" : "act_9",
+      "id" : 60,
       "runtime_data" : [],
       "primitives" : [
         {
@@ -7038,7 +10042,7 @@
           "parameters" : [
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_3"]
+              "value" : ["scalars", "tmp_2"]
             },
             {
               "type" : "expression",
@@ -7074,7 +10078,7 @@
             },
             {
               "type" : "field",
-              "value" : ["scalars", "tmp_3"]
+              "value" : ["scalars", "tmp_2"]
             }
           ],
           "source_info" : {
@@ -7109,14 +10113,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [9],
+          "action_ids" : [11],
           "actions" : ["act_0"],
           "base_default_next" : "node_3",
           "next_tables" : {
             "act_0" : "node_3"
           },
           "default_entry" : {
-            "action_id" : 9,
+            "action_id" : 11,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -7132,14 +10136,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [8],
+          "action_ids" : [10],
           "actions" : ["act"],
           "base_default_next" : null,
           "next_tables" : {
             "act" : null
           },
           "default_entry" : {
-            "action_id" : 8,
+            "action_id" : 10,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -7216,14 +10220,14 @@
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [5, 4, 3, 0],
+          "action_ids" : [6, 5, 4, 0],
           "actions" : ["ingress.table0_control.set_egress_port", "ingress.table0_control.send_to_cpu", "ingress.table0_control.set_next_hop_id", "_drop"],
-          "base_default_next" : "ingress.process_set_source_sink.tb_set_source",
+          "base_default_next" : "ingress.process_int_source_sink.tb_set_source",
           "next_tables" : {
-            "ingress.table0_control.set_egress_port" : "ingress.process_set_source_sink.tb_set_source",
-            "ingress.table0_control.send_to_cpu" : "ingress.process_set_source_sink.tb_set_source",
-            "ingress.table0_control.set_next_hop_id" : "ingress.process_set_source_sink.tb_set_source",
-            "_drop" : "ingress.process_set_source_sink.tb_set_source"
+            "ingress.table0_control.set_egress_port" : "ingress.process_int_source_sink.tb_set_source",
+            "ingress.table0_control.send_to_cpu" : "ingress.process_int_source_sink.tb_set_source",
+            "ingress.table0_control.set_next_hop_id" : "ingress.process_int_source_sink.tb_set_source",
+            "_drop" : "ingress.process_int_source_sink.tb_set_source"
           },
           "default_entry" : {
             "action_id" : 0,
@@ -7233,7 +10237,7 @@
           }
         },
         {
-          "name" : "ingress.process_set_source_sink.tb_set_source",
+          "name" : "ingress.process_int_source_sink.tb_set_source",
           "id" : 3,
           "source_info" : {
             "filename" : "include/int_source.p4",
@@ -7251,30 +10255,30 @@
           ],
           "match_type" : "exact",
           "type" : "simple",
-          "max_size" : 256,
+          "max_size" : 511,
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [6, 1],
-          "actions" : ["ingress.process_set_source_sink.int_set_source", "NoAction"],
-          "base_default_next" : "ingress.process_set_source_sink.tb_set_sink",
+          "action_ids" : [7, 1],
+          "actions" : ["ingress.process_int_source_sink.int_set_source", "nop"],
+          "base_default_next" : "ingress.process_int_source_sink.tb_set_sink",
           "next_tables" : {
-            "ingress.process_set_source_sink.int_set_source" : "ingress.process_set_source_sink.tb_set_sink",
-            "NoAction" : "ingress.process_set_source_sink.tb_set_sink"
+            "ingress.process_int_source_sink.int_set_source" : "ingress.process_int_source_sink.tb_set_sink",
+            "nop" : "ingress.process_int_source_sink.tb_set_sink"
           },
           "default_entry" : {
             "action_id" : 1,
-            "action_const" : false,
+            "action_const" : true,
             "action_data" : [],
-            "action_entry_const" : false
+            "action_entry_const" : true
           }
         },
         {
-          "name" : "ingress.process_set_source_sink.tb_set_sink",
+          "name" : "ingress.process_int_source_sink.tb_set_sink",
           "id" : 4,
           "source_info" : {
             "filename" : "include/int_source.p4",
-            "line" : 111,
+            "line" : 113,
             "column" : 10,
             "source_fragment" : "tb_set_sink"
           },
@@ -7288,27 +10292,82 @@
           ],
           "match_type" : "exact",
           "type" : "simple",
-          "max_size" : 256,
+          "max_size" : 511,
           "with_counters" : true,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [7, 2],
-          "actions" : ["ingress.process_set_source_sink.int_set_sink", "NoAction"],
+          "action_ids" : [8, 2],
+          "actions" : ["ingress.process_int_source_sink.int_set_sink", "nop"],
           "base_default_next" : "node_8",
           "next_tables" : {
-            "ingress.process_set_source_sink.int_set_sink" : "node_8",
-            "NoAction" : "node_8"
+            "ingress.process_int_source_sink.int_set_sink" : "node_8",
+            "nop" : "node_8"
           },
           "default_entry" : {
             "action_id" : 2,
-            "action_const" : false,
+            "action_const" : true,
             "action_data" : [],
-            "action_entry_const" : false
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "ingress.process_int_source.tb_int_source",
+          "id" : 5,
+          "source_info" : {
+            "filename" : "include/int_source.p4",
+            "line" : 63,
+            "column" : 10,
+            "source_fragment" : "tb_int_source"
+          },
+          "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
+            }
+          ],
+          "match_type" : "ternary",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : true,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [9, 3],
+          "actions" : ["ingress.process_int_source.int_source_dscp", "nop"],
+          "base_default_next" : "node_10",
+          "next_tables" : {
+            "ingress.process_int_source.int_source_dscp" : "node_10",
+            "nop" : "node_10"
+          },
+          "default_entry" : {
+            "action_id" : 3,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
           }
         },
         {
           "name" : "tbl_act_1",
-          "id" : 5,
+          "id" : 6,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -7316,14 +10375,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [10],
+          "action_ids" : [12],
           "actions" : ["act_1"],
           "base_default_next" : null,
           "next_tables" : {
             "act_1" : null
           },
           "default_entry" : {
-            "action_id" : 10,
+            "action_id" : 12,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -7363,21 +10422,78 @@
           "id" : 1,
           "source_info" : {
             "filename" : "int.p4",
-            "line" : 47,
-            "column" : 11,
-            "source_fragment" : "local_metadata.int_meta.sink == 1"
+            "line" : 48,
+            "column" : 12,
+            "source_fragment" : "local_metadata.int_meta.source == true"
           },
           "expression" : {
             "type" : "expression",
             "value" : {
               "op" : "==",
               "left" : {
-                "type" : "field",
-                "value" : ["userMetadata.int_meta", "sink"]
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["userMetadata.int_meta", "source"]
+                  }
+                }
               },
               "right" : {
-                "type" : "hexstr",
-                "value" : "0x01"
+                "type" : "bool",
+                "value" : true
+              }
+            }
+          },
+          "true_next" : "ingress.process_int_source.tb_int_source",
+          "false_next" : "node_10"
+        },
+        {
+          "name" : "node_10",
+          "id" : 2,
+          "source_info" : {
+            "filename" : "int.p4",
+            "line" : 52,
+            "column" : 12,
+            "source_fragment" : "local_metadata.int_meta.sink == true && hdr.int_header.isValid()"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "and",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "==",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "d2b",
+                      "left" : null,
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "sink"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              },
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["int_header", "$valid$"]
+                  }
+                }
               }
             }
           },
@@ -7391,169 +10507,93 @@
       "id" : 1,
       "source_info" : {
         "filename" : "int.p4",
-        "line" : 57,
+        "line" : 62,
         "column" : 8,
         "source_fragment" : "egress"
       },
-      "init_table" : "node_12",
+      "init_table" : "node_14",
       "tables" : [
         {
-          "name" : "egress.process_set_source_sink.tb_set_source",
-          "id" : 6,
-          "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" : [18, 11],
-          "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" : 11,
-            "action_const" : false,
-            "action_data" : [],
-            "action_entry_const" : false
-          }
-        },
-        {
-          "name" : "egress.process_set_source_sink.tb_set_sink",
+          "name" : "tbl_act_2",
           "id" : 7,
-          "source_info" : {
-            "filename" : "include/int_source.p4",
-            "line" : 111,
-            "column" : 10,
-            "source_fragment" : "tb_set_sink"
-          },
-          "key" : [
-            {
-              "match_type" : "exact",
-              "name" : "standard_metadata.egress_spec",
-              "target" : ["standard_metadata", "egress_spec"],
-              "mask" : null
-            }
-          ],
+          "key" : [],
           "match_type" : "exact",
           "type" : "simple",
-          "max_size" : 256,
-          "with_counters" : true,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [19, 12],
-          "actions" : ["egress.process_set_source_sink.int_set_sink", "NoAction"],
-          "base_default_next" : "node_15",
-          "next_tables" : {
-            "egress.process_set_source_sink.int_set_sink" : "node_15",
-            "NoAction" : "node_15"
-          },
-          "default_entry" : {
-            "action_id" : 12,
-            "action_const" : false,
-            "action_data" : [],
-            "action_entry_const" : false
-          }
-        },
-        {
-          "name" : "egress.process_int_source.tb_int_source",
-          "id" : 8,
-          "source_info" : {
-            "filename" : "include/int_source.p4",
-            "line" : 66,
-            "column" : 10,
-            "source_fragment" : "tb_int_source"
-          },
-          "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
-            }
-          ],
-          "match_type" : "ternary",
-          "type" : "simple",
           "max_size" : 1024,
-          "with_counters" : true,
+          "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [20, 13],
-          "actions" : ["egress.process_int_source.int_source_dscp", "NoAction"],
-          "base_default_next" : "node_17",
+          "action_ids" : [53],
+          "actions" : ["act_2"],
+          "base_default_next" : "egress.process_int_transit.tb_int_insert",
           "next_tables" : {
-            "egress.process_int_source.int_source_dscp" : "node_17",
-            "NoAction" : "node_17"
+            "act_2" : "egress.process_int_transit.tb_int_insert"
           },
           "default_entry" : {
-            "action_id" : 13,
-            "action_const" : false,
+            "action_id" : 53,
+            "action_const" : true,
             "action_data" : [],
-            "action_entry_const" : false
+            "action_entry_const" : true
           }
         },
         {
           "name" : "egress.process_int_transit.tb_int_insert",
-          "id" : 9,
+          "id" : 8,
           "source_info" : {
             "filename" : "include/int_transit.p4",
-            "line" : 227,
+            "line" : 311,
             "column" : 10,
             "source_fragment" : "tb_int_insert"
           },
+          "key" : [
+            {
+              "match_type" : "exact",
+              "name" : "int_is_valid",
+              "target" : ["int_header", "$valid$"],
+              "mask" : null
+            }
+          ],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [17, 13],
+          "actions" : ["egress.process_int_transit.init_metadata", "nop"],
+          "base_default_next" : "node_17",
+          "next_tables" : {
+            "egress.process_int_transit.init_metadata" : "node_17",
+            "nop" : "node_17"
+          },
+          "default_entry" : {
+            "action_id" : 13,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_3",
+          "id" : 9,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
-          "max_size" : 2,
-          "with_counters" : true,
+          "max_size" : 1024,
+          "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [22, 14],
-          "actions" : ["egress.process_int_transit.int_transit", "NoAction"],
-          "base_default_next" : "egress.process_int_transit.tb_int_inst_0003",
+          "action_ids" : [54],
+          "actions" : ["act_3"],
+          "base_default_next" : "node_19",
           "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"
+            "act_3" : "node_19"
           },
           "default_entry" : {
-            "action_id" : 14,
-            "action_const" : false,
+            "action_id" : 54,
+            "action_const" : true,
             "action_data" : [],
-            "action_entry_const" : false
+            "action_entry_const" : true
           }
         },
         {
@@ -7561,7 +10601,7 @@
           "id" : 10,
           "source_info" : {
             "filename" : "include/int_transit.p4",
-            "line" : 237,
+            "line" : 327,
             "column" : 10,
             "source_fragment" : "tb_int_inst_0003"
           },
@@ -7575,11 +10615,11 @@
           ],
           "match_type" : "exact",
           "type" : "simple",
-          "max_size" : 16,
-          "with_counters" : true,
+          "max_size" : 1024,
+          "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 15],
+          "action_ids" : [18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 15],
           "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" : {
@@ -7606,14 +10646,320 @@
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
-          }
+          },
+          "entries" : [
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 350,
+                "column" : 12,
+                "source_fragment" : "(0x0) : int_set_header_0003_i0()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x00"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 18,
+                "action_data" : []
+              },
+              "priority" : 1
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 351,
+                "column" : 12,
+                "source_fragment" : "(0x1) : int_set_header_0003_i1()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x01"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 19,
+                "action_data" : []
+              },
+              "priority" : 2
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 352,
+                "column" : 12,
+                "source_fragment" : "(0x2) : int_set_header_0003_i2()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x02"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 20,
+                "action_data" : []
+              },
+              "priority" : 3
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 353,
+                "column" : 12,
+                "source_fragment" : "(0x3) : int_set_header_0003_i3()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x03"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 21,
+                "action_data" : []
+              },
+              "priority" : 4
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 354,
+                "column" : 12,
+                "source_fragment" : "(0x4) : int_set_header_0003_i4()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x04"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 22,
+                "action_data" : []
+              },
+              "priority" : 5
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 355,
+                "column" : 12,
+                "source_fragment" : "(0x5) : int_set_header_0003_i5()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x05"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 23,
+                "action_data" : []
+              },
+              "priority" : 6
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 356,
+                "column" : 12,
+                "source_fragment" : "(0x6) : int_set_header_0003_i6()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x06"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 24,
+                "action_data" : []
+              },
+              "priority" : 7
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 357,
+                "column" : 12,
+                "source_fragment" : "(0x7) : int_set_header_0003_i7()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x07"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 25,
+                "action_data" : []
+              },
+              "priority" : 8
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 358,
+                "column" : 12,
+                "source_fragment" : "(0x8) : int_set_header_0003_i8()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x08"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 26,
+                "action_data" : []
+              },
+              "priority" : 9
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 359,
+                "column" : 12,
+                "source_fragment" : "(0x9) : int_set_header_0003_i9()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x09"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 27,
+                "action_data" : []
+              },
+              "priority" : 10
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 360,
+                "column" : 12,
+                "source_fragment" : "(0xA) : int_set_header_0003_i10()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x0a"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 28,
+                "action_data" : []
+              },
+              "priority" : 11
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 361,
+                "column" : 12,
+                "source_fragment" : "(0xB) : int_set_header_0003_i11()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x0b"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 29,
+                "action_data" : []
+              },
+              "priority" : 12
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 362,
+                "column" : 12,
+                "source_fragment" : "(0xC) : int_set_header_0003_i12()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x0c"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 30,
+                "action_data" : []
+              },
+              "priority" : 13
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 363,
+                "column" : 12,
+                "source_fragment" : "(0xD) : int_set_header_0003_i13()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x0d"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 31,
+                "action_data" : []
+              },
+              "priority" : 14
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 364,
+                "column" : 12,
+                "source_fragment" : "(0xE) : int_set_header_0003_i14()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x0e"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 32,
+                "action_data" : []
+              },
+              "priority" : 15
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 365,
+                "column" : 12,
+                "source_fragment" : "(0xF) : int_set_header_0003_i15()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x0f"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 33,
+                "action_data" : []
+              },
+              "priority" : 16
+            }
+          ]
         },
         {
           "name" : "egress.process_int_transit.tb_int_inst_0407",
           "id" : 11,
           "source_info" : {
             "filename" : "include/int_transit.p4",
-            "line" : 264,
+            "line" : 371,
             "column" : 10,
             "source_fragment" : "tb_int_inst_0407"
           },
@@ -7627,41 +10973,347 @@
           ],
           "match_type" : "exact",
           "type" : "simple",
-          "max_size" : 16,
-          "with_counters" : true,
+          "max_size" : 1024,
+          "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 16],
+          "action_ids" : [34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 16],
           "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",
+          "base_default_next" : "tbl_act_4",
           "next_tables" : {
-            "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"
+            "egress.process_int_transit.int_set_header_0407_i0" : "tbl_act_4",
+            "egress.process_int_transit.int_set_header_0407_i1" : "tbl_act_4",
+            "egress.process_int_transit.int_set_header_0407_i2" : "tbl_act_4",
+            "egress.process_int_transit.int_set_header_0407_i3" : "tbl_act_4",
+            "egress.process_int_transit.int_set_header_0407_i4" : "tbl_act_4",
+            "egress.process_int_transit.int_set_header_0407_i5" : "tbl_act_4",
+            "egress.process_int_transit.int_set_header_0407_i6" : "tbl_act_4",
+            "egress.process_int_transit.int_set_header_0407_i7" : "tbl_act_4",
+            "egress.process_int_transit.int_set_header_0407_i8" : "tbl_act_4",
+            "egress.process_int_transit.int_set_header_0407_i9" : "tbl_act_4",
+            "egress.process_int_transit.int_set_header_0407_i10" : "tbl_act_4",
+            "egress.process_int_transit.int_set_header_0407_i11" : "tbl_act_4",
+            "egress.process_int_transit.int_set_header_0407_i12" : "tbl_act_4",
+            "egress.process_int_transit.int_set_header_0407_i13" : "tbl_act_4",
+            "egress.process_int_transit.int_set_header_0407_i14" : "tbl_act_4",
+            "egress.process_int_transit.int_set_header_0407_i15" : "tbl_act_4",
+            "NoAction" : "tbl_act_4"
           },
           "default_entry" : {
             "action_id" : 16,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
-          }
+          },
+          "entries" : [
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 394,
+                "column" : 12,
+                "source_fragment" : "(0x0) : int_set_header_0407_i0()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x00"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 34,
+                "action_data" : []
+              },
+              "priority" : 1
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 395,
+                "column" : 12,
+                "source_fragment" : "(0x1) : int_set_header_0407_i1()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x01"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 35,
+                "action_data" : []
+              },
+              "priority" : 2
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 396,
+                "column" : 12,
+                "source_fragment" : "(0x2) : int_set_header_0407_i2()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x02"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 36,
+                "action_data" : []
+              },
+              "priority" : 3
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 397,
+                "column" : 12,
+                "source_fragment" : "(0x3) : int_set_header_0407_i3()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x03"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 37,
+                "action_data" : []
+              },
+              "priority" : 4
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 398,
+                "column" : 12,
+                "source_fragment" : "(0x4) : int_set_header_0407_i4()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x04"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 38,
+                "action_data" : []
+              },
+              "priority" : 5
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 399,
+                "column" : 12,
+                "source_fragment" : "(0x5) : int_set_header_0407_i5()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x05"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 39,
+                "action_data" : []
+              },
+              "priority" : 6
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 400,
+                "column" : 12,
+                "source_fragment" : "(0x6) : int_set_header_0407_i6()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x06"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 40,
+                "action_data" : []
+              },
+              "priority" : 7
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 401,
+                "column" : 12,
+                "source_fragment" : "(0x7) : int_set_header_0407_i7()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x07"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 41,
+                "action_data" : []
+              },
+              "priority" : 8
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 402,
+                "column" : 12,
+                "source_fragment" : "(0x8) : int_set_header_0407_i8()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x08"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 42,
+                "action_data" : []
+              },
+              "priority" : 9
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 403,
+                "column" : 12,
+                "source_fragment" : "(0x9) : int_set_header_0407_i9()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x09"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 43,
+                "action_data" : []
+              },
+              "priority" : 10
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 404,
+                "column" : 12,
+                "source_fragment" : "(0xA) : int_set_header_0407_i10()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x0a"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 44,
+                "action_data" : []
+              },
+              "priority" : 11
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 405,
+                "column" : 12,
+                "source_fragment" : "(0xB) : int_set_header_0407_i11()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x0b"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 45,
+                "action_data" : []
+              },
+              "priority" : 12
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 406,
+                "column" : 12,
+                "source_fragment" : "(0xC) : int_set_header_0407_i12()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x0c"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 46,
+                "action_data" : []
+              },
+              "priority" : 13
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 407,
+                "column" : 12,
+                "source_fragment" : "(0xD) : int_set_header_0407_i13()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x0d"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 47,
+                "action_data" : []
+              },
+              "priority" : 14
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 408,
+                "column" : 12,
+                "source_fragment" : "(0xE) : int_set_header_0407_i14()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x0e"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 48,
+                "action_data" : []
+              },
+              "priority" : 15
+            },
+            {
+              "source_info" : {
+                "filename" : "include/int_transit.p4",
+                "line" : 409,
+                "column" : 12,
+                "source_fragment" : "(0xF) : int_set_header_0407_i15()"
+              },
+              "match_key" : [
+                {
+                  "match_type" : "exact",
+                  "key" : "0x0f"
+                }
+              ],
+              "action_entry" : {
+                "action_id" : 49,
+                "action_data" : []
+              },
+              "priority" : 16
+            }
+          ]
         },
         {
-          "name" : "tbl_process_int_transit_int_update_total_hop_cnt",
+          "name" : "tbl_act_4",
           "id" : 12,
           "key" : [],
           "match_type" : "exact",
@@ -7670,57 +11322,11 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [21],
-          "actions" : ["egress.process_int_transit.int_update_total_hop_cnt"],
-          "base_default_next" : "node_22",
-          "next_tables" : {
-            "egress.process_int_transit.int_update_total_hop_cnt" : "node_22"
-          },
-          "default_entry" : {
-            "action_id" : 21,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_process_int_outer_encap_int_update_ipv4",
-          "id" : 13,
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [55],
-          "actions" : ["egress.process_int_outer_encap.int_update_ipv4"],
-          "base_default_next" : "node_24",
-          "next_tables" : {
-            "egress.process_int_outer_encap.int_update_ipv4" : "node_24"
-          },
-          "default_entry" : {
-            "action_id" : 55,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_process_int_outer_encap_int_update_udp",
-          "id" : 14,
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
           "action_ids" : [56],
-          "actions" : ["egress.process_int_outer_encap.int_update_udp"],
-          "base_default_next" : "node_26",
+          "actions" : ["act_5"],
+          "base_default_next" : "node_23",
           "next_tables" : {
-            "egress.process_int_outer_encap.int_update_udp" : "node_26"
+            "act_5" : "node_23"
           },
           "default_entry" : {
             "action_id" : 56,
@@ -7730,8 +11336,31 @@
           }
         },
         {
-          "name" : "tbl_process_int_outer_encap_int_update_shim",
-          "id" : 15,
+          "name" : "tbl_act_5",
+          "id" : 13,
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [55],
+          "actions" : ["act_4"],
+          "base_default_next" : "node_25",
+          "next_tables" : {
+            "act_4" : "node_25"
+          },
+          "default_entry" : {
+            "action_id" : 55,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_6",
+          "id" : 14,
           "key" : [],
           "match_type" : "exact",
           "type" : "simple",
@@ -7740,10 +11369,10 @@
           "support_timeout" : false,
           "direct_meters" : null,
           "action_ids" : [57],
-          "actions" : ["egress.process_int_outer_encap.int_update_shim"],
-          "base_default_next" : "node_28",
+          "actions" : ["act_6"],
+          "base_default_next" : "node_27",
           "next_tables" : {
-            "egress.process_int_outer_encap.int_update_shim" : "node_28"
+            "act_6" : "node_27"
           },
           "default_entry" : {
             "action_id" : 57,
@@ -7753,19 +11382,42 @@
           }
         },
         {
+          "name" : "tbl_act_7",
+          "id" : 15,
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [58],
+          "actions" : ["act_7"],
+          "base_default_next" : "node_29",
+          "next_tables" : {
+            "act_7" : "node_29"
+          },
+          "default_entry" : {
+            "action_id" : 58,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
           "name" : "egress.process_int_report.tb_generate_report",
           "id" : 16,
           "source_info" : {
             "filename" : "include/int_report.p4",
-            "line" : 89,
+            "line" : 93,
             "column" : 10,
             "source_fragment" : "tb_generate_report"
           },
           "key" : [
             {
               "match_type" : "exact",
-              "name" : "standard_metadata.instance_type",
-              "target" : ["standard_metadata", "instance_type"],
+              "name" : "int_is_valid",
+              "target" : ["int_header", "$valid$"],
               "mask" : null
             }
           ],
@@ -7775,15 +11427,15 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [58, 17],
-          "actions" : ["egress.process_int_report.do_report_encapsulation", "NoAction"],
-          "base_default_next" : "tbl_process_int_sink_restore_header",
+          "action_ids" : [50, 14],
+          "actions" : ["egress.process_int_report.do_report_encapsulation", "nop"],
+          "base_default_next" : "node_31",
           "next_tables" : {
-            "egress.process_int_report.do_report_encapsulation" : "tbl_process_int_sink_restore_header",
-            "NoAction" : "tbl_process_int_sink_restore_header"
+            "egress.process_int_report.do_report_encapsulation" : "node_31",
+            "nop" : "node_31"
           },
           "default_entry" : {
-            "action_id" : 17,
+            "action_id" : 14,
             "action_const" : false,
             "action_data" : [],
             "action_entry_const" : false
@@ -7799,14 +11451,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [59],
+          "action_ids" : [51],
           "actions" : ["egress.process_int_sink.restore_header"],
           "base_default_next" : "tbl_process_int_sink_int_sink",
           "next_tables" : {
             "egress.process_int_sink.restore_header" : "tbl_process_int_sink_int_sink"
           },
           "default_entry" : {
-            "action_id" : 59,
+            "action_id" : 51,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -7822,11 +11474,34 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [60],
+          "action_ids" : [52],
           "actions" : ["egress.process_int_sink.int_sink"],
-          "base_default_next" : "tbl_act_2",
+          "base_default_next" : "tbl_act_8",
           "next_tables" : {
-            "egress.process_int_sink.int_sink" : "tbl_act_2"
+            "egress.process_int_sink.int_sink" : "tbl_act_8"
+          },
+          "default_entry" : {
+            "action_id" : 52,
+            "action_const" : true,
+            "action_data" : [],
+            "action_entry_const" : true
+          }
+        },
+        {
+          "name" : "tbl_act_8",
+          "id" : 19,
+          "key" : [],
+          "match_type" : "exact",
+          "type" : "simple",
+          "max_size" : 1024,
+          "with_counters" : false,
+          "support_timeout" : false,
+          "direct_meters" : null,
+          "action_ids" : [60],
+          "actions" : ["act_9"],
+          "base_default_next" : "node_35",
+          "next_tables" : {
+            "act_9" : "node_35"
           },
           "default_entry" : {
             "action_id" : 60,
@@ -7836,30 +11511,7 @@
           }
         },
         {
-          "name" : "tbl_act_2",
-          "id" : 19,
-          "key" : [],
-          "match_type" : "exact",
-          "type" : "simple",
-          "max_size" : 1024,
-          "with_counters" : false,
-          "support_timeout" : false,
-          "direct_meters" : null,
-          "action_ids" : [62],
-          "actions" : ["act_3"],
-          "base_default_next" : "node_33",
-          "next_tables" : {
-            "act_3" : "node_33"
-          },
-          "default_entry" : {
-            "action_id" : 62,
-            "action_const" : true,
-            "action_data" : [],
-            "action_entry_const" : true
-          }
-        },
-        {
-          "name" : "tbl_act_3",
+          "name" : "tbl_act_9",
           "id" : 20,
           "key" : [],
           "match_type" : "exact",
@@ -7868,14 +11520,14 @@
           "with_counters" : false,
           "support_timeout" : false,
           "direct_meters" : null,
-          "action_ids" : [61],
-          "actions" : ["act_2"],
+          "action_ids" : [59],
+          "actions" : ["act_8"],
           "base_default_next" : null,
           "next_tables" : {
-            "act_2" : null
+            "act_8" : null
           },
           "default_entry" : {
-            "action_id" : 61,
+            "action_id" : 59,
             "action_const" : true,
             "action_data" : [],
             "action_entry_const" : true
@@ -7885,118 +11537,12 @@
       "action_profiles" : [],
       "conditionals" : [
         {
-          "name" : "node_12",
-          "id" : 2,
-          "source_info" : {
-            "filename" : "int.p4",
-            "line" : 63,
-            "column" : 12,
-            "source_fragment" : "standard_metadata.ingress_port != CPU_PORT && ..."
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "and",
-              "left" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "and",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "!=",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "ingress_port"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x00ff"
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "!=",
-                      "left" : {
-                        "type" : "field",
-                        "value" : ["standard_metadata", "egress_port"]
-                      },
-                      "right" : {
-                        "type" : "hexstr",
-                        "value" : "0x00ff"
-                      }
-                    }
-                  }
-                }
-              },
-              "right" : {
-                "type" : "expression",
-                "value" : {
-                  "op" : "or",
-                  "left" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "d2b",
-                      "left" : null,
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["udp", "$valid$"]
-                      }
-                    }
-                  },
-                  "right" : {
-                    "type" : "expression",
-                    "value" : {
-                      "op" : "d2b",
-                      "left" : null,
-                      "right" : {
-                        "type" : "field",
-                        "value" : ["tcp", "$valid$"]
-                      }
-                    }
-                  }
-                }
-              }
-            }
-          },
-          "true_next" : "egress.process_set_source_sink.tb_set_source",
-          "false_next" : "tbl_act_2"
-        },
-        {
-          "name" : "node_15",
+          "name" : "node_14",
           "id" : 3,
           "source_info" : {
             "filename" : "int.p4",
-            "line" : 67,
-            "column" : 16,
-            "source_fragment" : "local_metadata.int_meta.source == 1"
-          },
-          "expression" : {
-            "type" : "expression",
-            "value" : {
-              "op" : "==",
-              "left" : {
-                "type" : "field",
-                "value" : ["userMetadata.int_meta", "source"]
-              },
-              "right" : {
-                "type" : "hexstr",
-                "value" : "0x01"
-              }
-            }
-          },
-          "true_next" : "egress.process_int_source.tb_int_source",
-          "false_next" : "node_17"
-        },
-        {
-          "name" : "node_17",
-          "id" : 4,
-          "source_info" : {
-            "filename" : "int.p4",
-            "line" : 70,
-            "column" : 15,
+            "line" : 68,
+            "column" : 11,
             "source_fragment" : "hdr.int_header.isValid()"
           },
           "expression" : {
@@ -8010,15 +11556,72 @@
               }
             }
           },
-          "true_next" : "egress.process_int_transit.tb_int_insert",
-          "false_next" : "tbl_act_2"
+          "true_next" : "tbl_act_2",
+          "false_next" : "tbl_act_8"
         },
         {
-          "name" : "node_22",
-          "id" : 5,
+          "name" : "node_17",
+          "id" : 4,
           "source_info" : {
             "filename" : "include/int_transit.p4",
-            "line" : 314,
+            "line" : 415,
+            "column" : 12,
+            "source_fragment" : "local_metadata.int_meta.transit == false"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "==",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["userMetadata.int_meta", "transit"]
+                  }
+                }
+              },
+              "right" : {
+                "type" : "bool",
+                "value" : false
+              }
+            }
+          },
+          "true_next" : "tbl_act_3",
+          "false_next" : "node_19"
+        },
+        {
+          "name" : "node_19",
+          "id" : 5,
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "not",
+              "left" : null,
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "d2b",
+                  "left" : null,
+                  "right" : {
+                    "type" : "field",
+                    "value" : ["scalars", "process_int_transit_hasReturned_0"]
+                  }
+                }
+              }
+            }
+          },
+          "true_next" : "egress.process_int_transit.tb_int_inst_0003",
+          "false_next" : "node_29"
+        },
+        {
+          "name" : "node_23",
+          "id" : 6,
+          "source_info" : {
+            "filename" : "include/int_transit.p4",
+            "line" : 425,
             "column" : 12,
             "source_fragment" : "hdr.ipv4.isValid()"
           },
@@ -8033,15 +11636,15 @@
               }
             }
           },
-          "true_next" : "tbl_process_int_outer_encap_int_update_ipv4",
-          "false_next" : "node_24"
+          "true_next" : "tbl_act_5",
+          "false_next" : "node_25"
         },
         {
-          "name" : "node_24",
-          "id" : 6,
+          "name" : "node_25",
+          "id" : 7,
           "source_info" : {
             "filename" : "include/int_transit.p4",
-            "line" : 317,
+            "line" : 428,
             "column" : 12,
             "source_fragment" : "hdr.udp.isValid()"
           },
@@ -8056,15 +11659,15 @@
               }
             }
           },
-          "true_next" : "tbl_process_int_outer_encap_int_update_udp",
-          "false_next" : "node_26"
+          "true_next" : "tbl_act_6",
+          "false_next" : "node_27"
         },
         {
-          "name" : "node_26",
-          "id" : 7,
+          "name" : "node_27",
+          "id" : 8,
           "source_info" : {
             "filename" : "include/int_transit.p4",
-            "line" : 320,
+            "line" : 431,
             "column" : 12,
             "source_fragment" : "hdr.intl4_shim.isValid()"
           },
@@ -8079,17 +11682,17 @@
               }
             }
           },
-          "true_next" : "tbl_process_int_outer_encap_int_update_shim",
-          "false_next" : "node_28"
+          "true_next" : "tbl_act_7",
+          "false_next" : "node_29"
         },
         {
-          "name" : "node_28",
-          "id" : 8,
+          "name" : "node_29",
+          "id" : 9,
           "source_info" : {
             "filename" : "int.p4",
-            "line" : 74,
-            "column" : 20,
-            "source_fragment" : "local_metadata.int_meta.sink == 1"
+            "line" : 72,
+            "column" : 17,
+            "source_fragment" : "standard_metadata.instance_type == BMV2_V1MODEL_INSTANCE_TYPE_INGRESS_CLONE"
           },
           "expression" : {
             "type" : "expression",
@@ -8097,20 +11700,73 @@
               "op" : "==",
               "left" : {
                 "type" : "field",
-                "value" : ["userMetadata.int_meta", "sink"]
+                "value" : ["standard_metadata", "instance_type"]
               },
               "right" : {
                 "type" : "hexstr",
-                "value" : "0x01"
+                "value" : "0x00000001"
               }
             }
           },
           "true_next" : "egress.process_int_report.tb_generate_report",
-          "false_next" : "tbl_act_2"
+          "false_next" : "node_31"
         },
         {
-          "name" : "node_33",
-          "id" : 9,
+          "name" : "node_31",
+          "id" : 10,
+          "source_info" : {
+            "filename" : "int.p4",
+            "line" : 77,
+            "column" : 16,
+            "source_fragment" : "local_metadata.int_meta.sink == true && !(standard_metadata.instance_type == BMV2_V1MODEL_INSTANCE_TYPE_INGRESS_CLONE)"
+          },
+          "expression" : {
+            "type" : "expression",
+            "value" : {
+              "op" : "and",
+              "left" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "==",
+                  "left" : {
+                    "type" : "expression",
+                    "value" : {
+                      "op" : "d2b",
+                      "left" : null,
+                      "right" : {
+                        "type" : "field",
+                        "value" : ["userMetadata.int_meta", "sink"]
+                      }
+                    }
+                  },
+                  "right" : {
+                    "type" : "bool",
+                    "value" : true
+                  }
+                }
+              },
+              "right" : {
+                "type" : "expression",
+                "value" : {
+                  "op" : "!=",
+                  "left" : {
+                    "type" : "field",
+                    "value" : ["standard_metadata", "instance_type"]
+                  },
+                  "right" : {
+                    "type" : "hexstr",
+                    "value" : "0x00000001"
+                  }
+                }
+              }
+            }
+          },
+          "true_next" : "tbl_process_int_sink_restore_header",
+          "false_next" : "tbl_act_8"
+        },
+        {
+          "name" : "node_35",
+          "id" : 11,
           "source_info" : {
             "filename" : "include/packet_io.p4",
             "line" : 37,
@@ -8132,7 +11788,7 @@
             }
           },
           "false_next" : null,
-          "true_next" : "tbl_act_3"
+          "true_next" : "tbl_act_9"
         }
       ]
     }
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 f280ea7..8507d9e 100644
--- a/pipelines/basic/src/main/resources/p4c-out/bmv2/int.p4info
+++ b/pipelines/basic/src/main/resources/p4c-out/bmv2/int.p4info
@@ -73,12 +73,13 @@
   const_default_action_id: 16784184
   direct_resource_ids: 318816189
   size: 1024
+  idle_timeout_behavior: NO_TIMEOUT
 }
 tables {
   preamble {
-    id: 33594678
-    name: "ingress.process_set_source_sink.tb_set_source"
-    alias: "ingress.process_set_source_sink.tb_set_source"
+    id: 33588181
+    name: "ingress.process_int_source_sink.tb_set_source"
+    alias: "tb_set_source"
   }
   match_fields {
     id: 1
@@ -87,21 +88,22 @@
     match_type: EXACT
   }
   action_refs {
-    id: 16817471
+    id: 16801076
   }
   action_refs {
-    id: 16800567
+    id: 16819938
     annotations: "@defaultonly()"
   }
-  direct_resource_ids: 318825104
-  size: 256
+  const_default_action_id: 16819938
+  direct_resource_ids: 318807707
+  size: 511
   idle_timeout_behavior: NO_TIMEOUT
 }
 tables {
   preamble {
-    id: 33584156
-    name: "ingress.process_set_source_sink.tb_set_sink"
-    alias: "ingress.process_set_source_sink.tb_set_sink"
+    id: 33584966
+    name: "ingress.process_int_source_sink.tb_set_sink"
+    alias: "tb_set_sink"
   }
   match_fields {
     id: 1
@@ -110,64 +112,21 @@
     match_type: EXACT
   }
   action_refs {
-    id: 16800284
+    id: 16814977
   }
   action_refs {
-    id: 16800567
+    id: 16819938
     annotations: "@defaultonly()"
   }
-  direct_resource_ids: 318775657
-  size: 256
+  const_default_action_id: 16819938
+  direct_resource_ids: 318828289
+  size: 511
   idle_timeout_behavior: NO_TIMEOUT
 }
 tables {
   preamble {
-    id: 33578477
-    name: "egress.process_set_source_sink.tb_set_source"
-    alias: "egress.process_set_source_sink.tb_set_source"
-  }
-  match_fields {
-    id: 1
-    name: "standard_metadata.ingress_port"
-    bitwidth: 9
-    match_type: EXACT
-  }
-  action_refs {
-    id: 16782803
-  }
-  action_refs {
-    id: 16800567
-    annotations: "@defaultonly()"
-  }
-  direct_resource_ids: 318829828
-  size: 256
-}
-tables {
-  preamble {
-    id: 33575550
-    name: "egress.process_set_source_sink.tb_set_sink"
-    alias: "egress.process_set_source_sink.tb_set_sink"
-  }
-  match_fields {
-    id: 1
-    name: "standard_metadata.egress_spec"
-    bitwidth: 9
-    match_type: EXACT
-  }
-  action_refs {
-    id: 16798719
-  }
-  action_refs {
-    id: 16800567
-    annotations: "@defaultonly()"
-  }
-  direct_resource_ids: 318811186
-  size: 256
-}
-tables {
-  preamble {
-    id: 33565369
-    name: "egress.process_int_source.tb_int_source"
+    id: 33576412
+    name: "ingress.process_int_source.tb_int_source"
     alias: "tb_int_source"
   }
   match_fields {
@@ -195,14 +154,16 @@
     match_type: TERNARY
   }
   action_refs {
-    id: 16785626
+    id: 16802666
   }
   action_refs {
-    id: 16800567
+    id: 16819938
     annotations: "@defaultonly()"
   }
-  direct_resource_ids: 318796349
+  const_default_action_id: 16819938
+  direct_resource_ids: 318802143
   size: 1024
+  idle_timeout_behavior: NO_TIMEOUT
 }
 tables {
   preamble {
@@ -210,149 +171,22 @@
     name: "egress.process_int_transit.tb_int_insert"
     alias: "tb_int_insert"
   }
-  action_refs {
-    id: 16798455
-  }
-  action_refs {
-    id: 16800567
-    annotations: "@defaultonly()"
-  }
-  direct_resource_ids: 318803385
-  size: 2
-}
-tables {
-  preamble {
-    id: 33607644
-    name: "egress.process_int_transit.tb_int_inst_0003"
-    alias: "tb_int_inst_0003"
-  }
   match_fields {
     id: 1
-    name: "hdr.int_header.instruction_mask_0003"
-    bitwidth: 4
+    name: "int_is_valid"
+    bitwidth: 1
     match_type: EXACT
   }
   action_refs {
-    id: 16783309
+    id: 16824828
   }
   action_refs {
-    id: 16823072
-  }
-  action_refs {
-    id: 16782691
-  }
-  action_refs {
-    id: 16822686
-  }
-  action_refs {
-    id: 16830010
-  }
-  action_refs {
-    id: 16804519
-  }
-  action_refs {
-    id: 16810645
-  }
-  action_refs {
-    id: 16834343
-  }
-  action_refs {
-    id: 16809032
-  }
-  action_refs {
-    id: 16783533
-  }
-  action_refs {
-    id: 16824253
-  }
-  action_refs {
-    id: 16830666
-  }
-  action_refs {
-    id: 16809286
-  }
-  action_refs {
-    id: 16816509
-  }
-  action_refs {
-    id: 16803371
-  }
-  action_refs {
-    id: 16810652
-  }
-  action_refs {
-    id: 16800567
+    id: 16819938
     annotations: "@defaultonly()"
   }
-  direct_resource_ids: 318805102
-  size: 16
-}
-tables {
-  preamble {
-    id: 33560427
-    name: "egress.process_int_transit.tb_int_inst_0407"
-    alias: "tb_int_inst_0407"
-  }
-  match_fields {
-    id: 1
-    name: "hdr.int_header.instruction_mask_0407"
-    bitwidth: 4
-    match_type: EXACT
-  }
-  action_refs {
-    id: 16837642
-  }
-  action_refs {
-    id: 16796009
-  }
-  action_refs {
-    id: 16819613
-  }
-  action_refs {
-    id: 16813603
-  }
-  action_refs {
-    id: 16800640
-  }
-  action_refs {
-    id: 16779220
-  }
-  action_refs {
-    id: 16782223
-  }
-  action_refs {
-    id: 16841737
-  }
-  action_refs {
-    id: 16828758
-  }
-  action_refs {
-    id: 16823454
-  }
-  action_refs {
-    id: 16790618
-  }
-  action_refs {
-    id: 16829228
-  }
-  action_refs {
-    id: 16783180
-  }
-  action_refs {
-    id: 16813110
-  }
-  action_refs {
-    id: 16789397
-  }
-  action_refs {
-    id: 16835925
-  }
-  action_refs {
-    id: 16800567
-    annotations: "@defaultonly()"
-  }
-  direct_resource_ids: 318775631
-  size: 16
+  const_default_action_id: 16819938
+  size: 1
+  idle_timeout_behavior: NO_TIMEOUT
 }
 tables {
   preamble {
@@ -362,15 +196,15 @@
   }
   match_fields {
     id: 1
-    name: "standard_metadata.instance_type"
-    bitwidth: 32
+    name: "int_is_valid"
+    bitwidth: 1
     match_type: EXACT
   }
   action_refs {
     id: 16790504
   }
   action_refs {
-    id: 16800567
+    id: 16819938
     annotations: "@defaultonly()"
   }
   size: 1024
@@ -385,9 +219,9 @@
 }
 actions {
   preamble {
-    id: 16800567
-    name: "NoAction"
-    alias: "NoAction"
+    id: 16819938
+    name: "nop"
+    alias: "nop"
   }
 }
 actions {
@@ -423,47 +257,33 @@
 }
 actions {
   preamble {
-    id: 16817471
-    name: "ingress.process_set_source_sink.int_set_source"
-    alias: "ingress.process_set_source_sink.int_set_source"
+    id: 16801076
+    name: "ingress.process_int_source_sink.int_set_source"
+    alias: "int_set_source"
   }
 }
 actions {
   preamble {
-    id: 16800284
-    name: "ingress.process_set_source_sink.int_set_sink"
-    alias: "ingress.process_set_source_sink.int_set_sink"
+    id: 16814977
+    name: "ingress.process_int_source_sink.int_set_sink"
+    alias: "int_set_sink"
   }
 }
 actions {
   preamble {
-    id: 16782803
-    name: "egress.process_set_source_sink.int_set_source"
-    alias: "egress.process_set_source_sink.int_set_source"
-  }
-}
-actions {
-  preamble {
-    id: 16798719
-    name: "egress.process_set_source_sink.int_set_sink"
-    alias: "egress.process_set_source_sink.int_set_sink"
-  }
-}
-actions {
-  preamble {
-    id: 16785626
-    name: "egress.process_int_source.int_source_dscp"
+    id: 16802666
+    name: "ingress.process_int_source.int_source_dscp"
     alias: "int_source_dscp"
   }
   params {
     id: 1
-    name: "max_hop"
-    bitwidth: 8
+    name: "hop_metadata_len"
+    bitwidth: 5
   }
   params {
     id: 2
-    name: "ins_cnt"
-    bitwidth: 5
+    name: "remaining_hop_cnt"
+    bitwidth: 8
   }
   params {
     id: 3
@@ -478,16 +298,16 @@
 }
 actions {
   preamble {
-    id: 16778237
-    name: "egress.process_int_transit.int_update_total_hop_cnt"
-    alias: "int_update_total_hop_cnt"
+    id: 16800567
+    name: "NoAction"
+    alias: "NoAction"
   }
 }
 actions {
   preamble {
-    id: 16798455
-    name: "egress.process_int_transit.int_transit"
-    alias: "int_transit"
+    id: 16824828
+    name: "egress.process_int_transit.init_metadata"
+    alias: "init_metadata"
   }
   params {
     id: 1
@@ -497,251 +317,6 @@
 }
 actions {
   preamble {
-    id: 16783309
-    name: "egress.process_int_transit.int_set_header_0003_i0"
-    alias: "int_set_header_0003_i0"
-  }
-}
-actions {
-  preamble {
-    id: 16823072
-    name: "egress.process_int_transit.int_set_header_0003_i1"
-    alias: "int_set_header_0003_i1"
-  }
-}
-actions {
-  preamble {
-    id: 16782691
-    name: "egress.process_int_transit.int_set_header_0003_i2"
-    alias: "int_set_header_0003_i2"
-  }
-}
-actions {
-  preamble {
-    id: 16822686
-    name: "egress.process_int_transit.int_set_header_0003_i3"
-    alias: "int_set_header_0003_i3"
-  }
-}
-actions {
-  preamble {
-    id: 16830010
-    name: "egress.process_int_transit.int_set_header_0003_i4"
-    alias: "int_set_header_0003_i4"
-  }
-}
-actions {
-  preamble {
-    id: 16804519
-    name: "egress.process_int_transit.int_set_header_0003_i5"
-    alias: "int_set_header_0003_i5"
-  }
-}
-actions {
-  preamble {
-    id: 16810645
-    name: "egress.process_int_transit.int_set_header_0003_i6"
-    alias: "int_set_header_0003_i6"
-  }
-}
-actions {
-  preamble {
-    id: 16834343
-    name: "egress.process_int_transit.int_set_header_0003_i7"
-    alias: "int_set_header_0003_i7"
-  }
-}
-actions {
-  preamble {
-    id: 16809032
-    name: "egress.process_int_transit.int_set_header_0003_i8"
-    alias: "int_set_header_0003_i8"
-  }
-}
-actions {
-  preamble {
-    id: 16783533
-    name: "egress.process_int_transit.int_set_header_0003_i9"
-    alias: "int_set_header_0003_i9"
-  }
-}
-actions {
-  preamble {
-    id: 16824253
-    name: "egress.process_int_transit.int_set_header_0003_i10"
-    alias: "int_set_header_0003_i10"
-  }
-}
-actions {
-  preamble {
-    id: 16830666
-    name: "egress.process_int_transit.int_set_header_0003_i11"
-    alias: "int_set_header_0003_i11"
-  }
-}
-actions {
-  preamble {
-    id: 16809286
-    name: "egress.process_int_transit.int_set_header_0003_i12"
-    alias: "int_set_header_0003_i12"
-  }
-}
-actions {
-  preamble {
-    id: 16816509
-    name: "egress.process_int_transit.int_set_header_0003_i13"
-    alias: "int_set_header_0003_i13"
-  }
-}
-actions {
-  preamble {
-    id: 16803371
-    name: "egress.process_int_transit.int_set_header_0003_i14"
-    alias: "int_set_header_0003_i14"
-  }
-}
-actions {
-  preamble {
-    id: 16810652
-    name: "egress.process_int_transit.int_set_header_0003_i15"
-    alias: "int_set_header_0003_i15"
-  }
-}
-actions {
-  preamble {
-    id: 16837642
-    name: "egress.process_int_transit.int_set_header_0407_i0"
-    alias: "int_set_header_0407_i0"
-  }
-}
-actions {
-  preamble {
-    id: 16796009
-    name: "egress.process_int_transit.int_set_header_0407_i1"
-    alias: "int_set_header_0407_i1"
-  }
-}
-actions {
-  preamble {
-    id: 16819613
-    name: "egress.process_int_transit.int_set_header_0407_i2"
-    alias: "int_set_header_0407_i2"
-  }
-}
-actions {
-  preamble {
-    id: 16813603
-    name: "egress.process_int_transit.int_set_header_0407_i3"
-    alias: "int_set_header_0407_i3"
-  }
-}
-actions {
-  preamble {
-    id: 16800640
-    name: "egress.process_int_transit.int_set_header_0407_i4"
-    alias: "int_set_header_0407_i4"
-  }
-}
-actions {
-  preamble {
-    id: 16779220
-    name: "egress.process_int_transit.int_set_header_0407_i5"
-    alias: "int_set_header_0407_i5"
-  }
-}
-actions {
-  preamble {
-    id: 16782223
-    name: "egress.process_int_transit.int_set_header_0407_i6"
-    alias: "int_set_header_0407_i6"
-  }
-}
-actions {
-  preamble {
-    id: 16841737
-    name: "egress.process_int_transit.int_set_header_0407_i7"
-    alias: "int_set_header_0407_i7"
-  }
-}
-actions {
-  preamble {
-    id: 16828758
-    name: "egress.process_int_transit.int_set_header_0407_i8"
-    alias: "int_set_header_0407_i8"
-  }
-}
-actions {
-  preamble {
-    id: 16823454
-    name: "egress.process_int_transit.int_set_header_0407_i9"
-    alias: "int_set_header_0407_i9"
-  }
-}
-actions {
-  preamble {
-    id: 16790618
-    name: "egress.process_int_transit.int_set_header_0407_i10"
-    alias: "int_set_header_0407_i10"
-  }
-}
-actions {
-  preamble {
-    id: 16829228
-    name: "egress.process_int_transit.int_set_header_0407_i11"
-    alias: "int_set_header_0407_i11"
-  }
-}
-actions {
-  preamble {
-    id: 16783180
-    name: "egress.process_int_transit.int_set_header_0407_i12"
-    alias: "int_set_header_0407_i12"
-  }
-}
-actions {
-  preamble {
-    id: 16813110
-    name: "egress.process_int_transit.int_set_header_0407_i13"
-    alias: "int_set_header_0407_i13"
-  }
-}
-actions {
-  preamble {
-    id: 16789397
-    name: "egress.process_int_transit.int_set_header_0407_i14"
-    alias: "int_set_header_0407_i14"
-  }
-}
-actions {
-  preamble {
-    id: 16835925
-    name: "egress.process_int_transit.int_set_header_0407_i15"
-    alias: "int_set_header_0407_i15"
-  }
-}
-actions {
-  preamble {
-    id: 16819982
-    name: "egress.process_int_outer_encap.int_update_ipv4"
-    alias: "int_update_ipv4"
-  }
-}
-actions {
-  preamble {
-    id: 16810571
-    name: "egress.process_int_outer_encap.int_update_udp"
-    alias: "int_update_udp"
-  }
-}
-actions {
-  preamble {
-    id: 16789645
-    name: "egress.process_int_outer_encap.int_update_shim"
-    alias: "int_update_shim"
-  }
-}
-actions {
-  preamble {
     id: 16790504
     name: "egress.process_int_report.do_report_encapsulation"
     alias: "do_report_encapsulation"
@@ -772,20 +347,6 @@
     bitwidth: 16
   }
 }
-actions {
-  preamble {
-    id: 16839217
-    name: "egress.process_int_sink.restore_header"
-    alias: "restore_header"
-  }
-}
-actions {
-  preamble {
-    id: 16784498
-    name: "egress.process_int_sink.int_sink"
-    alias: "int_sink"
-  }
-}
 counters {
   preamble {
     id: 302004684
@@ -821,91 +382,36 @@
 }
 direct_counters {
   preamble {
-    id: 318825104
-    name: "ingress.process_set_source_sink.counter_set_source"
-    alias: "ingress.process_set_source_sink.counter_set_source"
+    id: 318807707
+    name: "ingress.process_int_source_sink.counter_set_source"
+    alias: "counter_set_source"
   }
   spec {
     unit: BOTH
   }
-  direct_table_id: 33594678
+  direct_table_id: 33588181
 }
 direct_counters {
   preamble {
-    id: 318775657
-    name: "ingress.process_set_source_sink.counter_set_sink"
-    alias: "ingress.process_set_source_sink.counter_set_sink"
+    id: 318828289
+    name: "ingress.process_int_source_sink.counter_set_sink"
+    alias: "counter_set_sink"
   }
   spec {
     unit: BOTH
   }
-  direct_table_id: 33584156
+  direct_table_id: 33584966
 }
 direct_counters {
   preamble {
-    id: 318829828
-    name: "egress.process_set_source_sink.counter_set_source"
-    alias: "egress.process_set_source_sink.counter_set_source"
-  }
-  spec {
-    unit: BOTH
-  }
-  direct_table_id: 33578477
-}
-direct_counters {
-  preamble {
-    id: 318811186
-    name: "egress.process_set_source_sink.counter_set_sink"
-    alias: "egress.process_set_source_sink.counter_set_sink"
-  }
-  spec {
-    unit: BOTH
-  }
-  direct_table_id: 33575550
-}
-direct_counters {
-  preamble {
-    id: 318796349
-    name: "egress.process_int_source.counter_int_source"
+    id: 318802143
+    name: "ingress.process_int_source.counter_int_source"
     alias: "counter_int_source"
   }
   spec {
     unit: BOTH
   }
-  direct_table_id: 33565369
-}
-direct_counters {
-  preamble {
-    id: 318803385
-    name: "egress.process_int_transit.counter_int_insert"
-    alias: "counter_int_insert"
-  }
-  spec {
-    unit: BOTH
-  }
-  direct_table_id: 33604451
-}
-direct_counters {
-  preamble {
-    id: 318805102
-    name: "egress.process_int_transit.counter_int_inst_0003"
-    alias: "counter_int_inst_0003"
-  }
-  spec {
-    unit: BOTH
-  }
-  direct_table_id: 33607644
-}
-direct_counters {
-  preamble {
-    id: 318775631
-    name: "egress.process_int_transit.counter_int_inst_0407"
-    alias: "counter_int_inst_0407"
-  }
-  spec {
-    unit: BOTH
-  }
-  direct_table_id: 33560427
+  direct_table_id: 33576412
 }
 controller_packet_metadata {
   preamble {
diff --git a/tools/test/topos/bmv2-demo.py b/tools/test/topos/bmv2-demo.py
index e1ad7d9..949fe0c 100755
--- a/tools/test/topos/bmv2-demo.py
+++ b/tools/test/topos/bmv2-demo.py
@@ -14,6 +14,8 @@
 VLAN_NONE = -1
 DEFAULT_SW_BW = 50
 DEFAULT_HOST_BW = 25
+# Jumbo frame
+JUMBO_MTU=9000
 
 if 'ONOS_ROOT' not in os.environ:
     print "Environment var $ONOS_ROOT not set"
@@ -229,6 +231,26 @@
     with open(TEMP_NETCFG_FILE, 'w') as tempFile:
         json.dump(netcfg, tempFile, indent=4)
 
+def setMTU(net, mtu):
+    for link in net.links:
+        intf1 = link.intf1.name
+        switchPort = intf1.split('-')
+        sw1Name = switchPort[0]  # s11
+        sw1 = net[sw1Name]
+
+        intf2 = link.intf2.name
+        switchPort = intf2.split('-')
+        sw2Name = switchPort[0]
+        sw2 = net[sw2Name]
+
+        if isinstance(sw1, Host):
+            continue
+
+        if isinstance(sw2, Host):
+            continue
+
+        call(('ifconfig', intf1, 'mtu', str(mtu)))
+        call(('ifconfig', intf2, 'mtu', str(mtu)))
 
 def main(args):
     if not args.onos_ip:
@@ -255,6 +277,10 @@
 
     print "Background ping started"
 
+    # Increase the MTU size for INT operation
+    if args.pipeconf_id.endswith("int") or args.pipeconf_id.endswith("full"):
+        setMTU(net, JUMBO_MTU)
+
     for h in net.hosts:
         h.startIperfServer()