From mboxrd@z Thu Jan 1 00:00:00 1970 From: Eric Dumazet Subject: Re: [PATCH net] gso_segment: Reset skb->mac_len after modifying network header Date: Thu, 13 Sep 2018 07:11:18 -0700 Message-ID: <5dc16f03-7cd2-f797-1bda-592d5f5462b5@gmail.com> References: <153670437243.12756.693381878569982309.stgit@alrua-kau> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Cc: cake@lists.bufferbloat.net, Eric Dumazet To: =?UTF-8?Q?Toke_H=c3=b8iland-J=c3=b8rgensen?= , netdev@vger.kernel.org Return-path: Received: from mail-pg1-f196.google.com ([209.85.215.196]:45874 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728124AbeIMTVB (ORCPT ); Thu, 13 Sep 2018 15:21:01 -0400 Received: by mail-pg1-f196.google.com with SMTP id x26-v6so2795278pge.12 for ; Thu, 13 Sep 2018 07:11:20 -0700 (PDT) In-Reply-To: <153670437243.12756.693381878569982309.stgit@alrua-kau> Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: On 09/11/2018 03:19 PM, Toke Høiland-Jørgensen wrote: > When splitting a GSO segment that consists of encapsulated packets, the > skb->mac_len of the segments can end up being set wrong, causing packet > drops in particular when using act_mirred and ifb interfaces in > combination with a qdisc that splits GSO packets. > > This happens because at the time skb_segment() is called, network_header > will point to the inner header, throwing off the calculation in > skb_reset_mac_len(). The network_header is subsequently adjust by the > outer IP gso_segment handlers, but they don't set the mac_len. > > Fix this by adding skb_reset_mac_len() calls to both the IPv4 and IPv6 > gso_segment handlers, after they modify the network_header. > > Signed-off-by: Toke Høiland-Jørgensen Looks good but I would have appreciated a thanks or something after the help I gave on this problem. Reviewed-by: Eric Dumazet