aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/net/ipv4/ip_gre.c
diff options
context:
space:
mode:
authorXin Long <lucien.xin@gmail.com>2018-08-27 18:41:32 +0800
committerDavid S. Miller <davem@davemloft.net>2018-08-27 15:13:17 -0700
commit84581bdae9587023cea1d139523f0ef0f28bd88d (patch)
treef5af8a8c02fa85bd365680ab6b141487a6b6fdba /net/ipv4/ip_gre.c
parentsctp: remove useless start_fail from sctp_ht_iter in proc (diff)
downloadwireguard-linux-84581bdae9587023cea1d139523f0ef0f28bd88d.tar.xz
wireguard-linux-84581bdae9587023cea1d139523f0ef0f28bd88d.zip
erspan: set erspan_ver to 1 by default when adding an erspan dev
After erspan_ver is introudced, if erspan_ver is not set in iproute, its value will be left 0 by default. Since Commit 02f99df1875c ("erspan: fix invalid erspan version."), it has broken the traffic due to the version check in erspan_xmit if users are not aware of 'erspan_ver' param, like using an old version of iproute. To fix this compatibility problem, it sets erspan_ver to 1 by default when adding an erspan dev in erspan_setup. Note that we can't do it in ipgre_netlink_parms, as this function is also used by ipgre_changelink. Fixes: 02f99df1875c ("erspan: fix invalid erspan version.") 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/ip_gre.c')
-rw-r--r--net/ipv4/ip_gre.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
index 51a5d06085ac..ae714aecc31c 100644
--- a/net/ipv4/ip_gre.c
+++ b/net/ipv4/ip_gre.c
@@ -1508,11 +1508,14 @@ nla_put_failure:
static void erspan_setup(struct net_device *dev)
{
+ struct ip_tunnel *t = netdev_priv(dev);
+
ether_setup(dev);
dev->netdev_ops = &erspan_netdev_ops;
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
ip_tunnel_setup(dev, erspan_net_id);
+ t->erspan_ver = 1;
}
static const struct nla_policy ipgre_policy[IFLA_GRE_MAX + 1] = {