[SDFAB-152] Performs seenBefore optimization iff the bidi link was seen before
Change-Id: I9f5df59ea3a956e683342cc4900231fbc875a3a7
diff --git a/impl/src/main/java/org/onosproject/segmentrouting/LinkHandler.java b/impl/src/main/java/org/onosproject/segmentrouting/LinkHandler.java
index b8800af..62ac1c0 100644
--- a/impl/src/main/java/org/onosproject/segmentrouting/LinkHandler.java
+++ b/impl/src/main/java/org/onosproject/segmentrouting/LinkHandler.java
@@ -154,9 +154,11 @@
for (Link ulink : ulinks) {
log.info("-- Starting optimized route-path processing for component "
+ "unidirectional link {} --> {} UP", ulink.src(), ulink.dst());
+ // Performs the seenBefore optimization iff we have seen before both links in that case
+ // we have programmed the group (unless there were major issues in the system)
srManager.defaultRoutingHandler
.populateRoutingRulesForLinkStatusChange(null, ulink, null,
- seenBefore.contains(ulink));
+ (seenBefore.contains(ulink) && seenBefore.contains(getReverseLink(ulink))));
if (srManager.mastershipService.isLocalMaster(ulink.src().deviceId())) {
// handle edge-ports for dual-homed hosts