Bump version of P4Runtime to 1.0.0rc3 and P4 tools
Change-Id: I3082b4bd772d692830bd5af8e326a0fd5fb2f167
diff --git a/apps/p4-tutorial/pipeconf/src/main/resources/mytunnel.json b/apps/p4-tutorial/pipeconf/src/main/resources/mytunnel.json
index 4c60e76..913e72e 100644
--- a/apps/p4-tutorial/pipeconf/src/main/resources/mytunnel.json
+++ b/apps/p4-tutorial/pipeconf/src/main/resources/mytunnel.json
@@ -35,6 +35,7 @@
["egress_rid", 16, false],
["checksum_error", 1, false],
["recirculate_flag", 32, false],
+ ["parser_error", 32, false],
["_padding", 5, false]
]
},
@@ -146,7 +147,14 @@
"header_unions" : [],
"header_union_stacks" : [],
"field_lists" : [],
- "errors" : [],
+ "errors" : [
+ ["NoError", 1],
+ ["PacketTooShort", 2],
+ ["NoMatch", 3],
+ ["StackOutOfBounds", 4],
+ ["HeaderTooShort", 5],
+ ["ParserTimeout", 6]
+ ],
"enums" : [],
"parsers" : [
{
@@ -345,7 +353,13 @@
"name" : "c_ingress.l2_fwd_counter",
"id" : 2,
"is_direct" : true,
- "binding" : "c_ingress.t_l2_fwd"
+ "binding" : "c_ingress.t_l2_fwd",
+ "source_info" : {
+ "filename" : "mytunnel.p4",
+ "line" : 189,
+ "column" : 50,
+ "source_fragment" : "l2_fwd_counter"
+ }
}
],
"register_arrays" : [],
diff --git a/core/api/src/main/java/org/onosproject/net/pi/runtime/PiMulticastGroupEntry.java b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiMulticastGroupEntry.java
index 5f68e40..6a848ac 100644
--- a/core/api/src/main/java/org/onosproject/net/pi/runtime/PiMulticastGroupEntry.java
+++ b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiMulticastGroupEntry.java
@@ -34,10 +34,10 @@
@Beta
public final class PiMulticastGroupEntry implements PiPreEntry {
- private final long groupId;
+ private final int groupId;
private final Set<PiPreReplica> replicas;
- private PiMulticastGroupEntry(long groupId, Set<PiPreReplica> replicas) {
+ private PiMulticastGroupEntry(int groupId, Set<PiPreReplica> replicas) {
this.groupId = groupId;
this.replicas = replicas;
}
@@ -48,7 +48,7 @@
*
* @return group entry ID
*/
- public long groupId() {
+ public int groupId() {
return groupId;
}
@@ -111,7 +111,7 @@
*/
public static final class Builder {
- private Long groupId;
+ private Integer groupId;
private ImmutableSet.Builder<PiPreReplica> replicaSetBuilder = ImmutableSet.builder();
private Builder() {
@@ -124,7 +124,7 @@
* @param groupId group ID
* @return this
*/
- public Builder withGroupId(long groupId) {
+ public Builder withGroupId(int groupId) {
this.groupId = groupId;
return this;
}
diff --git a/core/api/src/main/java/org/onosproject/net/pi/runtime/PiPreReplica.java b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiPreReplica.java
index ea7003d..b661d27 100644
--- a/core/api/src/main/java/org/onosproject/net/pi/runtime/PiPreReplica.java
+++ b/core/api/src/main/java/org/onosproject/net/pi/runtime/PiPreReplica.java
@@ -32,7 +32,7 @@
public class PiPreReplica {
private final PortNumber egressPort;
- private final long instanceId;
+ private final int instanceId;
/**
* Returns a new PRE packet replica for the given egress port and instance
@@ -41,7 +41,7 @@
* @param egressPort egress port
* @param instanceId instance ID
*/
- public PiPreReplica(PortNumber egressPort, long instanceId) {
+ public PiPreReplica(PortNumber egressPort, int instanceId) {
this.egressPort = checkNotNull(egressPort);
this.instanceId = instanceId;
}
@@ -60,7 +60,7 @@
*
* @return instance ID
*/
- public long instanceId() {
+ public int instanceId() {
return instanceId;
}
diff --git a/core/api/src/test/java/org/onosproject/net/pi/runtime/PiMulticastGroupEntryTest.java b/core/api/src/test/java/org/onosproject/net/pi/runtime/PiMulticastGroupEntryTest.java
index 7c060ef..049a902 100644
--- a/core/api/src/test/java/org/onosproject/net/pi/runtime/PiMulticastGroupEntryTest.java
+++ b/core/api/src/test/java/org/onosproject/net/pi/runtime/PiMulticastGroupEntryTest.java
@@ -28,10 +28,10 @@
* Tests for {@link PiMulticastGroupEntry}.
*/
public class PiMulticastGroupEntryTest {
- private final long groupId1 = 1;
- private final long groupId2 = 2;
+ private final int groupId1 = 1;
+ private final int groupId2 = 2;
- private final long instanceId1 = 1;
+ private final int instanceId1 = 1;
private final PortNumber port1 = PortNumber.portNumber(1);
private final PortNumber port2 = PortNumber.portNumber(2);
diff --git a/core/api/src/test/java/org/onosproject/net/pi/runtime/PiPreReplicaTest.java b/core/api/src/test/java/org/onosproject/net/pi/runtime/PiPreReplicaTest.java
index 85ea36e..ef6e7d8 100644
--- a/core/api/src/test/java/org/onosproject/net/pi/runtime/PiPreReplicaTest.java
+++ b/core/api/src/test/java/org/onosproject/net/pi/runtime/PiPreReplicaTest.java
@@ -28,8 +28,8 @@
*/
public class PiPreReplicaTest {
- private final long instanceId1 = 1;
- private final long instanceId2 = 2;
+ private final int instanceId1 = 1;
+ private final int instanceId2 = 2;
private final PortNumber port1 = PortNumber.portNumber(1);
private final PortNumber port2 = PortNumber.portNumber(2);
diff --git a/pipelines/basic/src/main/resources/p4c-out/bmv2/basic.json b/pipelines/basic/src/main/resources/p4c-out/bmv2/basic.json
index 5769494..2e428be 100644
--- a/pipelines/basic/src/main/resources/p4c-out/bmv2/basic.json
+++ b/pipelines/basic/src/main/resources/p4c-out/bmv2/basic.json
@@ -40,6 +40,7 @@
["egress_rid", 16, false],
["checksum_error", 1, false],
["recirculate_flag", 32, false],
+ ["parser_error", 32, false],
["_padding_0", 5, false]
]
},
@@ -178,7 +179,14 @@
"header_unions" : [],
"header_union_stacks" : [],
"field_lists" : [],
- "errors" : [],
+ "errors" : [
+ ["NoError", 1],
+ ["PacketTooShort", 2],
+ ["NoMatch", 3],
+ ["StackOutOfBounds", 4],
+ ["HeaderTooShort", 5],
+ ["ParserTimeout", 6]
+ ],
"enums" : [],
"parsers" : [
{
@@ -485,13 +493,25 @@
"name" : "ingress.table0_control.table0_counter",
"id" : 1,
"is_direct" : true,
- "binding" : "ingress.table0_control.table0"
+ "binding" : "ingress.table0_control.table0",
+ "source_info" : {
+ "filename" : "include/table0.p4",
+ "line" : 27,
+ "column" : 50,
+ "source_fragment" : "table0_counter"
+ }
},
{
"name" : "ingress.wcmp_control.wcmp_table_counter",
"id" : 2,
"is_direct" : true,
- "binding" : "ingress.wcmp_control.wcmp_table"
+ "binding" : "ingress.wcmp_control.wcmp_table",
+ "source_info" : {
+ "filename" : "include/wcmp.p4",
+ "line" : 27,
+ "column" : 50,
+ "source_fragment" : "wcmp_table_counter"
+ }
},
{
"name" : "egress.port_counters_egress.egress_port_counter",
@@ -1338,6 +1358,12 @@
{
"name" : "ingress.wcmp_control.wcmp_selector",
"id" : 0,
+ "source_info" : {
+ "filename" : "include/wcmp.p4",
+ "line" : 28,
+ "column" : 55,
+ "source_fragment" : "wcmp_selector"
+ },
"max_size" : 64,
"selector" : {
"algo" : "crc16",
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 13a1d41..f83c2ea 100644
--- a/pipelines/basic/src/main/resources/p4c-out/bmv2/int.json
+++ b/pipelines/basic/src/main/resources/p4c-out/bmv2/int.json
@@ -40,6 +40,7 @@
["egress_rid", 16, false],
["checksum_error", 1, false],
["recirculate_flag", 32, false],
+ ["parser_error", 32, false],
["_padding_0", 5, false]
]
},
@@ -388,7 +389,14 @@
"header_unions" : [],
"header_union_stacks" : [],
"field_lists" : [],
- "errors" : [],
+ "errors" : [
+ ["NoError", 1],
+ ["PacketTooShort", 2],
+ ["NoMatch", 3],
+ ["StackOutOfBounds", 4],
+ ["HeaderTooShort", 5],
+ ["ParserTimeout", 6]
+ ],
"enums" : [],
"parsers" : [
{
@@ -970,43 +978,85 @@
"name" : "ingress.table0_control.table0_counter",
"id" : 1,
"is_direct" : true,
- "binding" : "ingress.table0_control.table0"
+ "binding" : "ingress.table0_control.table0",
+ "source_info" : {
+ "filename" : "include/table0.p4",
+ "line" : 27,
+ "column" : 50,
+ "source_fragment" : "table0_counter"
+ }
},
{
"name" : "egress.process_set_source_sink.counter_set_source",
"id" : 2,
"is_direct" : true,
- "binding" : "egress.process_set_source_sink.tb_set_source"
+ "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" : 3,
"is_direct" : true,
- "binding" : "egress.process_set_source_sink.tb_set_sink"
+ "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" : 4,
"is_direct" : true,
- "binding" : "egress.process_int_source.tb_int_source"
+ "binding" : "egress.process_int_source.tb_int_source",
+ "source_info" : {
+ "filename" : "include/int_source.p4",
+ "line" : 27,
+ "column" : 50,
+ "source_fragment" : "counter_int_source"
+ }
},
{
"name" : "egress.process_int_transit.counter_int_insert",
"id" : 5,
"is_direct" : true,
- "binding" : "egress.process_int_transit.tb_int_insert"
+ "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" : 6,
"is_direct" : true,
- "binding" : "egress.process_int_transit.tb_int_inst_0003"
+ "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" : 7,
"is_direct" : true,
- "binding" : "egress.process_int_transit.tb_int_inst_0407"
+ "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",
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
index c7d78e8..b20a1ff 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-full/bmv2/default/bmv2.json
@@ -56,6 +56,7 @@
["egress_rid", 16, false],
["checksum_error", 1, false],
["recirculate_flag", 32, false],
+ ["parser_error", 32, false],
["_padding", 5, false]
]
},
@@ -345,6 +346,8 @@
["switch_id", 32, false],
["new_words", 8, false],
["new_bytes", 16, false],
+ ["ig_tstamp", 32, false],
+ ["eg_tstamp", 32, false],
["_padding_1", 5, false]
]
}
@@ -614,7 +617,14 @@
"elements" : []
}
],
- "errors" : [],
+ "errors" : [
+ ["NoError", 1],
+ ["PacketTooShort", 2],
+ ["NoMatch", 3],
+ ["StackOutOfBounds", 4],
+ ["HeaderTooShort", 5],
+ ["ParserTimeout", 6]
+ ],
"enums" : [],
"parsers" : [
{
@@ -1529,85 +1539,169 @@
"name" : "FabricIngress.spgw_ingress.ue_counter",
"id" : 0,
"is_direct" : true,
- "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup"
+ "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup",
+ "source_info" : {
+ "filename" : "include/spgw.p4",
+ "line" : 51,
+ "column" : 50,
+ "source_fragment" : "ue_counter"
+ }
},
{
"name" : "FabricIngress.process_set_source_sink.counter_set_source",
"id" : 1,
"is_direct" : true,
- "binding" : "FabricIngress.process_set_source_sink.tb_set_source"
+ "binding" : "FabricIngress.process_set_source_sink.tb_set_source",
+ "source_info" : {
+ "filename" : "include/int/int_main.p4",
+ "line" : 39,
+ "column" : 50,
+ "source_fragment" : "counter_set_source"
+ }
},
{
"name" : "FabricIngress.process_set_source_sink.counter_set_sink",
"id" : 2,
"is_direct" : true,
- "binding" : "FabricIngress.process_set_source_sink.tb_set_sink"
+ "binding" : "FabricIngress.process_set_source_sink.tb_set_sink",
+ "source_info" : {
+ "filename" : "include/int/int_main.p4",
+ "line" : 58,
+ "column" : 50,
+ "source_fragment" : "counter_set_sink"
+ }
},
{
"name" : "FabricIngress.filtering.ingress_port_vlan_counter",
"id" : 3,
"is_direct" : true,
- "binding" : "FabricIngress.filtering.ingress_port_vlan"
+ "binding" : "FabricIngress.filtering.ingress_port_vlan",
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 34,
+ "column" : 50,
+ "source_fragment" : "ingress_port_vlan_counter"
+ }
},
{
"name" : "FabricIngress.filtering.fwd_classifier_counter",
"id" : 4,
"is_direct" : true,
- "binding" : "FabricIngress.filtering.fwd_classifier"
+ "binding" : "FabricIngress.filtering.fwd_classifier",
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 96,
+ "column" : 50,
+ "source_fragment" : "fwd_classifier_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.bridging_counter",
"id" : 5,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.bridging"
+ "binding" : "FabricIngress.forwarding.bridging",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 34,
+ "column" : 50,
+ "source_fragment" : "bridging_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.mpls_counter",
"id" : 6,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.mpls"
+ "binding" : "FabricIngress.forwarding.mpls",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 57,
+ "column" : 50,
+ "source_fragment" : "mpls_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.routing_v4_counter",
"id" : 7,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.routing_v4"
+ "binding" : "FabricIngress.forwarding.routing_v4",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 80,
+ "column" : 50,
+ "source_fragment" : "routing_v4_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.acl_counter",
"id" : 8,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.acl"
+ "binding" : "FabricIngress.forwarding.acl",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 107,
+ "column" : 50,
+ "source_fragment" : "acl_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.routing_v6_counter",
"id" : 9,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.routing_v6"
+ "binding" : "FabricIngress.forwarding.routing_v6",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 171,
+ "column" : 50,
+ "source_fragment" : "routing_v6_counter"
+ }
},
{
"name" : "FabricIngress.next.vlan_meta_counter",
"id" : 10,
"is_direct" : true,
- "binding" : "FabricIngress.next.vlan_meta"
+ "binding" : "FabricIngress.next.vlan_meta",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 58,
+ "column" : 50,
+ "source_fragment" : "vlan_meta_counter"
+ }
},
{
"name" : "FabricIngress.next.simple_counter",
"id" : 11,
"is_direct" : true,
- "binding" : "FabricIngress.next.simple"
+ "binding" : "FabricIngress.next.simple",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 82,
+ "column" : 50,
+ "source_fragment" : "simple_counter"
+ }
},
{
"name" : "FabricIngress.next.hashed_counter",
"id" : 12,
"is_direct" : true,
- "binding" : "FabricIngress.next.hashed"
+ "binding" : "FabricIngress.next.hashed",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 146,
+ "column" : 50,
+ "source_fragment" : "hashed_counter"
+ }
},
{
"name" : "FabricIngress.next.multicast_counter",
"id" : 13,
"is_direct" : true,
- "binding" : "FabricIngress.next.multicast"
+ "binding" : "FabricIngress.next.multicast",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 199,
+ "column" : 50,
+ "source_fragment" : "multicast_counter"
+ }
},
{
"name" : "FabricIngress.port_counters_control.egress_port_counter",
@@ -1637,13 +1731,25 @@
"name" : "FabricEgress.process_int_main.process_int_source.counter_int_source",
"id" : 16,
"is_direct" : true,
- "binding" : "FabricEgress.process_int_main.process_int_source.tb_int_source"
+ "binding" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
+ "source_info" : {
+ "filename" : "include/int/int_source.p4",
+ "line" : 27,
+ "column" : 50,
+ "source_fragment" : "counter_int_source"
+ }
},
{
"name" : "FabricEgress.egress_next.egress_vlan_counter",
"id" : 17,
"is_direct" : true,
- "binding" : "FabricEgress.egress_next.egress_vlan"
+ "binding" : "FabricEgress.egress_next.egress_vlan",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 250,
+ "column" : 50,
+ "source_fragment" : "egress_vlan_counter"
+ }
}
],
"register_arrays" : [],
@@ -2278,7 +2384,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 91,
+ "line" : 99,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -2942,7 +3048,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -3018,7 +3124,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -3133,7 +3239,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -3209,7 +3315,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -3501,7 +3607,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -3577,7 +3683,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -3692,7 +3798,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -3768,7 +3874,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -3886,7 +3992,7 @@
],
"source_info" : {
"filename" : "fabric.p4",
- "line" : 54,
+ "line" : 55,
"column" : 50,
"source_fragment" : "hdr.gtpu_ipv4"
}
@@ -3901,7 +4007,7 @@
],
"source_info" : {
"filename" : "fabric.p4",
- "line" : 54,
+ "line" : 55,
"column" : 65,
"source_fragment" : "hdr.gtpu_udp"
}
@@ -4192,7 +4298,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 121,
+ "line" : 129,
"column" : 36,
"source_fragment" : "2w1; ..."
}
@@ -4278,7 +4384,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 122,
+ "line" : 130,
"column" : 38,
"source_fragment" : "2w2; ..."
}
@@ -4304,7 +4410,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 128,
"column" : 37,
"source_fragment" : "2w0; ..."
}
@@ -4475,7 +4581,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 111,
+ "line" : 119,
"column" : 31,
"source_fragment" : "7; ..."
}
@@ -4501,7 +4607,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 94,
+ "line" : 102,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -4984,7 +5090,13 @@
"type" : "hexstr",
"value" : "0x1"
}
- ]
+ ],
+ "source_info" : {
+ "filename" : "include/int/int_main.p4",
+ "line" : 85,
+ "column" : 12,
+ "source_fragment" : "clone(CloneType.I2E, REPORT_MIRROR_SESSION_ID)"
+ }
}
]
},
@@ -5131,7 +5243,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 103,
+ "line" : 111,
"column" : 28,
"source_fragment" : "5; ..."
}
@@ -5287,7 +5399,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 116,
+ "line" : 124,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -5306,7 +5418,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 100,
+ "line" : 108,
"column" : 25,
"source_fragment" : "17; ..."
}
@@ -5740,7 +5852,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 131,
+ "line" : 139,
"column" : 36,
"source_fragment" : "4; ..."
}
@@ -6158,7 +6270,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 127,
+ "line" : 135,
"column" : 24,
"source_fragment" : "0x1; ..."
}
@@ -12188,7 +12300,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 94,
+ "line" : 102,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -12416,7 +12528,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 100,
+ "line" : 108,
"column" : 25,
"source_fragment" : "17; ..."
}
@@ -12602,7 +12714,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 137,
+ "line" : 145,
"column" : 31,
"source_fragment" : "0; ..."
}
@@ -12697,7 +12809,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 141,
+ "line" : 149,
"column" : 21,
"source_fragment" : "1; ..."
}
@@ -13300,7 +13412,7 @@
],
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 374,
+ "line" : 376,
"column" : 12,
"source_fragment" : "return"
}
@@ -13349,7 +13461,7 @@
],
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 382,
+ "line" : 384,
"column" : 12,
"source_fragment" : "hdr.ipv4.total_len = hdr.ipv4.total_len + fmeta.int_meta.new_bytes"
}
@@ -13398,7 +13510,7 @@
],
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 379,
+ "line" : 381,
"column" : 8,
"source_fragment" : "hdr.int_header.total_hop_cnt = hdr.int_header.total_hop_cnt + 1"
}
@@ -13447,7 +13559,7 @@
],
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 385,
+ "line" : 387,
"column" : 12,
"source_fragment" : "hdr.udp.len = hdr.udp.len + fmeta.int_meta.new_bytes"
}
@@ -13496,7 +13608,7 @@
],
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 388,
+ "line" : 390,
"column" : 12,
"source_fragment" : "hdr.intl4_shim.len_words = hdr.intl4_shim.len_words + fmeta.int_meta.new_words"
}
@@ -14952,6 +15064,12 @@
{
"name" : "FabricIngress.next.ecmp_selector",
"id" : 0,
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 145,
+ "column" : 55,
+ "source_fragment" : "ecmp_selector"
+ },
"max_size" : 64,
"selector" : {
"algo" : "crc16",
@@ -15578,7 +15696,7 @@
"id" : 1,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 79,
+ "line" : 80,
"column" : 8,
"source_fragment" : "FabricEgress"
},
@@ -15885,7 +16003,7 @@
"id" : 59,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 284,
+ "line" : 286,
"column" : 10,
"source_fragment" : "tb_int_inst_0003"
},
@@ -15899,7 +16017,7 @@
],
"match_type" : "exact",
"type" : "simple",
- "max_size" : 16,
+ "max_size" : 1024,
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
@@ -15933,6 +16051,12 @@
},
"entries" : [
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 310,
+ "column" : 12,
+ "source_fragment" : "(0x0) : int_set_header_0003_i0()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -15946,6 +16070,12 @@
"priority" : 1
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 311,
+ "column" : 12,
+ "source_fragment" : "(0x1) : int_set_header_0003_i1()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -15959,6 +16089,12 @@
"priority" : 2
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 312,
+ "column" : 12,
+ "source_fragment" : "(0x2) : int_set_header_0003_i2()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -15972,6 +16108,12 @@
"priority" : 3
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 313,
+ "column" : 12,
+ "source_fragment" : "(0x3) : int_set_header_0003_i3()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -15985,6 +16127,12 @@
"priority" : 4
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 314,
+ "column" : 12,
+ "source_fragment" : "(0x4) : int_set_header_0003_i4()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -15998,6 +16146,12 @@
"priority" : 5
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 315,
+ "column" : 12,
+ "source_fragment" : "(0x5) : int_set_header_0003_i5()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16011,6 +16165,12 @@
"priority" : 6
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 316,
+ "column" : 12,
+ "source_fragment" : "(0x6) : int_set_header_0003_i6()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16024,6 +16184,12 @@
"priority" : 7
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 317,
+ "column" : 12,
+ "source_fragment" : "(0x7) : int_set_header_0003_i7()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16037,6 +16203,12 @@
"priority" : 8
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 318,
+ "column" : 12,
+ "source_fragment" : "(0x8) : int_set_header_0003_i8()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16050,6 +16222,12 @@
"priority" : 9
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 319,
+ "column" : 12,
+ "source_fragment" : "(0x9) : int_set_header_0003_i9()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16063,6 +16241,12 @@
"priority" : 10
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 320,
+ "column" : 12,
+ "source_fragment" : "(0xA) : int_set_header_0003_i10()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16076,6 +16260,12 @@
"priority" : 11
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 321,
+ "column" : 12,
+ "source_fragment" : "(0xB) : int_set_header_0003_i11()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16089,6 +16279,12 @@
"priority" : 12
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 322,
+ "column" : 12,
+ "source_fragment" : "(0xC) : int_set_header_0003_i12()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16102,6 +16298,12 @@
"priority" : 13
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 323,
+ "column" : 12,
+ "source_fragment" : "(0xD) : int_set_header_0003_i13()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16115,6 +16317,12 @@
"priority" : 14
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 324,
+ "column" : 12,
+ "source_fragment" : "(0xE) : int_set_header_0003_i14()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16128,6 +16336,12 @@
"priority" : 15
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 325,
+ "column" : 12,
+ "source_fragment" : "(0xF) : int_set_header_0003_i15()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16147,7 +16361,7 @@
"id" : 60,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 328,
+ "line" : 330,
"column" : 10,
"source_fragment" : "tb_int_inst_0407"
},
@@ -16161,7 +16375,7 @@
],
"match_type" : "exact",
"type" : "simple",
- "max_size" : 16,
+ "max_size" : 1024,
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
@@ -16195,6 +16409,12 @@
},
"entries" : [
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 354,
+ "column" : 12,
+ "source_fragment" : "(0x0) : int_set_header_0407_i0()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16208,6 +16428,12 @@
"priority" : 1
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 355,
+ "column" : 12,
+ "source_fragment" : "(0x1) : int_set_header_0407_i1()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16221,6 +16447,12 @@
"priority" : 2
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 356,
+ "column" : 12,
+ "source_fragment" : "(0x2) : int_set_header_0407_i2()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16234,6 +16466,12 @@
"priority" : 3
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 357,
+ "column" : 12,
+ "source_fragment" : "(0x3) : int_set_header_0407_i3()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16247,6 +16485,12 @@
"priority" : 4
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 358,
+ "column" : 12,
+ "source_fragment" : "(0x4) : int_set_header_0407_i4()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16260,6 +16504,12 @@
"priority" : 5
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 359,
+ "column" : 12,
+ "source_fragment" : "(0x5) : int_set_header_0407_i5()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16273,6 +16523,12 @@
"priority" : 6
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 360,
+ "column" : 12,
+ "source_fragment" : "(0x6) : int_set_header_0407_i6()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16286,6 +16542,12 @@
"priority" : 7
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 361,
+ "column" : 12,
+ "source_fragment" : "(0x7) : int_set_header_0407_i7()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16299,6 +16561,12 @@
"priority" : 8
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 362,
+ "column" : 12,
+ "source_fragment" : "(0x8) : int_set_header_0407_i8()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16312,6 +16580,12 @@
"priority" : 9
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 363,
+ "column" : 12,
+ "source_fragment" : "(0x9) : int_set_header_0407_i9()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16325,6 +16599,12 @@
"priority" : 10
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 364,
+ "column" : 12,
+ "source_fragment" : "(0xA) : int_set_header_0407_i10()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16338,6 +16618,12 @@
"priority" : 11
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 365,
+ "column" : 12,
+ "source_fragment" : "(0xB) : int_set_header_0407_i11()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16351,6 +16637,12 @@
"priority" : 12
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 366,
+ "column" : 12,
+ "source_fragment" : "(0xC) : int_set_header_0407_i12()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16364,6 +16656,12 @@
"priority" : 13
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 367,
+ "column" : 12,
+ "source_fragment" : "(0xD) : int_set_header_0407_i13()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16377,6 +16675,12 @@
"priority" : 14
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 368,
+ "column" : 12,
+ "source_fragment" : "(0xE) : int_set_header_0407_i14()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16390,6 +16694,12 @@
"priority" : 15
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 369,
+ "column" : 12,
+ "source_fragment" : "(0xF) : int_set_header_0407_i15()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -16964,7 +17274,7 @@
"id" : 32,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 373,
+ "line" : 375,
"column" : 12,
"source_fragment" : "fmeta.int_meta.transit == false"
},
@@ -17021,7 +17331,7 @@
"id" : 34,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 381,
+ "line" : 383,
"column" : 12,
"source_fragment" : "hdr.ipv4.isValid()"
},
@@ -17044,7 +17354,7 @@
"id" : 35,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 384,
+ "line" : 386,
"column" : 12,
"source_fragment" : "hdr.udp.isValid()"
},
@@ -17067,7 +17377,7 @@
"id" : 36,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 387,
+ "line" : 389,
"column" : 12,
"source_fragment" : "hdr.intl4_shim.isValid()"
},
@@ -17151,6 +17461,12 @@
{
"name" : "cksum",
"id" : 0,
+ "source_info" : {
+ "filename" : "include/checksum.p4",
+ "line" : 28,
+ "column" : 8,
+ "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
+ },
"target" : ["ipv4", "hdr_checksum"],
"type" : "generic",
"calculation" : "calc",
@@ -17169,6 +17485,12 @@
{
"name" : "cksum_0",
"id" : 1,
+ "source_info" : {
+ "filename" : "include/spgw.p4",
+ "line" : 237,
+ "column" : 8,
+ "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
+ },
"target" : ["gtpu_ipv4", "hdr_checksum"],
"type" : "generic",
"calculation" : "calc_0",
@@ -17187,6 +17509,12 @@
{
"name" : "cksum_1",
"id" : 2,
+ "source_info" : {
+ "filename" : "include/checksum.p4",
+ "line" : 57,
+ "column" : 8,
+ "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
+ },
"target" : ["ipv4", "hdr_checksum"],
"type" : "generic",
"calculation" : "calc_1",
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json
index 293212f..4f390ee 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/bmv2.json
@@ -50,6 +50,7 @@
["egress_rid", 16, false],
["checksum_error", 1, false],
["recirculate_flag", 32, false],
+ ["parser_error", 32, false],
["_padding", 5, false]
]
},
@@ -283,6 +284,8 @@
["switch_id", 32, false],
["new_words", 8, false],
["new_bytes", 16, false],
+ ["ig_tstamp", 32, false],
+ ["eg_tstamp", 32, false],
["_padding_0", 5, false]
]
}
@@ -469,7 +472,14 @@
"header_unions" : [],
"header_union_stacks" : [],
"field_lists" : [],
- "errors" : [],
+ "errors" : [
+ ["NoError", 1],
+ ["PacketTooShort", 2],
+ ["NoMatch", 3],
+ ["StackOutOfBounds", 4],
+ ["HeaderTooShort", 5],
+ ["ParserTimeout", 6]
+ ],
"enums" : [],
"parsers" : [
{
@@ -1016,67 +1026,133 @@
"name" : "FabricIngress.process_set_source_sink.counter_set_source",
"id" : 0,
"is_direct" : true,
- "binding" : "FabricIngress.process_set_source_sink.tb_set_source"
+ "binding" : "FabricIngress.process_set_source_sink.tb_set_source",
+ "source_info" : {
+ "filename" : "include/int/int_main.p4",
+ "line" : 39,
+ "column" : 50,
+ "source_fragment" : "counter_set_source"
+ }
},
{
"name" : "FabricIngress.filtering.ingress_port_vlan_counter",
"id" : 1,
"is_direct" : true,
- "binding" : "FabricIngress.filtering.ingress_port_vlan"
+ "binding" : "FabricIngress.filtering.ingress_port_vlan",
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 34,
+ "column" : 50,
+ "source_fragment" : "ingress_port_vlan_counter"
+ }
},
{
"name" : "FabricIngress.filtering.fwd_classifier_counter",
"id" : 2,
"is_direct" : true,
- "binding" : "FabricIngress.filtering.fwd_classifier"
+ "binding" : "FabricIngress.filtering.fwd_classifier",
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 96,
+ "column" : 50,
+ "source_fragment" : "fwd_classifier_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.bridging_counter",
"id" : 3,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.bridging"
+ "binding" : "FabricIngress.forwarding.bridging",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 34,
+ "column" : 50,
+ "source_fragment" : "bridging_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.mpls_counter",
"id" : 4,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.mpls"
+ "binding" : "FabricIngress.forwarding.mpls",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 57,
+ "column" : 50,
+ "source_fragment" : "mpls_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.routing_v4_counter",
"id" : 5,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.routing_v4"
+ "binding" : "FabricIngress.forwarding.routing_v4",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 80,
+ "column" : 50,
+ "source_fragment" : "routing_v4_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.acl_counter",
"id" : 6,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.acl"
+ "binding" : "FabricIngress.forwarding.acl",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 107,
+ "column" : 50,
+ "source_fragment" : "acl_counter"
+ }
},
{
"name" : "FabricIngress.next.vlan_meta_counter",
"id" : 7,
"is_direct" : true,
- "binding" : "FabricIngress.next.vlan_meta"
+ "binding" : "FabricIngress.next.vlan_meta",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 58,
+ "column" : 50,
+ "source_fragment" : "vlan_meta_counter"
+ }
},
{
"name" : "FabricIngress.next.simple_counter",
"id" : 8,
"is_direct" : true,
- "binding" : "FabricIngress.next.simple"
+ "binding" : "FabricIngress.next.simple",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 82,
+ "column" : 50,
+ "source_fragment" : "simple_counter"
+ }
},
{
"name" : "FabricIngress.next.hashed_counter",
"id" : 9,
"is_direct" : true,
- "binding" : "FabricIngress.next.hashed"
+ "binding" : "FabricIngress.next.hashed",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 146,
+ "column" : 50,
+ "source_fragment" : "hashed_counter"
+ }
},
{
"name" : "FabricIngress.next.multicast_counter",
"id" : 10,
"is_direct" : true,
- "binding" : "FabricIngress.next.multicast"
+ "binding" : "FabricIngress.next.multicast",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 199,
+ "column" : 50,
+ "source_fragment" : "multicast_counter"
+ }
},
{
"name" : "FabricIngress.port_counters_control.egress_port_counter",
@@ -1106,13 +1182,25 @@
"name" : "FabricEgress.process_int_main.process_int_source.counter_int_source",
"id" : 13,
"is_direct" : true,
- "binding" : "FabricEgress.process_int_main.process_int_source.tb_int_source"
+ "binding" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
+ "source_info" : {
+ "filename" : "include/int/int_source.p4",
+ "line" : 27,
+ "column" : 50,
+ "source_fragment" : "counter_int_source"
+ }
},
{
"name" : "FabricEgress.egress_next.egress_vlan_counter",
"id" : 14,
"is_direct" : true,
- "binding" : "FabricEgress.egress_next.egress_vlan"
+ "binding" : "FabricEgress.egress_next.egress_vlan",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 250,
+ "column" : 50,
+ "source_fragment" : "egress_vlan_counter"
+ }
}
],
"register_arrays" : [],
@@ -1470,7 +1558,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 91,
+ "line" : 99,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -2103,7 +2191,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -2179,7 +2267,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -2294,7 +2382,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -2370,7 +2458,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -2662,7 +2750,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -2738,7 +2826,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -2853,7 +2941,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -2929,7 +3017,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -3145,7 +3233,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 111,
+ "line" : 119,
"column" : 31,
"source_fragment" : "7; ..."
}
@@ -3171,7 +3259,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 94,
+ "line" : 102,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -3743,7 +3831,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 131,
+ "line" : 139,
"column" : 36,
"source_fragment" : "4; ..."
}
@@ -4161,7 +4249,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 127,
+ "line" : 135,
"column" : 24,
"source_fragment" : "0x1; ..."
}
@@ -10280,7 +10368,7 @@
],
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 374,
+ "line" : 376,
"column" : 12,
"source_fragment" : "return"
}
@@ -10329,7 +10417,7 @@
],
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 382,
+ "line" : 384,
"column" : 12,
"source_fragment" : "hdr.ipv4.total_len = hdr.ipv4.total_len + fmeta.int_meta.new_bytes"
}
@@ -10378,7 +10466,7 @@
],
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 379,
+ "line" : 381,
"column" : 8,
"source_fragment" : "hdr.int_header.total_hop_cnt = hdr.int_header.total_hop_cnt + 1"
}
@@ -10427,7 +10515,7 @@
],
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 385,
+ "line" : 387,
"column" : 12,
"source_fragment" : "hdr.udp.len = hdr.udp.len + fmeta.int_meta.new_bytes"
}
@@ -10476,7 +10564,7 @@
],
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 388,
+ "line" : 390,
"column" : 12,
"source_fragment" : "hdr.intl4_shim.len_words = hdr.intl4_shim.len_words + fmeta.int_meta.new_words"
}
@@ -11370,6 +11458,12 @@
{
"name" : "FabricIngress.next.ecmp_selector",
"id" : 0,
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 145,
+ "column" : 55,
+ "source_fragment" : "ecmp_selector"
+ },
"max_size" : 64,
"selector" : {
"algo" : "crc16",
@@ -11743,7 +11837,7 @@
"id" : 1,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 79,
+ "line" : 80,
"column" : 8,
"source_fragment" : "FabricEgress"
},
@@ -12027,7 +12121,7 @@
"id" : 36,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 284,
+ "line" : 286,
"column" : 10,
"source_fragment" : "tb_int_inst_0003"
},
@@ -12041,7 +12135,7 @@
],
"match_type" : "exact",
"type" : "simple",
- "max_size" : 16,
+ "max_size" : 1024,
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
@@ -12075,6 +12169,12 @@
},
"entries" : [
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 310,
+ "column" : 12,
+ "source_fragment" : "(0x0) : int_set_header_0003_i0()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12088,6 +12188,12 @@
"priority" : 1
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 311,
+ "column" : 12,
+ "source_fragment" : "(0x1) : int_set_header_0003_i1()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12101,6 +12207,12 @@
"priority" : 2
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 312,
+ "column" : 12,
+ "source_fragment" : "(0x2) : int_set_header_0003_i2()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12114,6 +12226,12 @@
"priority" : 3
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 313,
+ "column" : 12,
+ "source_fragment" : "(0x3) : int_set_header_0003_i3()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12127,6 +12245,12 @@
"priority" : 4
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 314,
+ "column" : 12,
+ "source_fragment" : "(0x4) : int_set_header_0003_i4()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12140,6 +12264,12 @@
"priority" : 5
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 315,
+ "column" : 12,
+ "source_fragment" : "(0x5) : int_set_header_0003_i5()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12153,6 +12283,12 @@
"priority" : 6
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 316,
+ "column" : 12,
+ "source_fragment" : "(0x6) : int_set_header_0003_i6()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12166,6 +12302,12 @@
"priority" : 7
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 317,
+ "column" : 12,
+ "source_fragment" : "(0x7) : int_set_header_0003_i7()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12179,6 +12321,12 @@
"priority" : 8
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 318,
+ "column" : 12,
+ "source_fragment" : "(0x8) : int_set_header_0003_i8()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12192,6 +12340,12 @@
"priority" : 9
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 319,
+ "column" : 12,
+ "source_fragment" : "(0x9) : int_set_header_0003_i9()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12205,6 +12359,12 @@
"priority" : 10
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 320,
+ "column" : 12,
+ "source_fragment" : "(0xA) : int_set_header_0003_i10()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12218,6 +12378,12 @@
"priority" : 11
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 321,
+ "column" : 12,
+ "source_fragment" : "(0xB) : int_set_header_0003_i11()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12231,6 +12397,12 @@
"priority" : 12
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 322,
+ "column" : 12,
+ "source_fragment" : "(0xC) : int_set_header_0003_i12()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12244,6 +12416,12 @@
"priority" : 13
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 323,
+ "column" : 12,
+ "source_fragment" : "(0xD) : int_set_header_0003_i13()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12257,6 +12435,12 @@
"priority" : 14
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 324,
+ "column" : 12,
+ "source_fragment" : "(0xE) : int_set_header_0003_i14()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12270,6 +12454,12 @@
"priority" : 15
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 325,
+ "column" : 12,
+ "source_fragment" : "(0xF) : int_set_header_0003_i15()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12289,7 +12479,7 @@
"id" : 37,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 328,
+ "line" : 330,
"column" : 10,
"source_fragment" : "tb_int_inst_0407"
},
@@ -12303,7 +12493,7 @@
],
"match_type" : "exact",
"type" : "simple",
- "max_size" : 16,
+ "max_size" : 1024,
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
@@ -12337,6 +12527,12 @@
},
"entries" : [
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 354,
+ "column" : 12,
+ "source_fragment" : "(0x0) : int_set_header_0407_i0()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12350,6 +12546,12 @@
"priority" : 1
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 355,
+ "column" : 12,
+ "source_fragment" : "(0x1) : int_set_header_0407_i1()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12363,6 +12565,12 @@
"priority" : 2
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 356,
+ "column" : 12,
+ "source_fragment" : "(0x2) : int_set_header_0407_i2()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12376,6 +12584,12 @@
"priority" : 3
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 357,
+ "column" : 12,
+ "source_fragment" : "(0x3) : int_set_header_0407_i3()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12389,6 +12603,12 @@
"priority" : 4
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 358,
+ "column" : 12,
+ "source_fragment" : "(0x4) : int_set_header_0407_i4()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12402,6 +12622,12 @@
"priority" : 5
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 359,
+ "column" : 12,
+ "source_fragment" : "(0x5) : int_set_header_0407_i5()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12415,6 +12641,12 @@
"priority" : 6
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 360,
+ "column" : 12,
+ "source_fragment" : "(0x6) : int_set_header_0407_i6()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12428,6 +12660,12 @@
"priority" : 7
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 361,
+ "column" : 12,
+ "source_fragment" : "(0x7) : int_set_header_0407_i7()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12441,6 +12679,12 @@
"priority" : 8
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 362,
+ "column" : 12,
+ "source_fragment" : "(0x8) : int_set_header_0407_i8()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12454,6 +12698,12 @@
"priority" : 9
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 363,
+ "column" : 12,
+ "source_fragment" : "(0x9) : int_set_header_0407_i9()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12467,6 +12717,12 @@
"priority" : 10
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 364,
+ "column" : 12,
+ "source_fragment" : "(0xA) : int_set_header_0407_i10()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12480,6 +12736,12 @@
"priority" : 11
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 365,
+ "column" : 12,
+ "source_fragment" : "(0xB) : int_set_header_0407_i11()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12493,6 +12755,12 @@
"priority" : 12
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 366,
+ "column" : 12,
+ "source_fragment" : "(0xC) : int_set_header_0407_i12()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12506,6 +12774,12 @@
"priority" : 13
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 367,
+ "column" : 12,
+ "source_fragment" : "(0xD) : int_set_header_0407_i13()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12519,6 +12793,12 @@
"priority" : 14
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 368,
+ "column" : 12,
+ "source_fragment" : "(0xE) : int_set_header_0407_i14()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -12532,6 +12812,12 @@
"priority" : 15
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 369,
+ "column" : 12,
+ "source_fragment" : "(0xF) : int_set_header_0407_i15()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -13004,7 +13290,7 @@
"id" : 21,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 373,
+ "line" : 375,
"column" : 12,
"source_fragment" : "fmeta.int_meta.transit == false"
},
@@ -13061,7 +13347,7 @@
"id" : 23,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 381,
+ "line" : 383,
"column" : 12,
"source_fragment" : "hdr.ipv4.isValid()"
},
@@ -13084,7 +13370,7 @@
"id" : 24,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 384,
+ "line" : 386,
"column" : 12,
"source_fragment" : "hdr.udp.isValid()"
},
@@ -13107,7 +13393,7 @@
"id" : 25,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 387,
+ "line" : 389,
"column" : 12,
"source_fragment" : "hdr.intl4_shim.isValid()"
},
@@ -13132,6 +13418,12 @@
{
"name" : "cksum",
"id" : 0,
+ "source_info" : {
+ "filename" : "include/checksum.p4",
+ "line" : 28,
+ "column" : 8,
+ "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
+ },
"target" : ["ipv4", "hdr_checksum"],
"type" : "generic",
"calculation" : "calc",
@@ -13150,6 +13442,12 @@
{
"name" : "cksum_0",
"id" : 1,
+ "source_info" : {
+ "filename" : "include/checksum.p4",
+ "line" : 57,
+ "column" : 8,
+ "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
+ },
"target" : ["ipv4", "hdr_checksum"],
"type" : "generic",
"calculation" : "calc_0",
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json
index 97da4eb..a4cce10 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw-int/bmv2/default/bmv2.json
@@ -55,6 +55,7 @@
["egress_rid", 16, false],
["checksum_error", 1, false],
["recirculate_flag", 32, false],
+ ["parser_error", 32, false],
["_padding", 5, false]
]
},
@@ -315,6 +316,8 @@
["switch_id", 32, false],
["new_words", 8, false],
["new_bytes", 16, false],
+ ["ig_tstamp", 32, false],
+ ["eg_tstamp", 32, false],
["_padding_1", 5, false]
]
}
@@ -543,7 +546,14 @@
"header_unions" : [],
"header_union_stacks" : [],
"field_lists" : [],
- "errors" : [],
+ "errors" : [
+ ["NoError", 1],
+ ["PacketTooShort", 2],
+ ["NoMatch", 3],
+ ["StackOutOfBounds", 4],
+ ["HeaderTooShort", 5],
+ ["ParserTimeout", 6]
+ ],
"enums" : [],
"parsers" : [
{
@@ -1284,73 +1294,145 @@
"name" : "FabricIngress.spgw_ingress.ue_counter",
"id" : 0,
"is_direct" : true,
- "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup"
+ "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup",
+ "source_info" : {
+ "filename" : "include/spgw.p4",
+ "line" : 51,
+ "column" : 50,
+ "source_fragment" : "ue_counter"
+ }
},
{
"name" : "FabricIngress.process_set_source_sink.counter_set_source",
"id" : 1,
"is_direct" : true,
- "binding" : "FabricIngress.process_set_source_sink.tb_set_source"
+ "binding" : "FabricIngress.process_set_source_sink.tb_set_source",
+ "source_info" : {
+ "filename" : "include/int/int_main.p4",
+ "line" : 39,
+ "column" : 50,
+ "source_fragment" : "counter_set_source"
+ }
},
{
"name" : "FabricIngress.filtering.ingress_port_vlan_counter",
"id" : 2,
"is_direct" : true,
- "binding" : "FabricIngress.filtering.ingress_port_vlan"
+ "binding" : "FabricIngress.filtering.ingress_port_vlan",
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 34,
+ "column" : 50,
+ "source_fragment" : "ingress_port_vlan_counter"
+ }
},
{
"name" : "FabricIngress.filtering.fwd_classifier_counter",
"id" : 3,
"is_direct" : true,
- "binding" : "FabricIngress.filtering.fwd_classifier"
+ "binding" : "FabricIngress.filtering.fwd_classifier",
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 96,
+ "column" : 50,
+ "source_fragment" : "fwd_classifier_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.bridging_counter",
"id" : 4,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.bridging"
+ "binding" : "FabricIngress.forwarding.bridging",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 34,
+ "column" : 50,
+ "source_fragment" : "bridging_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.mpls_counter",
"id" : 5,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.mpls"
+ "binding" : "FabricIngress.forwarding.mpls",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 57,
+ "column" : 50,
+ "source_fragment" : "mpls_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.routing_v4_counter",
"id" : 6,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.routing_v4"
+ "binding" : "FabricIngress.forwarding.routing_v4",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 80,
+ "column" : 50,
+ "source_fragment" : "routing_v4_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.acl_counter",
"id" : 7,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.acl"
+ "binding" : "FabricIngress.forwarding.acl",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 107,
+ "column" : 50,
+ "source_fragment" : "acl_counter"
+ }
},
{
"name" : "FabricIngress.next.vlan_meta_counter",
"id" : 8,
"is_direct" : true,
- "binding" : "FabricIngress.next.vlan_meta"
+ "binding" : "FabricIngress.next.vlan_meta",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 58,
+ "column" : 50,
+ "source_fragment" : "vlan_meta_counter"
+ }
},
{
"name" : "FabricIngress.next.simple_counter",
"id" : 9,
"is_direct" : true,
- "binding" : "FabricIngress.next.simple"
+ "binding" : "FabricIngress.next.simple",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 82,
+ "column" : 50,
+ "source_fragment" : "simple_counter"
+ }
},
{
"name" : "FabricIngress.next.hashed_counter",
"id" : 10,
"is_direct" : true,
- "binding" : "FabricIngress.next.hashed"
+ "binding" : "FabricIngress.next.hashed",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 146,
+ "column" : 50,
+ "source_fragment" : "hashed_counter"
+ }
},
{
"name" : "FabricIngress.next.multicast_counter",
"id" : 11,
"is_direct" : true,
- "binding" : "FabricIngress.next.multicast"
+ "binding" : "FabricIngress.next.multicast",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 199,
+ "column" : 50,
+ "source_fragment" : "multicast_counter"
+ }
},
{
"name" : "FabricIngress.port_counters_control.egress_port_counter",
@@ -1380,13 +1462,25 @@
"name" : "FabricEgress.process_int_main.process_int_source.counter_int_source",
"id" : 14,
"is_direct" : true,
- "binding" : "FabricEgress.process_int_main.process_int_source.tb_int_source"
+ "binding" : "FabricEgress.process_int_main.process_int_source.tb_int_source",
+ "source_info" : {
+ "filename" : "include/int/int_source.p4",
+ "line" : 27,
+ "column" : 50,
+ "source_fragment" : "counter_int_source"
+ }
},
{
"name" : "FabricEgress.egress_next.egress_vlan_counter",
"id" : 15,
"is_direct" : true,
- "binding" : "FabricEgress.egress_next.egress_vlan"
+ "binding" : "FabricEgress.egress_next.egress_vlan",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 250,
+ "column" : 50,
+ "source_fragment" : "egress_vlan_counter"
+ }
}
],
"register_arrays" : [],
@@ -1973,7 +2067,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 91,
+ "line" : 99,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -2606,7 +2700,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -2682,7 +2776,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -2797,7 +2891,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -2873,7 +2967,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -3165,7 +3259,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -3241,7 +3335,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -3356,7 +3450,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -3432,7 +3526,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -3550,7 +3644,7 @@
],
"source_info" : {
"filename" : "fabric.p4",
- "line" : 54,
+ "line" : 55,
"column" : 50,
"source_fragment" : "hdr.gtpu_ipv4"
}
@@ -3565,7 +3659,7 @@
],
"source_info" : {
"filename" : "fabric.p4",
- "line" : 54,
+ "line" : 55,
"column" : 65,
"source_fragment" : "hdr.gtpu_udp"
}
@@ -3856,7 +3950,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 121,
+ "line" : 129,
"column" : 36,
"source_fragment" : "2w1; ..."
}
@@ -3942,7 +4036,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 122,
+ "line" : 130,
"column" : 38,
"source_fragment" : "2w2; ..."
}
@@ -3968,7 +4062,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 128,
"column" : 37,
"source_fragment" : "2w0; ..."
}
@@ -4139,7 +4233,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 111,
+ "line" : 119,
"column" : 31,
"source_fragment" : "7; ..."
}
@@ -4165,7 +4259,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 94,
+ "line" : 102,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -4720,7 +4814,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 103,
+ "line" : 111,
"column" : 28,
"source_fragment" : "5; ..."
}
@@ -4876,7 +4970,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 116,
+ "line" : 124,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -4895,7 +4989,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 100,
+ "line" : 108,
"column" : 25,
"source_fragment" : "17; ..."
}
@@ -5329,7 +5423,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 131,
+ "line" : 139,
"column" : 36,
"source_fragment" : "4; ..."
}
@@ -5747,7 +5841,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 127,
+ "line" : 135,
"column" : 24,
"source_fragment" : "0x1; ..."
}
@@ -11866,7 +11960,7 @@
],
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 374,
+ "line" : 376,
"column" : 12,
"source_fragment" : "return"
}
@@ -11915,7 +12009,7 @@
],
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 382,
+ "line" : 384,
"column" : 12,
"source_fragment" : "hdr.ipv4.total_len = hdr.ipv4.total_len + fmeta.int_meta.new_bytes"
}
@@ -11964,7 +12058,7 @@
],
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 379,
+ "line" : 381,
"column" : 8,
"source_fragment" : "hdr.int_header.total_hop_cnt = hdr.int_header.total_hop_cnt + 1"
}
@@ -12013,7 +12107,7 @@
],
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 385,
+ "line" : 387,
"column" : 12,
"source_fragment" : "hdr.udp.len = hdr.udp.len + fmeta.int_meta.new_bytes"
}
@@ -12062,7 +12156,7 @@
],
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 388,
+ "line" : 390,
"column" : 12,
"source_fragment" : "hdr.intl4_shim.len_words = hdr.intl4_shim.len_words + fmeta.int_meta.new_words"
}
@@ -13398,6 +13492,12 @@
{
"name" : "FabricIngress.next.ecmp_selector",
"id" : 0,
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 145,
+ "column" : 55,
+ "source_fragment" : "ecmp_selector"
+ },
"max_size" : 64,
"selector" : {
"algo" : "crc16",
@@ -13942,7 +14042,7 @@
"id" : 1,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 79,
+ "line" : 80,
"column" : 8,
"source_fragment" : "FabricEgress"
},
@@ -14249,7 +14349,7 @@
"id" : 55,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 284,
+ "line" : 286,
"column" : 10,
"source_fragment" : "tb_int_inst_0003"
},
@@ -14263,7 +14363,7 @@
],
"match_type" : "exact",
"type" : "simple",
- "max_size" : 16,
+ "max_size" : 1024,
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
@@ -14297,6 +14397,12 @@
},
"entries" : [
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 310,
+ "column" : 12,
+ "source_fragment" : "(0x0) : int_set_header_0003_i0()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14310,6 +14416,12 @@
"priority" : 1
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 311,
+ "column" : 12,
+ "source_fragment" : "(0x1) : int_set_header_0003_i1()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14323,6 +14435,12 @@
"priority" : 2
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 312,
+ "column" : 12,
+ "source_fragment" : "(0x2) : int_set_header_0003_i2()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14336,6 +14454,12 @@
"priority" : 3
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 313,
+ "column" : 12,
+ "source_fragment" : "(0x3) : int_set_header_0003_i3()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14349,6 +14473,12 @@
"priority" : 4
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 314,
+ "column" : 12,
+ "source_fragment" : "(0x4) : int_set_header_0003_i4()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14362,6 +14492,12 @@
"priority" : 5
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 315,
+ "column" : 12,
+ "source_fragment" : "(0x5) : int_set_header_0003_i5()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14375,6 +14511,12 @@
"priority" : 6
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 316,
+ "column" : 12,
+ "source_fragment" : "(0x6) : int_set_header_0003_i6()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14388,6 +14530,12 @@
"priority" : 7
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 317,
+ "column" : 12,
+ "source_fragment" : "(0x7) : int_set_header_0003_i7()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14401,6 +14549,12 @@
"priority" : 8
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 318,
+ "column" : 12,
+ "source_fragment" : "(0x8) : int_set_header_0003_i8()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14414,6 +14568,12 @@
"priority" : 9
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 319,
+ "column" : 12,
+ "source_fragment" : "(0x9) : int_set_header_0003_i9()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14427,6 +14587,12 @@
"priority" : 10
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 320,
+ "column" : 12,
+ "source_fragment" : "(0xA) : int_set_header_0003_i10()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14440,6 +14606,12 @@
"priority" : 11
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 321,
+ "column" : 12,
+ "source_fragment" : "(0xB) : int_set_header_0003_i11()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14453,6 +14625,12 @@
"priority" : 12
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 322,
+ "column" : 12,
+ "source_fragment" : "(0xC) : int_set_header_0003_i12()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14466,6 +14644,12 @@
"priority" : 13
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 323,
+ "column" : 12,
+ "source_fragment" : "(0xD) : int_set_header_0003_i13()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14479,6 +14663,12 @@
"priority" : 14
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 324,
+ "column" : 12,
+ "source_fragment" : "(0xE) : int_set_header_0003_i14()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14492,6 +14682,12 @@
"priority" : 15
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 325,
+ "column" : 12,
+ "source_fragment" : "(0xF) : int_set_header_0003_i15()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14511,7 +14707,7 @@
"id" : 56,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 328,
+ "line" : 330,
"column" : 10,
"source_fragment" : "tb_int_inst_0407"
},
@@ -14525,7 +14721,7 @@
],
"match_type" : "exact",
"type" : "simple",
- "max_size" : 16,
+ "max_size" : 1024,
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
@@ -14559,6 +14755,12 @@
},
"entries" : [
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 354,
+ "column" : 12,
+ "source_fragment" : "(0x0) : int_set_header_0407_i0()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14572,6 +14774,12 @@
"priority" : 1
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 355,
+ "column" : 12,
+ "source_fragment" : "(0x1) : int_set_header_0407_i1()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14585,6 +14793,12 @@
"priority" : 2
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 356,
+ "column" : 12,
+ "source_fragment" : "(0x2) : int_set_header_0407_i2()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14598,6 +14812,12 @@
"priority" : 3
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 357,
+ "column" : 12,
+ "source_fragment" : "(0x3) : int_set_header_0407_i3()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14611,6 +14831,12 @@
"priority" : 4
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 358,
+ "column" : 12,
+ "source_fragment" : "(0x4) : int_set_header_0407_i4()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14624,6 +14850,12 @@
"priority" : 5
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 359,
+ "column" : 12,
+ "source_fragment" : "(0x5) : int_set_header_0407_i5()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14637,6 +14869,12 @@
"priority" : 6
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 360,
+ "column" : 12,
+ "source_fragment" : "(0x6) : int_set_header_0407_i6()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14650,6 +14888,12 @@
"priority" : 7
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 361,
+ "column" : 12,
+ "source_fragment" : "(0x7) : int_set_header_0407_i7()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14663,6 +14907,12 @@
"priority" : 8
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 362,
+ "column" : 12,
+ "source_fragment" : "(0x8) : int_set_header_0407_i8()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14676,6 +14926,12 @@
"priority" : 9
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 363,
+ "column" : 12,
+ "source_fragment" : "(0x9) : int_set_header_0407_i9()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14689,6 +14945,12 @@
"priority" : 10
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 364,
+ "column" : 12,
+ "source_fragment" : "(0xA) : int_set_header_0407_i10()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14702,6 +14964,12 @@
"priority" : 11
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 365,
+ "column" : 12,
+ "source_fragment" : "(0xB) : int_set_header_0407_i11()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14715,6 +14983,12 @@
"priority" : 12
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 366,
+ "column" : 12,
+ "source_fragment" : "(0xC) : int_set_header_0407_i12()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14728,6 +15002,12 @@
"priority" : 13
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 367,
+ "column" : 12,
+ "source_fragment" : "(0xD) : int_set_header_0407_i13()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14741,6 +15021,12 @@
"priority" : 14
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 368,
+ "column" : 12,
+ "source_fragment" : "(0xE) : int_set_header_0407_i14()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -14754,6 +15040,12 @@
"priority" : 15
},
{
+ "source_info" : {
+ "filename" : "include/int/int_transit.p4",
+ "line" : 369,
+ "column" : 12,
+ "source_fragment" : "(0xF) : int_set_header_0407_i15()"
+ },
"match_key" : [
{
"match_type" : "exact",
@@ -15252,7 +15544,7 @@
"id" : 29,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 373,
+ "line" : 375,
"column" : 12,
"source_fragment" : "fmeta.int_meta.transit == false"
},
@@ -15309,7 +15601,7 @@
"id" : 31,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 381,
+ "line" : 383,
"column" : 12,
"source_fragment" : "hdr.ipv4.isValid()"
},
@@ -15332,7 +15624,7 @@
"id" : 32,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 384,
+ "line" : 386,
"column" : 12,
"source_fragment" : "hdr.udp.isValid()"
},
@@ -15355,7 +15647,7 @@
"id" : 33,
"source_info" : {
"filename" : "include/int/int_transit.p4",
- "line" : 387,
+ "line" : 389,
"column" : 12,
"source_fragment" : "hdr.intl4_shim.isValid()"
},
@@ -15380,6 +15672,12 @@
{
"name" : "cksum",
"id" : 0,
+ "source_info" : {
+ "filename" : "include/checksum.p4",
+ "line" : 28,
+ "column" : 8,
+ "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
+ },
"target" : ["ipv4", "hdr_checksum"],
"type" : "generic",
"calculation" : "calc",
@@ -15398,6 +15696,12 @@
{
"name" : "cksum_0",
"id" : 1,
+ "source_info" : {
+ "filename" : "include/spgw.p4",
+ "line" : 237,
+ "column" : 8,
+ "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
+ },
"target" : ["gtpu_ipv4", "hdr_checksum"],
"type" : "generic",
"calculation" : "calc_0",
@@ -15416,6 +15720,12 @@
{
"name" : "cksum_1",
"id" : 2,
+ "source_info" : {
+ "filename" : "include/checksum.p4",
+ "line" : 57,
+ "column" : 8,
+ "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
+ },
"target" : ["ipv4", "hdr_checksum"],
"type" : "generic",
"calculation" : "calc_1",
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
index 2d97498..a3db0a8 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-spgw/bmv2/default/bmv2.json
@@ -53,6 +53,7 @@
["egress_rid", 16, false],
["checksum_error", 1, false],
["recirculate_flag", 32, false],
+ ["parser_error", 32, false],
["_padding", 5, false]
]
},
@@ -331,7 +332,14 @@
"header_unions" : [],
"header_union_stacks" : [],
"field_lists" : [],
- "errors" : [],
+ "errors" : [
+ ["NoError", 1],
+ ["PacketTooShort", 2],
+ ["NoMatch", 3],
+ ["StackOutOfBounds", 4],
+ ["HeaderTooShort", 5],
+ ["ParserTimeout", 6]
+ ],
"enums" : [],
"parsers" : [
{
@@ -943,67 +951,133 @@
"name" : "FabricIngress.spgw_ingress.ue_counter",
"id" : 0,
"is_direct" : true,
- "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup"
+ "binding" : "FabricIngress.spgw_ingress.dl_sess_lookup",
+ "source_info" : {
+ "filename" : "include/spgw.p4",
+ "line" : 51,
+ "column" : 50,
+ "source_fragment" : "ue_counter"
+ }
},
{
"name" : "FabricIngress.filtering.ingress_port_vlan_counter",
"id" : 1,
"is_direct" : true,
- "binding" : "FabricIngress.filtering.ingress_port_vlan"
+ "binding" : "FabricIngress.filtering.ingress_port_vlan",
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 34,
+ "column" : 50,
+ "source_fragment" : "ingress_port_vlan_counter"
+ }
},
{
"name" : "FabricIngress.filtering.fwd_classifier_counter",
"id" : 2,
"is_direct" : true,
- "binding" : "FabricIngress.filtering.fwd_classifier"
+ "binding" : "FabricIngress.filtering.fwd_classifier",
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 96,
+ "column" : 50,
+ "source_fragment" : "fwd_classifier_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.bridging_counter",
"id" : 3,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.bridging"
+ "binding" : "FabricIngress.forwarding.bridging",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 34,
+ "column" : 50,
+ "source_fragment" : "bridging_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.mpls_counter",
"id" : 4,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.mpls"
+ "binding" : "FabricIngress.forwarding.mpls",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 57,
+ "column" : 50,
+ "source_fragment" : "mpls_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.routing_v4_counter",
"id" : 5,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.routing_v4"
+ "binding" : "FabricIngress.forwarding.routing_v4",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 80,
+ "column" : 50,
+ "source_fragment" : "routing_v4_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.acl_counter",
"id" : 6,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.acl"
+ "binding" : "FabricIngress.forwarding.acl",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 107,
+ "column" : 50,
+ "source_fragment" : "acl_counter"
+ }
},
{
"name" : "FabricIngress.next.vlan_meta_counter",
"id" : 7,
"is_direct" : true,
- "binding" : "FabricIngress.next.vlan_meta"
+ "binding" : "FabricIngress.next.vlan_meta",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 58,
+ "column" : 50,
+ "source_fragment" : "vlan_meta_counter"
+ }
},
{
"name" : "FabricIngress.next.simple_counter",
"id" : 8,
"is_direct" : true,
- "binding" : "FabricIngress.next.simple"
+ "binding" : "FabricIngress.next.simple",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 82,
+ "column" : 50,
+ "source_fragment" : "simple_counter"
+ }
},
{
"name" : "FabricIngress.next.hashed_counter",
"id" : 9,
"is_direct" : true,
- "binding" : "FabricIngress.next.hashed"
+ "binding" : "FabricIngress.next.hashed",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 146,
+ "column" : 50,
+ "source_fragment" : "hashed_counter"
+ }
},
{
"name" : "FabricIngress.next.multicast_counter",
"id" : 10,
"is_direct" : true,
- "binding" : "FabricIngress.next.multicast"
+ "binding" : "FabricIngress.next.multicast",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 199,
+ "column" : 50,
+ "source_fragment" : "multicast_counter"
+ }
},
{
"name" : "FabricIngress.port_counters_control.egress_port_counter",
@@ -1033,7 +1107,13 @@
"name" : "FabricEgress.egress_next.egress_vlan_counter",
"id" : 13,
"is_direct" : true,
- "binding" : "FabricEgress.egress_next.egress_vlan"
+ "binding" : "FabricEgress.egress_next.egress_vlan",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 250,
+ "column" : 50,
+ "source_fragment" : "egress_vlan_counter"
+ }
}
],
"register_arrays" : [],
@@ -1578,7 +1658,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 91,
+ "line" : 99,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -2211,7 +2291,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -2287,7 +2367,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -2402,7 +2482,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -2478,7 +2558,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -2770,7 +2850,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -2846,7 +2926,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -2961,7 +3041,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -3037,7 +3117,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -3155,7 +3235,7 @@
],
"source_info" : {
"filename" : "fabric.p4",
- "line" : 54,
+ "line" : 55,
"column" : 50,
"source_fragment" : "hdr.gtpu_ipv4"
}
@@ -3170,7 +3250,7 @@
],
"source_info" : {
"filename" : "fabric.p4",
- "line" : 54,
+ "line" : 55,
"column" : 65,
"source_fragment" : "hdr.gtpu_udp"
}
@@ -3461,7 +3541,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 121,
+ "line" : 129,
"column" : 36,
"source_fragment" : "2w1; ..."
}
@@ -3547,7 +3627,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 122,
+ "line" : 130,
"column" : 38,
"source_fragment" : "2w2; ..."
}
@@ -3573,7 +3653,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 120,
+ "line" : 128,
"column" : 37,
"source_fragment" : "2w0; ..."
}
@@ -3744,7 +3824,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 111,
+ "line" : 119,
"column" : 31,
"source_fragment" : "7; ..."
}
@@ -3770,7 +3850,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 94,
+ "line" : 102,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -4301,7 +4381,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 103,
+ "line" : 111,
"column" : 28,
"source_fragment" : "5; ..."
}
@@ -4457,7 +4537,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 116,
+ "line" : 124,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -4476,7 +4556,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 100,
+ "line" : 108,
"column" : 25,
"source_fragment" : "17; ..."
}
@@ -6255,6 +6335,12 @@
{
"name" : "FabricIngress.next.ecmp_selector",
"id" : 0,
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 145,
+ "column" : 55,
+ "source_fragment" : "ecmp_selector"
+ },
"max_size" : 64,
"selector" : {
"algo" : "crc16",
@@ -6799,7 +6885,7 @@
"id" : 1,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 79,
+ "line" : 80,
"column" : 8,
"source_fragment" : "FabricEgress"
},
@@ -7221,6 +7307,12 @@
{
"name" : "cksum",
"id" : 0,
+ "source_info" : {
+ "filename" : "include/checksum.p4",
+ "line" : 28,
+ "column" : 8,
+ "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
+ },
"target" : ["ipv4", "hdr_checksum"],
"type" : "generic",
"calculation" : "calc",
@@ -7239,6 +7331,12 @@
{
"name" : "cksum_0",
"id" : 1,
+ "source_info" : {
+ "filename" : "include/spgw.p4",
+ "line" : 237,
+ "column" : 8,
+ "source_fragment" : "update_checksum(gtpu_ipv4.isValid(), ..."
+ },
"target" : ["gtpu_ipv4", "hdr_checksum"],
"type" : "generic",
"calculation" : "calc_0",
@@ -7257,6 +7355,12 @@
{
"name" : "cksum_1",
"id" : 2,
+ "source_info" : {
+ "filename" : "include/checksum.p4",
+ "line" : 57,
+ "column" : 8,
+ "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
+ },
"target" : ["ipv4", "hdr_checksum"],
"type" : "generic",
"calculation" : "calc_1",
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
index 0623d6c..6a4bdb1 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/bmv2.json
@@ -47,6 +47,7 @@
["egress_rid", 16, false],
["checksum_error", 1, false],
["recirculate_flag", 32, false],
+ ["parser_error", 32, false],
["_padding", 5, false]
]
},
@@ -256,7 +257,14 @@
"header_unions" : [],
"header_union_stacks" : [],
"field_lists" : [],
- "errors" : [],
+ "errors" : [
+ ["NoError", 1],
+ ["PacketTooShort", 2],
+ ["NoMatch", 3],
+ ["StackOutOfBounds", 4],
+ ["HeaderTooShort", 5],
+ ["ParserTimeout", 6]
+ ],
"enums" : [],
"parsers" : [
{
@@ -687,61 +695,121 @@
"name" : "FabricIngress.filtering.ingress_port_vlan_counter",
"id" : 0,
"is_direct" : true,
- "binding" : "FabricIngress.filtering.ingress_port_vlan"
+ "binding" : "FabricIngress.filtering.ingress_port_vlan",
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 34,
+ "column" : 50,
+ "source_fragment" : "ingress_port_vlan_counter"
+ }
},
{
"name" : "FabricIngress.filtering.fwd_classifier_counter",
"id" : 1,
"is_direct" : true,
- "binding" : "FabricIngress.filtering.fwd_classifier"
+ "binding" : "FabricIngress.filtering.fwd_classifier",
+ "source_info" : {
+ "filename" : "include/control/filtering.p4",
+ "line" : 96,
+ "column" : 50,
+ "source_fragment" : "fwd_classifier_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.bridging_counter",
"id" : 2,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.bridging"
+ "binding" : "FabricIngress.forwarding.bridging",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 34,
+ "column" : 50,
+ "source_fragment" : "bridging_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.mpls_counter",
"id" : 3,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.mpls"
+ "binding" : "FabricIngress.forwarding.mpls",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 57,
+ "column" : 50,
+ "source_fragment" : "mpls_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.routing_v4_counter",
"id" : 4,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.routing_v4"
+ "binding" : "FabricIngress.forwarding.routing_v4",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 80,
+ "column" : 50,
+ "source_fragment" : "routing_v4_counter"
+ }
},
{
"name" : "FabricIngress.forwarding.acl_counter",
"id" : 5,
"is_direct" : true,
- "binding" : "FabricIngress.forwarding.acl"
+ "binding" : "FabricIngress.forwarding.acl",
+ "source_info" : {
+ "filename" : "include/control/forwarding.p4",
+ "line" : 107,
+ "column" : 50,
+ "source_fragment" : "acl_counter"
+ }
},
{
"name" : "FabricIngress.next.vlan_meta_counter",
"id" : 6,
"is_direct" : true,
- "binding" : "FabricIngress.next.vlan_meta"
+ "binding" : "FabricIngress.next.vlan_meta",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 58,
+ "column" : 50,
+ "source_fragment" : "vlan_meta_counter"
+ }
},
{
"name" : "FabricIngress.next.simple_counter",
"id" : 7,
"is_direct" : true,
- "binding" : "FabricIngress.next.simple"
+ "binding" : "FabricIngress.next.simple",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 82,
+ "column" : 50,
+ "source_fragment" : "simple_counter"
+ }
},
{
"name" : "FabricIngress.next.hashed_counter",
"id" : 8,
"is_direct" : true,
- "binding" : "FabricIngress.next.hashed"
+ "binding" : "FabricIngress.next.hashed",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 146,
+ "column" : 50,
+ "source_fragment" : "hashed_counter"
+ }
},
{
"name" : "FabricIngress.next.multicast_counter",
"id" : 9,
"is_direct" : true,
- "binding" : "FabricIngress.next.multicast"
+ "binding" : "FabricIngress.next.multicast",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 199,
+ "column" : 50,
+ "source_fragment" : "multicast_counter"
+ }
},
{
"name" : "FabricIngress.port_counters_control.egress_port_counter",
@@ -771,7 +839,13 @@
"name" : "FabricEgress.egress_next.egress_vlan_counter",
"id" : 12,
"is_direct" : true,
- "binding" : "FabricEgress.egress_next.egress_vlan"
+ "binding" : "FabricEgress.egress_next.egress_vlan",
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 250,
+ "column" : 50,
+ "source_fragment" : "egress_vlan_counter"
+ }
}
],
"register_arrays" : [],
@@ -1087,7 +1161,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 91,
+ "line" : 99,
"column" : 31,
"source_fragment" : "0x8100; ..."
}
@@ -1720,7 +1794,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -1796,7 +1870,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -1911,7 +1985,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -1987,7 +2061,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -2279,7 +2353,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -2355,7 +2429,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -2470,7 +2544,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 92,
+ "line" : 100,
"column" : 31,
"source_fragment" : "0x8847; ..."
}
@@ -2546,7 +2620,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 115,
+ "line" : 123,
"column" : 32,
"source_fragment" : "64; ..."
}
@@ -2762,7 +2836,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 111,
+ "line" : 119,
"column" : 31,
"source_fragment" : "7; ..."
}
@@ -2788,7 +2862,7 @@
],
"source_info" : {
"filename" : "include/control/../define.p4",
- "line" : 94,
+ "line" : 102,
"column" : 31,
"source_fragment" : "0x0800; ..."
}
@@ -4239,6 +4313,12 @@
{
"name" : "FabricIngress.next.ecmp_selector",
"id" : 0,
+ "source_info" : {
+ "filename" : "include/control/next.p4",
+ "line" : 145,
+ "column" : 55,
+ "source_fragment" : "ecmp_selector"
+ },
"max_size" : 64,
"selector" : {
"algo" : "crc16",
@@ -4612,7 +4692,7 @@
"id" : 1,
"source_info" : {
"filename" : "fabric.p4",
- "line" : 79,
+ "line" : 80,
"column" : 8,
"source_fragment" : "FabricEgress"
},
@@ -4985,6 +5065,12 @@
{
"name" : "cksum",
"id" : 0,
+ "source_info" : {
+ "filename" : "include/checksum.p4",
+ "line" : 28,
+ "column" : 8,
+ "source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
+ },
"target" : ["ipv4", "hdr_checksum"],
"type" : "generic",
"calculation" : "calc",
@@ -5003,6 +5089,12 @@
{
"name" : "cksum_0",
"id" : 1,
+ "source_info" : {
+ "filename" : "include/checksum.p4",
+ "line" : 57,
+ "column" : 8,
+ "source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
+ },
"target" : ["ipv4", "hdr_checksum"],
"type" : "generic",
"calculation" : "calc_0",
diff --git a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/ClientKey.java b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/ClientKey.java
index ee5e2a4..cc4bed0 100644
--- a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/ClientKey.java
+++ b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/ClientKey.java
@@ -22,7 +22,7 @@
import java.util.Objects;
/**
- * Key the uniquely identifies a P4Runtime client.
+ * Key that uniquely identifies a P4Runtime client.
*/
final class ClientKey {
diff --git a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/DistributedElectionIdGenerator.java b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/DistributedElectionIdGenerator.java
index ecfe35d..75c068e 100644
--- a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/DistributedElectionIdGenerator.java
+++ b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/DistributedElectionIdGenerator.java
@@ -38,6 +38,7 @@
private final Logger log = getLogger(this.getClass());
+ // FIXME: counter map use long, but P4Runtime accepts 128bit election IDs
private AtomicCounterMap<DeviceId> electionIds;
/**
diff --git a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/MulticastGroupEntryCodec.java b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/MulticastGroupEntryCodec.java
index 0be1ae8..f2ececb 100644
--- a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/MulticastGroupEntryCodec.java
+++ b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/MulticastGroupEntryCodec.java
@@ -22,6 +22,8 @@
import p4.v1.P4RuntimeOuterClass.MulticastGroupEntry;
import p4.v1.P4RuntimeOuterClass.Replica;
+import static java.lang.String.format;
+
/**
* A coded of {@link PiMulticastGroupEntry} to P4Runtime MulticastGroupEntry
* messages, and vice versa.
@@ -38,16 +40,26 @@
*
* @param piEntry PiMulticastGroupEntry
* @return P4Runtime MulticastGroupEntry message
+ * @throws EncodeException if the PiMulticastGroupEntry cannot be encoded.
*/
- static MulticastGroupEntry encode(PiMulticastGroupEntry piEntry) {
+ static MulticastGroupEntry encode(PiMulticastGroupEntry piEntry) throws EncodeException {
final MulticastGroupEntry.Builder msgBuilder = MulticastGroupEntry.newBuilder();
msgBuilder.setMulticastGroupId(piEntry.groupId());
- piEntry.replicas().stream()
- .map(r -> Replica.newBuilder()
- .setEgressPort(r.egressPort().toLong())
- .setInstance(r.instanceId())
- .build())
- .forEach(msgBuilder::addReplicas);
+ for (PiPreReplica replica : piEntry.replicas()) {
+ final int p4PortId;
+ try {
+ p4PortId = Math.toIntExact(replica.egressPort().toLong());
+ } catch (ArithmeticException e) {
+ throw new EncodeException(format(
+ "Cannot cast 64bit port value '%s' to 32bit",
+ replica.egressPort()));
+ }
+ msgBuilder.addReplicas(
+ Replica.newBuilder()
+ .setEgressPort(p4PortId)
+ .setInstance(replica.instanceId())
+ .build());
+ }
return msgBuilder.build();
}
diff --git a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeClientImpl.java b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeClientImpl.java
index 54d284d..c291db4 100644
--- a/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeClientImpl.java
+++ b/protocols/p4runtime/ctl/src/main/java/org/onosproject/p4runtime/ctl/P4RuntimeClientImpl.java
@@ -1053,7 +1053,15 @@
WriteOperationType opType) {
final List<Update> updateMsgs = entries.stream()
- .map(MulticastGroupEntryCodec::encode)
+ .map(piEntry -> {
+ try {
+ return MulticastGroupEntryCodec.encode(piEntry);
+ } catch (EncodeException e) {
+ log.warn("Unable to encode PiMulticastGroupEntry: {}", e.getMessage());
+ return null;
+ }
+ })
+ .filter(Objects::nonNull)
.map(mcMsg -> PacketReplicationEngineEntry.newBuilder()
.setMulticastGroupEntry(mcMsg)
.build())
@@ -1117,13 +1125,22 @@
WriteOperationType opType,
String entryType) {
// True if all entities were successfully written.
- return writeAndReturnSuccessEntities(updates, writeEntities, opType,
- entryType).size() == writeEntities.size();
+ return writeAndReturnSuccessEntities(updates, writeEntities, opType, entryType)
+ .size() == writeEntities.size();
}
private <T> List<T> writeAndReturnSuccessEntities(
List<Update> updates, List<T> writeEntities,
WriteOperationType opType, String entryType) {
+ if (updates.isEmpty()) {
+ return Collections.emptyList();
+ }
+ if (updates.size() != writeEntities.size()) {
+ log.error("Cannot perform {} operation, provided {} " +
+ "update messages for {} {} - BUG?",
+ opType, updates.size(), writeEntities.size(), entryType);
+ return Collections.emptyList();
+ }
try {
//noinspection ResultOfMethodCallIgnored
blockingStub.write(writeRequest(updates));
diff --git a/tools/build/bazel/p4lang_workspace.bzl b/tools/build/bazel/p4lang_workspace.bzl
index d4d966c..bc054fe 100644
--- a/tools/build/bazel/p4lang_workspace.bzl
+++ b/tools/build/bazel/p4lang_workspace.bzl
@@ -1,10 +1,10 @@
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-P4RUNTIME_COMMIT = "028552d98b774301c51be0fe5bc97c9e95716759"
-PI_COMMIT = "36ca74fae69c8d0a142f8bfd2487bee72505cf48"
+P4RUNTIME_COMMIT = "a6f81ac53c6b56d75a9603690794196d67c5dc07"
+PI_COMMIT = "539e4624f16aac39f8890a6dfb11c65040e735ad"
-P4RUNTIME_SHA = "f335573ea971c21a1a298954039a27881b7337a03f4523321b6458eb0558644a"
-PI_SHA = "767476cf9232dc39f0115d1ffc38f9b81acec74da078c048f278804f325bf77e"
+P4RUNTIME_SHA = "28b79868bcfd61058cdd3f77a7a021a1add19154fa6717bf921a64cece32caf3"
+PI_SHA = "a16024972c15e6d35466996bbb748e4b7bef819c1c93f05a0f2228062736c35a"
def generate_p4lang():
http_archive(
diff --git a/tools/dev/mininet/bmv2.py b/tools/dev/mininet/bmv2.py
index 296d672..eafb482 100644
--- a/tools/dev/mininet/bmv2.py
+++ b/tools/dev/mininet/bmv2.py
@@ -17,7 +17,7 @@
VALGRIND_PREFIX = 'valgrind --leak-check=yes'
SWITCH_START_TIMEOUT = 5 # seconds
BMV2_LOG_LINES = 5
-BMV2_DEFAULT_DEVICE_ID = 0
+BMV2_DEFAULT_DEVICE_ID = 1
def parseBoolean(value):
diff --git a/tools/dev/p4vm/install-p4-tools.sh b/tools/dev/p4vm/install-p4-tools.sh
index 4f9582a..e3ccdcd 100755
--- a/tools/dev/p4vm/install-p4-tools.sh
+++ b/tools/dev/p4vm/install-p4-tools.sh
@@ -21,9 +21,9 @@
BUILD_DIR=~/p4tools
# in case BMV2_COMMIT value is updated, the same variable in
# protocols/bmv2/thrift-api/BUCK file should also be updated
-BMV2_COMMIT="13370aaf9329fcb369a3ea3989722eb5f61c07f3"
-PI_COMMIT="7e94b025bac6db63bc8534e5dd21a008984e38bc"
-P4C_COMMIT="2d089af757212a057c6690998861ef67439305f4"
+BMV2_COMMIT="ae87b4d4523488ac935133b4aef437796ad1bbd1"
+PI_COMMIT="539e4624f16aac39f8890a6dfb11c65040e735ad"
+P4C_COMMIT="380830f6c26135d1d65e1312e3ba2da628c18145"
PROTOBUF_COMMIT="tags/v3.2.0"
GRPC_COMMIT="tags/v1.3.2"
LIBYANG_COMMIT="v0.14-r1"
@@ -32,7 +32,7 @@
NUM_CORES=`grep -c ^processor /proc/cpuinfo`
# If false, build tools without debug features to improve throughput of BMv2 and
-# reduce CPU/memory footprint.
+# reduce CPU/memory footprint. Default is true.
DEBUG_FLAGS=${DEBUG_FLAGS:-true}
# Execute up to the given step (first argument), or all if not defined.
@@ -274,12 +274,8 @@
./autogen.sh
# FIXME: re-enable --with-sysrepo when gNMI support becomes more stable
- # ./configure --with-proto --with-sysrepo 'CXXFLAGS=-O0 -g'
- if [ "${DEBUG_FLAGS}" = true ] ; then
- ./configure --with-proto "CXXFLAGS=-O0 -g"
- else
- ./configure --with-proto
- fi
+ # ./configure --with-proto --with-sysrepo
+ ./configure --with-proto --without-internal-rpc --without-cli
make -j${NUM_CORES}
sudo make install
sudo ldconfig
@@ -293,9 +289,9 @@
./autogen.sh
if [ "${DEBUG_FLAGS}" = true ] ; then
- ./configure --with-pi --disable-elogger --without-nanomsg "CXXFLAGS=-O0 -g"
+ ./configure --with-pi --disable-elogger --without-nanomsg
else
- ./configure --with-pi --disable-logging-macros --disable-elogger --without-nanomsg
+ ./configure --with-pi --disable-elogger --without-nanomsg --disable-logging-macros
fi
make -j${NUM_CORES}
sudo make install
@@ -304,14 +300,9 @@
# Simple_switch_grpc target
cd targets/simple_switch_grpc
./autogen.sh
-
- if [ "${DEBUG_FLAGS}" = true ] ; then
- ./configure --with-thrift "CXXFLAGS=-O0 -g"
- else
- ./configure --with-thrift
- fi
+ ./configure --with-thrift
# FIXME: re-enable --with-sysrepo when gNMI support becomes more stable
- # ./configure --with-sysrepo --with-thrift 'CXXFLAGS=-O0 -g'
+ # ./configure --with-sysrepo --with-thrift
make -j${NUM_CORES}
sudo make install
sudo ldconfig
@@ -329,7 +320,7 @@
mkdir -p build
cd build
- cmake ..
+ cmake .. -DENABLE_EBPF=OFF
make -j${NUM_CORES}
sudo make install
sudo ldconfig
diff --git a/tools/dev/p4vm/root-bootstrap.sh b/tools/dev/p4vm/root-bootstrap.sh
index cac34b7..cf90ea2 100755
--- a/tools/dev/p4vm/root-bootstrap.sh
+++ b/tools/dev/p4vm/root-bootstrap.sh
@@ -4,7 +4,7 @@
VM_TYPE=${1:-dev}
BAZEL_VER="0.15.2"
-BAZEL_DEB="bazel_${BAZEL_VER}-linux-x86_64.deb"
+BAZEL_SH="bazel-${BAZEL_VER}-installer-linux-x86_64.sh"
# Create user sdn
useradd -m -d /home/sdn -s /bin/bash sdn
echo "sdn:rocks" | chpasswd
@@ -28,10 +28,8 @@
DEBIAN_FRONTEND=noninteractive apt-get -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" upgrade
-wget https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VER}/${BAZEL_DEB}
echo "oracle-java8-installer shared/accepted-oracle-license-v1-1 select true" | debconf-set-selections
apt-get -y --no-install-recommends install \
- ./${BAZEL_DEB} \
avahi-daemon \
bridge-utils \
git \
@@ -59,12 +57,16 @@
DEBIAN_FRONTEND=noninteractive apt-get -yq install wireshark
-rm -f ${BAZEL_DEB}
+# Install Bazel
+wget https://github.com/bazelbuild/bazel/releases/download/${BAZEL_VER}/${BAZEL_SH}
+chmod +x ${BAZEL_SH}
+./${BAZEL_SH}
+rm -f ${BAZEL_SH}
+# Install pip and some python deps (others are defined in install-p4-tools.sh)
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python2.7 get-pip.py --force-reinstall
rm -f get-pip.py
-
pip install ipaddress
tee -a /etc/ssh/sshd_config <<EOF