Similar to commit ae148b085876 ("ip6_tunnel: Update skb->protocol to ETH_P_IPV6 in ip6_tnl_xmit()"), sit tunnels also need to update skb->protocol; otherwise, TSO/GSO packets might not be properly segmented, which causes the packets being dropped.
Reported-by: Stephen Rothwell <s...@canb.auug.org.au> Tested-by: Eli Cooper <elicoo...@gmx.com> Cc: sta...@vger.kernel.org Signed-off-by: Eli Cooper <elicoo...@gmx.com> --- net/ipv6/sit.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c index b1cdf80..a05dceb 100644 --- a/net/ipv6/sit.c +++ b/net/ipv6/sit.c @@ -972,6 +972,7 @@ static netdev_tx_t ipip6_tunnel_xmit(struct sk_buff *skb, } skb_set_inner_ipproto(skb, IPPROTO_IPV6); + skb->protocol = htons(ETH_P_IP); iptunnel_xmit(NULL, rt, skb, fl4.saddr, fl4.daddr, protocol, tos, ttl, df, !net_eq(tunnel->net, dev_net(dev))); -- 2.10.2