|
|
@@ -1471,12 +1471,17 @@ static int ipgre_fill_info(struct sk_buff *skb, const struct net_device *dev)
|
|
|
{
|
|
|
struct ip_tunnel *t = netdev_priv(dev);
|
|
|
struct ip_tunnel_parm *p = &t->parms;
|
|
|
+ __be16 o_flags = p->o_flags;
|
|
|
+
|
|
|
+ if ((t->erspan_ver == 1 || t->erspan_ver == 2) &&
|
|
|
+ !t->collect_md)
|
|
|
+ o_flags |= TUNNEL_KEY;
|
|
|
|
|
|
if (nla_put_u32(skb, IFLA_GRE_LINK, p->link) ||
|
|
|
nla_put_be16(skb, IFLA_GRE_IFLAGS,
|
|
|
gre_tnl_flags_to_gre_flags(p->i_flags)) ||
|
|
|
nla_put_be16(skb, IFLA_GRE_OFLAGS,
|
|
|
- gre_tnl_flags_to_gre_flags(p->o_flags)) ||
|
|
|
+ gre_tnl_flags_to_gre_flags(o_flags)) ||
|
|
|
nla_put_be32(skb, IFLA_GRE_IKEY, p->i_key) ||
|
|
|
nla_put_be32(skb, IFLA_GRE_OKEY, p->o_key) ||
|
|
|
nla_put_in_addr(skb, IFLA_GRE_LOCAL, p->iph.saddr) ||
|