wiki:OpenFlowDiscoveryProtocol

OpenFlow Discovery Protocol and Link Layer Discovery Protocol

The "OpenFlow Discovery Protocol" (OFDP) leverages the Link Layer Discovery Protocol (LLDP) with subtle modifications to perform topology discovery in an OpenFlow network. These modifications impact how OFDP functions.

Link Layer Discovery Protocol (LLDP)

What is LLDP?

http://en.wikipedia.org/wiki/Link_Layer_Discovery_Protocol

LLDP advertises a switch's capabilities. LLDP uses advertisements only; this is not a request-response protocol. A switch that receives an LLDP message updates a table with the sending switch's advertised capabilities. A separate agent must query, or crawl, each switch's LLDP table to construct a layer-2 network topology.

LLDP works as outlined because the advertisements are destined to a bridge-filtered multicast MAC address (as defined in the 802.1d standard). This implies that a switch will only receive LLDP advertisements from directly-connected neighbor switch (i.e., layer-1) and will never forward received LLDP advertisements.

  • Switch O (LLDP-enabled) sends LLDP advertisements out all ports. All directly-connected neighbor switches receive this advertisement.
  • Switch A (not LLDP-enabled) will not forward the LLDP advertisement.
  • Switch B (LLDP-enabled) will update its internal LLDP table. Switch B will not forward the LLDP advertisement.

The Take Away

  • A switch's LLDP advertisements are received only by directly-connected switches.
  • LLDP's EtherType is 0x88cc.
  • LLDP advertisements are sent to a bridge-filtered multicast MAC (01:80:C2:00:00:0E).
  • advertisement only
  • Switches will not forward LLDP advertisements.
  • LLDP-enabled switches build a table of its directly-connected neighbors. layer-2 topology is determined by crawling switches' tables.

Backbone Considerations

LLDP would not be forwarded across a backbone as it's not forwarded by any switch. Some form of tunneling would be required to make LLDP transverse the backbone switches.

OpenFlow Discovery Protocol (OFDP)

What Is OFDP?

OFDP is an artificial term used here to differentiate from the "normal" LLDP mentioned above. OFDP leverages LLDP for advertisements. However OFDP, as currently implemented in Nox's discovery.py, uses a "normal" multicast address for sending OpenFlow Discovery messages. Unlike LLDP, a switch will forward these OFDP advertisements.

  • Switch O (Openflow-enabled) OFDP advertisements out all ports.
  • Switch A (not OpenFlow-enabled) will forward the received OFDP advertisements out all other ports.
  • Switch B (OpenFlow-enabled) will update it's internal OFDP table. Switch B will forward the received OFDP advertisement out all other ports.

The Take Away

  • All Switches in a layer-2 network receive a switch's OFDP advertisements.
  • OFDP's EtherType is 0x88cc.
  • OFDP advertisements are sent to a "normal" multicast MAC (01:23:00:00:00:01).
  • OFDP is Advertisement only.
  • Switches will forward OFDP advertisements.
  • An OpenFlow-Discovery-enabled switch will receive OFDP advertisements from all other OFDP-enabled switches not just directly-connected neighbor switches.

Backbone Considerations of OFDP

As OFDP use a "normal" destination multicast MAC, OFDP advertisements would be forwarded by backbone switches. OFDP will not interfere with LLDP messages that the backbone networks may have implemented as it uses a different MAC address.

OFDP and OpenFlow Controller Versions

To allow for multiple OpenFlow controller versions to operate concurrently there have been instances of OpenFlow controllers modifying OFDP to use different EtherTypes or destination MAC addresses to. For instance, there have been temporary instances of OFDP with EtherType 0x88cd and mcast MAC address 01:23:00:00:00:04 running with the ODP described in this document.

Last modified 8 years ago Last modified on 12/03/10 11:55:18

Attachments (2)

Download all attachments as: .zip