Skip edge port disabling logic when the setup has only a pair of leaves
The mechanism was originally introduced to signal dual-homed hosts to send traffic via another leaf when a leaf doesn't have any uplink
by disable edge ports.
This logic is no longer applicable in a setup with only a pair of leaves.
Change-Id: I0c00e866422c7104c76388f5a913eb35acc026ba
diff --git a/impl/src/main/java/org/onosproject/segmentrouting/LinkHandler.java b/impl/src/main/java/org/onosproject/segmentrouting/LinkHandler.java
index 62ac1c0..229d32c 100644
--- a/impl/src/main/java/org/onosproject/segmentrouting/LinkHandler.java
+++ b/impl/src/main/java/org/onosproject/segmentrouting/LinkHandler.java
@@ -347,6 +347,12 @@
* @param added true if link was added, false if link was removed
*/
private void updateHostPorts(Link link, boolean added) {
+ // Topology has only a single pair of leaves
+ if (srManager.getInfraDeviceIds().isEmpty()) {
+ log.debug("No spine configured. Not updating edge port for {} {}", link, added ? "add" : "remove");
+ return;
+ }
+
DeviceConfiguration devConfig = srManager.deviceConfiguration;
if (added) {
try {
@@ -674,12 +680,19 @@
* @param loc the host location
*/
void checkUplinksForHost(HostLocation loc) {
+ // Topology has only a single pair of leaves
+ if (srManager.getInfraDeviceIds().isEmpty()) {
+ log.debug("No spine configured. Not disabling access port for {}", loc);
+ return;
+ }
+
// If the device does not have a pair device - return
if (getPairDeviceIdOrNull(loc.deviceId()) == null) {
log.info("Device {} does not have pair device " +
"not disabling access port", loc.deviceId());
return;
}
+
// Verify link validity
try {
for (Link l : srManager.linkService.getDeviceLinks(loc.deviceId())) {