Re: e1000 & igb if_vlan netmap header stripping issue after e1000-igb driver updates.

From: Vincenzo Maffione <vmaffione_at_freebsd.org>
Date: Sun, 28 Nov 2021 18:30:46 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=260068

On Sat, Nov 20, 2021, 3:19 PM Özkan KIRIK <ozkan.kirik@gmail.com> wrote:

> Hello,
>
> I'm using stable/12 (aba2dc46dfa5, Oct 24 2021). I'm hitting some
> problems with if_vlan + parent interface netmap. It was working with
> before driver update. Maybe something missing for netmap
> implementation.
>
> The way to reproduce:
> [HostA] <----> [HostB]
>
> HostA
> - ifconfig em1.110 create 10.10.10.2/24 up
> - ping 10.10.10.1
> - tcpdump -eni em1
> 17:05:11.393411 00:50:56:26:69:ea > 00:0c:29:84:5d:88, ethertype
> 802.1Q (0x8100), length 102: vlan 110, p 0, ethertype IPv4, 10.10.10.1
> > 10.10.10.2: ICMP echo reply, id 32844, seq 53, length 64
>
> HostB
> - ifconfig em1.110 create 10.10.10.1/24 up
> - ifconfig em1 promisc -tso -lro -rxcsum -txcsum -tso6 -rxcsum -txcsum
> -tso6 -rxcsum6 -txcsum6 -vlanhwtag -vlanhwcsum -vlanhwtso
> - ./bridge -i em1 -i em1^ &
> # tcpdump -eni em1
> 17:05:11.391215 00:0c:29:84:5d:88 > 00:50:56:26:69:ea, ethertype IPv4
> (0x0800), length 98: 10.10.10.2 > 10.10.10.1: ICMP echo request, id
> 32844, seq 53, length 64
>
> Pinging from HostA to HostB through if_vlan. When netmap bridge is
> closed, everything is okey, we can see the original packet on tcpdump.
> But when netmap bridge is started, packet's vlan header was lost as
> you can see above. The netmap bridge app is the original
> tools/tools/netmap/bridge.c application.
> HostA and HostB connected back to back directly with a patch cable.
> There is no switch between them.
>
> I tried this test on real hardware em, igb and vmware e1000 (em) nics.
> Problem is easy to reproduce.
> But there is no such problem on ix and ixl cards.
>
> Is it possible to check and fix?
> Best Regards,
> Özkan KIRIK
>