netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net 1/3] ipip: Properly mark ipip GRO packets as encapsulated.
@ 2016-03-17 18:25 Jesse Gross
  2016-03-17 18:25 ` [PATCH net 2/3] tunnels: Don't apply GRO to multiple layers of encapsulation Jesse Gross
                   ` (3 more replies)
  0 siblings, 4 replies; 6+ messages in thread
From: Jesse Gross @ 2016-03-17 18:25 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, Patrick Boutilier

ipip encapsulated packets can be merged together by GRO but the result
does not have the proper GSO type set or even marked as being
encapsulated at all. Later retransmission of these packets will likely
fail if the device does not support ipip offloads. This is similar to
the issue resolved in IPv6 sit in feec0cb3
("ipv6: gro: support sit protocol").

Reported-by: Patrick Boutilier <boutilpj@ednet.ns.ca>
Fixes: 9667e9bb ("ipip: Add gro callbacks to ipip offload")
Signed-off-by: Jesse Gross <jesse@kernel.org>
---
 net/ipv4/af_inet.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
index 0cc923f..9659233 100644
--- a/net/ipv4/af_inet.c
+++ b/net/ipv4/af_inet.c
@@ -1448,6 +1448,13 @@ out_unlock:
 	return err;
 }
 
+static int ipip_gro_complete(struct sk_buff *skb, int nhoff)
+{
+	skb->encapsulation = 1;
+	skb_shinfo(skb)->gso_type |= SKB_GSO_IPIP;
+	return inet_gro_complete(skb, nhoff);
+}
+
 int inet_ctl_sock_create(struct sock **sk, unsigned short family,
 			 unsigned short type, unsigned char protocol,
 			 struct net *net)
@@ -1676,7 +1683,7 @@ static const struct net_offload ipip_offload = {
 	.callbacks = {
 		.gso_segment	= inet_gso_segment,
 		.gro_receive	= inet_gro_receive,
-		.gro_complete	= inet_gro_complete,
+		.gro_complete	= ipip_gro_complete,
 	},
 };
 
-- 
2.5.0

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-03-19 16:33 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-17 18:25 [PATCH net 1/3] ipip: Properly mark ipip GRO packets as encapsulated Jesse Gross
2016-03-17 18:25 ` [PATCH net 2/3] tunnels: Don't apply GRO to multiple layers of encapsulation Jesse Gross
2016-03-17 18:25 ` [PATCH net 3/3] tunnels: Remove encapsulation offloads on decap Jesse Gross
2016-03-17 22:29 ` [PATCH net 1/3] ipip: Properly mark ipip GRO packets as encapsulated Eric Dumazet
2016-03-19  3:12 ` David Miller
2016-03-19 16:33   ` Jesse Gross

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).