lldptool(8)
π addEthCaps β the manual page, but make it make sense
okay so this is a page from lldptool(8) β yes, the lldptool man page energy, bestie, we're doing the Linux thing π§β¨
πΈ NAME πΈ
addEthCaps β show / manipulate the Additional Ethernet Capabilities TLV. that's it, that's the whole vibe π
β¨ SYNOPSIS β¨
lldptool -t -i ethx -V addEthCaps [-c CONFIG_ARG ...]
CONFIG_ARG := { enableTx | addFragSize }
lldptool -T -i ethx -V addEthCaps CONFIG_ARG=value ...
CONFIG_ARG :=
enableTx = {yes|no} |
addFragSize = {0|1|2|3}
π¦ DESCRIPTION π¦
so the Additional Ethernet Capabilities TLV (aka addEthCaps, aka the main character) lets neighbour systems automatically discover the Frame Preemption capability, and then enables their MAC Merge layers so they can actually use it. it's giving matchmaker, honestly π«Ά
π ARGUMENTS π
enableTxβ turns on transmission of theaddEthCapsTLV. yes, it's the on switch. iconic behaviour.addFragSizeβ sets the additional fragment size to be advertised. basically it tells your link partner "hey bestie, this is the minimum size of non-final fragments you should be sending me" πβ¨. and the mapping is: anaddFragSizeof0β minimum fragment size of 60 octets,1β 124 octets,2β 188 octets, and3β 252 octets.
π THEORY OF OPERATION π
okay this part is actually so interesting, sit down πͺ
if transmission of the Additional Ethernet Capabilities TLV is enabled, the application queries the kernel for MAC Merge layer support, and if that goes well, it advertises "Frame Preemption Capability Supported". and if the link partner advertises "Frame Preemption Capability Supported" too, the application unconditionally enables the pMAC (so it can receive preemptible and/or verification frames from the link partner) plus transmission through the MAC Merge layer. that second operation is what makes "Frame Preemption Capability Enabled" get advertised in subsequent TLVs too. slay.
π¨ but here's the thing, and it's a real one: since the application automatically enables the Frame Preemption capability with no coordination with the link partner whatsoever, it's possible that the link partner just... doesn't enable reception on its pMAC. and then all the preemptible frames this device transmits get dropped as error frames. π not ideal.
to avoid that whole situation, the application also asks the kernel to enable TX verification, which kicks off a handshake of SMD-V and SMD-R frames outside the LLDP protocol. if the verification process succeeds (aka the link partner responds to a SMD-V frame), the MAC Merge layer becomes active too, and the application then advertises "Frame Preemption Capability Active" in subsequent TLVs. periodt β¨
quick note though: which packets get transmitted as preemptible and which get transmitted as express (based on their user priority) is outside of the scope of this application (and of the LLDP protocol). not our department, not our problem, iykyk π
π EXAMPLE & USAGE π
enable the transmission of the Additional Ethernet Capabilities TLV for interface eth0:
lldptool -T -i eth0 -V addEthCaps enableTx=yes
configure the minimum fragment size for interface eth0 to receive fragments no smaller than 252 octets:
lldptool -T -i eth0 -V addEthCaps addFragSize=3
display the additional fragment size advertised by eth0:
lldptool -t -i eth0 -V addEthCaps -c addFragSize
display last transmitted Additional Ethernet Capabilities TLV:
lldptool -t -i eth0 -V addEthCaps
π₯ NOTES π₯
the Additional Ethernet Capabilities TLV requires kernel support for the ETHTOOL_MSG_MM_GET and ETHTOOL_MSG_MM_SET netlink commands, which first appeared in Linux kernel v6.3. so if you're on something older, that's a no from the kernel, sorry bestie π
π SEE ALSO π
lldptool(8), lldpad(8), ethtool(8),
π§ AUTHOR π§
this man page was written by Vladimir Oltean <vladimir.oltean@nxp.com>. ty for your service, king π
and that's the whole page!! brought to you by open-lldp, dated January 2023, and it lives under the lldptool(8) name β mwah, go configure your fragments responsibly ππ
π¦ where this page comes from
- 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
- 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