]> www.infradead.org Git - users/dwmw2/linux.git/commit
vxlan: vxlan_core: Support FDB flushing by destination IP
authorAmit Cohen <amcohen@nvidia.com>
Mon, 9 Oct 2023 10:06:16 +0000 (13:06 +0300)
committerDavid S. Miller <davem@davemloft.net>
Fri, 13 Oct 2023 09:00:32 +0000 (10:00 +0100)
commit2dcd22023cabc1b15b36af3c10924fcfee79b341
tree7eaaf62dab7c83507aefa7c49413d6080d3c3653
parentac0db4ddd0cbc2635eb263e487eef2fcae10087c
vxlan: vxlan_core: Support FDB flushing by destination IP

Add support for flush VXLAN FDB entries by destination IP. FDB entry is
stored as {MAC, SRC_VNI} + remote. The destination IP is an attribute of
the remote. For multicast entries, the VXLAN driver stores a linked list
of remotes for a given key.

In user space, each remote is represented as a separate entry, so when
flush is sent with filter of 'destination IP', flush only the match
remotes. In case that there are no additional remotes, destroy the entry.

For example, the following are stored as one entry with several remotes:
$ bridge fdb show dev vx10
00:00:00:00:00:00 dst 192.1.1.3 self permanent
00:00:00:00:00:00 dst 192.1.1.1 self permanent
00:00:00:00:00:00 dst 192.1.1.2 self permanent
00:00:00:00:00:00 dst 192.1.1.1 vni 1000 self permanent

When user flush by destination IP x, only the relevant remotes will be
flushed:
$ bridge fdb flush dev vx10 dst 192.1.1.1

$ bridge fdb show dev vx10
00:00:00:00:00:00 dst 192.1.1.3 self permanent
00:00:00:00:00:00 dst 192.1.1.2 self permanent

Signed-off-by: Amit Cohen <amcohen@nvidia.com>
Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/vxlan/vxlan_core.c