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/bmv2/default/p4info.txt b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt
index 2787013..efb3a76 100644
--- a/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt
+++ b/pipelines/fabric/src/main/resources/p4c-out/fabric/bmv2/default/p4info.txt
@@ -55,7 +55,7 @@
id: 2
name: "hdr.ethernet.dst_addr"
bitwidth: 48
- match_type: EXACT
+ match_type: TERNARY
}
match_fields {
id: 3
@@ -125,9 +125,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
@@ -136,13 +136,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
}
@@ -477,9 +477,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
@@ -858,14 +858,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 {