diff --git a/providers/lldpcommon/src/main/java/org/onosproject/provider/lldpcommon/LinkDiscovery.java b/providers/lldpcommon/src/main/java/org/onosproject/provider/lldpcommon/LinkDiscovery.java
index 1937e07..b012d28 100644
--- a/providers/lldpcommon/src/main/java/org/onosproject/provider/lldpcommon/LinkDiscovery.java
+++ b/providers/lldpcommon/src/main/java/org/onosproject/provider/lldpcommon/LinkDiscovery.java
@@ -40,6 +40,7 @@
 import java.nio.ByteBuffer;
 import java.util.Set;
 
+import static com.google.common.base.Strings.isNullOrEmpty;
 import static java.util.concurrent.TimeUnit.MILLISECONDS;
 import static org.onosproject.net.PortNumber.portNumber;
 import static org.onosproject.net.flow.DefaultTrafficTreatment.builder;
@@ -165,20 +166,24 @@
 
             PortNumber srcPort = portNumber(onoslldp.getPort());
             PortNumber dstPort = packetContext.inPacket().receivedFrom().port();
-            DeviceId srcDeviceId = DeviceId.deviceId(onoslldp.getDeviceString());
-            DeviceId dstDeviceId = packetContext.inPacket().receivedFrom().deviceId();
 
-            ConnectPoint src = new ConnectPoint(srcDeviceId, srcPort);
-            ConnectPoint dst = new ConnectPoint(dstDeviceId, dstPort);
+            String idString = onoslldp.getDeviceString();
+            if (!isNullOrEmpty(idString)) {
+                DeviceId srcDeviceId = DeviceId.deviceId(idString);
+                DeviceId dstDeviceId = packetContext.inPacket().receivedFrom().deviceId();
 
-            LinkDescription ld = new DefaultLinkDescription(src, dst, lt);
-            try {
-                context.providerService().linkDetected(ld);
-                context.touchLink(LinkKey.linkKey(src, dst));
-            } catch (IllegalStateException e) {
+                ConnectPoint src = new ConnectPoint(srcDeviceId, srcPort);
+                ConnectPoint dst = new ConnectPoint(dstDeviceId, dstPort);
+
+                LinkDescription ld = new DefaultLinkDescription(src, dst, lt);
+                try {
+                    context.providerService().linkDetected(ld);
+                    context.touchLink(LinkKey.linkKey(src, dst));
+                } catch (IllegalStateException e) {
+                    return true;
+                }
                 return true;
             }
-            return true;
         }
         return false;
     }
