]> git.baikalelectronics.ru Git - kernel.git/commit
net: dsa: include bridge addresses which are local in the host fdb list
authorTobias Waldekranz <tobias@waldekranz.com>
Tue, 29 Jun 2021 14:06:55 +0000 (17:06 +0300)
committerDavid S. Miller <davem@davemloft.net>
Tue, 29 Jun 2021 17:46:23 +0000 (10:46 -0700)
commitb18f21bcab9912114559dcb5376caa59dbd04811
tree541fb5ba862669888d622a0fc35a5ed197f94ead
parent329b06e548962cb8d1010721c69df3f4d62d9041
net: dsa: include bridge addresses which are local in the host fdb list

The bridge automatically creates local (not forwarded) fdb entries
pointing towards physical ports with their interface MAC addresses.
For switchdev, the significance of these fdb entries is the exact
opposite of that of non-local entries: instead of sending these frame
outwards, we must send them inwards (towards the host).

NOTE: The bridge's own MAC address is also "local". If that address is
not shared with any port, the bridge's MAC is not be added by this
functionality - but the following commit takes care of that case.

NOTE 2: We mark these addresses as host-filtered regardless of the value
of ds->assisted_learning_on_cpu_port. This is because, as opposed to the
speculative logic done for dynamic address learning on foreign
interfaces, the local FDB entries are rather fixed, so there isn't any
risk of them migrating from one bridge port to another.

Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/dsa/slave.c