diff --git a/core/api/src/main/java/org/onlab/onos/net/AnnotationKeys.java b/core/api/src/main/java/org/onlab/onos/net/AnnotationKeys.java
index de18fc0..94c4a5f 100644
--- a/core/api/src/main/java/org/onlab/onos/net/AnnotationKeys.java
+++ b/core/api/src/main/java/org/onlab/onos/net/AnnotationKeys.java
@@ -30,12 +30,6 @@
     public static final String DURABLE = "durable";
 
     /**
-     * Annotation key for active/inactive links. Links are implicitly
-     * considered active unless explicitly marked otherwise.
-     */
-    public static final String INACTIVE = "inactive";
-
-    /**
      * Annotation key for latency.
      */
     public static final String LATENCY = "latency";
diff --git a/core/store/dist/src/main/java/org/onlab/onos/store/link/impl/GossipLinkStore.java b/core/store/dist/src/main/java/org/onlab/onos/store/link/impl/GossipLinkStore.java
index d496ebe1..d4b0916 100644
--- a/core/store/dist/src/main/java/org/onlab/onos/store/link/impl/GossipLinkStore.java
+++ b/core/store/dist/src/main/java/org/onlab/onos/store/link/impl/GossipLinkStore.java
@@ -531,9 +531,7 @@
         }
 
         boolean isDurable = Objects.equals(annotations.value(AnnotationKeys.DURABLE), "true");
-        boolean isActive = !Objects.equals(annotations.value(AnnotationKeys.INACTIVE), "true");
-        return new DefaultLink(baseProviderId, src, dst, type,
-                               isActive ? ACTIVE : INACTIVE, isDurable, annotations);
+        return new DefaultLink(baseProviderId, src, dst, type, ACTIVE, isDurable, annotations);
     }
 
     private Map<ProviderId, Timestamped<LinkDescription>> getOrCreateLinkDescriptions(LinkKey key) {
diff --git a/core/store/trivial/src/main/java/org/onlab/onos/store/trivial/impl/SimpleLinkStore.java b/core/store/trivial/src/main/java/org/onlab/onos/store/trivial/impl/SimpleLinkStore.java
index a383167..5dec00c 100644
--- a/core/store/trivial/src/main/java/org/onlab/onos/store/trivial/impl/SimpleLinkStore.java
+++ b/core/store/trivial/src/main/java/org/onlab/onos/store/trivial/impl/SimpleLinkStore.java
@@ -314,9 +314,7 @@
         }
 
         boolean isDurable = Objects.equals(annotations.value(AnnotationKeys.DURABLE), "true");
-        boolean isActive = !Objects.equals(annotations.value(AnnotationKeys.INACTIVE), "true");
-        return new DefaultLink(primary, src, dst, type,
-                               isActive ? ACTIVE : INACTIVE, isDurable, annotations);
+        return new DefaultLink(primary, src, dst, type, ACTIVE, isDurable, annotations);
     }
 
     private Map<ProviderId, LinkDescription> getOrCreateLinkDescriptions(LinkKey key) {
