lldpad(8)

πŸ“¦
version 1.1+110.f16f944 Β· 2 versions
, in alpine 3.22, alpine 3.23, alpine 3.24, centos-stream 10, centos-stream 9, fedora 43, fedora 44, opensuse-leap 16.0

πŸ’– lldpad β€” the LLDP agent daemon, explained by your favorite nerd bestie πŸ’–

okay so real talk, this page comes straight out of the System Manager's Manual and it's all about lldpad, which is genuinely iconic once you know what it does. stay with me, we're gonna get through all of it together 🫢


✨ NAME ✨

lldpad β€” the Link Layer Discovery Protocol (LLDP) agent daemon. yes that's a mouthful, no you don't have to say it out loud πŸ’…


🌸 SYNOPSIS 🌸

lldpad [-h] [-v] [-V level] [-d] [-k] [-p] [-s] [-t] [-f filename]

πŸŽ€ DESCRIPTION πŸŽ€

So lldpad runs the LLDP protocol for the network interfaces it supports. That's the whole vibe. And the list of TLVs it currently supports? Obsessed, honestly:

  • IEEE 802.1AB Mandatory TLVs
  • IEEE 802.1AB Basic Management TLVs
  • IEEE 802.3 Organizationally Specific TLVs
  • LLDP-MED Organizationally Specific TLVs
  • Data Center Bridging capabilities exchange protocol (DCBX) TLVs
  • Edge Virtual Bridging (EVB) TLVs

πŸ¦‹ what lldpad can actually do

like, its capabilities, bestie:

  • Transmission of LLDP PDUs containing enabled TLVs from enabled ports.
  • Reception of LLDP PDUs from enabled ports.
  • Operation of the DCBX protocol for interfaces which support the DCB rtnetlink interface. This includes operation of the DCBX state machines above LLDP and corresponding configuration of the DCB parameters of the network interface. The supported DCB features are: Extended Transmission Selection, Priority Flow Control and the FCoE application.
  • Configuring the DCB settings of the network driver based on the operation of DCBX.
  • It provides a multi-channel interface so client applications can query and configure features. Events also get generated on the client interface to tell clients about changes. The lldpad package ships two clients: lldptool for general LLDP agent management and dcbtool for DCB management.

πŸ’œ the DCBX versions it supports

lldpad supports these versions of the DCB capabilities exchange (DCBX) protocol:

⭐ the whole default-mode situation (important, no cap)

IEEE DCBX is the default DCBX mode for a DCB capable interface, so when the interface comes up, the default and configured IEEE DCBX TLVs get transmitted. lldpad can be globally configured to support one of the legacy DCBX versions (CIN or CEE). If the remote LLDP agent doesn't transmit any IEEE DCBX TLVs but does transmit a legacy DCBX TLV matching the configured legacy DCBX version, then the DCBX mode drops back to legacy DCBX mode. It will not transition back to IEEE DCBX mode until the next link reset.

Also: if lldpad has dropped back to legacy DCBX mode for a given interface and the daemon is stopped and restarted, the legacy DCBX mode for that interface will be used instead of starting out in IEEE DCBX mode. This behavior only applies to the case where lldpad is restarted, and it is not persistent across a system reboot.

See dcbtool for info on how to globally configure which legacy version of DCBX lldpad executes.

See lldptool for info on how to reset the DCBX mode of an interface back to default (that's the one that starts out in IEEE DCBX mode, iykyk).

lldpad also supports edge virtual bridging as currently under specification in the IEEE 802.1Qb working group: http://www.ieee802.org/1/pages/802.1bg.html


πŸ”₯ OPTIONS πŸ”₯

lldpad has these command line options, and yes we're doing all of them:

  • -h β€” show usage information
  • -f filename β€” use the specified file as the configuration file instead of the default file, which is /var/lib/lldpad/lldpad.conf. Heads up: lldpad expects the directory of the configuration file to exist, but if the configuration file itself doesn't exist, then a default configuration file will be created. lldpad creates and maintains the contents of the configuration file. Configuration should be performed by using lldptool or dcbtool.
  • -d β€” run lldpad as a daemon
  • -v β€” show lldpad version
  • -V level β€” set the lldpad debugging level. It uses syslog debug levels, so see syslog.2 for details.
  • -k β€” used to terminate the first instance of lldpad that was started (e.g. from initrd). Once lldpad -k has been invoked and lldpad has been restarted, subsequent invocations of lldpad -k will not terminate lldpad.
  • -s β€” remove lldpad state records from shared memory
  • -p β€” do not create the PID file /var/run/lldpad.pid on startup
  • -t β€” omit timestamps from logging messages

πŸ’€ NOTE πŸ’€

On termination, lldpad does not undo any of the configurations that it has set. This approach minimizes the risk of restarting the daemon to perform a software update, or of having storage issues during shutdown. Ongoing operation of network interfaces that had been controlled by lldpad may result in unexpected behavior. so yeah, read that twice 🫠

🌈 SEE ALSO 🌈

dcbtool(8), lldptool(8), lldptool-dcbx(8), lldptool-ets(8), lldptool-pfc(8), lldptool-app(8), lldptool-med(8), lldptool-vdp(8), lldptool-evb(8)


lldpad β€” LLDP agent daemon with DCBX support

Copyright(c) 2007-2012 Intel Corporation. Portions of lldpad are based on:

hostapd-0.5.7

Copyright: (c) 2004-2008, Jouni Malinen <j@w1.fi>


πŸ“ LICENSE πŸ“

This program is free software; you can redistribute it and/or modify it under the terms and conditions of the GNU General Public License, version 2, as published by the Free Software Foundation.

This program is distributed in the hope it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.

The full GNU General Public License is included in this distribution in the file called "COPYING".


🧚 SUPPORT 🧚

Contact Information: open-lldp Mailing List <lldp-devel@open-lldp.org>


and that's the whole page, bestie πŸ’– this one's from the System Manager's Manual, dated March 23, 2012 β€” go forth and configure responsibly βœ¨πŸŽ€