Subject: Re: [PATCH] net/ipv4/ip_gre.c net/ipv6/ip6_gre.c: ip and gre header are recorded twice

From: Jakub Kicinski <[email-masked]>
Date: Wed, 22 Jun 2022 17:19:29 -0700

On Tue, 21 Jun 2022 16:48:09 +0300 Aleksey Shumnik wrote:
> Subject: [PATCH] net/ipv4/ip_gre.c net/ipv6/ip6_gre.c: ip and gre header are  recorded twice
> Date: Tue, 21 Jun 2022 16:48:09 +0300
> 
> Dear Maintainers,
> 
> I tried to ping IPv6 hub address on the mGRE interface from the spok
> and found some problem:
> I caught packets and saw that there are 2 identical IP and GRE headers
> (when use IPv4 there is no duplication)
> Below is the package structure:
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
> | eth | iph (1) | greh (1) | iph (1) | greh (1) | iph (2) | greh (2) |  icmp  |
> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

What socket type is the ping you have using?

> I found cause of the problem, in ip_gre.c and ip6_gre.c IP and GRE
> headers created twice, first time in ip gre_header() and
> ip6gre_header() and second time in __gre_xmit(), so I deleted
> unnecessary creation of headers and everything started working as it
> should.
> Below is a patch to eliminate the problem of duplicate headers:
> 
> diff -c a/net/inv6/ip6_gre.c b/net/inv6/ip6_gre.c

The patch looks strangely mangled, it's white space damaged and refers
to a net/inv6 which does not exist.

Could you regenerate your changes using git? git commit / format-patch
/ send-email ?