diff options
author | Xin Long <lucien.xin@gmail.com> | 2017-09-28 13:23:31 +0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-10-01 03:46:42 +0100 |
commit | d51711c0557d6dbd26c63144aef32c7b3ec264b9 (patch) | |
tree | abae57c4f1d5ee8b9ea5cd441aa24676585ffd24 /net/ipv4 | |
parent | fef0035c0f31322d417d1954bba5ab959bf91183 (diff) | |
download | linux-d51711c0557d6dbd26c63144aef32c7b3ec264b9.tar.gz linux-d51711c0557d6dbd26c63144aef32c7b3ec264b9.tar.bz2 linux-d51711c0557d6dbd26c63144aef32c7b3ec264b9.zip |
ip_gre: ipgre_tap device should keep dst
Without keeping dst, the tunnel will not update any mtu/pmtu info,
since it does not have a dst on the skb.
Reproducer:
client(ipgre_tap1 - eth1) <-----> (eth1 - ipgre_tap1)server
After reducing eth1's mtu on client, then perforamnce became 0.
This patch is to netif_keep_dst in gre_tap_init, as ipgre does.
Reported-by: Jianlin Shi <jishi@redhat.com>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/ipv4')
-rw-r--r-- | net/ipv4/ip_gre.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c index 0162fb955b33..8b837f6f5532 100644 --- a/net/ipv4/ip_gre.c +++ b/net/ipv4/ip_gre.c @@ -1223,6 +1223,7 @@ static int gre_tap_init(struct net_device *dev) { __gre_tunnel_init(dev); dev->priv_flags |= IFF_LIVE_ADDR_CHANGE; + netif_keep_dst(dev); return ip_tunnel_init(dev); } |