Refactor fabric.p4 and pipeliner
- Rename constants, some control blocks may share same action
- Remove unused match keys from ACL table
- Better style for constant file
- Ignore unsupported match from objective
Change-Id: I6472426d2a2607581c6fa7479ad40d7090a7d660
diff --git a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FabricForwardingPipeliner.java b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FabricForwardingPipeliner.java
index bceefdd..e72042f 100644
--- a/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FabricForwardingPipeliner.java
+++ b/pipelines/fabric/src/main/java/org/onosproject/pipelines/fabric/pipeliner/FabricForwardingPipeliner.java
@@ -68,6 +68,18 @@
private void processVersatileFwd(ForwardingObjective fwd,
PipelinerTranslationResult.Builder resultBuilder) {
+ // TODO: Move IPv6 match to different ACL table
+
+ boolean unsupported = fwd.selector().criteria().stream()
+ .anyMatch(criterion -> criterion.type() == Criterion.Type.IPV6_DST);
+ unsupported |= fwd.selector().criteria().stream()
+ .anyMatch(criterion -> criterion.type() == Criterion.Type.IPV6_SRC);
+
+ if (unsupported) {
+ resultBuilder.setError(ObjectiveError.UNSUPPORTED);
+ return;
+ }
+
// program ACL table only
FlowRule flowRule = DefaultFlowRule.builder()
.withSelector(fwd.selector())
@@ -254,7 +266,7 @@
PiActionParam nextIdParam = new PiActionParam(FabricConstants.ACT_PRM_NEXT_ID_ID,
ImmutableByteSequence.copyFrom(fwd.nextId().byteValue()));
PiAction nextIdAction = PiAction.builder()
- .withId(FabricConstants.ACT_POP_MPLS_AND_NEXT_ID)
+ .withId(FabricConstants.ACT_FORWARDING_POP_MPLS_AND_NEXT_ID)
.withParameter(nextIdParam)
.build();
TrafficTreatment treatment = DefaultTrafficTreatment.builder()
@@ -278,7 +290,7 @@
PiActionParam nextIdParam = new PiActionParam(FabricConstants.ACT_PRM_NEXT_ID_ID,
ImmutableByteSequence.copyFrom(nextId.byteValue()));
PiAction nextIdAction = PiAction.builder()
- .withId(FabricConstants.ACT_SET_NEXT_ID_ID)
+ .withId(FabricConstants.ACT_FORWARDING_SET_NEXT_ID_ID)
.withParameter(nextIdParam)
.build();