Skip to content

Commit 84581bd

Browse files
lxindavem330
authored andcommitted
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 02f99df ("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: 02f99df ("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>
1 parent 834539e commit 84581bd

File tree

2 files changed

+4
-0
lines changed

2 files changed

+4
-0
lines changed

net/ipv4/ip_gre.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1508,11 +1508,14 @@ static int ipgre_fill_info(struct sk_buff *skb, const struct net_device *dev)
15081508

15091509
static void erspan_setup(struct net_device *dev)
15101510
{
1511+
struct ip_tunnel *t = netdev_priv(dev);
1512+
15111513
ether_setup(dev);
15121514
dev->netdev_ops = &erspan_netdev_ops;
15131515
dev->priv_flags &= ~IFF_TX_SKB_SHARING;
15141516
dev->priv_flags |= IFF_LIVE_ADDR_CHANGE;
15151517
ip_tunnel_setup(dev, erspan_net_id);
1518+
t->erspan_ver = 1;
15161519
}
15171520

15181521
static const struct nla_policy ipgre_policy[IFLA_GRE_MAX + 1] = {

net/ipv6/ip6_gre.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1778,6 +1778,7 @@ static void ip6gre_netlink_parms(struct nlattr *data[],
17781778
if (data[IFLA_GRE_COLLECT_METADATA])
17791779
parms->collect_md = true;
17801780

1781+
parms->erspan_ver = 1;
17811782
if (data[IFLA_GRE_ERSPAN_VER])
17821783
parms->erspan_ver = nla_get_u8(data[IFLA_GRE_ERSPAN_VER]);
17831784

0 commit comments

Comments
 (0)