/
LinkDiscoveryManager (Dev)

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

Related content

TopologyService (Dev)
TopologyService (Dev)
More like this
DeviceManagerImpl (Dev)
DeviceManagerImpl (Dev)
More like this
Module Descriptions and Javadoc
Module Descriptions and Javadoc
Read with this
FloodlightProvider (Dev)
FloodlightProvider (Dev)
More like this
Flow Cache (API only)
Flow Cache (API only)
More like this
OFSwitchManager (Dev)
OFSwitchManager (Dev)
More like this