Commit 0813e957 authored by Roopa Prabhu's avatar Roopa Prabhu Committed by David S. Miller

vxlan: support NTF_USE refresh of fdb entries

This makes use of NTF_USE in vxlan driver consistent
with bridge driver.
Signed-off-by: default avatarRoopa Prabhu <roopa@cumulusnetworks.com>
Acked-by: default avatarStephen Hemminger <stephen@networkplumber.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 9771b8cc
...@@ -697,6 +697,7 @@ static int vxlan_fdb_update(struct vxlan_dev *vxlan, ...@@ -697,6 +697,7 @@ static int vxlan_fdb_update(struct vxlan_dev *vxlan,
__be16 port, __be32 src_vni, __be32 vni, __be16 port, __be32 src_vni, __be32 vni,
__u32 ifindex, __u8 ndm_flags) __u32 ifindex, __u8 ndm_flags)
{ {
__u8 fdb_flags = (ndm_flags & ~NTF_USE);
struct vxlan_rdst *rd = NULL; struct vxlan_rdst *rd = NULL;
struct vxlan_fdb *f; struct vxlan_fdb *f;
int notify = 0; int notify = 0;
...@@ -714,8 +715,8 @@ static int vxlan_fdb_update(struct vxlan_dev *vxlan, ...@@ -714,8 +715,8 @@ static int vxlan_fdb_update(struct vxlan_dev *vxlan,
f->updated = jiffies; f->updated = jiffies;
notify = 1; notify = 1;
} }
if (f->flags != ndm_flags) { if (f->flags != fdb_flags) {
f->flags = ndm_flags; f->flags = fdb_flags;
f->updated = jiffies; f->updated = jiffies;
notify = 1; notify = 1;
} }
...@@ -737,6 +738,9 @@ static int vxlan_fdb_update(struct vxlan_dev *vxlan, ...@@ -737,6 +738,9 @@ static int vxlan_fdb_update(struct vxlan_dev *vxlan,
return rc; return rc;
notify |= rc; notify |= rc;
} }
if (ndm_flags & NTF_USE)
f->used = jiffies;
} else { } else {
if (!(flags & NLM_F_CREATE)) if (!(flags & NLM_F_CREATE))
return -ENOENT; return -ENOENT;
...@@ -748,7 +752,7 @@ static int vxlan_fdb_update(struct vxlan_dev *vxlan, ...@@ -748,7 +752,7 @@ static int vxlan_fdb_update(struct vxlan_dev *vxlan,
netdev_dbg(vxlan->dev, "add %pM -> %pIS\n", mac, ip); netdev_dbg(vxlan->dev, "add %pM -> %pIS\n", mac, ip);
rc = vxlan_fdb_create(vxlan, mac, ip, state, port, src_vni, rc = vxlan_fdb_create(vxlan, mac, ip, state, port, src_vni,
vni, ifindex, ndm_flags, &f); vni, ifindex, fdb_flags, &f);
if (rc < 0) if (rc < 0)
return rc; return rc;
notify = 1; notify = 1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment