lldptool(8)
π NAME π
okay so this is the lldptool(8) page from the Linux manual, and today's episode is all about vdp β show / manipulate VDP TLV configuration. periodt π
β¨ SYNOPSIS β¨
lldptool -t -i ethx -V vdp -c enableTx
lldptool -T -i ethx -V vdp -c enableTx=[yes|no]
lldptool -t -i ethx -V vdp -c mode
lldptool -T -i ethx -V vdp -c
mode=<mode>,<mgrid>,<typeid>,<typeidversion>,<instanceid>,<mac>,<vlan>
lldptool -t -i ethx -V vdp -c role
lldptool -T -i ethx -V vdp -c role=[station|bridge]
π DESCRIPTION π
so here's the tea, bestie: the VSI discovery protocol (VDP) is NOT a TLV in the LLDP sense. like, at all. it's giving protocol, not TLV. it's a whole protocol for managing the association and deassociation of virtual station interfaces (VSIs) between the station and an adjacent switch. iconic behavior honestly π¦
VDP uses ECP as transport for VDP TLVs, and an ECP frame may contain multiple VDP TLVs. and each VDP TLV contains a mode, typeid, version, instanceid, mac and vlan for a VSI. that's the whole vibe check πΈ
π ARGUMENTS π
enableTxβ enables or disablesVDP. literally just on/off, bestie β¨modeβ shows or sets modes for VSIs, and it comes with the following parameters:<mode>β mode, and the options are:0=preassociate,1=preassociate with RR,2=associate,3=deassociate π<mgrid>β manager (database) id<typeid>β VSI type id<version>β VSI type id version<instanceid>β VSI instance id<format>β VDP filter info format<mac>β VSI mac address<vlan>β VSI vlan id
roleβ shows or sets the role of the local machine, so it can act as eitherstation(that's the default, no cap) orbridgeπ«Ά
π§ Theory of Operation π§
the VDP protocol is used to pre-associate, associate or deassociate VSIs to and adjacent switch. info about the VSIs gets formatted into VDP TLVs, which are then handed off to ECP for lower-level transport. and remember: each ECP frame may contain multiple VDP TLVs π₯
there are two ways to receive VSI information in llpdad: via netlink or with lldptool. netlink is what libvirt uses to communicate VSIs to lldpad. and lldptool can be used to associate/deassociate VSIs straight from the command line β which is especially helpful for testing purposes, ngl π
π EXAMPLE & USAGE π
π« Display if vdp is enabled on eth8
lldptool -t -i eth8 -V vdp -c enableTx
π« Enable vdp on eth8
lldptool -T -i eth8 -V vdp -c enableTx=yes
π« Display the currently configured VSIs for eth8
lldptool -t -i eth8 -V vdp -c mode
π« Associate a VSI on eth8
lldptool -T -i eth8 -V vdp -c mode=2,12,1193046,1,fa9b7fff-b0a0-4893-8e0e-beef4ff18f8f,2,52:54:00:C7:3E:CE,3
π« Display the locally configured role for VDP on eth8
lldptool -t -i eth8 -V vdp -c role
π« Set the local role for VDP on eth8
lldptool -T -i eth8 -V vdp -c role=bridge
π SOURCE π
- IEEE 802.1Qbg (
http://www.ieee802.org/1/pages/802.1bg.html)
π NOTES π
lowkey important: currently the code in lldpad reflects draft 0 of the upcoming standard. so like, it's draft energy, not final-final. ECP/VDP TLVs on the wire can be decoded with wireshark > v1.8. iykyk β
π¦ SEE ALSO π¦
π AUTHOR π
Jens Osterkamp
and that's a wrap, bestie π this was lldptool(8), brought to you by open-lldp, dated February 2010 β yes, she's an elder icon and she still slays ππβ¨
π¦ where this page comes from
- alpine 3.22: open-lldp-doc 1.1-r2 Β· GPL-2.0-only
- alpine 3.23: open-lldp-doc 1.1-r3 Β· GPL-2.0-only
- alpine 3.24: open-lldp-doc 1.1-r3 Β· GPL-2.0-only
- centos-stream 10: lldpad 1.1.1-4.gitf1dd9eb.el10 Β· GPL-2.0-only
- centos-stream 9: lldpad 1.1.1-5.gitf1dd9eb.el9 Β· GPL-2.0-only
- centos-stream 9: lldpad 1.1.1-5.gitf1dd9eb.el9 Β· GPL-2.0-only
- debian bookworm: lldpad 1.1+git20221028.aa18720-1 Β· GPL-2.0-only
- debian trixie: lldpad 1.1.1-1+b1 Β· GPL-2.0-only
- fedora 43: lldpad 1.1.0-14.git85e5583.fc43 Β· GPL-2.0-only
- fedora 43: lldpad 1.1.0-14.git85e5583.fc43 Β· GPL-2.0-only
- fedora 44: lldpad 1.1.0-16.git85e5583.fc44 Β· GPL-2.0-only
- fedora 44: lldpad 1.1.0-16.git85e5583.fc44 Β· GPL-2.0-only
- opensuse-leap 16.0: open-lldp 1.1+110.f16f944-160000.1.1 Β· GPL-2.0-only
- opensuse-leap 16.0: open-lldp 1.1+110.f16f944-160000.1.1 Β· GPL-2.0-only
- opensuse-leap 16.0: open-lldp 1.1+110.f16f944-160000.1.1 Β· GPL-2.0-only
- opensuse-leap 16.0: open-lldp 1.1+110.f16f944-160000.1.1 Β· GPL-2.0-only
- ubuntu jammy: lldpad 1.1-1 Β· GPL-2.0-only
- ubuntu noble: lldpad 1.1+git20221028.aa18720-2 Β· GPL-2.0-only
- ubuntu questing: lldpad 1.1.1-1build1
- ubuntu resolute: lldpad 1.1.1-1build2 Β· GPL-2.0-only
- ubuntu stonking: lldpad 1.1.1-1build2 Β· GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms