Support IPv4 multicast in P4 fabric pipeline
- Multicast can use the same table as unicast. Merge into one.
- Allow masked destination MAC in classifier table
Note:
- Pipeliner now translates all exact MAC match to masked match with FF:FF:FF:FF:FF:FF mask.
- Interpreter now only uses masked src/dst MAC
Change-Id: Ibd27ebfb2d72ba929031f07a29927eb6f1844f11
(cherry picked from commit 0865779b66a59a623856b1353615e462af5575c5)
diff --git a/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt b/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt
index 53a3653..f82a75e 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric-int/bmv2/default/p4info.txt
@@ -101,7 +101,7 @@
id: 2
name: "hdr.ethernet.dst_addr"
bitwidth: 48
- match_type: EXACT
+ match_type: TERNARY
}
match_fields {
id: 3
@@ -171,9 +171,9 @@
}
tables {
preamble {
- id: 33586372
- name: "FabricIngress.forwarding.unicast_v4"
- alias: "unicast_v4"
+ id: 33562650
+ name: "FabricIngress.forwarding.routing_v4"
+ alias: "routing_v4"
}
match_fields {
id: 1
@@ -182,13 +182,13 @@
match_type: LPM
}
action_refs {
- id: 16828976
+ id: 16777434
}
action_refs {
id: 16800567
annotations: "@defaultonly()"
}
- direct_resource_ids: 318768492
+ direct_resource_ids: 318811107
size: 1024
idle_timeout_behavior: NO_TIMEOUT
}
@@ -747,9 +747,9 @@
}
actions {
preamble {
- id: 16828976
- name: "FabricIngress.forwarding.set_next_id_unicast_v4"
- alias: "set_next_id_unicast_v4"
+ id: 16777434
+ name: "FabricIngress.forwarding.set_next_id_routing_v4"
+ alias: "set_next_id_routing_v4"
}
params {
id: 1
@@ -1487,14 +1487,14 @@
}
direct_counters {
preamble {
- id: 318768492
- name: "FabricIngress.forwarding.unicast_v4_counter"
- alias: "unicast_v4_counter"
+ id: 318811107
+ name: "FabricIngress.forwarding.routing_v4_counter"
+ alias: "routing_v4_counter"
}
spec {
unit: BOTH
}
- direct_table_id: 33586372
+ direct_table_id: 33562650
}
direct_counters {
preamble {