LinkDiscoveryManager (Dev)
Description
The link discovery service is responsible for discovering and maintaining the status of links in the OpenFlow network.
Services Provided
- ILinkDiscoveryService
Service Dependencies
- IStorageSourceService
- IThreadPoolService
- IFloodlightProviderService
- IOFSwitchService
- IRestAPIService
- IShutdownService
- IDebugCounterService
- IDebugEventService
Java File
The module is implemented in net.floodlightcontroller.linkdiscovery.internal.LinkDiscoveryManager.
How it works
The link discovery services uses both LLDPs and broadcast packets (aka BDDPs) to detect links. The LLDP destination MAC is 01:80:c2:00:00:0e and the BDDP destination MAC is ff:ff:ff:ff:ff:ff (broadcast address). The ether type for LLDPs and BDDPs is 0x88cc and 0x8999. There are two assumptions made in order for the topology to be learned properly.
- Any switch (including OpenFlow switches) will consume a link-local packet (LLDP).
- Honors layer 2 broadcasts.
Links can either be "direct" or "broadcast". A direct link will be established if an LLDP is sent out one port and the same LLDP is received on another port. This implies that the ports are directly connected. A broadcast link is created if a BDDP is sent out a port and received on another. This implies that there is another layer 2 switch not under the control of the controller between these two ports.
Limitations
- None.
Configuration
The module is enabled by default, no change to the configuration is required to load the module.
Configuration Options
- None.
REST API
URI |
Description |
Arguments |
---|---|---|
/wm/topology/links/json |
List of all links detected by the controller. |
None. |
Sample REST calls with curl
Getting all devices
curl -s http://localhost:8080/wm/topology/links/json