Skip to content

Link Layer Discovery Protocol

amirius edited this page Nov 29, 2017 · 6 revisions

Quoting Wikipedia: "The Link Layer Discovery Protocol (LLDP) is a vendor-neutral link layer protocol in the Internet Protocol Suite used by network devices for advertising their identity, capabilities, and neighbors on an IEEE 802 local area network, principally wired Ethernet."

This section describes basic deployment of LLDP and is meant to be read before configuring Data Center Bridging. The software package employed here is Open-LLDP, but other implementations exist as well.

Table of Contents
  1. Open-LLDP Configuration
  2. Further Resources

Open-LLDP Configuration

Consider the following topology:

+--------------+    +--------------------+    +--------------+
|              |    |       switch       |    |              |
| hostA        |    |	                 |    |        hostB |
|       enp6s0--------sw1p5        sw1p6--------enp6s0       |
|              |    |                    |    |              |
+--------------+    +--------------------+    +--------------+

Start the lldpad daemon on hostA and switch. Run:

hostA$ systemctl start lldpad.service

switch$ systemctl start lldpad.service

To start the daemon automatically after each boot, run:

$ systemctl enable lldpad.service

Configure the interfaces to receive and transmit LLDP Data Units (LLDPDU). Run:

hostA$ lldptool -L -i enp6s0 adminStatus=rxtx

switch$ lldptool -L -i sw1p5 adminStatus=rxtx

Query LLDP statistics on switch's interface. Run:

switch$ lldptool -S -i sw1p5
Total Frames Transmitted        = 5
Total Discarded Frames Received = 0
Total Error Frames Received     = 0
Total Frames Received           = 4
Total Discarded TLVs            = 0
Total Unrecognized TLVs         = 0
Total Ageouts                   = 0

Enable the transmission of certain TLVs on switch's interface:

switch$ lldptool -T -i sw1p5 -V sysName enableTx=yes
switch$ lldptool -T -i sw1p5 -V portDesc enableTx=yes
switch$ lldptool -T -i sw1p5 -V sysDesc enableTx=yes
switch$ lldptool -T -i sw1p5 -V sysCap enableTx=yes
switch$ lldptool -T -i sw1p5 -V mngAddr ipv4=<management ip>
switch$ lldptool -T -i sw1p5 -V mngAddr enableTx=yes

Query the received neighbor TLVs on hostA. Run:

hostA$ lldptool -t -n -i enp6s0
Chassis ID TLV
        MAC: e4:1d:2d:45:a9:f5
Port ID TLV
        MAC: e4:1d:2d:45:a9:f5
Time to Live TLV
        120
Port Description TLV
        Interface  30 as sw1p5
System Name TLV
        r-mgtswd-1007.mtr.labs.mlnx
System Description TLV
        Linux r-mgtswd-1007.mtr.labs.mlnx 4.6.0-rc2idosch+ #78 SMP Tue Apr 12 14:36:07 IDT 2016 x86_64
System Capabilities TLV
        System capabilities:  Bridge
        Enabled capabilities: Bridge
Management Address TLV
        IPv4: 10.209.1.6
        Ifindex: 30
End of LLDPDU TLV

To query a specific TLV, the -V option can be used. Run:

hostA$ lldptool -i enp6s0 -t -n -V sysCap
System Capabilities TLV
        System capabilities:  Bridge
        Enabled capabilities: Bridge

Further Resources

  1. man lldpad
  2. man lldptool
Clone this wiki locally