[Falcon] link discovery -
- safety checks against fingerprint being null
- checks for foreign fingerprint and probe message origin
Change-Id: I2f3e491802afc2091335bd25fcf24865293bde10
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 bf88f57..8c24502 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
@@ -27,6 +27,7 @@
import static org.onosproject.net.config.basics.SubjectFactories.CONNECT_POINT_SUBJECT_FACTORY;
import static org.onosproject.net.config.basics.SubjectFactories.DEVICE_SUBJECT_FACTORY;
import static org.slf4j.LoggerFactory.getLogger;
+import static org.onosproject.cluster.ClusterMetadata.NO_NAME;
import java.util.Dictionary;
import java.util.EnumSet;
@@ -47,6 +48,7 @@
import org.onlab.packet.Ethernet;
import org.onlab.util.Tools;
import org.onosproject.cfg.ComponentConfigService;
+import org.onosproject.cluster.ClusterMetadata;
import org.onosproject.cluster.ClusterMetadataService;
import org.onosproject.cluster.ClusterService;
import org.onosproject.core.ApplicationId;
@@ -426,6 +428,7 @@
removeDevice(device.id());
return Optional.empty();
}
+
LinkDiscovery ld = discoverers.computeIfAbsent(device.id(),
did -> new LinkDiscovery(device, context));
if (isFingerprinted(device.id())) {
@@ -749,7 +752,13 @@
@Override
public String fingerprint() {
- return clusterMetadataService.getClusterMetadata().getName();
+ ClusterMetadata mdata = clusterMetadataService.getClusterMetadata();
+ return mdata == null ? NO_NAME : mdata.getName();
+ }
+
+ @Override
+ public DeviceService deviceService() {
+ return deviceService;
}
}