Better error handling
Change-Id: Iac5934a89b177f4e0207a6ecc2e2f0731aca115e
diff --git a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java b/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java
index 90aafdd..c4a6ad7 100644
--- a/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java
+++ b/apps/dhcprelay/src/main/java/org/onosproject/dhcprelay/Dhcp4HandlerImpl.java
@@ -19,6 +19,7 @@
import com.google.common.collect.HashMultimap;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Lists;
import com.google.common.collect.Multimap;
import com.google.common.collect.Multimaps;
import com.google.common.collect.Sets;
@@ -682,7 +683,7 @@
log.warn("Missing DHCP relay agent interface Ipv4 addr config for "
+ "packet from client on port: {}. Aborting packet processing",
clientInterfaces.iterator().next().connectPoint());
- return null;
+ return Lists.newArrayList();
}
log.debug("Multi DHCP V4 processDhcpPacketFromClient on port {}",
clientInterfaces.iterator().next().connectPoint());
@@ -707,7 +708,7 @@
if (clientInterfaceIp == null) {
log.warn("Can't find interface IP for client interface for port {}",
context.inPacket().receivedFrom());
- return null;
+ return Lists.newArrayList();
}
boolean isDirectlyConnected = directlyConnected(dhcpPacket);
@@ -752,7 +753,6 @@
log.debug("Interfacing server {} Mac : {} ", ipFacingServer, macFacingServer);
if (ipFacingServer == null || macFacingServer == null) {
log.warn("No IP address for server Interface {}", serverInterface);
- //return null;
continue;
}
diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/ArpHandler.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/ArpHandler.java
index b3a0aca..af62525 100644
--- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/ArpHandler.java
+++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/ArpHandler.java
@@ -102,6 +102,11 @@
// ARP request for router. Send ARP reply.
if (isArpForRouter(pkt)) {
MacAddress targetMac = config.getRouterMacForAGatewayIp(pkt.target().getIp4Address());
+ if (targetMac == null) {
+ log.warn("Router MAC of {} is not configured. Cannot handle ARP request from {}",
+ pkt.inPort().deviceId(), pkt.sender());
+ return;
+ }
sendResponse(pkt, targetMac, hostService);
} else {
// NOTE: Ignore ARP packets except those target for the router
diff --git a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java
index b305c5e..3ec8b23 100644
--- a/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java
+++ b/apps/segmentrouting/app/src/main/java/org/onosproject/segmentrouting/IcmpHandler.java
@@ -328,6 +328,11 @@
if (isNdpForGateway(pkt)) {
log.trace("Sending NDP reply on behalf of gateway IP for pkt: {}", pkt.target());
MacAddress routerMac = config.getRouterMacForAGatewayIp(pkt.target());
+ if (routerMac == null) {
+ log.warn("Router MAC of {} is not configured. Cannot handle NDP request from {}",
+ pkt.inPort().deviceId(), pkt.sender());
+ return;
+ }
sendResponse(pkt, routerMac, hostService);
} else {