The Link Layer Discovery Protocol (LLDP) is a vendor-neutral Data Link Layer protocol used by network devices for advertising of their identity, capabilities, and interconnections on a IEEE 802 LAN network. […] LLDP performs functions similar to several proprietary protocols, such as Cisco Discovery Protocol [(CDP)], Extreme Discovery Protocol [(EDP)], Nortel Discovery Protocol (also known as SONMP).
LLDP is specified in
IEEE 802.1ab.
LLDP-MED
(Link Layer Discovery Protocol for Media Endpoint Discovery) is specified in
ANSI/TIA-1057 by TIA TR-41.4.
Several LLDP projects exist. Here's a comparison.
(Last updated: )
lldpd | openlldp | ladvd | cdpd | druid_cdpd | |
---|---|---|---|---|---|
Homepage | homepage vcs wiki (old) dl | openlldp.sf.net, 2, cvs | blinkenlights.nl, vcs | snar.spb.ru, ftp (down) | voiceroute.org (down) |
Author | Vincent Bernat <bernat (at) luffy (dot) cx> | OpenLLDP team (Terry Simons <terry (dot) simons (at) gmail (dot) com>, Jason Peterson <condurre (at) users (dot) sourceforge (dot) net>) | Sten Spans <sten (at) blinkenlights (dot) nl> | Alexandre Snarskii <snar (at) paranoia (dot) ru> / <snar (at) snar (dot) spb (dot) ru> | Navin Kumar <navin (at) voiceroute (dot) net> |
Started | ? | ||||
Current version |
0.7.11 (released ) |
0.4.alpha (released ) |
1.0.4 (released ) |
1.0.4.1 (released ) |
SVN rev. 101 ( |
Packaged in Debian (Wheezy) |
0.5.7 (maintained by the upstream author Vincent Bernat <bernat (at) debian (dot) org>) | RFP (26 Jun 2008, btw: by Vincent Bernat, author of LLDPd) | RFP (3 Mar 2010, by Sten Spans, the upstream author) but some binary packages are available and it comes with a debian sub-directory | ||
OS | Linux, FreeBSD, OpenBSD, NetBSD, Mac OS X | Linux, FreeBSD, NetBSD, Mac OS X | Unix, Linux | Linux, Unix, Windows | Systems where Perl and the Net::CDP module is available |
Programming lang. | C | C | C | C | Perl |
License | ISC license | BSD-style license | ISC license | BSD-style license (2-clause) | GNU GPL (v.2) |
Sending | |||||
Reception | (well yes, but doesn't do anything useful with it) | (not planned, see man page) | (well yes, but doesn't do anything useful with it) | ||
CDP | (not really verified) | ? (yes but not verified) | ? (yes but not verified) | (not really verified) | ? (yes but not verified) |
LLDP | (not verified) | (not verified) | |||
LLDP Fast Start[1] | |||||
Announces IPv4 mgmt. addrs | (not verified) | ? | |||
Announces IPv6 mgmt. addrs | (not verified) | ? | |||
SNMP sub-agent (AgentX), SNMP LLDP MIB | (partially, read-only, see supported features | ? (probably not) | |||
LLDP-MED | (partially) | ? (yes, partially, but not verified) | ? (not verified) | ||
Announces tagged VLAN ID org. TLV (type 127) OUI 00-80-c2 (IEEE 802.1, annex F), subtype 3 VLAN name, includes VLAN ID VID) |
? | n/a (no LLDP support, yes for CDP) | |||
Can advertise Network Policy TLVs org. TLV (type 127) OUI 00-12-bb (TIA TR-41.4 TIA-1057 LLDP-MED), subtype 2: IEEE 802.1q VLAN ID (layer 2), IEEE 802.1p priority (layer 2), IETF RFC 2474 Diffserv/DSCP/ToS (layer 3) | ? | (not verified) | n/a (no LLDP support) | ||
Quirks / annotations |
With the -x option (enable SNMP subagent) it doesn't fallback gracefully if SNMP (AgentX) is not available. Lacks an option to set the transmission interval (as a workaround until Fast Start is supported).
Capabilites |
With -r switch announces (in TLV 7
Some small improvements seem to have happened in a FreeBSD port. |
Uses a patched version of the Net::CDP module instead of properly re-integrating changes with upstream. |
I did not evaluate lldpad
(a.k.a. Open-LLDP
with
a -
) as it is meant for Data Center Bridging
(DCB)
with Intel network connections.
See
homepage,
vcs,
vcs 2.
[1]
LLDP(-MED) Fast Start basically means that once a LLDP message
including LLDP-MED TLVs is received you immediately send 3
LLDP-MED announcements within 3 seconds.
There must be some kind of rate-limiting mechanism such as:
only do a Fast Start if the device was not previously known
or if a device announces that it requires a Network Policy
(Unknown Policy Flag
).
What roughly falls into this category as well is that you
immediately send LLDP announcements once a new interface or
link is detected. The same thing applies for CDP and other
discovery protocols.