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/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingFunctionType.java b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingFunctionType.java
index 0349cc7..65e3a25 100644
--- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingFunctionType.java
+++ b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/ForwardingFunctionType.java
@@ -49,22 +49,12 @@
/**
* IPv4 unicast, with EtherType and IPv4 unicast destination address.
*/
- IPV4_UNICAST,
-
- /**
- * IPv4 multicast, with EtherType and IPv4 multicast destination address.
- */
- IPV4_MULTICAST,
+ IPV4_ROUTING,
/**
* IPv6 unicast, with EtherType and IPv6 unicast destination address.
*/
- IPV6_UNICAST,
-
- /**
- * IPv6 multicast, with EtherType and IPv6 multicast destination address.
- */
- IPV6_MULTICAST,
+ IPV6_ROUTING,
/**
* MPLS, with EtherType, MPLS label and MPLS BOS(true) criterion.
@@ -101,10 +91,10 @@
ImmutableMap.<Set<Criterion.Type>, ForwardingFunctionType>builder()
.put(L2_UNI_CRITERIA_TYPE, L2_UNICAST)
.put(L2_BRC_CRITERIA_TYPE, L2_BROADCAST)
- .put(IPV4_UNI_CRITERIA_TYPE, IPV4_UNICAST)
- .put(IPV4_MCAST_CRITERIA_TYPE, IPV4_MULTICAST)
- .put(IPV6_UNI_CRITERIA_TYPE, IPV6_UNICAST)
- .put(IPV6_MCAST_CRITERIA_TYPE, IPV6_MULTICAST)
+ .put(IPV4_UNI_CRITERIA_TYPE, IPV4_ROUTING)
+ .put(IPV4_MCAST_CRITERIA_TYPE, IPV4_ROUTING)
+ .put(IPV6_UNI_CRITERIA_TYPE, IPV6_ROUTING)
+ .put(IPV6_MCAST_CRITERIA_TYPE, IPV6_ROUTING)
.put(MPLS_UNI_CRITERIA_TYPE, MPLS)
.build();