I have encountered the following problems in the HEAD version of the driver (but compiled to run on FreeBSD 7.1). All of the problems identified should exist in any version of the kernel though.
1. memory corruption of mbuf headers.
2. TCP segmentation offload not usable with checksum offload enabled
3. Add-in cards without SFP+ modules plugged in will fail ixgbe_attach (regression from 7.1 version of the driver)
4. Interfaces will be reset when an AF_INET address is added (via SIOCSIFADDR) (regression from 7.1 version of the driver)
5. Requested alignment (1 byte alignment) of the receive/transmit descriptor rings does not match the hardware alignment. This is probably not a real problem today, as the returned memory always appears to be 4K aligned anyhow, but could become a problem on new architectures.
6. Errored frames (crc errors, length errors) cause kernel panics on next use of the receive ring entry. This problem exists in all versions of the ixgbe driver (including the 7.1 version).
Fix: Patch attached with submission follows:
How-To-Repeat: For 1, try to use the driver with either an 82598 or 82599 based card. The kernel will panic quickly
For 2, try to enable TSO, send large segments by enqueuing 4K+ data in repeated send calls using a TCP socket, and monitor the tso counts in the driver.
For 3, don't plug in an SFP+ module. A corresponding interface (ie. ix0) will only show up when an SFP+ module is inserted.
ifconfig ix0 (verify that status is active)
ifconfig ix0 192.168.1.2 netmask 255.255.255.0 (add address)
ifconfig ix0 (status will show no carrier for 5-10 seconds, then active again)
For 5: not really repeatable, this was found while looking for the memory corruption in 1 as part of a code review.
For 6, cause an errored packet to be injected (via a raw socket), or put in a fail point that causes a packet properly received to be rejected in ixgbe_rxeof.
Over to maintainer(s).
Over to maintainer.
This diff seems to apply to both if_ix.c and if_txrx.c now. Probably it needs to be audited and/or regenerated.
For bugs that match the following
- Status Is In progress
- Untouched since 2018-01-01.
- Affects Base System OR Documentation
Reset to open status.
I did a quick pass but if you are getting this email it might be worthwhile to double check to see if this bug ought to be closed.
Most of this is not applicable any longer due to the conversion to IFLIB. IF you have the time or inclination, reopen with a regenerated patchset that you'd like to see applied.