commit | 91ccbf74b89221ba76cdce399eef47b0f5a7005f | [log] [tgz] |
---|---|---|
author | Charles Chan <rascov@gmail.com> | Tue Jun 27 18:48:32 2017 -0700 |
committer | Charles Chan <charles@opennetworking.org> | Fri Jun 30 20:42:28 2017 +0000 |
tree | 519cf6034a9a15ff55fd9419c66049ce470996de | |
parent | 08537a8c36df8d84e77e7667b4b6e3c766278dd0 [diff] |
ONOS-6768 Punt ARP/NDP even when a device is not configured Change-Id: I39f3e7e5e0252ecc548f44ce35806641838d01dd
diff --git a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/DefaultRoutingHandler.java b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/DefaultRoutingHandler.java index 5b6b07e..99021d7 100644 --- a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/DefaultRoutingHandler.java +++ b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/DefaultRoutingHandler.java
@@ -878,9 +878,6 @@ * @param deviceId Switch ID to set the rules */ public void populatePortAddressingRules(DeviceId deviceId) { - rulePopulator.populateIpPunts(deviceId); - rulePopulator.populateArpNdpPunts(deviceId); - // Although device is added, sometimes device store does not have the // ports for this device yet. It results in missing filtering rules in the // switch. We will attempt it a few times. If it still does not work,
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 951bf1b..67a13f9 100644 --- a/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java +++ b/apps/segmentrouting/src/main/java/org/onosproject/segmentrouting/SegmentRoutingManager.java
@@ -1053,6 +1053,12 @@ private void processDeviceAdded(Device device) { log.info("** DEVICE ADDED with ID {}", device.id()); + + // NOTE: Punt ARP/NDP even when the device is not configured. + // Host learning without network config is required for CORD config generator. + routingRulePopulator.populateIpPunts(device.id()); + routingRulePopulator.populateArpNdpPunts(device.id()); + if (deviceConfiguration == null || !deviceConfiguration.isConfigured(device.id())) { log.warn("Device configuration uploading. Device {} will be " + "processed after config completes.", device.id());