Thread (18 messages) 18 messages, 7 authors, 2015-09-13

Re: [PATCH net-next v2] bridge: vlan: allow to suppress local mac install for all vlans

From: Nikolay Aleksandrov <hidden>
Date: 2015-08-26 05:28:16
Also in: bridge

On Aug 25, 2015, at 7:42 PM, David Miller [off-list ref] wrote:

From: Nikolay Aleksandrov <razor@blackwall.org>
Date: Tue, 25 Aug 2015 17:34:55 -0700
quoted
From: Nikolay Aleksandrov <redacted>

This patch adds a new knob that, when enabled, allows to suppress the
installation of local fdb entries in newly created vlans. This could
pose a big scalability issue if we have a large number of ports and a
large number of vlans, e.g. in a 48 port device with 2000 vlans these
entries easily go up to 96000.
Note that packets for these macs are still received properly because they
are added in vlan 0 as "own" macs and referenced when fdb lookup by vlan
results in a miss.
Also note that vlan membership of ingress port and the bridge device
as egress are still being correctly enforced.

The default (0/off) is keeping the current behaviour.

Based on a patch by Wilson Kok (wkok@cumulusnetworks.com).

Signed-off-by: Nikolay Aleksandrov <redacted>
---
v2: Triple checked the timezone
I'd rather we fix the essence of the scalability problem than add
more spaghetti code to the various bridge paths.

Can we make the fdb entries smaller?

Can we enhance how we store such local entries such that they live in
a compact datastructure?  Perhaps the FDB can consist of a very dense
lookup mechanism for local stuff sitting alongside the current table.
Certainly, that should be done and I will look into it, but the essence of this patch
is a bit different. The problem here is not the size of the fdb entries, it’s more the
number of them - having 96000 entries (even if they were 1 byte ones) is just way
too much especially when the fdb hash size is small and static. We could work on making
it dynamic though, but still these type of local entries per vlan per port can easily be avoided
with this option.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help