Comparison of LLDP daemons

About LLDP

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.

Daemons (agents)

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.1
(released )
0.4.alpha
(released )
1.0.4
(released )
1.0.4.1
(released )
SVN rev. 101
(
Packaged in Debian (Squeeze, stable) Yes 0.5.1-1 (maintained by the upstream author Vincent Bernat <bernat (at) debian (dot) org>) No RFP (26 Jun 2008, btw: by Vincent Bernat, author of LLDPd) No RFP (3 Mar 2010, by Sten Spans, the upstream author) but some binary packages are available and it comes with a debian sub-directory No No
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 MIT license BSD-style license ISC license BSD-style license (2-clause) GNU GPL (v.2)
Sending Yes Yes Yes Yes Yes
Reception Yes Yes No (well yes, but doesn't do anything useful with it) No (not planned, see man page) No (well yes, but doesn't do anything useful with it)
CDP Yes (not really verified) ? (yes but not verified) ? (yes but not verified) Yes (not really verified) ? (yes but not verified)
LLDP Yes Yes (not verified) Yes (not verified) Yes No
LLDP Fast Start[1] No No No No No
Announces IPv4 mgmt. addrs Yes Yes (not verified) Yes Yes ?
Announces IPv6 mgmt. addrs No No Yes (not verified) Yes ?
SNMP sub-agent (AgentX), SNMP LLDP MIB Yes (partially, read-only, see supported features ? (probably not) No No No
LLDP-MED Yes (partially) ? (yes, partially, but not verified) ? (not verified) No No
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) Yes ? No No 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) Yes ? No (not verified) No 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 bridge, WLAN access point and router announced in TLV 7 (system capabilities) are announced as available and as enabled - if detected automatically.

   

With -r switch announces (in TLV 7 system capabilities) that capability router is available. Whether the capability is enabled is detected by reading /proc/sys/net/ipv4/ip_forward. (since version 1.0.4.1)

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.




Philipp Kempgen