Thread (8 messages) flat view 8 messages, 5 authors, 2016-06-13

Re: [PATCH net-next v2] bridge: Synchronize unicast filtering with FDB

From: David Miller <davem@davemloft.net>
Date: 2016-06-11 22:50:17
Also in: bridge

From: Nikolay Aleksandrov <redacted>
Date: Sat, 11 Jun 2016 18:17:53 +0200
Oops, I almost missed the v2, sorry about that. So, technically it
looks correct, but I only fear the scalability impact of the
change. If there're a large number of vlans adding a macvlan (or any
device that syncs uc addr) might become very slow and every flag
change will become very slow too without an option to revert to the
original behaviour so we'll have to wait for the entries to be added
in order to delete them.  Another common scenario is having 8021q
interfaces on top of the bridge with different mac addresses for
some of the configured vlans (or with macvlans on top of them for
VRR), that use case would suffer as well because their macs need to
be local only for those vlans, and not the 2000+ other vlans that
might exist.  On every sync_uc() call all the fdb entries get
deleted and added again, so even after deleting some manually they
can come back unexpectedly after some operation and also the message
storm from all the deletes and adds could be problematic as well.


E.g. 2000 br0 vlans, 25 macvlans on br0 (adding them took more than 5 minutes, 53k fdb entries):
$ bridge fdb del de:8e:9f:16:c5:71 dev br0 vlan 289
$ ip l set br0 multicast on
$ bridge fdb | grep 289 | grep de:8e:9f:16:c5:71
de:8e:9f:16:c5:71 dev br0 vlan 1289 master br0 permanent
de:8e:9f:16:c5:71 dev br0 vlan 289 master br0 permanent

In fact you can't escape the slow performance even if you delete all
entries because on the next flag change or interface add, they will
be added back.
Yeah, I think the performance implications are too severe too, I'm
not applying this.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help