From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from shards.monkeyblade.net (shards.monkeyblade.net [IPv6:2620:137:e000::1:9]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 1276C3CB35 for ; Thu, 13 Sep 2018 15:10:32 -0400 (EDT) Received: from localhost (c-24-18-209-70.hsd1.wa.comcast.net [24.18.209.70]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (Client did not present a certificate) (Authenticated sender: davem-davemloft) by shards.monkeyblade.net (Postfix) with ESMTPSA id 04863140246BD; Thu, 13 Sep 2018 12:10:29 -0700 (PDT) Date: Thu, 13 Sep 2018 12:10:29 -0700 (PDT) Message-Id: <20180913.121029.1793900247036084325.davem@davemloft.net> To: toke@toke.dk Cc: netdev@vger.kernel.org, cake@lists.bufferbloat.net, edumazet@google.com, dave.taht@gmail.com From: David Miller In-Reply-To: <20180913144306.9077-1-toke@toke.dk> References: <153670437243.12756.693381878569982309.stgit@alrua-kau> <20180913144306.9077-1-toke@toke.dk> X-Mailer: Mew version 6.7 on Emacs 26 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Text/Plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Thu, 13 Sep 2018 12:10:30 -0700 (PDT) Subject: Re: [Cake] [PATCH net v2] gso_segment: Reset skb->mac_len after modifying network header X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 13 Sep 2018 19:10:32 -0000 From: Toke H=F8iland-J=F8rgensen Date: Thu, 13 Sep 2018 16:43:07 +0200 > When splitting a GSO segment that consists of encapsulated packets, t= he > skb->mac_len of the segments can end up being set wrong, causing pack= et > 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_hea= der > 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 IPv= 6 > gso_segment handlers, after they modify the network_header. > = > Many thanks to Eric Dumazet for his help in identifying the cause of > the bug. > = > Acked-by: Dave Taht > Reviewed-by: Eric Dumazet > Signed-off-by: Toke H=F8iland-J=F8rgensen > --- > v2: > - Properly credit Eric for his help > - Add review and ack tags Applied and queued up for -stable, thanks.