From 76dc892491948adae5e5e62cf94448967e8d865b Mon Sep 17 00:00:00 2001 From: Ashlee Young Date: Sun, 6 Dec 2015 07:15:03 -0800 Subject: Fixes bad POM file with ONOS commit 8c68536972f63069c263635c9d9f4f31d7f3e9a2 Change-Id: I7adb5a2d3738d53dbc41db7577768b0e7ced5450 Signed-off-by: Ashlee Young --- .../org/onosproject/segmentrouting/ArpHandler.java | 26 ++++++++++++++-------- 1 file changed, 17 insertions(+), 9 deletions(-) (limited to 'framework/src/onos/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/ArpHandler.java') diff --git a/framework/src/onos/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/ArpHandler.java b/framework/src/onos/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/ArpHandler.java index 2c6412cf..7f4bcb15 100644 --- a/framework/src/onos/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/ArpHandler.java +++ b/framework/src/onos/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/ArpHandler.java @@ -107,7 +107,7 @@ public class ArpHandler { vlanId); // ARP request for router. Send ARP reply. - if (isArpReqForRouter(deviceId, arpRequest)) { + if (isArpForRouter(deviceId, arpRequest)) { Ip4Address targetAddress = Ip4Address.valueOf(arpRequest.getTargetProtocolAddress()); sendArpResponse(arpRequest, config.getRouterMacForAGatewayIp(targetAddress), vlanId); } else { @@ -130,7 +130,7 @@ public class ArpHandler { vlanId); // ARP reply for router. Process all pending IP packets. - if (isArpReqForRouter(deviceId, arpReply)) { + if (isArpForRouter(deviceId, arpReply)) { Ip4Address hostIpAddress = Ip4Address.valueOf(arpReply.getSenderProtocolAddress()); srManager.ipHandler.forwardPackets(deviceId, hostIpAddress); } else { @@ -141,7 +141,8 @@ public class ArpHandler { // ARP reply for unknown host, Flood in the subnet. } else { // Don't flood to non-edge ports - if (vlanId.equals(VlanId.vlanId(srManager.ASSIGNED_VLAN_NO_SUBNET))) { + if (vlanId.equals( + VlanId.vlanId(SegmentRoutingManager.ASSIGNED_VLAN_NO_SUBNET))) { return; } removeVlanAndFlood(payload, inPort); @@ -150,14 +151,21 @@ public class ArpHandler { } - private boolean isArpReqForRouter(DeviceId deviceId, ARP arpRequest) { - Set gatewayIpAddresses = config.getPortIPs(deviceId); - if (gatewayIpAddresses != null) { - Ip4Address targetProtocolAddress = Ip4Address.valueOf(arpRequest - .getTargetProtocolAddress()); - if (gatewayIpAddresses.contains(targetProtocolAddress)) { + private boolean isArpForRouter(DeviceId deviceId, ARP arpMsg) { + Ip4Address targetProtocolAddress = Ip4Address.valueOf( + arpMsg.getTargetProtocolAddress()); + Set gatewayIpAddresses = null; + try { + if (targetProtocolAddress.equals(config.getRouterIp(deviceId))) { return true; } + gatewayIpAddresses = config.getPortIPs(deviceId); + } catch (DeviceConfigNotFoundException e) { + log.warn(e.getMessage() + " Aborting check for router IP in processing arp"); + } + if (gatewayIpAddresses != null && + gatewayIpAddresses.contains(targetProtocolAddress)) { + return true; } return false; } -- cgit 1.2.3-korg