Created attachment 185412 [details] disable hw lldp sysctl patch In XL710 cards LLDP is by default handled directly by the NIC. It means that LLDP PDU are filtered by the NIC and are not visible by the kernel. The filtering can be turned off by calling i40e_aq_stop_lldp(). You can see this feature in the linux driver (which contains more options) http://elixir.free-electrons.com/linux/v3.12/source/drivers/net/ethernet/intel/i40e/i40e_debugfs.c#L1618 I'm proposing here a patch to disable LLDP filtering by using a sysctl. Note that, we should also (not done in the patch) call i40e_aq_start_lldp() somewhere in the iface init to be sure that the sysctl value is consistent with the card behavior.
https://www.intel.com/content/dam/www/public/us/en/documents/specification-updates/xl710-10-40-controller-spec-update.pdf Issue #70 is the reason why we don't allow the user to disable lldp. That said, FW6 fixes this -- but until that's officially out, this isn't really a bug.
(In reply to Eric Joyner from comment #1) I wasn't aware of this issue with the firmware, thanks for sharing. I guess I was lucky enough to not have this problem when I was disabling lldp. For what its worth, the FW6 seems to be out (I have not tested it yet) https://downloadcenter.intel.com/download/25792/Non-Volatile-Memory-NVM-Update-Utility-for-Intel-Ethernet-Adapters-FreeBSD-
We're going to have this functionality in the next update to ixl -- there's a new admin queue command added to the FW that needs to be called after disabling LLDP, and extra tracking in the driver to make sure the correct status is detected on driver load.
New version of the driver, which has been published here: https://downloadcenter.intel.com/download/25160/Ethernet-Intel-Network-Adapter-Driver-for-PCIe-40-Gigabit-Ethernet-Network-Connection-under-FreeBSD- has this feature implemented.
Thanks, I will try that when I will have some time !
The review which add this feature to in-kernel driver: https://reviews.freebsd.org/D14985
A commit references this bug: Author: erj Date: Tue May 1 18:50:12 UTC 2018 New revision: 333149 URL: https://svnweb.freebsd.org/changeset/base/333149 Log: ixl(4): Update to 1.9.9-k Refresh upstream driver before impending conversion to iflib. Major changes: - Support for descriptor writeback mode (required by ixlv(4) for AVF support) - Ability to disable firmware LLDP agent by user (PR 221530) - Fix for TX queue hang when using TSO (PR 221919) - Separate descriptor ring sizes for TX and RX rings PR: 221530, 221919 Submitted by: Krzysztof Galazka <krzysztof.galazka@intel.com> Reviewed by: #IntelNetworking MFC after: 1 day Relnotes: Yes Sponsored by: Intel Corporation Differential Revision: https://reviews.freebsd.org/D14985 Changes: head/sys/conf/files.amd64 head/sys/dev/ixl/i40e_adminq.c head/sys/dev/ixl/i40e_adminq.h head/sys/dev/ixl/i40e_adminq_cmd.h head/sys/dev/ixl/i40e_alloc.h head/sys/dev/ixl/i40e_common.c head/sys/dev/ixl/i40e_dcb.c head/sys/dev/ixl/i40e_dcb.h head/sys/dev/ixl/i40e_devids.h head/sys/dev/ixl/i40e_hmc.c head/sys/dev/ixl/i40e_hmc.h head/sys/dev/ixl/i40e_lan_hmc.c head/sys/dev/ixl/i40e_lan_hmc.h head/sys/dev/ixl/i40e_nvm.c head/sys/dev/ixl/i40e_osdep.c head/sys/dev/ixl/i40e_osdep.h head/sys/dev/ixl/i40e_prototype.h head/sys/dev/ixl/i40e_register.h head/sys/dev/ixl/i40e_status.h head/sys/dev/ixl/i40e_type.h head/sys/dev/ixl/i40e_virtchnl.h head/sys/dev/ixl/if_ixl.c head/sys/dev/ixl/if_ixlv.c head/sys/dev/ixl/ixl.h head/sys/dev/ixl/ixl_iw.c head/sys/dev/ixl/ixl_iw.h head/sys/dev/ixl/ixl_iw_int.h head/sys/dev/ixl/ixl_pf.h head/sys/dev/ixl/ixl_pf_i2c.c head/sys/dev/ixl/ixl_pf_iov.c head/sys/dev/ixl/ixl_pf_iov.h head/sys/dev/ixl/ixl_pf_main.c head/sys/dev/ixl/ixl_pf_qmgr.c head/sys/dev/ixl/ixl_pf_qmgr.h head/sys/dev/ixl/ixl_txrx.c head/sys/dev/ixl/ixlv.h head/sys/dev/ixl/ixlv_vc_mgr.h head/sys/dev/ixl/ixlvc.c head/sys/dev/ixl/virtchnl.h head/sys/modules/ixl/Makefile