Skip to content
Snippets Groups Projects
Commit b8cba75b authored by Jesse Gross's avatar Jesse Gross Committed by David S. Miller
Browse files

ipip: Properly mark ipip GRO packets as encapsulated.


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: default avatarPatrick Boutilier <boutilpj@ednet.ns.ca>
Fixes: 9667e9bb ("ipip: Add gro callbacks to ipip offload")
Tested-by: default avatarPatrick Boutilier <boutilpj@ednet.ns.ca>
Acked-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarJesse Gross <jesse@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 659e0bca
No related branches found
No related tags found
No related merge requests found
...@@ -1448,6 +1448,13 @@ static int inet_gro_complete(struct sk_buff *skb, int nhoff) ...@@ -1448,6 +1448,13 @@ static int inet_gro_complete(struct sk_buff *skb, int nhoff)
return err; 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, int inet_ctl_sock_create(struct sock **sk, unsigned short family,
unsigned short type, unsigned char protocol, unsigned short type, unsigned char protocol,
struct net *net) struct net *net)
...@@ -1676,7 +1683,7 @@ static const struct net_offload ipip_offload = { ...@@ -1676,7 +1683,7 @@ static const struct net_offload ipip_offload = {
.callbacks = { .callbacks = {
.gso_segment = inet_gso_segment, .gso_segment = inet_gso_segment,
.gro_receive = inet_gro_receive, .gro_receive = inet_gro_receive,
.gro_complete = inet_gro_complete, .gro_complete = ipip_gro_complete,
}, },
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment