linux/net/bridge
Nikolay Aleksandrov 19e3a9c90c net: bridge: convert multicast to generic rhashtable
The bridge multicast code currently uses a custom resizable hashtable
which predates the generic rhashtable interface. It has many
shortcomings compared and duplicates functionality that is presently
available via the generic rhashtable, so this patch removes the custom
rhashtable implementation in favor of the kernel's generic rhashtable.
The hash maximum is kept and the rhashtable's size is used to do a loose
check if it's reached in which case we revert to the old behaviour and
disable further bridge multicast processing. Also now we can support any
hash maximum, doesn't need to be a power of 2.

v3: add non-rcu br_mdb_get variant and use it where multicast_lock is
    held to avoid RCU splat, drop hash_max function and just set it
    directly

v2: handle when IGMP snooping is undefined, add br_mdb_init/uninit
    placeholders

Signed-off-by: Nikolay Aleksandrov <nikolay@cumulusnetworks.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-12-05 17:01:51 -08:00
..
netfilter netfilter: bridge: Expose nf_tables bridge hook priorities through uapi 2018-08-03 21:15:09 +02:00
br_arp_nd_proxy.c net: bridge: convert neigh_suppress_enabled option to a bit 2018-09-26 10:04:23 -07:00
br_device.c net: bridge: convert multicast to generic rhashtable 2018-12-05 17:01:51 -08:00
br_fdb.c bridge: switchdev: Allow clearing FDB entry offload indication 2018-10-17 17:45:08 -07:00
br_forward.c net: bridge: add support for backup port 2018-07-23 09:32:15 -07:00
br_if.c bridge: Allow querying bridge port flags 2018-11-21 17:10:31 -08:00
br_input.c net: bridge: add no_linklocal_learn bool option 2018-11-27 15:04:15 -08:00
br_ioctl.c
br_mdb.c net: bridge: convert multicast to generic rhashtable 2018-12-05 17:01:51 -08:00
br_multicast.c net: bridge: convert multicast to generic rhashtable 2018-12-05 17:01:51 -08:00
br_netfilter_hooks.c bridge: use __vlan_hwaccel helpers 2018-11-08 20:45:04 -08:00
br_netfilter_ipv6.c
br_netlink_tunnel.c
br_netlink.c net: bridge: convert multicast to generic rhashtable 2018-12-05 17:01:51 -08:00
br_nf_core.c xfrm: Move dst->path into struct xfrm_dst 2017-11-30 09:54:26 -05:00
br_private_stp.h
br_private_tunnel.h
br_private.h net: bridge: convert multicast to generic rhashtable 2018-12-05 17:01:51 -08:00
br_stp_bpdu.c
br_stp_if.c
br_stp_timer.c net: bridge: Convert timers to use timer_setup() 2017-11-03 15:42:49 +09:00
br_stp.c
br_switchdev.c bridge: switchdev: Allow clearing FDB entry offload indication 2018-10-17 17:45:08 -07:00
br_sysfs_br.c net: bridge: convert multicast to generic rhashtable 2018-12-05 17:01:51 -08:00
br_sysfs_if.c net: bridge: remove redundant checks for null p->dev and p->br 2018-11-25 10:25:43 -08:00
br_vlan_tunnel.c
br_vlan.c net: bridge: Extend br_vlan_get_pvid() for bridge ports 2018-11-30 17:06:28 -08:00
br.c net: bridge: export supported boolopts 2018-11-27 15:04:15 -08:00
Kconfig docs: fix some broken documentation references 2018-09-20 11:09:53 -06:00
Makefile Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2017-11-04 09:26:51 +09:00