ONOS-685: Network Configuration Manager support for Segment Routing application
Change-Id: Ia15bfd24559dd5542633c8b76d500b2d31362340
diff --git a/src/main/java/org/onosproject/segmentrouting/ArpHandler.java b/src/main/java/org/onosproject/segmentrouting/ArpHandler.java
index 5b94518..b696525 100644
--- a/src/main/java/org/onosproject/segmentrouting/ArpHandler.java
+++ b/src/main/java/org/onosproject/segmentrouting/ArpHandler.java
@@ -19,7 +19,6 @@
import org.onlab.packet.Ethernet;
import org.onlab.packet.Ip4Address;
import org.onlab.packet.IpAddress;
-import org.onlab.packet.IpPrefix;
import org.onlab.packet.MacAddress;
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.DeviceId;
@@ -36,7 +35,7 @@
import org.slf4j.LoggerFactory;
import java.nio.ByteBuffer;
-
+import java.util.List;
import static com.google.common.base.Preconditions.checkNotNull;
public class ArpHandler {
@@ -112,11 +111,11 @@
private boolean isArpReqForRouter(DeviceId deviceId, ARP arpRequest) {
- Ip4Address gatewayIpAddress = config.getGatewayIpAddress(deviceId);
- if (gatewayIpAddress != null) {
+ List<Ip4Address> gatewayIpAddresses = config.getGatewayIpAddress(deviceId);
+ if (gatewayIpAddresses != null) {
Ip4Address targetProtocolAddress = Ip4Address.valueOf(arpRequest
.getTargetProtocolAddress());
- if (gatewayIpAddress.equals(targetProtocolAddress)) {
+ if (gatewayIpAddresses.contains(targetProtocolAddress)) {
return true;
}
}
@@ -124,15 +123,11 @@
}
private boolean isArpReqForSubnet(DeviceId deviceId, ARP arpRequest) {
- String subnetInfo = config.getSubnetInfo(deviceId);
- if (subnetInfo != null) {
- IpPrefix prefix = IpPrefix.valueOf(subnetInfo);
- if (prefix.contains(Ip4Address.valueOf(arpRequest.getTargetProtocolAddress()))) {
- return true;
- }
- }
-
- return false;
+ return config.getSubnetInfo(deviceId).stream()
+ .anyMatch((prefix)->
+ prefix.contains(Ip4Address.
+ valueOf(arpRequest.
+ getTargetProtocolAddress())));
}
/**