]> git.baikalelectronics.ru Git - kernel.git/commitdiff
net: dsa: sja1105: hide all multicast addresses from "bridge fdb show"
authorVladimir Oltean <vladimir.oltean@nxp.com>
Fri, 8 Sep 2023 13:33:48 +0000 (16:33 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 19 Sep 2023 10:28:08 +0000 (12:28 +0200)
[ Upstream commit 02c652f5465011126152bbd93b6a582a1d0c32f1 ]

Commit 4d9423549501 ("net: dsa: sja1105: offload bridge port flags to
device") has partially hidden some multicast entries from showing up in
the "bridge fdb show" output, but it wasn't enough. Addresses which are
added through "bridge mdb add" still show up. Hide them all.

Fixes: 291d1e72b756 ("net: dsa: sja1105: Add support for FDB and MDB management")
Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/dsa/sja1105/sja1105_main.c

index ff94c5996fafb88390aa8152ead68f2fe7b1984b..f8228a81234fe3a39135149b0db6146e57d0a165 100644 (file)
@@ -1875,13 +1875,14 @@ static int sja1105_fdb_dump(struct dsa_switch *ds, int port,
                if (!(l2_lookup.destports & BIT(port)))
                        continue;
 
-               /* We need to hide the FDB entry for unknown multicast */
-               if (l2_lookup.macaddr == SJA1105_UNKNOWN_MULTICAST &&
-                   l2_lookup.mask_macaddr == SJA1105_UNKNOWN_MULTICAST)
-                       continue;
-
                u64_to_ether_addr(l2_lookup.macaddr, macaddr);
 
+               /* Hardware FDB is shared for fdb and mdb, "bridge fdb show"
+                * only wants to see unicast
+                */
+               if (is_multicast_ether_addr(macaddr))
+                       continue;
+
                /* We need to hide the dsa_8021q VLANs from the user. */
                if (vid_is_dsa_8021q(l2_lookup.vlanid))
                        l2_lookup.vlanid = 0;