A problematic case involves probes from outside devices whose ID(s) are found within the domain (ID aliasing). Other than under special circumstances (e.g. the probe arrives before the domain's own device is discovered, or the recipient of the probe is the one being aliased), ID aliasing is difficult to detect, and leads to wrongly reported links.
Probe message fingerprinting
ONOS employs per-logical-control-plane fingerprints to identify its own cluster. Since ONOS 1.4, the ability to add fingerprint information to probe messages has been added to the
LLDPLinkProvider, to aid in the identification of foreign devices and ID aliasing. Specifically, the fingerprint is encoded into the source MAC address of the probe message. The
ProbedLinkProvider interface allows implementors of providers that probe network links to access to a fingerprinted MAC address for use with their probes. The fingerprint is derived from a stable hash of the cluster's name, which is autogenerated at this time. A fixed MAC address (DE:AD:BE:EF:BA:11) is used when the cluster's name cannot be determined (which might be the case if the ClusterMetadata subsystem is unavailable).
|In earlier versions of ONOS that implement fingerprinting, a different mechanism, where an extra TLV carrying the fingerprint is added to just the LLDP messages, is used. Although two clusters that use these different mechanisms can control neighboring domains, domain edge detection won't work properly in this case.|
The Device Subsystem discovers network end-hosts via ARP and DHCP messages detected as PacketIns, and describes their locations in the network in terms of Device-Port pairs referred to as
ConnectPoints. The HostLocationProvider implements this function by implementing a
DeviceListener in a similar vein as the LLDPLinkProvider.