Fix receiving VLAN packets if LRO is enabled on ix(4).
authorbluhm <bluhm@openbsd.org>
Mon, 21 Aug 2023 21:45:18 +0000 (21:45 +0000)
committerbluhm <bluhm@openbsd.org>
Mon, 21 Aug 2023 21:45:18 +0000 (21:45 +0000)
commit55040973a929e90604cbc1145b367e3a37b7334b
tree13691c9f2a1792da58a69780871c4a34778e9eea
parent081ccc5d844e1833ed964b714b738e841ce42d1e
Fix receiving VLAN packets if LRO is enabled on ix(4).

The vlan packet bit is only valid for the last descriptor's receive
status.  When receiving just one buffer per packet, it makes no
difference, but with LRO there are multiple descriptors.  Checking
only the first one resulted in VLAN headers being stripped and large
packets appear as regular on ix interface.  Move the code setting
vlan tag from first to last descriptor.

bug reported and fix tested by Hrvoje Popovski
OK jan@
sys/dev/pci/if_ix.c