* [PATCH net v2] gre: set inner_protocol on xmit
@ 2016-08-12 15:14 Simon Horman
2016-08-12 17:57 ` pravin shelar
0 siblings, 1 reply; 2+ messages in thread
From: Simon Horman @ 2016-08-12 15:14 UTC (permalink / raw)
To: David Miller; +Cc: netdev, Alexander Duyck, Simon Horman
Ensure that the inner_protocol is set on transmit so that GSO segmentation,
which relies on that field, works correctly.
I have observed this is not the case when OvS transmits GRE using
lwtunnel metadata (which it always does).
Fixes: 38720352412a ("gre: Use inner_proto to obtain inner header protocol")
Acked-by: Alexander Duyck <alexander.h.duyck@intel.com>
Signed-off-by: Simon Horman <simon.horman@netronome.com>
---
v2
* Added Alexander's Ack
* Drop RFC designation
---
net/ipv4/ip_gre.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index 5b1481be0282..1571b71448a0 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -451,6 +451,7 @@ static void gre_fb_xmit(struct sk_buff *skb, struct net_device *dev,
df = key->tun_flags & TUNNEL_DONT_FRAGMENT ? htons(IP_DF) : 0;
+ skb_set_inner_protocol(skb, proto);
iptunnel_xmit(skb->sk, rt, skb, fl.saddr, key->u.ipv4.dst, IPPROTO_GRE,
key->tos, key->ttl, df, false);
return;
--
2.7.0.rc3.207.g0ac5344
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH net v2] gre: set inner_protocol on xmit
2016-08-12 15:14 [PATCH net v2] gre: set inner_protocol on xmit Simon Horman
@ 2016-08-12 17:57 ` pravin shelar
0 siblings, 0 replies; 2+ messages in thread
From: pravin shelar @ 2016-08-12 17:57 UTC (permalink / raw)
To: Simon Horman
Cc: David Miller, Linux Kernel Network Developers, Alexander Duyck
On Fri, Aug 12, 2016 at 8:14 AM, Simon Horman
<simon.horman@netronome.com> wrote:
> Ensure that the inner_protocol is set on transmit so that GSO segmentation,
> which relies on that field, works correctly.
>
> I have observed this is not the case when OvS transmits GRE using
> lwtunnel metadata (which it always does).
>
> Fixes: 38720352412a ("gre: Use inner_proto to obtain inner header protocol")
> Acked-by: Alexander Duyck <alexander.h.duyck@intel.com>
> Signed-off-by: Simon Horman <simon.horman@netronome.com>
> ---
> v2
> * Added Alexander's Ack
> * Drop RFC designation
> ---
> net/ipv4/ip_gre.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
> index 5b1481be0282..1571b71448a0 100644
> --- a/net/ipv4/ip_gre.c
> +++ b/net/ipv4/ip_gre.c
> @@ -451,6 +451,7 @@ static void gre_fb_xmit(struct sk_buff *skb, struct net_device *dev,
>
> df = key->tun_flags & TUNNEL_DONT_FRAGMENT ? htons(IP_DF) : 0;
>
> + skb_set_inner_protocol(skb, proto);
> iptunnel_xmit(skb->sk, rt, skb, fl.saddr, key->u.ipv4.dst, IPPROTO_GRE,
> key->tos, key->ttl, df, false);
> return;
This patch is right but can you move this call to gre_build_header().
This way there would less duplicate code. Plus it is more consistent
with vxlan and geneve where the inner protocol is set in respective
build header functions.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-08-12 17:57 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-08-12 15:14 [PATCH net v2] gre: set inner_protocol on xmit Simon Horman
2016-08-12 17:57 ` pravin shelar
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).