Minor refactoring for fabric.p4
Change-Id: I8c5bac678ead88bda42a0b49ea19d7c968bcc305
diff --git a/pipelines/fabric/src/main/resources/fabric.p4 b/pipelines/fabric/src/main/resources/fabric.p4
index d27ed87..84997ec 100644
--- a/pipelines/fabric/src/main/resources/fabric.p4
+++ b/pipelines/fabric/src/main/resources/fabric.p4
@@ -35,6 +35,7 @@
Forwarding() forwarding;
Next() next;
PortCountersControl() port_counters_control;
+ EgressNextControl() egress_next;
apply {
packet_io_ingress.apply(hdr, fabric_metadata, standard_metadata);
@@ -42,6 +43,7 @@
forwarding.apply(hdr, fabric_metadata, standard_metadata);
next.apply(hdr, fabric_metadata, standard_metadata);
port_counters_control.apply(hdr, fabric_metadata, standard_metadata);
+ egress_next.apply(hdr, fabric_metadata, standard_metadata);
}
}
@@ -49,9 +51,7 @@
inout fabric_metadata_t fabric_metadata,
inout standard_metadata_t standard_metadata) {
PacketIoEgress() pkt_io_egress;
- EgressNextControl() egress_next;
apply {
- egress_next.apply(hdr, fabric_metadata, standard_metadata);
pkt_io_egress.apply(hdr, fabric_metadata, standard_metadata);
}
}
diff --git a/pipelines/fabric/src/main/resources/include/checksum.p4 b/pipelines/fabric/src/main/resources/include/checksum.p4
index dfcadb6..00b4e70 100644
--- a/pipelines/fabric/src/main/resources/include/checksum.p4
+++ b/pipelines/fabric/src/main/resources/include/checksum.p4
@@ -21,7 +21,6 @@
inout fabric_metadata_t meta)
{
apply {
-#ifdef TARGET_BMV2
update_checksum(hdr.ipv4.isValid(),
{
hdr.ipv4.version,
@@ -39,7 +38,6 @@
hdr.ipv4.hdr_checksum,
HashAlgorithm.csum16
);
-#endif
}
}
@@ -47,7 +45,6 @@
inout fabric_metadata_t meta)
{
apply {
-#ifdef TARGET_BMV2
verify_checksum(hdr.ipv4.isValid(),
{
hdr.ipv4.version,
@@ -65,7 +62,6 @@
hdr.ipv4.hdr_checksum,
HashAlgorithm.csum16
);
-#endif
}
}
diff --git a/pipelines/fabric/src/main/resources/include/control/filtering.p4 b/pipelines/fabric/src/main/resources/include/control/filtering.p4
index 5a93e5b..58bf147 100644
--- a/pipelines/fabric/src/main/resources/include/control/filtering.p4
+++ b/pipelines/fabric/src/main/resources/include/control/filtering.p4
@@ -24,6 +24,8 @@
inout parsed_headers_t hdr,
inout fabric_metadata_t fabric_metadata,
inout standard_metadata_t standard_metadata) {
+ direct_counter(CounterType.packets_and_bytes) ingress_port_vlan_counter;
+ direct_counter(CounterType.packets_and_bytes) fwd_classifier_counter;
action drop() {
mark_to_drop();
@@ -65,7 +67,9 @@
nop;
drop;
}
- const default_action = drop();
+
+ const default_action = nop();
+ counters = ingress_port_vlan_counter;
}
// Originally TMAC table in OF-DPA pipeline
@@ -81,6 +85,7 @@
}
const default_action = set_forwarding_type(FWD_BRIDGING);
+ counters = fwd_classifier_counter;
}
apply {
diff --git a/pipelines/fabric/src/main/resources/include/control/forwarding.p4 b/pipelines/fabric/src/main/resources/include/control/forwarding.p4
index 4e9ada1..fc5f5b3 100644
--- a/pipelines/fabric/src/main/resources/include/control/forwarding.p4
+++ b/pipelines/fabric/src/main/resources/include/control/forwarding.p4
@@ -27,6 +27,14 @@
inout fabric_metadata_t fabric_metadata,
inout standard_metadata_t standard_metadata) {
+ direct_counter(CounterType.packets_and_bytes) bridging_counter;
+ direct_counter(CounterType.packets_and_bytes) mpls_counter;
+ direct_counter(CounterType.packets_and_bytes) unicast_v4_counter;
+ direct_counter(CounterType.packets_and_bytes) multicast_v4_counter;
+ direct_counter(CounterType.packets_and_bytes) unicast_v6_counter;
+ direct_counter(CounterType.packets_and_bytes) multicast_v6_counter;
+ direct_counter(CounterType.packets_and_bytes) acl_counter;
+
action drop() {
mark_to_drop();
}
@@ -53,6 +61,7 @@
actions = {
set_next_id;
}
+ counters = bridging_counter;
}
table mpls {
@@ -63,6 +72,7 @@
actions = {
pop_mpls_and_next;
}
+ counters = mpls_counter;
}
table unicast_v4 {
@@ -73,6 +83,7 @@
actions = {
set_next_id;
}
+ counters = unicast_v4_counter;
}
table multicast_v4 {
@@ -84,6 +95,7 @@
actions = {
set_next_id;
}
+ counters = multicast_v4_counter;
}
table unicast_v6 {
@@ -94,6 +106,7 @@
actions = {
set_next_id;
}
+ counters = unicast_v6_counter;
}
table multicast_v6 {
@@ -105,6 +118,7 @@
actions = {
set_next_id;
}
+ counters = multicast_v6_counter;
}
table acl {
@@ -133,6 +147,7 @@
const default_action = nop();
size = 256;
+ counters = acl_counter;
}
apply {
diff --git a/pipelines/fabric/src/main/resources/include/control/next.p4 b/pipelines/fabric/src/main/resources/include/control/next.p4
index a58e88e..79ac55b 100644
--- a/pipelines/fabric/src/main/resources/include/control/next.p4
+++ b/pipelines/fabric/src/main/resources/include/control/next.p4
@@ -25,6 +25,9 @@
inout fabric_metadata_t fabric_metadata,
inout standard_metadata_t standard_metadata) {
action_selector(HashAlgorithm.crc16, 32w64, 32w16) ecmp_selector;
+ direct_counter(CounterType.packets_and_bytes) simple_counter;
+ direct_counter(CounterType.packets_and_bytes) hashed_counter;
+ direct_counter(CounterType.packets_and_bytes) broadcast_counter;
action output(port_num_t port_num) {
standard_metadata.egress_spec = port_num;
@@ -92,7 +95,9 @@
output;
set_vlan_output;
l3_routing;
+ mpls_routing_v4;
}
+ counters = simple_counter;
}
table hashed {
@@ -112,6 +117,7 @@
}
implementation = ecmp_selector;
+ counters = hashed_counter;
}
/*
@@ -124,6 +130,7 @@
actions = {
set_mcast_group;
}
+ counters = broadcast_counter;
}
apply {
diff --git a/pipelines/fabric/src/main/resources/p4c-out/bmv2/fabric.json b/pipelines/fabric/src/main/resources/p4c-out/bmv2/fabric.json
index 5c6e645..2edfeeb 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/bmv2/fabric.json
+++ b/pipelines/fabric/src/main/resources/p4c-out/bmv2/fabric.json
@@ -835,8 +835,80 @@
"meter_arrays" : [],
"counter_arrays" : [
{
- "name" : "port_counters_control.egress_port_counter",
+ "name" : "filtering.ingress_port_vlan_counter",
"id" : 0,
+ "is_direct" : true,
+ "binding" : "filtering.ingress_port_vlan"
+ },
+ {
+ "name" : "filtering.fwd_classifier_counter",
+ "id" : 1,
+ "is_direct" : true,
+ "binding" : "filtering.fwd_classifier"
+ },
+ {
+ "name" : "forwarding.bridging_counter",
+ "id" : 2,
+ "is_direct" : true,
+ "binding" : "forwarding.bridging"
+ },
+ {
+ "name" : "forwarding.mpls_counter",
+ "id" : 3,
+ "is_direct" : true,
+ "binding" : "forwarding.mpls"
+ },
+ {
+ "name" : "forwarding.unicast_v4_counter",
+ "id" : 4,
+ "is_direct" : true,
+ "binding" : "forwarding.unicast_v4"
+ },
+ {
+ "name" : "forwarding.multicast_v4_counter",
+ "id" : 5,
+ "is_direct" : true,
+ "binding" : "forwarding.multicast_v4"
+ },
+ {
+ "name" : "forwarding.unicast_v6_counter",
+ "id" : 6,
+ "is_direct" : true,
+ "binding" : "forwarding.unicast_v6"
+ },
+ {
+ "name" : "forwarding.multicast_v6_counter",
+ "id" : 7,
+ "is_direct" : true,
+ "binding" : "forwarding.multicast_v6"
+ },
+ {
+ "name" : "forwarding.acl_counter",
+ "id" : 8,
+ "is_direct" : true,
+ "binding" : "forwarding.acl"
+ },
+ {
+ "name" : "next.simple_counter",
+ "id" : 9,
+ "is_direct" : true,
+ "binding" : "next.simple"
+ },
+ {
+ "name" : "next.hashed_counter",
+ "id" : 10,
+ "is_direct" : true,
+ "binding" : "next.hashed"
+ },
+ {
+ "name" : "next.broadcast_counter",
+ "id" : 11,
+ "is_direct" : true,
+ "binding" : "next.broadcast"
+ },
+ {
+ "name" : "port_counters_control.egress_port_counter",
+ "id" : 12,
"source_info" : {
"filename" : "./include/control/port_counter.p4",
"line" : 23,
@@ -848,7 +920,7 @@
},
{
"name" : "port_counters_control.ingress_port_counter",
- "id" : 1,
+ "id" : 13,
"source_info" : {
"filename" : "./include/control/port_counter.p4",
"line" : 24,
@@ -866,7 +938,7 @@
"id" : 0,
"source_info" : {
"filename" : "./include/checksum.p4",
- "line" : 51,
+ "line" : 48,
"column" : 8,
"source_fragment" : "verify_checksum(hdr.ipv4.isValid(), ..."
},
@@ -923,7 +995,7 @@
"id" : 1,
"source_info" : {
"filename" : "./include/checksum.p4",
- "line" : 25,
+ "line" : 24,
"column" : 8,
"source_fragment" : "update_checksum(hdr.ipv4.isValid(), ..."
},
@@ -1054,7 +1126,7 @@
"parameters" : [],
"source_info" : {
"filename" : "./include/control/filtering.p4",
- "line" : 29,
+ "line" : 31,
"column" : 8,
"source_fragment" : "mark_to_drop()"
}
@@ -1085,7 +1157,7 @@
],
"source_info" : {
"filename" : "./include/control/filtering.p4",
- "line" : 33,
+ "line" : 35,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
}
@@ -1112,7 +1184,7 @@
],
"source_info" : {
"filename" : "./include/control/filtering.p4",
- "line" : 39,
+ "line" : 41,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.setValid()"
}
@@ -1131,7 +1203,7 @@
],
"source_info" : {
"filename" : "./include/control/filtering.p4",
- "line" : 40,
+ "line" : 42,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.cfi = 0"
}
@@ -1150,7 +1222,7 @@
],
"source_info" : {
"filename" : "./include/control/filtering.p4",
- "line" : 41,
+ "line" : 43,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.pri = 0"
}
@@ -1169,7 +1241,7 @@
],
"source_info" : {
"filename" : "./include/control/filtering.p4",
- "line" : 42,
+ "line" : 44,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.ether_type = hdr.ethernet.ether_type"
}
@@ -1207,7 +1279,7 @@
],
"source_info" : {
"filename" : "./include/control/filtering.p4",
- "line" : 33,
+ "line" : 35,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id; ..."
}
@@ -1236,7 +1308,7 @@
],
"source_info" : {
"filename" : "./include/control/filtering.p4",
- "line" : 47,
+ "line" : 49,
"column" : 8,
"source_fragment" : "fabric_metadata.pop_vlan_at_egress = true"
}
@@ -1267,7 +1339,7 @@
],
"source_info" : {
"filename" : "./include/control/filtering.p4",
- "line" : 51,
+ "line" : 53,
"column" : 8,
"source_fragment" : "fabric_metadata.fwd_type = fwd_type"
}
@@ -1284,7 +1356,7 @@
"parameters" : [],
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 31,
+ "line" : 39,
"column" : 8,
"source_fragment" : "mark_to_drop()"
}
@@ -1315,7 +1387,7 @@
],
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 35,
+ "line" : 43,
"column" : 8,
"source_fragment" : "fabric_metadata.next_id = next_id"
}
@@ -1346,7 +1418,7 @@
],
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 35,
+ "line" : 43,
"column" : 8,
"source_fragment" : "fabric_metadata.next_id = next_id"
}
@@ -1377,7 +1449,7 @@
],
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 35,
+ "line" : 43,
"column" : 8,
"source_fragment" : "fabric_metadata.next_id = next_id"
}
@@ -1408,7 +1480,7 @@
],
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 35,
+ "line" : 43,
"column" : 8,
"source_fragment" : "fabric_metadata.next_id = next_id"
}
@@ -1439,7 +1511,7 @@
],
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 35,
+ "line" : 43,
"column" : 8,
"source_fragment" : "fabric_metadata.next_id = next_id"
}
@@ -1470,7 +1542,7 @@
],
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 35,
+ "line" : 43,
"column" : 8,
"source_fragment" : "fabric_metadata.next_id = next_id"
}
@@ -1497,7 +1569,7 @@
],
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 39,
+ "line" : 47,
"column" : 8,
"source_fragment" : "hdr.mpls.setInvalid()"
}
@@ -1516,7 +1588,7 @@
],
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 40,
+ "line" : 48,
"column" : 8,
"source_fragment" : "fabric_metadata.next_id = next_id"
}
@@ -1573,7 +1645,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 30,
+ "line" : 33,
"column" : 8,
"source_fragment" : "standard_metadata.egress_spec = port_num"
}
@@ -1608,7 +1680,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 34,
+ "line" : 37,
"column" : 8,
"source_fragment" : "hdr.vlan_tag.vlan_id = new_vlan_id"
}
@@ -1637,7 +1709,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 37,
+ "line" : 40,
"column" : 8,
"source_fragment" : "fabric_metadata.pop_vlan_at_egress = false"
}
@@ -1656,7 +1728,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 30,
+ "line" : 33,
"column" : 8,
"source_fragment" : "standard_metadata.egress_spec = port_num; ..."
}
@@ -1695,7 +1767,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 42,
+ "line" : 45,
"column" : 8,
"source_fragment" : "hdr.ethernet.src_addr = smac; ..."
}
@@ -1714,7 +1786,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 46,
+ "line" : 49,
"column" : 8,
"source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
}
@@ -1733,7 +1805,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 30,
+ "line" : 33,
"column" : 8,
"source_fragment" : "standard_metadata.egress_spec = port_num; ..."
}
@@ -1772,7 +1844,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 42,
+ "line" : 45,
"column" : 8,
"source_fragment" : "hdr.ethernet.src_addr = smac; ..."
}
@@ -1791,7 +1863,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 46,
+ "line" : 49,
"column" : 8,
"source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
}
@@ -1810,7 +1882,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 30,
+ "line" : 33,
"column" : 8,
"source_fragment" : "standard_metadata.egress_spec = port_num; ..."
}
@@ -1845,7 +1917,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 56,
+ "line" : 59,
"column" : 8,
"source_fragment" : "standard_metadata.mcast_grp = gid"
}
@@ -1864,7 +1936,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 42,
+ "line" : 45,
"column" : 8,
"source_fragment" : "hdr.ethernet.src_addr = smac; ..."
}
@@ -1907,7 +1979,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 42,
+ "line" : 45,
"column" : 8,
"source_fragment" : "hdr.ethernet.src_addr = smac; ..."
}
@@ -1926,7 +1998,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 46,
+ "line" : 49,
"column" : 8,
"source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
}
@@ -1945,7 +2017,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 30,
+ "line" : 33,
"column" : 8,
"source_fragment" : "standard_metadata.egress_spec = port_num; ..."
}
@@ -1960,7 +2032,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 62,
+ "line" : 65,
"column" : 8,
"source_fragment" : "hdr.mpls.setValid()"
}
@@ -1998,7 +2070,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 64,
+ "line" : 67,
"column" : 8,
"source_fragment" : "hdr.mpls.label = label; ..."
}
@@ -2017,7 +2089,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 65,
+ "line" : 68,
"column" : 8,
"source_fragment" : "hdr.mpls.tc = tc; ..."
}
@@ -2036,7 +2108,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 66,
+ "line" : 69,
"column" : 8,
"source_fragment" : "hdr.mpls.bos = 1w1"
}
@@ -2063,7 +2135,7 @@
]
},
{
- "name" : "next.mpls_routing_v6",
+ "name" : "next.mpls_routing_v4",
"id" : 30,
"runtime_data" : [
{
@@ -2098,7 +2170,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 42,
+ "line" : 45,
"column" : 8,
"source_fragment" : "hdr.ethernet.src_addr = smac; ..."
}
@@ -2117,7 +2189,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 46,
+ "line" : 49,
"column" : 8,
"source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
}
@@ -2136,7 +2208,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 30,
+ "line" : 33,
"column" : 8,
"source_fragment" : "standard_metadata.egress_spec = port_num; ..."
}
@@ -2151,7 +2223,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 62,
+ "line" : 65,
"column" : 8,
"source_fragment" : "hdr.mpls.setValid()"
}
@@ -2189,7 +2261,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 64,
+ "line" : 67,
"column" : 8,
"source_fragment" : "hdr.mpls.label = label; ..."
}
@@ -2208,7 +2280,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 65,
+ "line" : 68,
"column" : 8,
"source_fragment" : "hdr.mpls.tc = tc; ..."
}
@@ -2227,7 +2299,198 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 66,
+ "line" : 69,
+ "column" : 8,
+ "source_fragment" : "hdr.mpls.bos = 1w1"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["mpls", "ttl"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x40"
+ }
+ ],
+ "source_info" : {
+ "filename" : "./include/control/../header.p4",
+ "line" : 19,
+ "column" : 32,
+ "source_fragment" : "64; ..."
+ }
+ }
+ ]
+ },
+ {
+ "name" : "next.mpls_routing_v6",
+ "id" : 31,
+ "runtime_data" : [
+ {
+ "name" : "port_num",
+ "bitwidth" : 9
+ },
+ {
+ "name" : "smac",
+ "bitwidth" : 48
+ },
+ {
+ "name" : "dmac",
+ "bitwidth" : 48
+ },
+ {
+ "name" : "label",
+ "bitwidth" : 20
+ }
+ ],
+ "primitives" : [
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["ethernet", "src_addr"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 1
+ }
+ ],
+ "source_info" : {
+ "filename" : "./include/control/next.p4",
+ "line" : 45,
+ "column" : 8,
+ "source_fragment" : "hdr.ethernet.src_addr = smac; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["ethernet", "dst_addr"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 2
+ }
+ ],
+ "source_info" : {
+ "filename" : "./include/control/next.p4",
+ "line" : 49,
+ "column" : 8,
+ "source_fragment" : "hdr.ethernet.dst_addr = dmac; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["standard_metadata", "egress_spec"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 0
+ }
+ ],
+ "source_info" : {
+ "filename" : "./include/control/next.p4",
+ "line" : 33,
+ "column" : 8,
+ "source_fragment" : "standard_metadata.egress_spec = port_num; ..."
+ }
+ },
+ {
+ "op" : "add_header",
+ "parameters" : [
+ {
+ "type" : "header",
+ "value" : "mpls"
+ }
+ ],
+ "source_info" : {
+ "filename" : "./include/control/next.p4",
+ "line" : 65,
+ "column" : 8,
+ "source_fragment" : "hdr.mpls.setValid()"
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["ethernet", "ether_type"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x8847"
+ }
+ ],
+ "source_info" : {
+ "filename" : "./include/control/../define.p4",
+ "line" : 33,
+ "column" : 31,
+ "source_fragment" : "0x8847; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["mpls", "label"]
+ },
+ {
+ "type" : "runtime_data",
+ "value" : 3
+ }
+ ],
+ "source_info" : {
+ "filename" : "./include/control/next.p4",
+ "line" : 67,
+ "column" : 8,
+ "source_fragment" : "hdr.mpls.label = label; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["mpls", "tc"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x00"
+ }
+ ],
+ "source_info" : {
+ "filename" : "./include/control/next.p4",
+ "line" : 68,
+ "column" : 8,
+ "source_fragment" : "hdr.mpls.tc = tc; ..."
+ }
+ },
+ {
+ "op" : "assign",
+ "parameters" : [
+ {
+ "type" : "field",
+ "value" : ["mpls", "bos"]
+ },
+ {
+ "type" : "hexstr",
+ "value" : "0x01"
+ }
+ ],
+ "source_info" : {
+ "filename" : "./include/control/next.p4",
+ "line" : 69,
"column" : 8,
"source_fragment" : "hdr.mpls.bos = 1w1"
}
@@ -2255,7 +2518,7 @@
},
{
"name" : "act",
- "id" : 31,
+ "id" : 32,
"runtime_data" : [],
"primitives" : [
{
@@ -2296,7 +2559,7 @@
},
{
"name" : "act_0",
- "id" : 32,
+ "id" : 33,
"runtime_data" : [],
"primitives" : [
{
@@ -2341,7 +2604,7 @@
},
{
"name" : "act_1",
- "id" : 33,
+ "id" : 34,
"runtime_data" : [],
"primitives" : [
{
@@ -2386,7 +2649,7 @@
},
{
"name" : "act_2",
- "id" : 34,
+ "id" : 35,
"runtime_data" : [],
"primitives" : [
{
@@ -2416,7 +2679,7 @@
},
{
"name" : "act_3",
- "id" : 35,
+ "id" : 36,
"runtime_data" : [],
"primitives" : [
{
@@ -2446,7 +2709,7 @@
},
{
"name" : "act_4",
- "id" : 36,
+ "id" : 37,
"runtime_data" : [],
"primitives" : [
{
@@ -2486,7 +2749,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 133,
+ "line" : 140,
"column" : 20,
"source_fragment" : "hdr.ipv4.ttl = hdr.ipv4.ttl - 1"
}
@@ -2495,7 +2758,7 @@
},
{
"name" : "act_5",
- "id" : 37,
+ "id" : 38,
"runtime_data" : [],
"primitives" : [
{
@@ -2535,7 +2798,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 136,
+ "line" : 143,
"column" : 20,
"source_fragment" : "hdr.ipv6.hop_limit = hdr.ipv6.hop_limit - 1"
}
@@ -2544,7 +2807,7 @@
},
{
"name" : "act_6",
- "id" : 38,
+ "id" : 39,
"runtime_data" : [],
"primitives" : [
{
@@ -2596,7 +2859,7 @@
},
{
"name" : "act_7",
- "id" : 39,
+ "id" : 40,
"runtime_data" : [],
"primitives" : [
{
@@ -2648,7 +2911,7 @@
},
{
"name" : "act_8",
- "id" : 40,
+ "id" : 41,
"runtime_data" : [],
"primitives" : [
{
@@ -2674,7 +2937,7 @@
},
{
"name" : "act_9",
- "id" : 41,
+ "id" : 42,
"runtime_data" : [],
"primitives" : [
{
@@ -2691,7 +2954,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 156,
+ "line" : 163,
"column" : 16,
"source_fragment" : "hdr.ethernet.ether_type = fabric_metadata.original_ether_type"
}
@@ -2700,7 +2963,7 @@
},
{
"name" : "act_10",
- "id" : 42,
+ "id" : 43,
"runtime_data" : [],
"primitives" : [
{
@@ -2713,7 +2976,7 @@
],
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 158,
+ "line" : 165,
"column" : 12,
"source_fragment" : "hdr.vlan_tag.setInvalid()"
}
@@ -2722,7 +2985,7 @@
},
{
"name" : "act_11",
- "id" : 43,
+ "id" : 44,
"runtime_data" : [],
"primitives" : [
{
@@ -2784,14 +3047,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [31],
+ "action_ids" : [32],
"actions" : ["act"],
"base_default_next" : null,
"next_tables" : {
"act" : null
},
"default_entry" : {
- "action_id" : 31,
+ "action_id" : 32,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -2802,7 +3065,7 @@
"id" : 1,
"source_info" : {
"filename" : "./include/control/filtering.p4",
- "line" : 55,
+ "line" : 57,
"column" : 10,
"source_fragment" : "ingress_port_vlan"
},
@@ -2826,7 +3089,6 @@
"match_type" : "ternary",
"type" : "simple",
"max_size" : 1024,
- "with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [13, 12, 0, 11],
@@ -2839,7 +3101,7 @@
"filtering.drop" : "filtering.fwd_classifier"
},
"default_entry" : {
- "action_id" : 11,
+ "action_id" : 0,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -2850,7 +3112,7 @@
"id" : 2,
"source_info" : {
"filename" : "./include/control/filtering.p4",
- "line" : 72,
+ "line" : 76,
"column" : 10,
"source_fragment" : "fwd_classifier"
},
@@ -2874,7 +3136,6 @@
"match_type" : "exact",
"type" : "simple",
"max_size" : 1024,
- "with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [14],
@@ -2895,7 +3156,7 @@
"id" : 3,
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 47,
+ "line" : 55,
"column" : 10,
"source_fragment" : "bridging"
},
@@ -2914,7 +3175,6 @@
"match_type" : "ternary",
"type" : "simple",
"max_size" : 1024,
- "with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [16, 2],
@@ -2936,7 +3196,7 @@
"id" : 4,
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 58,
+ "line" : 67,
"column" : 10,
"source_fragment" : "mpls"
},
@@ -2950,7 +3210,6 @@
"match_type" : "exact",
"type" : "simple",
"max_size" : 1024,
- "with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [22, 3],
@@ -2977,14 +3236,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [32],
+ "action_ids" : [33],
"actions" : ["act_0"],
"base_default_next" : "forwarding.acl",
"next_tables" : {
"act_0" : "forwarding.acl"
},
"default_entry" : {
- "action_id" : 32,
+ "action_id" : 33,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -3000,14 +3259,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [33],
+ "action_ids" : [34],
"actions" : ["act_1"],
"base_default_next" : "forwarding.acl",
"next_tables" : {
"act_1" : "forwarding.acl"
},
"default_entry" : {
- "action_id" : 33,
+ "action_id" : 34,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -3018,7 +3277,7 @@
"id" : 7,
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 68,
+ "line" : 78,
"column" : 10,
"source_fragment" : "unicast_v4"
},
@@ -3032,7 +3291,6 @@
"match_type" : "lpm",
"type" : "simple",
"max_size" : 1024,
- "with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [17, 4],
@@ -3054,7 +3312,7 @@
"id" : 8,
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 78,
+ "line" : 89,
"column" : 10,
"source_fragment" : "multicast_v4"
},
@@ -3073,7 +3331,6 @@
"match_type" : "lpm",
"type" : "simple",
"max_size" : 1024,
- "with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [18, 5],
@@ -3095,7 +3352,7 @@
"id" : 9,
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 89,
+ "line" : 101,
"column" : 10,
"source_fragment" : "unicast_v6"
},
@@ -3109,7 +3366,6 @@
"match_type" : "lpm",
"type" : "simple",
"max_size" : 1024,
- "with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [19, 6],
@@ -3131,7 +3387,7 @@
"id" : 10,
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 99,
+ "line" : 112,
"column" : 10,
"source_fragment" : "multicast_v6"
},
@@ -3150,7 +3406,6 @@
"match_type" : "lpm",
"type" : "simple",
"max_size" : 1024,
- "with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [20, 7],
@@ -3172,7 +3427,7 @@
"id" : 11,
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 110,
+ "line" : 124,
"column" : 10,
"source_fragment" : "acl"
},
@@ -3241,7 +3496,6 @@
"match_type" : "ternary",
"type" : "simple",
"max_size" : 256,
- "with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [21, 23, 15, 1],
@@ -3265,7 +3519,7 @@
"id" : 12,
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 86,
+ "line" : 89,
"column" : 10,
"source_fragment" : "simple"
},
@@ -3279,11 +3533,10 @@
"match_type" : "exact",
"type" : "simple",
"max_size" : 1024,
- "with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [24, 25, 26, 8],
- "actions" : ["next.output", "next.set_vlan_output", "next.l3_routing", "NoAction"],
+ "action_ids" : [24, 25, 26, 29, 8],
+ "actions" : ["next.output", "next.set_vlan_output", "next.l3_routing", "next.mpls_routing_v4", "NoAction"],
"base_default_next" : null,
"next_tables" : {
"__HIT__" : "tbl_act_2",
@@ -3306,14 +3559,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [34],
+ "action_ids" : [35],
"actions" : ["act_2"],
"base_default_next" : "node_25",
"next_tables" : {
"act_2" : "node_25"
},
"default_entry" : {
- "action_id" : 34,
+ "action_id" : 35,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -3329,14 +3582,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [35],
+ "action_ids" : [36],
"actions" : ["act_3"],
"base_default_next" : "node_25",
"next_tables" : {
"act_3" : "node_25"
},
"default_entry" : {
- "action_id" : 35,
+ "action_id" : 36,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -3352,14 +3605,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [36],
+ "action_ids" : [37],
"actions" : ["act_4"],
"base_default_next" : "next.hashed",
"next_tables" : {
"act_4" : "next.hashed"
},
"default_entry" : {
- "action_id" : 36,
+ "action_id" : 37,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -3375,14 +3628,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [37],
+ "action_ids" : [38],
"actions" : ["act_5"],
"base_default_next" : "next.hashed",
"next_tables" : {
"act_5" : "next.hashed"
},
"default_entry" : {
- "action_id" : 37,
+ "action_id" : 38,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -3393,7 +3646,7 @@
"id" : 17,
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 98,
+ "line" : 103,
"column" : 10,
"source_fragment" : "hashed"
},
@@ -3408,10 +3661,9 @@
"type" : "indirect_ws",
"action_profile" : "next.ecmp_selector",
"max_size" : 1024,
- "with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [27, 29, 30, 9],
+ "action_ids" : [27, 30, 31, 9],
"actions" : ["next.l3_routing", "next.mpls_routing_v4", "next.mpls_routing_v6", "NoAction"],
"base_default_next" : "next.broadcast",
"next_tables" : {
@@ -3426,7 +3678,7 @@
"id" : 18,
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 120,
+ "line" : 126,
"column" : 10,
"source_fragment" : "broadcast"
},
@@ -3440,7 +3692,6 @@
"match_type" : "exact",
"type" : "simple",
"max_size" : 1024,
- "with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
"action_ids" : [28, 10],
@@ -3467,14 +3718,14 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [38],
+ "action_ids" : [39],
"actions" : ["act_6"],
"base_default_next" : "node_35",
"next_tables" : {
"act_6" : "node_35"
},
"default_entry" : {
- "action_id" : 38,
+ "action_id" : 39,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -3490,14 +3741,83 @@
"with_counters" : false,
"support_timeout" : false,
"direct_meters" : null,
- "action_ids" : [39],
+ "action_ids" : [40],
"actions" : ["act_7"],
- "base_default_next" : null,
+ "base_default_next" : "node_37",
"next_tables" : {
- "act_7" : null
+ "act_7" : "node_37"
},
"default_entry" : {
- "action_id" : 39,
+ "action_id" : 40,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_act_8",
+ "id" : 21,
+ "key" : [],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [41],
+ "actions" : ["act_8"],
+ "base_default_next" : "tbl_act_10",
+ "next_tables" : {
+ "act_8" : "tbl_act_10"
+ },
+ "default_entry" : {
+ "action_id" : 41,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_act_9",
+ "id" : 22,
+ "key" : [],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [42],
+ "actions" : ["act_9"],
+ "base_default_next" : "tbl_act_10",
+ "next_tables" : {
+ "act_9" : "tbl_act_10"
+ },
+ "default_entry" : {
+ "action_id" : 42,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ },
+ {
+ "name" : "tbl_act_10",
+ "id" : 23,
+ "key" : [],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [43],
+ "actions" : ["act_10"],
+ "base_default_next" : null,
+ "next_tables" : {
+ "act_10" : null
+ },
+ "default_entry" : {
+ "action_id" : 43,
"action_const" : true,
"action_data" : [],
"action_entry_const" : true
@@ -3568,7 +3888,7 @@
"id" : 1,
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 139,
+ "line" : 154,
"column" : 11,
"source_fragment" : "fabric_metadata.fwd_type == FWD_BRIDGING"
},
@@ -3594,7 +3914,7 @@
"id" : 2,
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 140,
+ "line" : 155,
"column" : 17,
"source_fragment" : "fabric_metadata.fwd_type == FWD_MPLS"
},
@@ -3620,7 +3940,7 @@
"id" : 3,
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 142,
+ "line" : 157,
"column" : 16,
"source_fragment" : "hdr.ipv4.isValid()"
},
@@ -3646,7 +3966,7 @@
"id" : 4,
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 150,
+ "line" : 165,
"column" : 17,
"source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_UNICAST"
},
@@ -3672,7 +3992,7 @@
"id" : 5,
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 151,
+ "line" : 166,
"column" : 17,
"source_fragment" : "fabric_metadata.fwd_type == FWD_IPV4_MULTICAST"
},
@@ -3698,7 +4018,7 @@
"id" : 6,
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 152,
+ "line" : 167,
"column" : 17,
"source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_UNICAST"
},
@@ -3724,7 +4044,7 @@
"id" : 7,
"source_info" : {
"filename" : "./include/control/forwarding.p4",
- "line" : 153,
+ "line" : 168,
"column" : 17,
"source_fragment" : "fabric_metadata.fwd_type == FWD_IPV6_MULTICAST"
},
@@ -3767,7 +4087,7 @@
"id" : 9,
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 131,
+ "line" : 138,
"column" : 17,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -3793,7 +4113,7 @@
"id" : 10,
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 132,
+ "line" : 139,
"column" : 19,
"source_fragment" : "hdr.ipv4.isValid()"
},
@@ -3819,7 +4139,7 @@
"id" : 11,
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 135,
+ "line" : 142,
"column" : 25,
"source_fragment" : "hdr.ipv6.isValid()"
},
@@ -3889,123 +4209,15 @@
}
}
},
- "false_next" : null,
- "true_next" : "tbl_act_7"
- }
- ]
- },
- {
- "name" : "egress",
- "id" : 1,
- "source_info" : {
- "filename" : "fabric.p4",
- "line" : 48,
- "column" : 8,
- "source_fragment" : "FabricEgress"
- },
- "init_table" : "node_39",
- "tables" : [
- {
- "name" : "tbl_act_8",
- "id" : 21,
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [40],
- "actions" : ["act_8"],
- "base_default_next" : "tbl_act_10",
- "next_tables" : {
- "act_8" : "tbl_act_10"
- },
- "default_entry" : {
- "action_id" : 40,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
+ "true_next" : "tbl_act_7",
+ "false_next" : "node_37"
},
{
- "name" : "tbl_act_9",
- "id" : 22,
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [41],
- "actions" : ["act_9"],
- "base_default_next" : "tbl_act_10",
- "next_tables" : {
- "act_9" : "tbl_act_10"
- },
- "default_entry" : {
- "action_id" : 41,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_10",
- "id" : 23,
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [42],
- "actions" : ["act_10"],
- "base_default_next" : "node_44",
- "next_tables" : {
- "act_10" : "node_44"
- },
- "default_entry" : {
- "action_id" : 42,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- },
- {
- "name" : "tbl_act_11",
- "id" : 24,
- "key" : [],
- "match_type" : "exact",
- "type" : "simple",
- "max_size" : 1024,
- "with_counters" : false,
- "support_timeout" : false,
- "direct_meters" : null,
- "action_ids" : [43],
- "actions" : ["act_11"],
- "base_default_next" : null,
- "next_tables" : {
- "act_11" : null
- },
- "default_entry" : {
- "action_id" : 43,
- "action_const" : true,
- "action_data" : [],
- "action_entry_const" : true
- }
- }
- ],
- "action_profiles" : [],
- "conditionals" : [
- {
- "name" : "node_39",
+ "name" : "node_37",
"id" : 14,
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 152,
+ "line" : 159,
"column" : 12,
"source_fragment" : "fabric_metadata.pop_vlan_at_egress"
},
@@ -4020,15 +4232,15 @@
}
}
},
- "true_next" : "node_40",
- "false_next" : "node_44"
+ "false_next" : null,
+ "true_next" : "node_38"
},
{
- "name" : "node_40",
+ "name" : "node_38",
"id" : 15,
"source_info" : {
"filename" : "./include/control/next.p4",
- "line" : 153,
+ "line" : 160,
"column" : 16,
"source_fragment" : "hdr.mpls.isValid()"
},
@@ -4048,7 +4260,46 @@
},
"true_next" : "tbl_act_8",
"false_next" : "tbl_act_9"
- },
+ }
+ ]
+ },
+ {
+ "name" : "egress",
+ "id" : 1,
+ "source_info" : {
+ "filename" : "fabric.p4",
+ "line" : 50,
+ "column" : 8,
+ "source_fragment" : "FabricEgress"
+ },
+ "init_table" : "node_44",
+ "tables" : [
+ {
+ "name" : "tbl_act_11",
+ "id" : 24,
+ "key" : [],
+ "match_type" : "exact",
+ "type" : "simple",
+ "max_size" : 1024,
+ "with_counters" : false,
+ "support_timeout" : false,
+ "direct_meters" : null,
+ "action_ids" : [44],
+ "actions" : ["act_11"],
+ "base_default_next" : null,
+ "next_tables" : {
+ "act_11" : null
+ },
+ "default_entry" : {
+ "action_id" : 44,
+ "action_const" : true,
+ "action_data" : [],
+ "action_entry_const" : true
+ }
+ }
+ ],
+ "action_profiles" : [],
+ "conditionals" : [
{
"name" : "node_44",
"id" : 16,
diff --git a/pipelines/fabric/src/main/resources/p4c-out/bmv2/fabric.p4info b/pipelines/fabric/src/main/resources/p4c-out/bmv2/fabric.p4info
index 20c0dad..de1bf1e 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/bmv2/fabric.p4info
+++ b/pipelines/fabric/src/main/resources/p4c-out/bmv2/fabric.p4info
@@ -34,7 +34,8 @@
action_refs {
id: 16826365
}
- const_default_action_id: 16826365
+ const_default_action_id: 16819938
+ direct_resource_ids: 302015144
size: 1024
}
tables {
@@ -65,6 +66,7 @@
id: 16838162
}
const_default_action_id: 16838162
+ direct_resource_ids: 302033694
size: 1024
}
tables {
@@ -92,6 +94,7 @@
id: 16800567
annotations: "@defaultonly()"
}
+ direct_resource_ids: 302047449
size: 1024
}
tables {
@@ -113,6 +116,7 @@
id: 16800567
annotations: "@defaultonly()"
}
+ direct_resource_ids: 302001577
size: 1024
}
tables {
@@ -134,6 +138,7 @@
id: 16800567
annotations: "@defaultonly()"
}
+ direct_resource_ids: 302038636
size: 1024
}
tables {
@@ -161,6 +166,7 @@
id: 16800567
annotations: "@defaultonly()"
}
+ direct_resource_ids: 302009236
size: 1024
}
tables {
@@ -182,6 +188,7 @@
id: 16800567
annotations: "@defaultonly()"
}
+ direct_resource_ids: 301998193
size: 1024
}
tables {
@@ -209,6 +216,7 @@
id: 16800567
annotations: "@defaultonly()"
}
+ direct_resource_ids: 302003792
size: 1024
}
tables {
@@ -302,6 +310,7 @@
id: 16819938
}
const_default_action_id: 16819938
+ direct_resource_ids: 302000008
size: 256
}
tables {
@@ -326,9 +335,13 @@
id: 16804266
}
action_refs {
+ id: 16841192
+ }
+ action_refs {
id: 16800567
annotations: "@defaultonly()"
}
+ direct_resource_ids: 301991179
size: 1024
}
tables {
@@ -357,6 +370,7 @@
annotations: "@defaultonly()"
}
implementation_id: 285225078
+ direct_resource_ids: 301993193
size: 1024
}
tables {
@@ -378,6 +392,7 @@
id: 16800567
annotations: "@defaultonly()"
}
+ direct_resource_ids: 301995093
size: 1024
}
actions {
@@ -629,6 +644,138 @@
}
size: 511
}
+direct_counters {
+ preamble {
+ id: 302015144
+ name: "filtering.ingress_port_vlan_counter"
+ alias: "ingress_port_vlan_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 33578399
+}
+direct_counters {
+ preamble {
+ id: 302033694
+ name: "filtering.fwd_classifier_counter"
+ alias: "fwd_classifier_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 33619540
+}
+direct_counters {
+ preamble {
+ id: 302047449
+ name: "forwarding.bridging_counter"
+ alias: "bridging_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 33569146
+}
+direct_counters {
+ preamble {
+ id: 302001577
+ name: "forwarding.mpls_counter"
+ alias: "mpls_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 33565386
+}
+direct_counters {
+ preamble {
+ id: 302038636
+ name: "forwarding.unicast_v4_counter"
+ alias: "unicast_v4_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 33589684
+}
+direct_counters {
+ preamble {
+ id: 302009236
+ name: "forwarding.multicast_v4_counter"
+ alias: "multicast_v4_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 33615204
+}
+direct_counters {
+ preamble {
+ id: 301998193
+ name: "forwarding.unicast_v6_counter"
+ alias: "unicast_v6_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 33608345
+}
+direct_counters {
+ preamble {
+ id: 302003792
+ name: "forwarding.multicast_v6_counter"
+ alias: "multicast_v6_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 33592333
+}
+direct_counters {
+ preamble {
+ id: 302000008
+ name: "forwarding.acl_counter"
+ alias: "acl_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 33587782
+}
+direct_counters {
+ preamble {
+ id: 301991179
+ name: "next.simple_counter"
+ alias: "simple_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 33615740
+}
+direct_counters {
+ preamble {
+ id: 301993193
+ name: "next.hashed_counter"
+ alias: "hashed_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 33569488
+}
+direct_counters {
+ preamble {
+ id: 301995093
+ name: "next.broadcast_counter"
+ alias: "broadcast_counter"
+ }
+ spec {
+ unit: BOTH
+ }
+ direct_table_id: 33608545
+}
controller_packet_metadata {
preamble {
id: 2868941301