Call skb_set_inner_ipproto to set inner IP protocol to IPPROTO_IPV6
before tunnel_xmit. This is needed if UDP encapsulation (fou) is
being done.
Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
                goto tx_error;
        }
 
+       skb_set_inner_ipproto(skb, IPPROTO_IPV6);
+
        err = iptunnel_xmit(skb->sk, rt, skb, fl4.saddr, fl4.daddr,
                            protocol, tos, ttl, df,
                            !net_eq(tunnel->net, dev_net(dev)));
        if (IS_ERR(skb))
                goto out;
 
+       skb_set_inner_ipproto(skb, IPPROTO_IPIP);
+
        ip_tunnel_xmit(skb, dev, tiph, IPPROTO_IPIP);
        return NETDEV_TX_OK;
 out: