diff options
author | Tom Herbert <therbert@google.com> | 2014-10-03 15:48:07 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-10-03 16:53:32 -0700 |
commit | 7371e0221c7721a1486fef745abaa8ae84571621 (patch) | |
tree | febcd3084dec87b10a8b2508679c46e97d487a19 /net/ipv4 | |
parent | 01291202ed4ad548f9a7147d20425cb1d24f49a7 (diff) | |
download | op-kernel-dev-7371e0221c7721a1486fef745abaa8ae84571621.zip op-kernel-dev-7371e0221c7721a1486fef745abaa8ae84571621.tar.gz |
ip_tunnel: Account for secondary encapsulation header in max_headroom
When adjusting max_header for the tunnel interface based on egress
device we need to account for any extra bytes in secondary encapsulation
(e.g. FOU).
Signed-off-by: Tom Herbert <therbert@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/ip_tunnel.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/ipv4/ip_tunnel.c b/net/ipv4/ip_tunnel.c index 2272de9..d9c9dc4 100644 --- a/net/ipv4/ip_tunnel.c +++ b/net/ipv4/ip_tunnel.c @@ -759,7 +759,7 @@ void ip_tunnel_xmit(struct sk_buff *skb, struct net_device *dev, df |= (inner_iph->frag_off&htons(IP_DF)); max_headroom = LL_RESERVED_SPACE(rt->dst.dev) + sizeof(struct iphdr) - + rt->dst.header_len; + + rt->dst.header_len + ip_encap_hlen(&tunnel->encap); if (max_headroom > dev->needed_headroom) dev->needed_headroom = max_headroom; |