Page MenuHomeFreeBSD

Attempt to fix PR231416 (UDP BPF VLAN checksum errors)

Authored by shurd on Oct 3 2018, 6:04 PM.



The only potential issue I see is that the igb devices create
an offload context for VLANs and don't set offset to false and
unconditionally request IP level offloads. While it's not setting
E1000_ADVTXD_TUCMD_L4T_UDP, this may still be causing the issue.

Test Plan

Get lev to test it

Diff Detail

rS FreeBSD src repository
Lint OK
No Unit Test Coverage
Build Status
Buildable 19938
Build 19455: arc lint + arc unit

Event Timeline

shurd created this revision.Oct 3 2018, 6:04 PM
lev added a comment.Oct 3 2018, 8:20 PM

This patch (first version) breaks my I210 completely. With it physical interface without any VLANs could not mount NFS share, for example. Something simple, like "ping" works, but all complex protocols are broken.
I didn't check VLANs, because host without NFS shares and other such protocols renders itself useless.

shurd updated this revision to Diff 48692.Oct 3 2018, 8:44 PM

Explicitly set E1000_TXD_POPTS_TXSM when setting the checksum type.

Looks like IP offloads are handled in the TSO setup, and the check here
is just to set the appropriate IP version flag.

shurd added a comment.Oct 3 2018, 8:45 PM
In D17393#371122, @lev wrote:

This patch (first version) breaks my I210 completely.

The new patch should... not do that.

lev added a comment.Oct 3 2018, 10:10 PM

Second version works, both without VLAN_HWTAGGING and with it, physical network and VLANs.

shurd abandoned this revision.Oct 5 2018, 9:12 PM

"Abandoning" because I put the wrong URL in the commit message.

rS339207: Fix igb corrupting checksums with BPF and VLAN

Macro failboat: