Page MenuHomeFreeBSD

ixl(4): Fix 2.5 and 5G speeds reporting and update shared code
ClosedPublic

Authored by krzysztof.galazka_intel.com on Aug 16 2021, 5:50 PM.

Details

Summary

Fix 2.5 and 5G speeds reporting and update shared code with recent changes:

Update expected FW API versions for X710 and X722 adapters

Define pointers related to Preservation Rules Module

Add definitions for Shadow RAM pointers to new
modules: 5th and 6th FPA, and Preservation Rules Module.

Add I40E_RX_PTYPE_PARSER_ABORTED definition, so the driver will know
opcode for parser aborted packets.

Add the new filter types needed for custom cloud filters.

Add support for Minimum Rollback Revision

Fix RX_ONLY mode for unicast promiscuous on VLAN

Add EEE LPI status check for X722 adapters

Fix PHY type identifiers for 2.5G and 5G adapters

Fix update link data for X722

Increase the timeout value for PF reset to give PF more time
to finish reset if it is loaded with filters.

Added support for Min Rollback Revision for 4 more X722 modules

Fix reporting of Active Optical Cable media type

Add flags and fields for double VLAN processing

Fix potentially uninitialized variables in NVM code

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 41075
Build 37964: arc lint + arc unit

Event Timeline

I just wanted to let you know that it applies and compiles OK against stable/13 (as of yesterday).

The Nic works, though I only tested with lagg and a 1GB switch, but the previous driver worked at 10GB. The only error/warning I see is "debugnet_any_ifnet_update: Bad dn_init result from ixl0 (ifp 0xfffff8018c1d7800), ignoring.".

More importantly it fixes my issue where the driver would complain that the firmware was newer than current driver supports, this is no longer the case, lease commit when possible. This is based on a brand new Lenovo ThinkSystem SR635 server using a ThinkSystem Intel X710-T2L 10GBASE-T 2-port OCP Ethernet Adapter.

ixl0: <Intel(R) Ethernet Controller X710 for 10GBASE-T - 2.3.0-k> mem 0x3807f000000-0x3807fffffff,0x38080008000-0x3808000ffff irq 120 at device 0.0 on pci16
ixl0: fw 8.13.63341 api 1.12 nvm 8.15 etid 80009cdd oem 1.267.0
ixl0: PF-ID[0]: VFs 64, MSI-X 129, VF MSI-X 5, QPs 768, MDIO shared
ixl0: Using 1024 TX descriptors and 1024 RX descriptors
ixl0: Using 16 RX queues 16 TX queues
ixl0: Using MSI-X interrupts with 17 vectors
ixl0: Ethernet address: b4:96:91:9f:ef:5c
ixl0: Allocating 16 queues for PF LAN VSI; 16 queues active
ixl0: PCI Express Bus: Speed 8.0GT/s Width x8
ixl0: Failed to initialize SR-IOV (error=2)
ixl0: netmap queues/slots: TX 16/1024, RX 16/1024
ixl0: Link is up, 1 Gbps Full Duplex, Requested FEC: None, Negotiated FEC: CL74 FC-FEC/BASE-R, Autoneg: True, Flow Control: No
ixl0: link state changed to UP
debugnet_any_ifnet_update: Bad dn_init result from ixl0 (ifp 0xfffff8018c1d7800), ignoring.
ixl0: link state changed to DOWN
ixl0: Link is up, 1 Gbps Full Duplex, Requested FEC: None, Negotiated FEC: CL74 FC-FEC/BASE-R, Autoneg: True, Flow Control: No
ixl0: link state changed to UP

We're just waiting for an internal validation pass to make sure it doesn't break anything; then, I'll commit it.

There’s also this one:

ixl0: Failed to initialize SR-IOV (error=2)
ixl0: Failed to initialize SR-IOV (error=2)

That's expected when some prerequisite for SR-IOV doesn't work or isn't present, e.g. VT-d is disabled.

In D31565#712930, @erj wrote:
ixl0: Failed to initialize SR-IOV (error=2)

That's expected when some prerequisite for SR-IOV doesn't work or isn't present, e.g. VT-d is disabled.

Right, i'll have to check the BIOS, its at factory settings now. But it's a feature i won't be using anyways, my bigger concern is this error as it did not show before "debugnet_any_ifnet_update: Bad dn_init result from ixl0 (ifp 0xfffff8018c1d7800), ignoring."

In D31565#712930, @erj wrote:
ixl0: Failed to initialize SR-IOV (error=2)

That's expected when some prerequisite for SR-IOV doesn't work or isn't present, e.g. VT-d is disabled.

CPU SVM and PCIe SR-IOV support is enabled in the bios. According to the Lenovo datasheet "PCI-SIG SR-IOV implementation: Provides an implementation of the PCI-SIG standard for I/O Virtualization. The physical configuration of each port is divided into multiple virtual ports. Each virtual port is assigned to an individual VM directly by bypassing the virtual switch in the Hypervisor, which results in near-native performance." so it should work with this Nic. However the pervious driver reported the same error so i'm not sure if there is a regression here.

This revision is now accepted and ready to land.Aug 20 2021, 4:07 PM
This revision now requires review to proceed.Aug 20 2021, 7:18 PM

Any chance for a review to get this in base soon? Ive been using it for a few months and aside from the SRV-IO message it's been working great.

This revision is now accepted and ready to land.Sep 13 2021, 11:40 AM