[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CA+FuTSciR9svdOntOBk5OQ_xJzO5iFHJSgFzTL+Kz7QAkcBmiQ@mail.gmail.com>
Date: Mon, 25 Apr 2022 09:49:42 -0400
From: Willem de Bruijn <willemdebruijn.kernel@...il.com>
To: Hangbin Liu <liuhangbin@...il.com>
Cc: netdev@...r.kernel.org, "Michael S . Tsirkin" <mst@...hat.com>,
Jason Wang <jasowang@...hat.com>,
"David S . Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Paolo Abeni <pabeni@...hat.com>,
Maxim Mikityanskiy <maximmi@...lanox.com>,
Willem de Bruijn
<WillemdeBruijnwillemdebruijn.kernel@...il.com>,
Balazs Nemeth <bnemeth@...hat.com>,
Mike Pattrick <mpattric@...hat.com>,
Eric Dumazet <edumazet@...gle.com>
Subject: Re: [PATCHv2 net-next] net/af_packet: add VLAN support for AF_PACKET
SOCK_RAW GSO
On Sun, Apr 24, 2022 at 10:01 PM Hangbin Liu <liuhangbin@...il.com> wrote:
>
> Currently, the kernel drops GSO VLAN tagged packet if it's created with
> socket(AF_PACKET, SOCK_RAW, 0) plus virtio_net_hdr.
>
> The reason is AF_PACKET doesn't adjust the skb network header if there is
> a VLAN tag. Then after virtio_net_hdr_set_proto() called, the skb->protocol
> will be set to ETH_P_IP/IPv6. And in later inet/ipv6_gso_segment() the skb
> is dropped as network header position is invalid.
>
> Let's handle VLAN packets by adjusting network header position in
> packet_parse_headers(). The adjustment is safe and does not affect the
> later xmit as tap device also did that.
>
> In packet_snd(), packet_parse_headers() need to be moved before calling
> virtio_net_hdr_set_proto(), so we can set correct skb->protocol and
> network header first.
>
> There is no need to update tpacket_snd() as it calls packet_parse_headers()
> in tpacket_fill_skb(), which is already before calling virtio_net_hdr_*
> functions.
>
> skb->no_fcs setting is also moved upper to make all skb settings together
> and keep consistency with function packet_sendmsg_spkt().
>
> Signed-off-by: Hangbin Liu <liuhangbin@...il.com>
Acked-by: Willem de Bruijn <willemb@...gle.com>
Powered by blists - more mailing lists