diff --git a/core/store/dist/src/main/java/org/onosproject/store/link/impl/ECLinkStore.java b/core/store/dist/src/main/java/org/onosproject/store/link/impl/ECLinkStore.java
index d93672e..2240eb4 100644
--- a/core/store/dist/src/main/java/org/onosproject/store/link/impl/ECLinkStore.java
+++ b/core/store/dist/src/main/java/org/onosproject/store/link/impl/ECLinkStore.java
@@ -293,11 +293,17 @@
 
     private LinkDescription createOrUpdateLinkInternal(LinkDescription current, LinkDescription updated) {
         if (current != null) {
-            // we only allow transition from INDIRECT -> DIRECT
+            Type type;
+            if (current.type() == DIRECT && updated.type() == Type.INDIRECT) {
+                // mask transition from DIRECT -> INDIRECT, likely to be triggered by BDDP
+                type = Type.DIRECT;
+            } else {
+                type = updated.type();
+            }
             return new DefaultLinkDescription(
                     current.src(),
                     current.dst(),
-                    current.type() == DIRECT ? DIRECT : updated.type(),
+                    type,
                     current.isExpected(),
                     union(current.annotations(), updated.annotations()));
         }
@@ -324,7 +330,7 @@
                 return newLink;
             } else if (existingLink.state() != newLink.state() ||
                     existingLink.isExpected() != newLink.isExpected() ||
-                    (existingLink.type() == INDIRECT && newLink.type() == DIRECT) ||
+                    (existingLink.type() !=  newLink.type()) ||
                     !AnnotationsUtil.isEqual(existingLink.annotations(), newLink.annotations())) {
                 eventType.set(LINK_UPDATED);
                 return newLink;
