LLDPCLI(8)
๐ LLDPCLI(8) ๐
System Manager's Manual โ bestie, this is the lldpcli / lldpctl page and we're gonna get through it together ๐ (this is part 1 of 4, so buckle up, we're not even done)
โจ NAME โจ
lldpcli, lldpctl โ control LLDP daemon ๐ฆ
โจ SYNOPSIS โจ
lldpcli [-dv] [-u socket] [-f format] [-c file] [command ...]
lldpctl [-dv] [-u socket] [-f format] [interfaces ...]
โจ DESCRIPTION โจ
okay so the lldpcli program controls the lldpd(8) daemon. that's the whole vibe. ๐
When you don't specify any command, lldpcli starts an interactive shell where you can type arbitrary commands exactly as if you'd put them on the command line. This interactive shell should give you completion and history support โ iykyk, it's giving main character energy.
The options are as follows:
-dโ enable more debugging information. This flag can be repeated, so go off, stack 'em ๐ฅ-usocket โ specify the Unix-domain socket used for communication withlldpd(8).-vโ showlldpcliversion. When repeated, show more build information.-fformat โ choose the output format. Currentlyplain,xml,json,json0andkeyvalueformats are available. The default isplain.json0is more verbose thanjsonbut the structure of the JSON object is not affected by the number of interfaces or the number of neighbors. It's therefore easier to parse. ngl that's the one you want if you're scripting ๐-cfile โ read the given configuration file. This option may be repeated several times. If a directory is provided, each file therein suffixed with.confwill be read. Order is alphabetical. ๐๏ธ
When invoked as lldpctl, lldpcli will display detailed information about each neighbor on the specified interfaces, or on all interfaces if none are specified. This command is mostly kept for backward compatibility with older versions. vintage but make it functional ๐ซถ
The following commands are supported by lldpcli. When there's no ambiguity, the keywords can be abbreviated โ literally so chill of them. For example, show neighbors ports eth0 summary and sh neigh p eth0 sum are the same command. โจ
exit
Quit lldpcli. bye bestie ๐
help [...]
Display general help or help about a specific command. Also, you can get help using the completion or by pressing the ? key. Completion and inline help may be unavailable, however, if lldpcli was compiled without readline support โ but the help command is always available. ๐
show neighbors [ports ethX [,...]] [details | summary] [hidden]
Display information about each neighbor known by the lldpd(8) daemon. With summary, only the name and the port description of each remote host will be displayed. On the other hand, with details, all available information will be displayed, giving a verbose view. When using hidden, also display remote ports hidden by the smart filter. When specifying one or several ports, the information displayed is limited to the given list of ports. ๐
show interfaces [ports ethX [,...]] [details | summary] [hidden]
Display information about each local interface known by the lldpd(8) daemon. With summary, only the name and the port description of each local interface will be displayed. On the other hand, with details, all available information will be displayed, giving a verbose view. When using hidden, also display local ports hidden by the smart filter. When specifying one or several ports, the information displayed is limited to the given list of ports. ๐ง
show chassis [details | summary]
Display information about local chassis. With summary, most details are skipped. On the other hand, with details, all available information will be displayed, giving a verbose view. ๐
watch [ports ethX [,...]] [details | summary] [hidden] [limit X]
Watch for any neighbor changes and report them as soon as they happen โ it's giving live commentary fr. When specifying ports, the changes are only reported when happening on the given ports. hidden, summary and details have the same meaning as previously described. If limit is specified, lldpcli will exit after receiving the specified number of events. ๐
show configuration
Display global configuration of the lldpd(8) daemon.
show statistics [ports ethX [,...]] [summary]
Report LLDP-related statistics, like the number of LLDPDU transmitted, received, discarded or unrecognized. When specifying ports, only the statistics from the given port are reported. With summary the statistics of each port are summed. ๐
update
Make lldpd(8) update its information and send new LLDP PDU on all interfaces. slay, refresh โจ
reset
Restore the configuration lldpd(8) was started with. Every setting changed at runtime, whether with configure or unconfigure commands or through configuration files, is discarded. This includes global settings, local chassis settings and per-port settings (port ID and description, MED, Dot3 power, custom TLVs, ...). Command-line options given to lldpd(8) are kept, as well as the paused state. Changes already applied to the system, like interface descriptions or promiscuous mode, are not reverted. To reload configuration files without restarting lldpd(8), issue this command and then read the files again, for example with:
lldpcli -c /etc/lldpd.conf -c /etc/lldpd.d
configure system hostname name
Override system hostname with the provided value. By default, the system name is the FQDN found from the resolved value of uname -n. As a special value, use . (dot) to use the short hostname instead of a FQDN. ๐
unconfigure system hostname
Do not override system hostname and restore the use of the node name. undo era ๐
configure system description description
Override chassis description with the provided value instead of using kernel name, node name, kernel version, build date and architecture.
unconfigure system description
Do not override chassis description and use a value computed from node name, kernel name, kernel version, build date and architecture instead.
configure system chassisid description
Override chassis ID with the provided value instead of using MAC address from one interface or host name.
unconfigure system chassisid
Do not override chassis ID, but instead use a value computed from one of the interface MAC addresses (or host name if none is found).
configure system platform description
Override platform description with the provided value instead of using kernel name. This value is currently only used for CDP.
unconfigure system platform
Do not override platform description and use the kernel name. This option undoes the previous one.
configure system capabilities enabled capabilities
Override system capabilities with the provided value instead of using kernel information. Several capabilities can be specified, separated by commas. Only available capabilities can be enabled. Valid capabilities are:
bridgedocsisotherrepeaterrouterstationtelephonewlan
Here's an example of use:
configure system capabilities enabled bridge,router
unconfigure system capabilities enabled
Do not override capabilities, but instead use the kernel information. This option undoes the previous one.
configure system interface pattern pattern
Specify as comma separated values (CSV) which interfaces to listen upon and send LLDPDU from. Without this option, lldpd will use all available physical interfaces. This option can use wildcards. Several interfaces can be specified separated by commas. It's also possible to remove an interface by prefixing it with an exclamation mark. It's possible to allow an interface by prefixing it with two exclamation marks. An allowed interface beats a forbidden interface which beats a simple matched interface. For example, with eth*,!eth1,!eth2 lldpd will only use interfaces starting with eth with the exception of eth1 and eth2. While with *,!eth*,!!eth1 lldpcli will use all interfaces, except interfaces starting with eth with the exception of eth1. When an exact match is found, it will circumvent some tests. For example, if eth0.12 is specified, it will be accepted even if this is a VLAN interface. ๐ฆ
unconfigure system interface pattern
Remove any previously configured interface pattern and use all physical interfaces. This option undoes the previous one.
configure system interface permanent pattern
Specify interfaces whose configuration is permanently kept by lldpd. By default, lldpd disregards any data about interfaces when they are removed from the system (statistics, custom configuration). This option allows one to specify a pattern similar to the interface pattern. If an interface disappears but matches the pattern, its data is kept in memory and reused if the interface reappears at some point. For example, on Linux, one could use the pattern eth*,eno*,enp*, which should match fixed interfaces on most systems. ๐
unconfigure system interface permanent
Remove any previously configured permanent interface pattern. Any interface removed from the system will be forgotten. This option undoes the previous one.
configure system interface description
Some OSes allow the user to set a description for an interface. Setting this option will enable lldpd to override this description with the name of the peer neighbor if one is found, or with the number of neighbors found. ๐
unconfigure system interface description
Do not update interface description with the name of the peer neighbor. This option undoes the previous one.
configure system interface promiscuous
Enable promiscuous mode on managed interfaces.
โ ๏ธ ngl this next bit matters: when the interface is not managed any more (or when quitting lldpd), the interface is left in promiscuous mode as it is difficult to know if someone else also put the interface in promiscuous mode. so like, it stays that way. no cap. ๐
Totally, so โ about that first bit ๐ this option is literally known to be useful when the remote switch is a Cisco 2960 and your local network card has VLAN hardware acceleration on. In that case, you might not receive LLDP frames from the remote switch at all. The most plausible explanation? The frame is tagged with some VLAN (usually VLAN 1) and your network card filters VLANs. ๐ค
And no, that's not the only available solution to work around this problem. If you're worried about performance issues, you can also tag VLAN 1 on each interface instead. Options, bestie โ you've got them. โจ
Currently, this option has no effect on anything other than Linux. On other OSes, either disable VLAN acceleration, tag VLAN 1 or enable promiscuous mode manually on the interface.
unconfigure system interface promiscuousโ do not set promiscuous mode on managed interfaces. Heads up though: this option does not disable promiscuous mode on interfaces already using this mode. It's giving "no takebacks" ๐configure system ip management patternpattern โ specify the management addresses of this system as comma separated values (CSV). As for interfaces (described above), this option can use wildcards and inversions. Without this option, the first IPv4 and the first IPv6 are used. If an exact IP address is provided, it is used as a management address without any check. If only negative patterns are provided, only one IPv4 and one IPv6 address are chosen. Otherwise, many of them can be selected. To remove IPv6 addresses, use!*:*. If an interface name is matched, the first IPv4 address and the first IPv6 address associated with this interface will be chosen.unconfigure system ip management patternโ unset any specific pattern for matching management addresses. This option undoes the previous one. Undo button, but make it config ๐ซถconfigure system bond-slave-src-mac-typevalue โ set the type of src mac in lldp frames sent on bond slaves. Valid types are:realโ slave real maczeroโ all zero macfixedโ an arbitrary fixed value (00:60:08:69:97:ef)localโ real mac with locally administered bit set. If the real mac already has the locally administered bit set, fall back to the fixed value.
Default value for bond-slave-src-mac-type is local. Some switches may complain when using one of the two other possible values (either because 00:00:00:00:00:00 is not a valid MAC or because the MAC address is flapping from one port to another). Using local might lead to a duplicate MAC address on the network (but this is quite unlikely). ๐
configure system max-neighborsneighbors โ change the maximum number of neighbors accepted (for each protocol) on an interface. This is a global value. The default is32. This setting only applies to future neighbors โ past you already made their choices, no retroactive edits ๐configure lldp agent-type nearest-bridge | nearest-non-tpmr-bridge | nearest-customer-bridgeโ the destination MAC address used to send LLDPDU allows an agent to control the propagation of LLDPDUs. By default, the01:80:c2:00:00:0eMAC address is used and limits the propagation of the LLDPDU to the nearest bridge (nearest-bridge). To instructlldpdto use the01:80:c2:00:00:03MAC address instead, usenearest-nontpmr-bridgeinstead. To use the01:80:c2:00:00:00MAC address instead, usenearest-customer-bridgeinstead.configure lldp capabilities-advertisementsโ enable advertisements of the chassis capabilities TLV. Currently the default. Slay, it's on already โจunconfigure lldp capabilities-advertisementsโ disable advertisements of the chassis capabilities TLV.configure lldp management-addresses-advertisementsโ enable advertisements of the management address TLV. Currently the default.unconfigure lldp management-addresses-advertisementsโ disable advertisements of the management address TLV.configure lldp portidsubtype ifname | macaddressconfigure [ports ethX [,...]] lldp portidsubtype localvalue
Force port ID subtype. By default, lldpd will use the MAC address as port identifier and the interface name as port description, unless the interface has an alias. In this case, the interface name will be used as port identifier and the description will be the interface alias. With this command, you can force the port identifier to be the interface name (with ifname), the MAC address (with macaddress) or a local value (with value). In the latest case, the local value should be provided. Pick your fighter ๐
configure lldp portdescription-source auto | ifname | aliasโ select the source used for the port description TLV. This setting affects how the port description is determined when it is not explicitly provided (e.g. withportidsubtype localand a description).
Valid values are:
autoโ use the interface alias as port description when the alias is available and the port ID subtype is not set tomacaddress. Otherwise, use the interface name. This is the default and preserves the historical behavior.ifnameโ always use the interface name as port description.aliasโ use the interface alias as port description when available, regardless of port ID subtype. Falls back to the interface name when no alias is set.
configure [ports ethX [,...]] lldp portdescriptiondescription โ force port description to the provided string. You say what it is, it says what it is. Periodt ๐configure lldp tx-intervalinterval โ change transmit delay to the specified value in seconds. The transmit delay is the delay between two transmissions of LLDP PDU. The valid range is1through3600in seconds. The default value is30seconds. Note:lldpdalso starts another system based refresh timer on each port to detect changes such as a hostname. This is the value of the tx-interval multiplied by20.
You can specify an interval value in milliseconds by appending a "ms" suffix to the figure (e.g. "configure lldp tx-interval 1500ms" is 1.5s, not 1500s). In this case the TTL for received and sent LLDP frames is rounded up to the next second. Note: the effective interval can be limited by the operating system capabilities and CPU speed. ๐ญ yes, your CPU has opinions
configure lldp tx-holdhold โ change transmit hold value to the specified value. This value is used to compute the TTL of transmitted packets which is the product of this value and of the transmit delay. The valid range is1through100. The default value is4and therefore the default TTL is120seconds. Math, but make it networking ๐งฎโจconfigure [ports ethX [,...]] lldp status rx-and-tx | rx-only | tx-only | disabledโ configure the administrative status of the given port. By default, all ports are configured to be inrx-and-txmode. This means they can receive and transmit LLDP frames (as well as other protocols if needed). Inrx-onlymode, they won't emit any frames and intx-onlymode, they won't receive any frames. Indisabledmode, no frame will be sent and any incoming frame will be discarded. This setting does not override the operational mode of the main daemon. If it is configured in receive-only mode (with the-rflag), setting any transmit mode won't have any effect. Rude, but true ๐configure [ports ethX [,...]] lldp vlan-txvlan_id[priopriority[deidei]]โ configure the given port to send LLDP frames over a specified VLAN. With VLAN Identifier (VID) as vlan_id, Priority Code Point (PCP) as priority, and Drop Eligible Indicator (DEI) as dei.lldpdaccepts LLDP frames on all VLANs. All the VLANs. It's very accepting ๐ฆconfigure [ports ethX [,...]] lldp custom-tlv [add | replace]ouisubtypesubtype[oui-infocontent]โ emit a custom TLV for OUI oui, with subtype subtype and optionally with the bytes specified in content. Both oui and content shall be a comma-separated list of bytes in hex format. oui must be exactly3bytes long. Ifaddis specified then the TLV will be added. This is the default action. Ifreplaceis specified then all TLVs with the same oui and subtype will be replaced.unconfigure [ports ethX [,...]] lldp custom-tlv [ouioui] [subtypesubtype]โ when no oui is specified, remove all previously configured custom TLV. When OUI oui and subtype subtype is specified, remove specific instances of custom TLV. Declutter era ๐configure [ports ethX [,...]] lldp vlan-advertisements patternpattern โ configure VLAN advertisements for the given port as a comma separated values (CSV). As for interfaces (described above), this option can use wildcards and inversions. Without this option,lldpdwill advertise all VLANS.unconfigure [ports ethX [,...]] lldp vlan-advertisements patternโ remove any previously configured VLAN advertisements pattern for the given port.configure lldp fast-start enable | tx-intervalinterval โ configure LLDP fast start mechanism. When a new LLDP neighbor is detected, fast start allowslldpdto shorten the interval between two LLDPDU.enableshould enable LLDP fast start while tx-interval specifies the interval between two LLDPDU in seconds. The valid interval range is1through3600in seconds. The default interval is1second. Once4LLDPDU have been sent, the fast start mechanism is disabled until a new neighbor is detected. New friend energy โ speedrun era โ back to normal ๐ฅunconfigure lldp fast-startโ disable LLDP fast start mechanism.configure [ports ethX [,...]] med location coordinate latitudelatitudelongitudelongitudealtitudealtitudeunitunitdatumdatum
โฆso like, this command advertises a coordinate-based location on the ports you name โ or on all the ports if you don't name any ๐ Here's the format tea:
latitudeโ a decimal floating point number followed by eitherNorSlongitudeโ a decimal floating point number followed by eitherEorWaltitudeโ a decimal floating point number followed by eitherm(when it's in meters) orf(when it's in floors)- there is a space expected between the floating point number and the unit, ok bestie?
117.47 m, not117.47m datumโ one of these values:WGS84NAD83NAD83/MLLW
A valid use of this command is, and yes this is literally how it goes:
configure ports eth0 med location coordinate latitude 48.85667N longitude 2.2014E altitude 117.47 m datum WGS84
configure [ports ethX [,...]] med location address country country [type value [...]]โ advertise a civic address on the given ports (or on all ports if no port is specified ๐ซถ).countryis the two-letter code representing the country. The remaining arguments should be paired up to form the address โ the first member of each pair says what type the second member is, and the second member is free-form text. Here's the guest list of valid types:languagecountry-subdivisioncountycitycity-divisionblockstreetdirectiontrailing-street-suffixstreet-suffixnumbernumber-suffixlandmarkadditionalnamezipbuildingunitfloorroomplace-typescript
A valid use of this command is:
configure ports eth1 med location address country US street "Commercial Road" city "Roseville"
configure [ports ethX [,...]] med location elin numberโ advertise the availability of an ELIN number ๐จ This one is for setting up emergency calls, so like, kind of important. If the number you provide is too small, it gets padded with0(no cap, it just adds zeros). Here's an example of use:
configure ports eth2 med location elin 911
configure [ports ethX [,...]] med policy application application [unknown] [tagged] [vlan vlan] [priority priority] [dscp dscp]โ advertise a specific network policy for the given ports (or for all ports if no port was provided โจ). Only the application type is mandatory.applicationshould be one of these:voicevoice-signalingguest-voiceguest-voice-signalingsoftphone-voicevideo-conferencingstreaming-videovideo-signaling
The unknown flag tells that the network policy for the specified application type is required by the device but is currently unknown ๐คทโโ๏ธ This one is used by Endpoint Devices, not by Network Connectivity Devices. If you don't specify it, the network policy for the given application type is defined.
A VLAN given with vlan tells which 802.1q VLAN ID has to be advertised for the network policy โ a valid value is between 1 and 4094. And tagged tells that the VLAN should be tagged for the specified application type ๐
priority lets you specify the IEEE 802.1d / IEEE 802.1p Layer 2 Priority, also known as Class of Service (CoS), to be used for the specified application type. This field is usually ignored if no VLAN is specified. The names match the 802.1D-2004 standard (table G-2) โ some more recent standards may use different labels, so only the numeric values should be relied upon ngl. The accepted labels are:
1โbackground0โbest-effort2โexcellent-effort3โcritical-applications4โvideo5โvoice6โinternetwork-control7โnetwork-control
dscp represents the DSCP value to be advertised for the given network policy ๐
That's the DiffServ/Differentiated Services Code Point (DSCP) value as defined in IETF RFC 2474 for the specified application type. Value: 0 (default per RFC 2475) through 63. Note: the class selector DSCP values are backwards compatible for devices that only support the old IP precedence Type of Service (ToS) format. (See the RFCs for what these values mean, bestie โจ)
A valid use of this command is:
configure med policy application voice vlan 500 priority voice dscp 46
๐ inventory vibes ๐
configure inventory hardware-revision valueโ overridehardware-revisionwith the value you provide. By default,hardware-revisionis fetched from/sys/class/dmiunconfigure inventory hardware-revisionโ do not overridehardware-revision, and restore the use of the/sys/class/dmivalue ๐ซถconfigure inventory software-revision valueโ overridesoftware-revisionwith the provided value. By default,software-revisionis fetched fromunameunconfigure inventory software-revisionโ do not overridesoftware-revision, and restore the use of theunamevalue.configure inventory firmware-revision valueโ overridefirmware-revisionwith the provided value. By default,firmware-revisionis fetched from/sys/class/dmiunconfigure inventory firmware-revisionโ do not overridefirmware-revision, and restore the use of the/sys/class/dmivalue.configure inventory serial-number valueโ overrideserial-numberwith the provided value. By default,serial-numberis fetched from/sys/class/dmiunconfigure inventory serial-numberโ do not overrideserial-number, and restore the use of the/sys/class/dmivalue.configure inventory manufacturer valueโ overridemanufacturerwith the provided value. By default,manufactureris fetched from/sys/class/dmiunconfigure inventory manufacturerโ do not overridemanufacturer, and restore the use of the/sys/class/dmivalue.configure inventory model valueโ overridemodelwith the provided value. By default,modelis fetched from/sys/class/dmiunconfigure inventory modelโ do not overridemodel, and restore the use of the/sys/class/dmivalue.configure inventory asset valueโ overrideassetwith the provided value. By default,assetis fetched from/sys/class/dmiunconfigure inventory assetโ do not overrideasset, and restore the use of the/sys/class/dmivalue.
โก power, part one: MED โก
configure [ports ethX [,...]] med power pse | pd source source priority priority value valueโ advertise the LLDP-MED POE-MDI TLV for the given ports, or for all interfaces if no port is provided ๐ฅ You can act as a PD (power consumer) or a PSE (power provider).
โ ๏ธ No check is done on the validity of the parameters while LLDP-MED requires some restrictions, so listen up: - PD shall never request more power than physical 802.3af class. - PD shall never draw more than the maximum power advertised by PSE. - PSE shall not reduce power allocated to PD when this power is in use. - PSE may request reduced power using conservation mode - Being PSE or PD is a global parameter, not a per-port parameter.lldpclidoes not enforce this โ a port can be set as PD or PSE ๐ญ LLDP-MED also requires a PSE to have only one power source (primary or backup). Again,lldpclidoes not enforce this. Each port can have its own power source. The same applies for PD and power priority. LLDP-MED MIB does not allow this kind of representation.
Valid types are:
pseโ Power Sourcing Entity (power provider)pdโ Power Device (power consumer)
Valid sources are:
unknownโ Unknownprimaryโ For PSE, the power source is the primary power source.backupโ For PSE, the power source is the backup power source, or a power conservation mode is requested (the PSE may be running on UPS for example).pseโ For PD, the power source is the PSE.localโ For PD, the power source is a local source.bothโ For PD, the power source is both the PSE and a local source.
Valid priorities are:
unknownโ Unknown prioritycriticalโ Criticalhighโ Highlowโ Low
value should be the total power in milliwatts required by the PD device or available by the PSE device ๐
Here is an example of use:
configure med power pd source pse priority high value 5000
โก power, part two: dot3 โก
configure [ports ethX [,...]] dot3 power pse | pd [supported] [enabled] [paircontrol] powerpairs powerpairs [class class] [type type source source priority priority requested requested allocated allocated]โ advertise the Dot3 POE-MDI TLV for the given port, or for all ports if none was provided ๐ You can act as a PD (power consumer) or a PSE (power provider).
Heads up: this configuration is distinct from the configuration of the transmission of the LLDP-MED POE-MDI TLV, but you the user should make sure those two configurations stay coherent with each other if you're using them together ๐
supported means MDI power is supported on the given port, while enabled means MDI power is enabled. paircontrol is used to indicate whether pair selection can be controlled. Valid values for powerpairs are:
signalโ The signal pairs only are in use.spareโ The spare pairs only are in use.
When specified, class is class-, suffixed with a number from 0 to 4. E.g. class-0, class-1, class-2, class-3, class-4 โจ
Okay so for 802.3at, the classes go like this โ memorize them or keep this open, bestie:
0โ Default (Unspecified), PD 0.44-12.95 W, PSE 15.4 W1โ Very Low Power Device, PD 0.44-3.84 W, PSE 4.0 W2โ Low Power Device, PD 3.84-6.49 W, PSE 7.0 W3โ Mid Power Device, PD 6.49-12.95 W, PSE 15.4 W4โ High Power Device (PoE+), PD 12.95-25.5 W, PSE 30.0 W
The remaining parameters are in conformance with 802.3at and are optional, no pressure ๐
. type should be either 1 or 2, indicating whether the device conforms to 802.3at type 1 or 802.3at type 2. Values of source and priority are the same as for LLDP-MED POE-MDI TLV. requested and allocated are expressed in milliwats.
Here are two valid uses of this command, fr fr these both work:
configure ports eth3 dot3 power pse supported enabled paircontrol powerpairs spare class class-3
configure dot3 power pd supported enabled powerpairs spare class class-3 type 1 source pse priority low requested 10000 allocated 15000
๐ง pause
Pause lldpd operations. lldpd will not send or receive any more frames. This can be undone with resume command. This only works interactively as lldpd asks lldpcli to unpause after reading the configuration file.
Heads up bestie ๐ซถ โ that interactive-only bit is the whole vibe check here. Don't expect it to just chill in your config file.
โถ๏ธ resume
Resume lldpd operations. lldpd will start to send and receive frames. This command is issued internally after processing the configuration but can be used at any time if a manual pause command is issued.
๐ธ FILES ๐ธ
/run/lldpd/lldpd.socketโ Unix-domain socket used for communication withlldpd(8). that's the little gossip line betweenlldpcliandlldpd, iykyk
๐ฆ SEE ALSO ๐ฆ
lldpd(8)โ the main character of this whole story ๐
๐ AUTHORS ๐
The lldpcli program was written by Vincent Bernat <bernat@luffy.cx>. shoutout to the icon who built this, we stan ๐
and that's the whole page bestie, you made it ๐ This one's a Debian joint, dated July 16, 2008, filed under LLDPCLI(8) โ go forth and configure with confidence, mwah ๐
๐ฆ where this page comes from
- alpine 3.24: lldpd-doc 1.0.23-r0 ยท ISC
- Copyright (c) 2006 Pierre-Yves Ritschard <pyr@openbsd.org>
- Copyright (c) 2008 Vincent Bernat <bernat@luffy.cx>
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms