linux/net/bridge
Toshiaki Makita 7bb90c3715 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: 3741873b4f ("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>
2016-08-09 21:42:44 -07:00
..
netfilter net: bridge: remove _deliver functions and consolidate forward code 2016-07-16 19:57:38 -07:00
br_device.c net: bridge: remove _deliver functions and consolidate forward code 2016-07-16 19:57:38 -07:00
br_fdb.c bridge: Fix problems around fdb entries pointing to the bridge device 2016-08-09 21:42:44 -07:00
br_forward.c net: bridge: remove _deliver functions and consolidate forward code 2016-07-16 19:57:38 -07:00
br_if.c
br_input.c bridge: Fix incorrect re-injection of LLDP packets 2016-07-25 10:53:34 -07:00
br_ioctl.c
br_mdb.c
br_multicast.c net: bridge: extend MLD/IGMP query stats 2016-07-09 17:40:09 -04:00
br_netfilter_hooks.c
br_netfilter_ipv6.c
br_netlink.c
br_nf_core.c
br_private_stp.h
br_private.h net: bridge: br_set_ageing_time takes a clock_t 2016-07-25 10:30:03 -07:00
br_stp_bpdu.c
br_stp_if.c net: bridge: fix br_stp_enable_bridge comment 2016-07-25 10:30:03 -07:00
br_stp_timer.c
br_stp.c net: bridge: br_set_ageing_time takes a clock_t 2016-07-25 10:30:03 -07:00
br_sysfs_br.c
br_sysfs_if.c
br_vlan.c
br.c
Kconfig
Makefile