Page MenuHomeVyOS Platform

LLDP not working on X710 adapter, i40e driver
Open, Requires assessmentPublicBUG


When LLDP is configured, on all interfaces or on specific interfaces LLDP packets are sent but nothing is received.

With lldpcli this can be confirmed

lldpcli show stat
Interface:    eth1
  Transmitted:  7
  Received:     0
  Discarded:    0
  Unrecognized: 0
  Ageout:       0
  Inserted:     0
  Deleted:      0

And old discussion on Intel forum suggests this has ben long existing in the X710 network card.
I can confirm it also exists on Intel X722 interfaces.

The forum suggests disabling the lldp handling on the nic and let the kernel take care of it.
echo lldp stop > /sys/kernel/debug/i40e/<ifid>/command

This needs to be run as root and the right interface ids need to be picked for the specific cards.


Difficulty level
Unknown (require assessment)
Why the issue appeared?
Will be filled on close
Is it a breaking change?
Unspecified (possibly destroys the router)

Event Timeline

Merijn created this task.Apr 13 2020, 10:15 PM
Dmitry added a subscriber: Dmitry.Apr 13 2020, 10:28 PM

Note: will be good to disable this by udev rule for i40e

Merijn added a comment.EditedApr 13 2020, 10:31 PM

Found that in drivers 2.3.6 and newer this should also work:

sudo ethtool --set-priv-flags <interface name> disable-fw-lldp on

This is probably easier, as you do not have to find our the interface ids.
But on Vyos 1.2.5-epa i get:
Cannot set private flags: Operation not supported

pasik added a subscriber: pasik.Apr 14 2020, 11:45 AM

This issue exists in firmware 6.8 and 7.1.
Starting with 7.1 i can see that the disable command 'sudo ethtool --set-priv-flags <interface name> disable-fw-lldp on' also works.

c-po added a subscriber: c-po.Fri, Aug 28, 8:20 PM

I do not have that hardware available, but a possible solution could be the following snippet which could be run on system boot:

for f in /sys/class/net/*; do
    dev=$(basename $f)
    driver=$(readlink $f/device/driver/module)
    if [[ -n $driver ]] && [[ x"$(basename $driver)" -eq x"i40e" ]]; then
        sudo ethtool --set-priv-flags $dev disable-fw-lldp on

@Merijn you could test that? It could be part of /opt/vyatta/sbin/rl-system.init