diff options
author | Alexander Duyck <aduyck@mirantis.com> | 2016-04-14 22:33:45 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2016-04-17 02:09:13 +0300 |
commit | a9e242ca43b13e5a5d176f97dfd2481c339934b7 (patch) | |
tree | be8f21af34aaed2e0e58fc8520932cd77fd5bd79 /net/ipv6/ip6_gre.c | |
parent | aed069df099cd1a27900acb56bb892ec24c66ac4 (diff) | |
download | linux-a9e242ca43b13e5a5d176f97dfd2481c339934b7.tar.xz |
ip6gretap: Fix MTU to allow for Ethernet header
When we were creating an ip6gretap interface the MTU was about 6 bytes
short of what was needed. It turns out we were not taking the Ethernet
header into account and as a result we were eating into the 8 bytes
reserved for the encap limit.
Signed-off-by: Alexander Duyck <aduyck@mirantis.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv6/ip6_gre.c')
-rw-r--r-- | net/ipv6/ip6_gre.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c index 4e636e60a360..2be66e7b4a78 100644 --- a/net/ipv6/ip6_gre.c +++ b/net/ipv6/ip6_gre.c @@ -987,6 +987,8 @@ static void ip6gre_tnl_link_config(struct ip6_tnl *t, int set_mtu) dev->mtu = rt->dst.dev->mtu - addend; if (!(t->parms.flags & IP6_TNL_F_IGN_ENCAP_LIMIT)) dev->mtu -= 8; + if (dev->type == ARPHRD_ETHER) + dev->mtu -= ETH_HLEN; if (dev->mtu < IPV6_MIN_MTU) dev->mtu = IPV6_MIN_MTU; |