[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1452872666.1223.168.camel@edumazet-glaptop2.roam.corp.google.com>
Date: Fri, 15 Jan 2016 07:44:26 -0800
From: Eric Dumazet <eric.dumazet@...il.com>
To: Herbert Xu <herbert@...dor.apana.org.au>
Cc: David Miller <davem@...emloft.net>,
netdev <netdev@...r.kernel.org>,
Tom Herbert <tom@...bertland.com>
Subject: Re: [PATCH net] ipv6: update skb->csum when CE mark is propagated
On Fri, 2016-01-15 at 21:45 +0800, Herbert Xu wrote:
> On Fri, Jan 15, 2016 at 04:56:56AM -0800, Eric Dumazet wrote:
> > From: Eric Dumazet <edumazet@...gle.com>
> >
> > When a tunnel decapsulates the outer header, it has to comply
> > with RFC 6080 and eventually propagate CE mark into inner header.
> >
> > It turns out IP6_ECN_set_ce() does not correctly update skb->csum
> > for CHECKSUM_COMPLETE packets, triggering infamous "hw csum failure"
> > messages and stack traces.
> >
> > Signed-off-by: Eric Dumazet <edumazet@...gle.com>
>
> Good catch!
Thanks Herbert
Note that I considered to use
skb->csum = csum_add(skb->csum, from ^ to);
instead of the more generic
skb->csum = csum_add(csum_sub(skb->csum, from), to);
I can spin a v2 if you guys prefer the optimized version (but a little
more hacky...)
Powered by blists - more mailing lists