[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CADvbK_c4cStJcjLQr_fA=zo2d9GzRFy42LkeeY3_CVYu7RxGug@mail.gmail.com>
Date: Sat, 3 Oct 2020 15:40:05 +0800
From: Xin Long <lucien.xin@...il.com>
To: Marcelo Ricardo Leitner <marcelo.leitner@...il.com>
Cc: network dev <netdev@...r.kernel.org>, linux-sctp@...r.kernel.org,
Neil Horman <nhorman@...driver.com>,
Michael Tuexen <tuexen@...muenster.de>,
davem <davem@...emloft.net>, tom@...bertland.com
Subject: Re: [PATCH net-next 03/15] udp: do checksum properly in skb_udp_tunnel_segment
On Sat, Oct 3, 2020 at 12:04 PM Marcelo Ricardo Leitner
<marcelo.leitner@...il.com> wrote:
>
> On Tue, Sep 29, 2020 at 09:48:55PM +0800, Xin Long wrote:
> > This patch fixes two things:
> >
> > When skb->ip_summed == CHECKSUM_PARTIAL, skb_checksum_help() should be
> > called do the checksum, instead of gso_make_checksum(), which is used
> > to do the checksum for current proto after calling skb_segment(), not
> > after the inner proto's gso_segment().
> >
> > When offload_csum is disabled, the hardware will not do the checksum
> > for the current proto, udp. So instead of calling gso_make_checksum(),
> > it should calculate checksum for udp itself.
>
> Gotta say, this is odd. It is really flipping the two around. What
> about other users of this function, did you test them too?
Not yet, I couldn't found other cases to trigger this.
But I think gso_make_checksum() is not correct to be used here,
as it's trying to calculate the checksum for inner protocol
instead of UDP's. It should be skb_checksum_help(), like on
the xmit path.
>
> It makes sense to be, but would be nice if someone else could review
> this.
Fix the mail of Tom Herbert, and he is the right person to review this.
Powered by blists - more mailing lists