Pull out inner-classes from Criteria to be independent classes
Make constructors of sub-types of Criterion package private for
limiting instantiation only from static factory methods in Criteria
Change-Id: I1fb1e9d003288a778a49e758549a92b66bf3cfdf
diff --git a/drivers/src/main/java/org/onosproject/driver/pipeline/OVSCorsaPipeline.java b/drivers/src/main/java/org/onosproject/driver/pipeline/OVSCorsaPipeline.java
index d92e9ca..a92dbe1 100644
--- a/drivers/src/main/java/org/onosproject/driver/pipeline/OVSCorsaPipeline.java
+++ b/drivers/src/main/java/org/onosproject/driver/pipeline/OVSCorsaPipeline.java
@@ -44,6 +44,12 @@
import org.onosproject.net.flow.TrafficTreatment;
import org.onosproject.net.flow.criteria.Criteria;
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.IPCriterion;
+import org.onosproject.net.flow.criteria.IPProtocolCriterion;
+import org.onosproject.net.flow.criteria.PortCriterion;
+import org.onosproject.net.flow.criteria.VlanIdCriterion;
import org.onosproject.net.flowobjective.FilteringObjective;
import org.onosproject.net.flowobjective.FlowObjectiveStore;
import org.onosproject.net.flowobjective.ForwardingObjective;
@@ -245,8 +251,8 @@
log.debug("Processing versatile forwarding objective");
TrafficSelector selector = fwd.selector();
- Criteria.EthTypeCriterion ethType =
- (Criteria.EthTypeCriterion) selector.getCriterion(Criterion.Type.ETH_TYPE);
+ EthTypeCriterion ethType =
+ (EthTypeCriterion) selector.getCriterion(Criterion.Type.ETH_TYPE);
if (ethType == null) {
log.error("Versatile forwarding objective must include ethType");
fail(fwd, ObjectiveError.UNKNOWN);
@@ -263,11 +269,11 @@
fail(fwd, ObjectiveError.UNSUPPORTED);
return Collections.emptySet();
} else if (ethType.ethType() == Ethernet.TYPE_IPV4) {
- Criteria.IPCriterion ipSrc = (Criteria.IPCriterion) selector
+ IPCriterion ipSrc = (IPCriterion) selector
.getCriterion(Criterion.Type.IPV4_SRC);
- Criteria.IPCriterion ipDst = (Criteria.IPCriterion) selector
+ IPCriterion ipDst = (IPCriterion) selector
.getCriterion(Criterion.Type.IPV4_DST);
- Criteria.IPProtocolCriterion ipProto = (Criteria.IPProtocolCriterion) selector
+ IPProtocolCriterion ipProto = (IPProtocolCriterion) selector
.getCriterion(Criterion.Type.IP_PROTO);
if (ipSrc != null) {
log.warn("Driver does not currently handle matching Src IP");
@@ -296,8 +302,8 @@
private Collection<FlowRule> processSpecific(ForwardingObjective fwd) {
log.debug("Processing specific forwarding objective");
TrafficSelector selector = fwd.selector();
- Criteria.EthTypeCriterion ethType =
- (Criteria.EthTypeCriterion) selector.getCriterion(Criterion.Type.ETH_TYPE);
+ EthTypeCriterion ethType =
+ (EthTypeCriterion) selector.getCriterion(Criterion.Type.ETH_TYPE);
if (ethType == null || ethType.ethType() != Ethernet.TYPE_IPV4) {
fail(fwd, ObjectiveError.UNSUPPORTED);
return Collections.emptySet();
@@ -307,7 +313,7 @@
DefaultTrafficSelector.builder()
.matchEthType(Ethernet.TYPE_IPV4)
.matchIPDst(
- ((Criteria.IPCriterion)
+ ((IPCriterion)
selector.getCriterion(Criterion.Type.IPV4_DST)).ip())
.build();
@@ -351,10 +357,10 @@
ApplicationId applicationId) {
// This driver only processes filtering criteria defined with switch
// ports as the key
- Criteria.PortCriterion p;
+ PortCriterion p;
if (!filt.key().equals(Criteria.dummy()) &&
filt.key().type() == Criterion.Type.IN_PORT) {
- p = (Criteria.PortCriterion) filt.key();
+ p = (PortCriterion) filt.key();
} else {
log.warn("No key defined in filtering objective from app: {}. Not"
+ "processing filtering objective", applicationId);
@@ -365,7 +371,7 @@
FlowRuleOperations.Builder ops = FlowRuleOperations.builder();
for (Criterion c : filt.conditions()) {
if (c.type() == Criterion.Type.ETH_DST) {
- Criteria.EthCriterion e = (Criteria.EthCriterion) c;
+ EthCriterion e = (EthCriterion) c;
log.debug("adding rule for MAC: {}", e.mac());
TrafficSelector.Builder selector = DefaultTrafficSelector.builder();
TrafficTreatment.Builder treatment = DefaultTrafficTreatment.builder();
@@ -381,7 +387,7 @@
.forTable(MAC_TABLE).build();
ops = install ? ops.add(rule) : ops.remove(rule);
} else if (c.type() == Criterion.Type.VLAN_VID) {
- Criteria.VlanIdCriterion v = (Criteria.VlanIdCriterion) c;
+ VlanIdCriterion v = (VlanIdCriterion) c;
log.debug("adding rule for VLAN: {}", v.vlanId());
TrafficSelector.Builder selector = DefaultTrafficSelector.builder();
TrafficTreatment.Builder treatment = DefaultTrafficTreatment.builder();
@@ -399,7 +405,7 @@
.forTable(VLAN_TABLE).build();
ops = install ? ops.add(rule) : ops.remove(rule);
} else if (c.type() == Criterion.Type.IPV4_DST) {
- Criteria.IPCriterion ip = (Criteria.IPCriterion) c;
+ IPCriterion ip = (IPCriterion) c;
log.debug("adding rule for IP: {}", ip.ip());
TrafficSelector.Builder selector = DefaultTrafficSelector.builder();
TrafficTreatment.Builder treatment = DefaultTrafficTreatment.builder();