nokia pipeline: block eapol flow rules in fwd primitive because it already sent in filter primitive
Change-Id: I6e6b30e749a4e90f2d1dc6f58bc81a6db7df5c15
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/NokiaOltPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/NokiaOltPipeline.java
index 640321f..33cfdec 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/NokiaOltPipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/NokiaOltPipeline.java
@@ -233,6 +233,11 @@
return;
}
+ if (checkForEAPOL(fwd)) {
+ log.warn("Discarding EAPOL flow which is not supported on this pipeline");
+ return;
+ }
+
TrafficTreatment treatment = fwd.treatment();
List<Instruction> instructions = treatment.allInstructions();
@@ -400,6 +405,12 @@
}
+ private boolean checkForEAPOL(ForwardingObjective fwd) {
+ EthTypeCriterion ethType = (EthTypeCriterion)
+ filterForCriterion(fwd.selector().criteria(), Criterion.Type.ETH_TYPE);
+
+ return ethType != null && ethType.ethType().equals(EthType.EtherType.EAPOL.ethType());
+ }
private GroupKey getGroupForNextObjective(Integer nextId) {
NextGroup next = flowObjectiveStore.getNextGroup(nextId);
return appKryo.deserialize(next.data());