linux-stable/net/dsa
Vivien Didelot 64dba236a1 net: dsa: support cross-chip ageing time
Now that the switchdev bridge ageing time attribute is propagated to all
switch chips of the fabric, each switch can check if the requested value
is valid and program itself, so that the whole fabric shares a common
ageing time setting.

This is especially needed for switch chips in between others, containing
no bridge port members but evidently used in the data path.

To achieve that, remove the condition which skips the other switches. We
also don't need to identify the target switch anymore, thus remove the
sw_index member of the dsa_notifier_ageing_time_info notifier structure.

On ZII Dev Rev B (with two 88E6352 and one 88E6185) and ZII Dev Rev C
(with two 88E6390X), we have the following hardware configuration:

    # ip link add name br0 type bridge
    # ip link set master br0 dev lan6
    br0: port 1(lan6) entered blocking state
    br0: port 1(lan6) entered disabled state
    # echo 2000 > /sys/class/net/br0/bridge/ageing_time

Before this patch:

    zii-rev-b# cat /sys/kernel/debug/mv88e6xxx/sw*/age_time
    300000
    300000
    15000

    zii-rev-c# cat /sys/kernel/debug/mv88e6xxx/sw*/age_time
    300000
    18750

After this patch:

    zii-rev-b# cat /sys/kernel/debug/mv88e6xxx/sw*/age_time
    15000
    15000
    15000

    zii-rev-c# cat /sys/kernel/debug/mv88e6xxx/sw*/age_time
    18750
    18750

Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2017-05-24 16:27:47 -04:00
..
dsa.c net: dsa: include dsa.h only once 2017-05-18 10:40:12 -04:00
dsa2.c net: dsa: include dsa.h only once 2017-05-18 10:40:12 -04:00
dsa_priv.h net: dsa: support cross-chip ageing time 2017-05-24 16:27:47 -04:00
Kconfig net: dsa: Sort DSA tagging protocol drivers 2017-05-17 15:19:40 -04:00
legacy.c net: dsa: include dsa.h only once 2017-05-18 10:40:12 -04:00
Makefile net: dsa: move port state setters 2017-05-22 19:37:32 -04:00
port.c net: dsa: support cross-chip ageing time 2017-05-24 16:27:47 -04:00
slave.c net: dsa: move VLAN handlers 2017-05-22 19:37:32 -04:00
switch.c net: dsa: support cross-chip ageing time 2017-05-24 16:27:47 -04:00
tag_brcm.c net: dsa: include dsa.h only once 2017-05-18 10:40:12 -04:00
tag_dsa.c net: dsa: include dsa.h only once 2017-05-18 10:40:12 -04:00
tag_edsa.c net: dsa: include dsa.h only once 2017-05-18 10:40:12 -04:00
tag_lan9303.c net: dsa: include dsa.h only once 2017-05-18 10:40:12 -04:00
tag_mtk.c net: dsa: include dsa.h only once 2017-05-18 10:40:12 -04:00
tag_qca.c net: dsa: include dsa.h only once 2017-05-18 10:40:12 -04:00
tag_trailer.c net: dsa: include dsa.h only once 2017-05-18 10:40:12 -04:00