This document describes the process lldpad uses to select the operational version of DCBX - as lldpad only includes one type of DCBX TLV(s) in an LLDPDU for a given interface at any time.
lldpad provides support for three versions of DCBX:
The legacy (CIN, CEE) versions of DCBX are configured by using 'dcbtool' from the lldpad package. The IEEE DCBX version is configured using 'lldptool' from the lldpad package.
By default, lldpad will set the LLDP adminStatus of a DCB capable interface to Receive-only mode. If a DCBX peer is detected (a received LLDPDU contains DCBX TLVs), then the adminStatus of the interface is changed to Receive-Transmit mode. In this way, by default, an otherwise unconfigured port will not come up transmitting LLDPDU's, but if it detects a DCBX peer, it will automatically participate in the DCBX exchange. Of course, LLDP or DCBX can be disabled per interface by an administrative setting.
Automatic DCBX Selection
By default, lldpad performs an automatic selection of either the IEEE DCBX or the configured legacy DCBX version. For a given interface, when the link comes up, DCBX will start out in IEEE DCBX mode. If a DCBX peer is detected which includes any IEEE DCBX TLVs, then the interface will remain in IEEE DCBX mode - even if the peer also includes legacy DCBX TLVs. However, if the peer only transmits legacy DCBX TLVs, then lldpad will drop down to the legacy DCBX mode. The interface will remain in legacy DCBX mode until the link goes down.
If devices which support both IEEE DCBX and legacy DCBX follow the above process, then they should be able to interoperate with other devices which support only IEEE DCBX or only legacy DCBX.
lldpad Legacy DCBX Selection
As described above in the Automatic DCBX Selection section, lldpad can on a per interface basis select between IEEE DCBX and legacy DCBX. For the selection of legacy DCBX, lldpad can only use a single legacy DCBX mode for all interfaces (i.e. legacy DCBX is a global setting).
The legacy DCBX mode is CEE by default. Using 'dcbtool', the DCBX mode can be set to:
The 'cee' or 'cin' modes mean that if the automatic DCBX selection falls back from IEEE DCBX to legacy mode, then either CEE or CIN is the fall back DCBX mode. This setting applies globally to all DCBX interfaces managed by lldpad.
The 'force-cee' or 'force-cin' modes mean that all interfaces will directly start out in CEE or CIN DCBX mode. Again, this settings applies to all DCBX interfaces managed by lldpad.
The recommended usage is to leave the legacy DCBX mode set to CEE. This allows the IEEE DCBX mode a chance to run first and provides forward compatibility as more systems implement IEEE DCBX while also providing backward compatility with CEE DCBX (the most commonly implemented legacy DCBX mode). The 'cin' and 'force-*' DCBX modes are provided mainly as methods to work around buggy DCBX peers.