diff options
author | Roopa Prabhu <roopa@cumulusnetworks.com> | 2018-10-11 12:35:13 -0700 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-10-15 22:02:57 -0700 |
commit | 0813e95760f1963c3ca0c47b4bb3583f07147a2e (patch) | |
tree | cab60783437b0b81202a9745dbf7921c24dbd630 /drivers/net/vxlan.c | |
parent | 9771b8ccdfa6dcb1ac5128ca7fe8649f3092d392 (diff) | |
download | linux-0813e95760f1963c3ca0c47b4bb3583f07147a2e.tar.gz linux-0813e95760f1963c3ca0c47b4bb3583f07147a2e.tar.bz2 linux-0813e95760f1963c3ca0c47b4bb3583f07147a2e.zip |
vxlan: support NTF_USE refresh of fdb entries
This makes use of NTF_USE in vxlan driver consistent
with bridge driver.
Signed-off-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Acked-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/vxlan.c')
-rw-r--r-- | drivers/net/vxlan.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c index fb0cdbba8d76..018406c4d944 100644 --- a/drivers/net/vxlan.c +++ b/drivers/net/vxlan.c @@ -697,6 +697,7 @@ static int vxlan_fdb_update(struct vxlan_dev *vxlan, __be16 port, __be32 src_vni, __be32 vni, __u32 ifindex, __u8 ndm_flags) { + __u8 fdb_flags = (ndm_flags & ~NTF_USE); struct vxlan_rdst *rd = NULL; struct vxlan_fdb *f; int notify = 0; @@ -714,8 +715,8 @@ static int vxlan_fdb_update(struct vxlan_dev *vxlan, f->updated = jiffies; notify = 1; } - if (f->flags != ndm_flags) { - f->flags = ndm_flags; + if (f->flags != fdb_flags) { + f->flags = fdb_flags; f->updated = jiffies; notify = 1; } @@ -737,6 +738,9 @@ static int vxlan_fdb_update(struct vxlan_dev *vxlan, return rc; notify |= rc; } + + if (ndm_flags & NTF_USE) + f->used = jiffies; } else { if (!(flags & NLM_F_CREATE)) return -ENOENT; @@ -748,7 +752,7 @@ static int vxlan_fdb_update(struct vxlan_dev *vxlan, netdev_dbg(vxlan->dev, "add %pM -> %pIS\n", mac, ip); rc = vxlan_fdb_create(vxlan, mac, ip, state, port, src_vni, - vni, ifindex, ndm_flags, &f); + vni, ifindex, fdb_flags, &f); if (rc < 0) return rc; notify = 1; |