]> git.itanic.dy.fi Git - linux-stable/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)
committerDavid S. Miller <davem@davemloft.net>
Mon, 11 Sep 2023 07:32:30 +0000 (08:32 +0100)
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>
drivers/net/dsa/sja1105/sja1105_main.c

index a23d980d28f5d190de5896ff79b106f529db566b..11c917d5ce436890a6e8f4e779494384c1b473a9 100644 (file)
@@ -1868,13 +1868,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;