Written by Anish Bhatt

Using IEEE-DCBx with open-lldp

A short guide

This post assumes that you already have open-lldp installed, and are using a network driver that supports IEEE-DCBx (cxgb4, ixgbe or mlx4). Please note that at the time of writing bnx2x & qlcnic only seemed to support DCBx CEE.

I recommend resetting the lldpad configuration before you enable IEEE. Skip down to the dcbtool step if you wish to skip this. First, stop the lldpad service via
# service stop lldpad
or # /etc/init.d/lldpad stop
Next, clear out the old configuration by deleting or backing up
Then, restart lldpad via
# service stop start or # /etc/init.d/lldpad start
Enable DCBx on the interface of your choice, replacing ethX with the applicable interface name

# dcbtool sc ethX dcb on

Enable PFC, ETS & APP TLVs as follows

# lldptool -T -i ethX -V ETS-CFG -c enableTX=yes

# lldptool -T -i ethX -V ETS-REC -c enableTX=yes

# lldptool -T -i ethX -V PFC -c enableTX=yes

# lldptool -T -i ethX -V APP -c enableTX=yes

# lldptool -T -i ethX -V IEEE-DCBX mode=reset

# lldptool -t -i ethX -V IEEE-DCBX -c mode

If you did not get any errors, you should see the last command return mode=auto. This basically indicates that lldpad will try and negotiate IEEE-DCBx first, falling back to CEE DCBx.
Finally, restart lldpad to store this configuration via
# service lldpad restart
or # /etc/init.d/lldpad restart.

You can verify negotiation by running lldpad in the foreground and making it print debug messages using # lldpad -V 10. Actual configuration is explained in further detail on the dcbtool and lldptool man pages.

comments powered by Disqus