[CORD-438] Fix Segment Routing application
Changes: - Discards Link events if one of the switch is down; - Triggers the paths optimization after device-down event; Change-Id: I4114f2450401e0d1ff5658d592daf319d977f20e
Showing
2 changed files
with
10 additions
and
0 deletions
... | @@ -662,6 +662,7 @@ public class DefaultRoutingHandler { | ... | @@ -662,6 +662,7 @@ public class DefaultRoutingHandler { |
662 | if (updatedEcmpSpgMap != null) { | 662 | if (updatedEcmpSpgMap != null) { |
663 | updatedEcmpSpgMap.remove(deviceId); | 663 | updatedEcmpSpgMap.remove(deviceId); |
664 | } | 664 | } |
665 | + this.populateRoutingRulesForLinkStatusChange(null); | ||
665 | } | 666 | } |
666 | 667 | ||
667 | private final class RetryFilters implements Runnable { | 668 | private final class RetryFilters implements Runnable { | ... | ... |
... | @@ -693,6 +693,15 @@ public class SegmentRoutingManager implements SegmentRoutingService { | ... | @@ -693,6 +693,15 @@ public class SegmentRoutingManager implements SegmentRoutingService { |
693 | if (event.type() == LinkEvent.Type.LINK_ADDED) { | 693 | if (event.type() == LinkEvent.Type.LINK_ADDED) { |
694 | processLinkAdded((Link) event.subject()); | 694 | processLinkAdded((Link) event.subject()); |
695 | } else if (event.type() == LinkEvent.Type.LINK_REMOVED) { | 695 | } else if (event.type() == LinkEvent.Type.LINK_REMOVED) { |
696 | + Link linkRemoved = (Link) event.subject(); | ||
697 | + if (linkRemoved.src().elementId() instanceof DeviceId && | ||
698 | + !deviceService.isAvailable(linkRemoved.src().deviceId())) { | ||
699 | + continue; | ||
700 | + } | ||
701 | + if (linkRemoved.dst().elementId() instanceof DeviceId && | ||
702 | + !deviceService.isAvailable(linkRemoved.dst().deviceId())) { | ||
703 | + continue; | ||
704 | + } | ||
696 | processLinkRemoved((Link) event.subject()); | 705 | processLinkRemoved((Link) event.subject()); |
697 | } else if (event.type() == DeviceEvent.Type.DEVICE_ADDED || | 706 | } else if (event.type() == DeviceEvent.Type.DEVICE_ADDED || |
698 | event.type() == DeviceEvent.Type.DEVICE_AVAILABILITY_CHANGED || | 707 | event.type() == DeviceEvent.Type.DEVICE_AVAILABILITY_CHANGED || | ... | ... |
-
Please register or login to post a comment