diff options
Diffstat (limited to 'target/linux/generic/hack-5.10/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch')
-rw-r--r-- | target/linux/generic/hack-5.10/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/target/linux/generic/hack-5.10/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch b/target/linux/generic/hack-5.10/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch index e69113d3c1..4fc6e355cb 100644 --- a/target/linux/generic/hack-5.10/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch +++ b/target/linux/generic/hack-5.10/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch @@ -1,3 +1,32 @@ +From: DENG Qingfang <dqfext@gmail.com> +Subject: DSA: roaming fix for Marvell mv88e6xxx + +Marvell mv88e6xxx switch series cannot perform MAC learning from +CPU-injected (FROM_CPU) DSA frames, which results in 2 issues. +- excessive flooding, due to the fact that DSA treats those addresses +as unknown +- the risk of stale routes, which can lead to temporary packet loss + +Backport those patch series from netdev mailing list, which solve these +issues by adding and clearing static entries to the switch's FDB. + +Add a hack patch to set default VID to 1 in port_fdb_{add,del}. Otherwise +the static entries will be added to the switch's private FDB if VLAN +filtering disabled, which will not work. + +The switch may generate an "ATU violation" warning when a client moves +from the CPU port to a switch port because the static ATU entry added by +DSA core still points to the CPU port. DSA core will then clear the static +entry so it is not fatal. Disable the warning so it will not confuse users. + +Link: https://lore.kernel.org/netdev/20210106095136.224739-1-olteanv@gmail.com/ +Link: https://lore.kernel.org/netdev/20210116012515.3152-1-tobias@waldekranz.com/ +Ref: https://gitlab.nic.cz/turris/turris-build/-/issues/165 +Submitted-by: DENG Qingfang <dqfext@gmail.com> +--- + drivers/net/dsa/mv88e6xxx/chip.c | 3 +++ + 3 files changed, 3 insertions(+) + --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c @@ -2705,6 +2705,9 @@ static int mv88e6xxx_setup_port(struct m |