mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2025-04-19 04:57:35 +07:00
net: dsa: sja1105: Implement is_static for FDB entries on E/T
The first generation switches don't tell us through the dynamic config interface whether the dumped FDB entries are static or not (the LOCKEDS bit from P/Q/R/S). However, now that we're keeping a mirror of all 'bridge fdb' commands in the static config, this is an opportunity to compare a dumped FDB entry to the driver's private database. After all, what makes an entry static is that *we* added it. Signed-off-by: Vladimir Oltean <olteanv@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b3ee526a88
commit
d763778224
@ -1218,6 +1218,21 @@ static int sja1105_fdb_dump(struct dsa_switch *ds, int port,
|
|||||||
continue;
|
continue;
|
||||||
u64_to_ether_addr(l2_lookup.macaddr, macaddr);
|
u64_to_ether_addr(l2_lookup.macaddr, macaddr);
|
||||||
|
|
||||||
|
/* On SJA1105 E/T, the switch doesn't implement the LOCKEDS
|
||||||
|
* bit, so it doesn't tell us whether a FDB entry is static
|
||||||
|
* or not.
|
||||||
|
* But, of course, we can find out - we're the ones who added
|
||||||
|
* it in the first place.
|
||||||
|
*/
|
||||||
|
if (priv->info->device_id == SJA1105E_DEVICE_ID ||
|
||||||
|
priv->info->device_id == SJA1105T_DEVICE_ID) {
|
||||||
|
int match;
|
||||||
|
|
||||||
|
match = sja1105_find_static_fdb_entry(priv, port,
|
||||||
|
&l2_lookup);
|
||||||
|
l2_lookup.lockeds = (match >= 0);
|
||||||
|
}
|
||||||
|
|
||||||
/* We need to hide the dsa_8021q VLANs from the user. This
|
/* We need to hide the dsa_8021q VLANs from the user. This
|
||||||
* basically means hiding the duplicates and only showing
|
* basically means hiding the duplicates and only showing
|
||||||
* the pvid that is supposed to be active in standalone and
|
* the pvid that is supposed to be active in standalone and
|
||||||
|
Loading…
Reference in New Issue
Block a user