summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Herbert <therbert@google.com>2014-09-30 05:22:31 +0200
committerDavid S. Miller <davem@davemloft.net>2014-10-02 03:35:51 +0200
commit077c5a0948cc7b75032288bd37bd6641ef05da76 (patch)
tree61b94a7b121715fca4d82a40779c6221e55fe132
parentsit: Set inner IP protocol in sit (diff)
downloadlinux-077c5a0948cc7b75032288bd37bd6641ef05da76.tar.xz
linux-077c5a0948cc7b75032288bd37bd6641ef05da76.zip
ipip: Set inner IP protocol in ipip
Call skb_set_inner_ipproto to set inner IP protocol to IPPROTO_IPV4 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>
-rw-r--r--net/ipv4/ipip.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
index bfec31df8b21..ea88ab3102a8 100644
--- a/net/ipv4/ipip.c
+++ b/net/ipv4/ipip.c
@@ -224,6 +224,8 @@ static netdev_tx_t ipip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev)
if (IS_ERR(skb))
goto out;
+ skb_set_inner_ipproto(skb, IPPROTO_IPIP);
+
ip_tunnel_xmit(skb, dev, tiph, tiph->protocol);
return NETDEV_TX_OK;