Bug 260468 - Disabling igb vlanhwfilter accepted but not applied
Summary: Disabling igb vlanhwfilter accepted but not applied
Status: Closed FIXED
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: 12.3-RELEASE
Hardware: amd64 Any
: --- Affects Some People
Assignee: freebsd-net (Nobody)
URL:
Keywords: IntelNetworking
: 263756 (view as bug list)
Depends on:
Blocks:
 
Reported: 2021-12-16 11:54 UTC by 606u
Modified: 2023-05-04 13:49 UTC (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description 606u 2021-12-16 11:54:47 UTC
Disabling VLAN hardware filter (vlanhwfilter) with ifconfig(8) is accepted and VLAN_HWFILTER option disappears from the network interface, however tagged frames for VLANs not explicitly created on this interface are silently dropped and do not appear in tcpdump(1).

Example:

### Nothing outputted with zero VLANs on igb1 (including VLAN 200):
# tcpdump -penvi igb1 vlan

### Tagged frames for VLAN 200 visible after igb1.200 create:
# ifconfig igb1.200 create
# tcpdump -penvi igb1 vlan

### Tagged frames for VLAN 200 no-longer visible after igb1.200 destroy:
# ifconfig igb1.200 destroy
# tcpdump -penvi igb1 vlan

### ifconfig changes nothing, no tagged frames unless VLAN is created:
# ifconfig igb1 -vlanhwtag -vlanhwcsum -vlanhwhwtso -vlanhwcsso
igb1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=e0272b<RXCSUM,TXCSUM,VLAN_MTU,JUMBO_MTU,TSO4,TSO6,LRO,WOL_MAGIC,RXCSUM_IPV6,TXCSUM_IPV6>
        ...
# tcpdump -penvi igb1 vlan

# pciconf -lvcb igb1
igb1@pci0:1:0:1:        class=0x020000 card=0x010015d9 chip=0x10c98086 rev=0x01 hdr=0x00
    vendor     = 'Intel Corporation'
    device     = '82576 Gigabit Network Connection'
    class      = network
    subclass   = ethernet
    bar   [10] = type Memory, range 32, base rxfbb60000, size 131072, enabled
    bar   [14] = type Memory, range 32, base rxfbb40000, size 131072, enabled
    bar   [18] = type I/O Port, range 32, base rxd880, size 32, enabled
    bar   [1c] = type Memory, range 32, base rxfbb1c000, size 16384, enabled
    cap 01[40] = powerspec 3  supports D0 D3  current D0
    cap 05[50] = MSI supports 1 message, 64 bit, vector masks
    cap 11[70] = MSI-X supports 10 messages, enabled
                 Table in map 0x1c[0x0], PBA in map 0x1c[0x2000]
    cap 10[a0] = PCI-Express 2 endpoint max data 256(512) FLR RO NS
                 max read 512
                 link x4(x4) speed 2.5(2.5) ASPM disabled(L0s/L1)
    ecap 0001[100] = AER 1 0 fatal 0 non-fatal 1 corrected
    ecap 0003[140] = Serial 1 002590ffff******
    ecap 000e[150] = ARI 1
    ecap 0010[160] = SR-IOV 1 IOV disabled, Memory Space disabled, ARI disabled
                     0 VFs configured out of 8 supported
                     First VF RID Offset 0x0180, VF RID Stride 0x0002
                     VF Device ID 0x10ca
                     Page Sizes: 4096 (enabled), 8192, 65536, 262144, 1048576, 4194304

Working correctly on FreeBSD 12.2-RELEASE.
(Speculation!!!) Maybe related to Intel e1000 drivers version bump -- "August 7, 2019" for 12.3-RELEASE, "May 30, 2007" for 12.2-RELEASE and 13.0-RELEASE.
Comment 1 Ozkan KIRIK 2021-12-16 17:34:54 UTC
I hit an issue like this. The e1000 & igb driver doesn't reflect hw
offload capabilities now.
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=260068
And the differential https://reviews.freebsd.org/D33154 was created
for the bug reported by me. It's commited to main branch (https://cgit.freebsd.org/src/commit/?id=e0f4cdba533693bb6ef9d90243acdad89605b150)

With the same differential, it will work for you also.
Comment 2 606u 2021-12-17 12:32:56 UTC
(In reply to Ozkan KIRIK from comment #1)
Thanks, confirmed working with review D33154 and review D33156 applied.
Comment 3 Kevin Bowling freebsd_committer freebsd_triage 2023-05-04 13:49:45 UTC
*** Bug 263756 has been marked as a duplicate of this bug. ***