diff --git a/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LldpLinkProvider.java b/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LldpLinkProvider.java
index 768c207..b99e4be 100644
--- a/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LldpLinkProvider.java
+++ b/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/LldpLinkProvider.java
@@ -100,6 +100,7 @@
                 PROP_PROBE_RATE + ":Integer=" + PROBE_RATE_DEFAULT,
                 PROP_STALE_LINK_AGE + ":Integer=" + STALE_LINK_AGE_DEFAULT,
                 PROP_DISCOVERY_DELAY + ":Integer=" + DISCOVERY_DELAY_DEFAULT,
+                PROP_USE_STALE_LINK_AGE + ":Boolean=" + USE_STALE_LINK_AGE_DEFAULT,
         })
 public class LldpLinkProvider extends AbstractProvider implements ProbedLinkProvider {
 
@@ -107,7 +108,7 @@
 
     private static final String FORMAT =
             "Settings: enabled={}, useBDDP={}, probeRate={}, " +
-                    "staleLinkAge={}, maxLLDPage={}";
+                    "staleLinkAge={}, maxLLDPage={}, useStaleLinkAge={}";
 
     // When a Device/Port has this annotation, do not send out LLDP/BDDP
     public static final String NO_LLDP = "no-lldp";
@@ -170,6 +171,9 @@
     /** Number of millis beyond which an LLDP packet will not be accepted. */
     private int maxDiscoveryDelayMs = DISCOVERY_DELAY_DEFAULT;
 
+    /** If false, StaleLinkAge capability is disabled. */
+    private boolean useStaleLinkAge = USE_STALE_LINK_AGE_DEFAULT;
+
     private final LinkDiscoveryContext context = new InternalDiscoveryContext();
     private final InternalRoleListener roleListener = new InternalRoleListener();
     private final InternalDeviceListener deviceListener = new InternalDeviceListener();
@@ -294,7 +298,7 @@
     public void modified(ComponentContext context) {
         Dictionary<?, ?> properties = context != null ? context.getProperties() : new Properties();
 
-        boolean newEnabled, newUseBddp;
+        boolean newEnabled, newUseBddp, newUseStaleLinkAge;
         int newProbeRate, newStaleLinkAge, newDiscoveryDelay;
         try {
             String s = get(properties, PROP_ENABLED);
@@ -312,6 +316,9 @@
             s = get(properties, PROP_DISCOVERY_DELAY);
             newDiscoveryDelay = isNullOrEmpty(s) ? maxDiscoveryDelayMs : Integer.parseInt(s.trim());
 
+            s = get(properties, PROP_USE_STALE_LINK_AGE);
+            newUseStaleLinkAge = isNullOrEmpty(s) || Boolean.parseBoolean(s.trim());
+
         } catch (NumberFormatException e) {
             log.warn("Component configuration had invalid values", e);
             newEnabled = enabled;
@@ -319,6 +326,7 @@
             newProbeRate = probeRate;
             newStaleLinkAge = staleLinkAge;
             newDiscoveryDelay = maxDiscoveryDelayMs;
+            newUseStaleLinkAge = useStaleLinkAge;
         }
 
         boolean wasEnabled = enabled;
@@ -328,6 +336,7 @@
         probeRate = newProbeRate;
         staleLinkAge = newStaleLinkAge;
         maxDiscoveryDelayMs = newDiscoveryDelay;
+        useStaleLinkAge = newUseStaleLinkAge;
 
         if (!wasEnabled && enabled) {
             enable();
@@ -340,7 +349,7 @@
             }
         }
 
-        log.info(FORMAT, enabled, useBddp, probeRate, staleLinkAge, maxDiscoveryDelayMs);
+        log.info(FORMAT, enabled, useBddp, probeRate, staleLinkAge, maxDiscoveryDelayMs, useStaleLinkAge);
     }
 
     /**
@@ -730,10 +739,16 @@
                         return true;
                     }
                     if (isStale(e.getValue())) {
-                        providerService.linkVanished(new DefaultLinkDescription(e.getKey().src(),
+                        if (useStaleLinkAge) {
+                            providerService.linkVanished(new DefaultLinkDescription(e.getKey().src(),
+
                                                                                 e.getKey().dst(),
                                                                                 DIRECT));
-                        return true;
+                            return true;
+                        }
+                        log.warn("VanishStaleLinkAge feature is disabled, " +
+                                "not bringing down link src {} dst {} with expired StaleLinkAge",
+                                e.getKey().src(), e.getKey().dst());
                     }
                     return false;
                 }).clear();
diff --git a/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/OsgiPropertyConstants.java b/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/OsgiPropertyConstants.java
index 51bcd39..224ac7e 100644
--- a/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/OsgiPropertyConstants.java
+++ b/providers/lldp/src/main/java/org/onosproject/provider/lldp/impl/OsgiPropertyConstants.java
@@ -38,4 +38,7 @@
     public static final String PROP_DISCOVERY_DELAY = "maxDiscoveryDelayMs";
     public static final int DISCOVERY_DELAY_DEFAULT = 1000;
 
+    public static final String PROP_USE_STALE_LINK_AGE = "useStaleLinkAge";
+    public static final boolean USE_STALE_LINK_AGE_DEFAULT = true;
+
 }
diff --git a/web/api/src/main/java/org/onosproject/rest/resources/LinksWebResource.java b/web/api/src/main/java/org/onosproject/rest/resources/LinksWebResource.java
index 3c74d94..cb4f0a4 100644
--- a/web/api/src/main/java/org/onosproject/rest/resources/LinksWebResource.java
+++ b/web/api/src/main/java/org/onosproject/rest/resources/LinksWebResource.java
@@ -23,7 +23,9 @@
 import org.onosproject.rest.AbstractWebResource;
 
 import javax.ws.rs.GET;
+import javax.ws.rs.POST;
 import javax.ws.rs.Path;
+import javax.ws.rs.Consumes;
 import javax.ws.rs.Produces;
 import javax.ws.rs.QueryParam;
 import javax.ws.rs.core.MediaType;
@@ -31,6 +33,13 @@
 
 import static org.onosproject.net.DeviceId.deviceId;
 import static org.onosproject.net.PortNumber.portNumber;
+import org.onosproject.cfg.ComponentConfigService;
+import org.onosproject.cfg.ConfigProperty;
+
+import com.fasterxml.jackson.databind.node.ObjectNode;
+import java.io.IOException;
+import java.io.InputStream;
+
 
 /**
  * Manage inventory of infrastructure links.
@@ -97,4 +106,56 @@
         }
     }
 
+    /**
+     * Get useStaleLinkAge active status.
+     * Returns current status of the VanishedStaleLink.
+     *
+     * @onos.rsModel VanishedLink
+     * @return 200 ok with the VanishedStaleLink status.
+     */
+    @GET
+    @Path("{usestalelinkage}")
+    @Produces(MediaType.APPLICATION_JSON)
+    public Response getVanishStaleLink() {
+        ObjectNode root = mapper().createObjectNode();
+        ComponentConfigService useStaleLink = get(ComponentConfigService.class);
+
+        for (ConfigProperty prop : useStaleLink.getProperties("org.onosproject.provider.lldp.impl.LldpLinkProvider")) {
+            if (prop.name().equals("useStaleLinkAge")) {
+                root.put("active", Boolean.valueOf(prop.value()));
+                break;
+            }
+        }
+        return ok(root).build();
+    }
+
+    /**
+     * Set useStaleLinkAge status.
+     *
+     * @onos.rsModel VanishedLink
+     * @param stream input JSON
+     * @return 200 ok.
+     * BAD_REQUEST if the JSON is invalid
+     */
+    @POST
+    @Path("{usestalelinkage}")
+    @Consumes(MediaType.APPLICATION_JSON)
+    @Produces(MediaType.APPLICATION_JSON)
+    public Response setVanishStaleLink(InputStream stream) {
+        try {
+            // Parse the input stream
+            ObjectNode root = (ObjectNode) mapper().readTree(stream);
+            if (root.has("active")) {
+                ComponentConfigService useStaleLink = get(ComponentConfigService.class);
+                useStaleLink.setProperty("org.onosproject.provider.lldp.impl.LldpLinkProvider",
+                   "useStaleLinkAge", String.valueOf(root.get("active")));
+            }
+        } catch (IOException ex) {
+            throw new IllegalArgumentException(ex);
+        }
+        return Response
+                .ok()
+                .build();
+    }
+
 }
diff --git a/web/api/src/main/resources/definitions/VanishedLink.json b/web/api/src/main/resources/definitions/VanishedLink.json
new file mode 100644
index 0000000..7bee04b
--- /dev/null
+++ b/web/api/src/main/resources/definitions/VanishedLink.json
@@ -0,0 +1,12 @@
+{
+    "type" : "object",
+    "required": [
+        "active"
+    ],
+    "properties": {
+        "active": {
+            "type": "boolean",
+            "example": true
+        }
+    }
+}
