Update INT version to 1.0
Change-Id: I898501780cad9c1ad725ee624aa0cd4617ad2559
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 {