Prevent XConnect loop
Change-Id: I65c52342840ebef944a65b8c6f65a33448da59cf
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2Pipeline.java
index 73d1d7d..eae78fd 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2Pipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/ofdpa/Ofdpa2Pipeline.java
@@ -56,6 +56,8 @@
import org.onosproject.net.flow.criteria.Criterion;
import org.onosproject.net.flow.criteria.EthCriterion;
import org.onosproject.net.flow.criteria.EthTypeCriterion;
+import org.onosproject.net.flow.criteria.ExtensionCriterion;
+import org.onosproject.net.flow.criteria.ExtensionSelector;
import org.onosproject.net.flow.criteria.IPCriterion;
import org.onosproject.net.flow.criteria.Icmpv6CodeCriterion;
import org.onosproject.net.flow.criteria.Icmpv6TypeCriterion;
@@ -1851,6 +1853,15 @@
? null : ((VlanIdCriterion) criterion).vlanId();
}
+ static MacAddress readEthDstFromSelector(TrafficSelector selector) {
+ if (selector == null) {
+ return null;
+ }
+ Criterion criterion = selector.getCriterion(Criterion.Type.ETH_DST);
+ return (criterion == null)
+ ? null : ((EthCriterion) criterion).mac();
+ }
+
static IpPrefix readIpDstFromSelector(TrafficSelector selector) {
if (selector == null) {
return null;
@@ -1886,6 +1897,14 @@
return null;
}
+ static ExtensionSelector readExtensionFromSelector(TrafficSelector selector) {
+ if (selector == null) {
+ return null;
+ }
+ ExtensionCriterion criterion = (ExtensionCriterion) selector.getCriterion(Criterion.Type.EXTENSION);
+ return (criterion == null) ? null : criterion.extensionSelector();
+ }
+
/**
* Utility class that retries sending flows a fixed number of times, even if
* some of the attempts are successful. Used only for forwarding objectives.