[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20180607.162226.260529623268984988.davem@davemloft.net>
Date: Thu, 07 Jun 2018 16:22:26 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: willemdebruijn.kernel@...il.com
Cc: netdev@...r.kernel.org, rppt@...ux.vnet.ibm.com,
herbert@...dor.apana.org.au, anton.ivanov@...bridgegreys.com,
willemb@...gle.com
Subject: Re: [PATCH net] net: in virtio_net_hdr only add VLAN_HLEN to
csum_start if payload holds vlan
From: Willem de Bruijn <willemdebruijn.kernel@...il.com>
Date: Wed, 6 Jun 2018 11:23:01 -0400
> From: Willem de Bruijn <willemb@...gle.com>
>
> Tun, tap, virtio, packet and uml vector all use struct virtio_net_hdr
> to communicate packet metadata to userspace.
>
> For skbuffs with vlan, the first two return the packet as it may have
> existed on the wire, inserting the VLAN tag in the user buffer. Then
> virtio_net_hdr.csum_start needs to be adjusted by VLAN_HLEN bytes.
>
> Commit f09e2249c4f5 ("macvtap: restore vlan header on user read")
> added this feature to macvtap. Commit 3ce9b20f1971 ("macvtap: Fix
> csum_start when VLAN tags are present") then fixed up csum_start.
>
> Virtio, packet and uml do not insert the vlan header in the user
> buffer.
>
> When introducing virtio_net_hdr_from_skb to deduplicate filling in
> the virtio_net_hdr, the variant from macvtap which adds VLAN_HLEN was
> applied uniformly, breaking csum offset for packets with vlan on
> virtio and packet.
>
> Make insertion of VLAN_HLEN optional. Convert the callers to pass it
> when needed.
>
> Fixes: e858fae2b0b8f4 ("virtio_net: use common code for virtio_net_hdr and skb GSO conversion")
> Fixes: 1276f24eeef2 ("packet: use common code for virtio_net_hdr and skb GSO conversion")
> Signed-off-by: Willem de Bruijn <willemb@...gle.com>
Applied and queued up for -stable, thanks Willem.
Powered by blists - more mailing lists