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.