[PATCH/RFC net] gre: set inner_protocol on xmit

Subsystems: networking [general], networking [ipv4/ipv6], the rest

3 messages, 2 authors, 2016-08-12 · open the first message on its own page

[PATCH/RFC net] gre: set inner_protocol on xmit

From: Simon Horman <hidden>
Date: 2016-08-12 09:47:01

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")
Cc: Alexander Duyck <redacted>
Reviewed-by: Dinan Gunawardena <redacted>
Acked-by: Jakub Kicinski <redacted>
Signed-off-by: Simon Horman <redacted>
---
 net/ipv4/ip_gre.c | 1 +
 1 file changed, 1 insertion(+)
---
 Repost with correct domain vger address
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

Re: [PATCH/RFC net] gre: set inner_protocol on xmit

From: Alexander Duyck <hidden>
Date: 2016-08-12 15:07:01

On Fri, Aug 12, 2016 at 2:46 AM, Simon Horman
[off-list ref] 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")
Cc: Alexander Duyck <redacted>
Reviewed-by: Dinan Gunawardena <redacted>
Acked-by: Jakub Kicinski <redacted>
Signed-off-by: Simon Horman <redacted>
Looks good.  I'm surprised we had such a difference in how this was
handled between the flow based and device based paths.

Acked-by: Alexander Duyck <redacted>

Re: [PATCH/RFC net] gre: set inner_protocol on xmit

From: Simon Horman <hidden>
Date: 2016-08-12 15:15:26

On Fri, Aug 12, 2016 at 08:07:00AM -0700, Alexander Duyck wrote:
On Fri, Aug 12, 2016 at 2:46 AM, Simon Horman
[off-list ref] wrote:
quoted
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")
Cc: Alexander Duyck <redacted>
Reviewed-by: Dinan Gunawardena <redacted>
Acked-by: Jakub Kicinski <redacted>
Signed-off-by: Simon Horman <redacted>
Looks good.  I'm surprised we had such a difference in how this was
handled between the flow based and device based paths.

Acked-by: Alexander Duyck <redacted>
Thanks, I have reposted with the above Ack and no RFC designation.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help