]> git.baikalelectronics.ru Git - kernel.git/commit
bridge: Fix problems around fdb entries pointing to the bridge device
authorToshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Thu, 4 Aug 2016 02:11:19 +0000 (11:11 +0900)
committerDavid S. Miller <davem@davemloft.net>
Wed, 10 Aug 2016 04:42:44 +0000 (21:42 -0700)
commit72125dd7745a0b489808d7b131eca05f3817fbfb
tree21e9961ec303a730ac0bef04661e4638e5dd2fe2
parentb83246da8b7e681ff67bca78af5d38149c0a886c
bridge: Fix problems around fdb entries pointing to the bridge device

Adding fdb entries pointing to the bridge device uses fdb_insert(),
which lacks various checks and does not respect added_by_user flag.

As a result, some inconsistent behavior can happen:
* Adding temporary entries succeeds but results in permanent entries.
* Same goes for "dynamic" and "use".
* Changing mac address of the bridge device causes deletion of
  user-added entries.
* Replacing existing entries looks successful from userspace but actually
  not, regardless of NLM_F_EXCL flag.

Use the same logic as other entries and fix them.

Fixes: 51b9ae9c5d38 ("bridge: allow adding of fdb entries pointing to the bridge device")
Signed-off-by: Toshiaki Makita <makita.toshiaki@lab.ntt.co.jp>
Acked-by: Roopa Prabhu <roopa@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/bridge/br_fdb.c