vdptool(8)
π vdptool(8) π
okay bestie, so this is a Linux manual page for vdptool β section 8 of the manual, admin-tools territory, which is literally where the system-level stuff lives π
β¨ NAME β¨
vdptool β manage the VSI associations and status of lldpad
π¦ SYNOPSIS π¦
vdptool <command> [options] [argument]
πΈ DESCRIPTION πΈ
So vdptool is the little icon that queriβno wait, queries and configures the VSI associations inside lldpad. π
Heads up though: only the ratified standard version of the VDP protocol is supported, which everyone also calls vdp22. That's the whole vibe. It connects to the client interface of lldpad to do all of these operations.
And here's the cute part: if you run vdptool with no command at all, it drops into interactive mode. π While you're in interactive mode, vdptool will also act as an event listener, printing out events as they arrive asynchronously from lldpad β (still to be done) btw, don't come for me. It'll use libreadline for interactive input when available β also (still to be done). π Like I said. We're getting there.
π OPTIONS π
-i[ifname] β tells it which network interface the command applies to. Mostvdptoolcommands need you to name a network interface, so don't skip this one, fr fr.-V[tlvid] β picks the VDP tlv identifier you want to set or query. The tlvid is an integer value that identifies specific VDP TLVs. It's the type value for types that aren't equal to127(that's the organizationally specific type). For organizationally specific TLVs, the tlvid is the value represented by the 3 byte OUI and 1 byte subtype β where the subtype is the lowest order byte of the tlvid. You can type the tlvid as a numerical value (e.g.10or0xa), or, for supported TLVs, as a keyword (likeassoc,deassoc,preassoc,preassoc-rr, etc). Go peek at thevdptoolhelp output to see the full list of supported TLV keywords π. And use option-cto specify the parameters and their values that you want set or queried.-nβ the "neighbor" option, for commands that can use it (e.g.get-tlv). Use this flag to retrieve the last VDP22 data returned from the bridge. (not yet supported) π-c<argument list> β specifies extra parameters for TLV query and association commands. The argument list varies depending on the command option (-T) or (-t). To establish a VSI association, use the command option (-T) and give the extra info as arguments in the formkey=valueβ see the VSI Parameter subsection and the Example section below. To query a VSI specific association, use the command option (-t) and specify the value of the VSI Instance Identifier (keyworduuidfollowed by the VSI UUID value) of the VSI association as a configuration parameter. π«Ά-rβ show raw client interface messages-Rβ show only raw Client interface messages-Wβ Wait for the bridge response message
π§ VSI Parameter π§
Every VDP22 TLV contains a command mode, a manager identifier, a type identifier, a type identifier version, a VSI instance identifier, migration hints and filter information. Let's break the fields down, one by one, no gatekeeping:
mode (Command Mode)
The command mode decides what kind of VSI association you're establishing. It's an ascii string, and it can be one of these babes:
assoc: create an VSI association.preassoc: create an VSI preassociation. The association is only announced to the switch.preassoc-rr: create an VSI preassociation. The association is only announced to the switch, and the switch should reserve the resources.deassoc: delete an VSI association.
Any other string? Not recognized, and it returns an error. π«
mgrid2 (Manager identifier)
The manager identifier is a string of up to 16 alphanumeric characters. It can also be an UUID according to RFC 4122, with optional dashes in between.
typeid (Type Identifier)
The type identifier is a number in the range of 0 to 2^24 - 1.
typeidver (Type Identifier Version)
The type identifier version is a number in the range of 0 to 255.
uuid (VSI Instance Identifier)
The VSI instance identifier is an UUID according to RFC 4122, with optional dashes in between.
hints (Migration Hints)
The migration hints string helps with migration of virtual machines:
none: no hints available.from: the virtual machine is migrating away.to: the virtual machine is migrating to.
fid (Filter Information Data)
The filter information data can be supplied in four different formats, identified by numbers in parentheses. You can supply multiple filter information fields, but they all have to be of the same format. Slay.
vlan (1)β a vlan number only, a.k.a. filter information format 1. The vlan identifier is a number in the range of1to2^16 - 1. The high order 4 bits are used as quality of service bits. The vlan identifier can be zero, and then a vlan identifier is selected by the switch. Refer to the IEEE 802.1 Qbg ratified standard for the details. πvlan-mac (2)β a vlan number and MAC address delimited by a slash ('-'), a.k.a. filter information format 2. The MAC address is specified in the formatxx:xx:xx:xx:xx:xx. The colons are mandatory. For vlan details see (1).vlan-mac-group (4)β a vlan number, MAC address and group identifier, each delimited by a slash ('-'), a.k.a. filter information format 4. The group identifier is a 32 bit number. For vlan and MAC address details see (1) and (2).vlan--group (3)β a vlan number and group identifier, delimited by two slashes ('--'), a.k.a. filter information format 3. For vlan and group details see (1) and (4).
oui (Organizationally Unique Identifier)
This defines the optional Organizationally defined information field. It contains the specific sets of values for this entry. You can have multiple organizational specific fields, in which case there will be multiple oui= keywords, each followed by the values. The value looks like this:
oui=OUI,[Organization specific values ]
The OUI specifies the name of the Organization that is responsible for defining this content. A comma is mandatory after the OUI field. The fields following this are specified by the organization, so they get decoded based on the value of this OUI field. Currently the following values for OUI are supported:
ciscoβ specifies Cisco defined OUI.
π COMMANDS π
licenseβ show license information-h,helpβ show usage information-v,versionβ show version information-t,get-vsiβ get VSI information for the specified interface-T,set-vsiβ set VSI information for the specified interface-p,pingβ display the process identifier of the runninglldpadprocess-q,quitβ exit from interactive mode
π NOTES π
This tool is in its early design and development phase. It is buggy, incomplete, and most of the ideas haven't even been thought of yet.... It reflects the current state of development at a point when the author had been given another work assignment, and it's appended here so someone else can continue to work on it. Genuinely iconic of them to just say it. π«‘
lowkey read this as a warning label: expect rough edges, and don't be shocked when things are missing.
π₯ EXAMPLES π₯
Display process identifier of lldpad
vdptool -p
Create a VSI association on interface eth2
vdptool -i eth2 -T -V assoc -c mode=assoc -c mgrid2=blabla \
-c typeid=5 -c uuid=1122 -c typeidver=4 -c hints=none \
-c filter=2-52:00:00:11:22:33-200
Create a VSI association on interface eth2 and wait for the response from the bridge
vdptool -i eth2 -T -W -V assoc -c mode=assoc -c mgrid2=blabla \
-c typeid=5 -c uuid=1122 -c typeidver=4 -c hints=none \
-c filter=0-52:00:00:11:22:33-200
Create a VSI association on interface eth2 wth OUI parameters and wait for the response from the bridge
vdptool -i eth2 -T -W -V assoc -c mode=assoc -c mgrid2=blabla \
-c typeid=5 -c uuid=1122 -c typeidver=4 -c hints=none \
-c filter=0-52:00:00:11:22:33-200 -c oui=CompanyA,data
Create a VSI association on interface eth2 wth multiple OUI parameters and wait for the response from the bridge
vdptool -i eth2 -T -W -V assoc -c mode=assoc -c mgrid2=blabla \
-c typeid=5 -c uuid=1122 -c typeidver=4 -c hints=none \
-c filter=0-52:00:00:11:22:33-200 -c oui=CompanyA,data \
-c oui=CompanyB,data
Query all VSI association on interface eth2
vdptool -i eth2 -t -V assoc
Query VSI association on interface eth2 that matches specific VSI parameters. Any of the VSI parameters below can be omitted.
vdptool -i eth2 -t -V assoc -t -V assoc -c mode=assoc \
-c mgrid2=blabla -c typeid=5 -c uuid=1122 \
-c typeidver=4 -c hints=none
π SEE ALSO π
lldptool-dcbx(8), lldptool-ets(8), lldptool-pfc(8), lldptool-app(8), lldptool-med(8), lldptool-vdp(8), lldptool-evb(8), lldptool-evb22(8), dcbtool(8), lldpad(8)
π COPYRIGHT π
vdptool β VSI configuration utility
Copyright(c) (c) 2014 IBM Corporation. Portions of vdptool are based on:
open-lldp-0.96
lldptool β LLDP agent configuration utility
Copyright(c) 2007-2012 Intel Corporation. Portions of lldptool 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, you ate π«Άβ¨ this one came from open-lldp, dated April 2014 β go forth and associate those VSIs, no cap π π
π¦ 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
- 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
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms