Fix for Softrouter pushing bogus flows.
Also remove the IPv4 ethtype that it inserts that wasn't in the original
filtering objective. This should let it work with IPv4 & IPv6.
Change-Id: I0813c209b816d8ea6ee3954cc40cbe7b9405cc41
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java
index ac9c38a..2deef19 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/SoftRouterPipeline.java
@@ -283,7 +283,6 @@
selector.matchEthDst(e.mac());
}
selector.matchVlanId(v.vlanId());
- selector.matchEthType(TYPE_IPV4);
if (!v.vlanId().equals(VlanId.NONE)) {
treatment.popVlan();
}
@@ -298,29 +297,7 @@
.forTable(FILTER_TABLE).build();
ops = install ? ops.add(rule) : ops.remove(rule);
- // FIXME IPv6 in the multicast use case.
- // Filtering rules for IPv6.
- if (e.mask() == null) {
- selector = DefaultTrafficSelector.builder();
- selector.matchInPort(p.port());
- selector.matchEthDst(e.mac());
- selector.matchVlanId(v.vlanId());
- selector.matchEthType(Ethernet.TYPE_IPV6);
- if (!v.vlanId().equals(VlanId.NONE)) {
- treatment.popVlan();
- }
- treatment.transition(FIB_TABLE);
- rule = DefaultFlowRule.builder()
- .forDevice(deviceId)
- .withSelector(selector.build())
- .withTreatment(treatment.build())
- .withPriority(DEFAULT_PRIORITY)
- .fromApp(applicationId)
- .makePermanent()
- .forTable(FILTER_TABLE).build();
- ops = install ? ops.add(rule) : ops.remove(rule);
- }
// apply filtering flow rules
flowRuleService.apply(ops.build(new FlowRuleOperationsContext() {
@Override