Various fixes:
- Adds the support for the filter obj of AppConfigHandler;
- Fixes NPE on ICMP handler when rcving a packet from not configured ntw;
Change-Id: I44b90420429ca05927426bdf9a9ce4b78846b566
diff --git a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java
index 9675620..0e408bb 100644
--- a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java
+++ b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java
@@ -315,7 +315,7 @@
IpPrefix subnet = config.getPortIPv6Subnet(
connectPoint.deviceId(),
connectPoint.port()
- ).getIp6Prefix();
+ );
return subnet != null && subnet.contains(pkt.sender());
}
diff --git a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
index 1316285..4f912f3 100644
--- a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
+++ b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
@@ -999,9 +999,6 @@
* @param portToRegister connect point to register
*/
public void registerConnectPoint(ConnectPoint portToRegister) {
- /*
- * First we register the ARP handler.
- */
this.neighbourResolutionService.registerNeighbourHandler(
portToRegister,
neighbourHandler,
diff --git a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/config/DeviceConfiguration.java b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/config/DeviceConfiguration.java
index 55562e0..6ceeb4b 100644
--- a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/config/DeviceConfiguration.java
+++ b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/config/DeviceConfiguration.java
@@ -158,9 +158,7 @@
});
}
});
- /*
- * We register the connect point with the NRS.
- */
+ // We register the connect point with the NRS.
srManager.registerConnectPoint(subject);
});
}
diff --git a/drivers/default/src/main/java/org/onosproject/driver/pipeline/Ofdpa2Pipeline.java b/drivers/default/src/main/java/org/onosproject/driver/pipeline/Ofdpa2Pipeline.java
index 03811e2..e6249fd 100644
--- a/drivers/default/src/main/java/org/onosproject/driver/pipeline/Ofdpa2Pipeline.java
+++ b/drivers/default/src/main/java/org/onosproject/driver/pipeline/Ofdpa2Pipeline.java
@@ -685,6 +685,8 @@
protected List<FlowRule> processEthDstOnlyFilter(EthCriterion ethCriterion,
ApplicationId applicationId) {
+ ImmutableList.Builder<FlowRule> builder = ImmutableList.builder();
+
TrafficSelector.Builder selector = DefaultTrafficSelector.builder();
TrafficTreatment.Builder treatment = DefaultTrafficTreatment.builder();
selector.matchEthType(Ethernet.TYPE_IPV4);
@@ -698,7 +700,22 @@
.fromApp(applicationId)
.makePermanent()
.forTable(TMAC_TABLE).build();
- return ImmutableList.<FlowRule>builder().add(rule).build();
+ builder.add(rule);
+
+ selector = DefaultTrafficSelector.builder();
+ treatment = DefaultTrafficTreatment.builder();
+ selector.matchEthType(Ethernet.TYPE_IPV6);
+ selector.matchEthDst(ethCriterion.mac());
+ treatment.transition(UNICAST_ROUTING_TABLE);
+ rule = DefaultFlowRule.builder()
+ .forDevice(deviceId)
+ .withSelector(selector.build())
+ .withTreatment(treatment.build())
+ .withPriority(DEFAULT_PRIORITY)
+ .fromApp(applicationId)
+ .makePermanent()
+ .forTable(TMAC_TABLE).build();
+ return builder.add(rule).build();
}
protected List<FlowRule> processMcastEthDstFilter(EthCriterion ethCriterion,