Bug 230996 - em/igb: Intel i210/i350: ifconfig: enabling "vlanhwtag" renders VLAN on i210/i350 NICs unusable
Summary: em/igb: Intel i210/i350: ifconfig: enabling "vlanhwtag" renders VLAN on i210/...
Status: New
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: CURRENT
Hardware: Any Any
: --- Affects Many People
Assignee: freebsd-net mailing list
Keywords: IntelNetworking
Depends on:
Reported: 2018-08-29 14:56 UTC by O. Hartmann
Modified: 2019-03-25 09:43 UTC (History)
4 users (show)

See Also:


Note You need to log in before you can comment on or make changes to this bug.
Description O. Hartmann 2018-08-29 14:56:42 UTC
Running a small howm-brewn router with only vanilla and standard FreeBSD on-board utilities on a PCEngines APU2C4, the built-in i210 Intel NICs stop working when they have VLAN tags assigned and enabling "vlanhwtag" on the base device (i.e., igb1 is the main device, igb1.10, igb1.100 and igb1.1000 are the VLAN devices).

This phenomenon/bug seems also present on Intel i350 NIcs (I use a server with a dual port PCIe NIC of that kind).
Comment 1 Lev A. Serebryakov freebsd_committer 2018-09-29 15:30:42 UTC
I have very similar problem: igb/I210, FreeBSD 12-ALPHA8 (r339009).
When I enable "vlanhwtag" on server, clients on this VLAN receive UDP with broken checksums. 
For example, client can not obtain address via DHCP from server with enabled "vlanhwtag", because DHCP client doesn't seen answers, because they are dropped by kernel due to invalid checksum: tcpdump sees DHCPOFFER on cleint's interface but dhclient doesn't receive anything.
Comment 2 Sean Bruno freebsd_committer 2018-09-29 18:03:47 UTC
I'm unclear if this is related to PR231416 or not.  There needs to be a bit more clarification in what the vlanhwtag needs to do or if setting this flag somehow breaks what the udp stack is expecting.
Comment 3 Lev A. Serebryakov freebsd_committer 2018-09-29 20:49:50 UTC
(In reply to Sean Bruno from comment #2)
My case is PR231416 for sure. Looks like TCP works with tis capability enabled, for example. I'm not sure about non-bpf originated UDP, though.