diff options
author | Tom Herbert <therbert@google.com> | 2014-10-03 18:48:07 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-10-03 19:53:32 -0400 |
commit | 7371e0221c7721a1486fef745abaa8ae84571621 (patch) | |
tree | febcd3084dec87b10a8b2508679c46e97d487a19 /net/ipv4 | |
parent | 01291202ed4ad548f9a7147d20425cb1d24f49a7 (diff) |
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 2272de90c2d4..d9c9dc4ffeaf 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, | |||
759 | df |= (inner_iph->frag_off&htons(IP_DF)); | 759 | df |= (inner_iph->frag_off&htons(IP_DF)); |
760 | 760 | ||
761 | max_headroom = LL_RESERVED_SPACE(rt->dst.dev) + sizeof(struct iphdr) | 761 | max_headroom = LL_RESERVED_SPACE(rt->dst.dev) + sizeof(struct iphdr) |
762 | + rt->dst.header_len; | 762 | + rt->dst.header_len + ip_encap_hlen(&tunnel->encap); |
763 | if (max_headroom > dev->needed_headroom) | 763 | if (max_headroom > dev->needed_headroom) |
764 | dev->needed_headroom = max_headroom; | 764 | dev->needed_headroom = max_headroom; |
765 | 765 | ||