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 disables VDP. 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 either station (that's the default, no cap) or bridge 🫢

🧠 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 πŸ“


πŸ™ˆ 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 πŸ‘‘πŸŽ€βœ¨