Fixing a couple of NPEs
Change-Id: I19b5a2787b26e67e05640f6c64a13b58f2dc089a
diff --git a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/ArpHandler.java b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/ArpHandler.java
index 388e313..5e4f7d2 100644
--- a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/ArpHandler.java
+++ b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/ArpHandler.java
@@ -24,7 +24,6 @@
import org.onosproject.net.ConnectPoint;
import org.onosproject.net.DeviceId;
import org.onosproject.net.Host;
-import org.onosproject.net.PortNumber;
import org.onosproject.net.flow.DefaultTrafficTreatment;
import org.onosproject.net.flow.TrafficTreatment;
import org.onosproject.net.packet.DefaultOutboundPacket;
@@ -88,10 +87,7 @@
ARP arp = (ARP) ethernet.getPayload();
ConnectPoint connectPoint = pkt.receivedFrom();
- PortNumber inPort = connectPoint.port();
DeviceId deviceId = connectPoint.deviceId();
- byte[] senderMacAddressByte = arp.getSenderHardwareAddress();
- Ip4Address hostIpAddress = Ip4Address.valueOf(arp.getSenderProtocolAddress());
if (arp.getOpCode() == ARP.OP_REQUEST) {
handleArpRequest(deviceId, connectPoint, ethernet);
} else {
@@ -254,15 +250,23 @@
((ARP) packet.getPayload()).getTargetProtocolAddress()
);
- srManager.deviceConfiguration.getSubnetPortsMap(inPort.deviceId()).forEach((subnet, ports) -> {
- if (subnet.contains(targetProtocolAddress)) {
- ports.stream()
- .filter(port -> port != inPort.port())
- .forEach(port -> {
- removeVlanAndForward(packet, new ConnectPoint(inPort.deviceId(), port));
- });
- }
- });
+ try {
+ srManager.deviceConfiguration
+ .getSubnetPortsMap(inPort.deviceId()).forEach((subnet, ports) -> {
+ if (subnet.contains(targetProtocolAddress)) {
+ ports.stream()
+ .filter(port -> port != inPort.port())
+ .forEach(port -> {
+ removeVlanAndForward(packet,
+ new ConnectPoint(inPort.deviceId(), port));
+ });
+ }
+ });
+ } catch (DeviceConfigNotFoundException e) {
+ log.warn(e.getMessage()
+ + " Cannot flood in subnet as device config not available"
+ + " for device: " + inPort.deviceId());
+ }
}
/**