mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 09:59:32 +00:00
vxlan: Notify for each remote of a removed FDB entry
When notifications are sent about FDB activity, and an FDB entry with several remotes is removed, the notification is sent only for the first destination. That makes it impossible to distinguish between the case where only this first remote is removed, and the one where the FDB entry is removed as a whole. Therefore send one notification for each remote of a removed FDB entry. Signed-off-by: Petr Machata <petrm@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0efe117333
commit
045a5a9914
1 changed files with 4 additions and 1 deletions
|
@ -843,12 +843,15 @@ static void vxlan_fdb_free(struct rcu_head *head)
|
|||
static void vxlan_fdb_destroy(struct vxlan_dev *vxlan, struct vxlan_fdb *f,
|
||||
bool do_notify)
|
||||
{
|
||||
struct vxlan_rdst *rd;
|
||||
|
||||
netdev_dbg(vxlan->dev,
|
||||
"delete %pM\n", f->eth_addr);
|
||||
|
||||
--vxlan->addrcnt;
|
||||
if (do_notify)
|
||||
vxlan_fdb_notify(vxlan, f, first_remote_rtnl(f), RTM_DELNEIGH);
|
||||
list_for_each_entry(rd, &f->remotes, list)
|
||||
vxlan_fdb_notify(vxlan, f, rd, RTM_DELNEIGH);
|
||||
|
||||
hlist_del_rcu(&f->hlist);
|
||||
call_rcu(&f->rcu, vxlan_fdb_free);
|
||||
|
|
Loading…
Reference in a new issue