On 08/14/2017 03:22 PM, Vivien Didelot wrote: > This patch series adds a generic debugfs interface for the DSA > framework, so that all switch devices benefit from it, e.g. Marvell, > Broadcom, Microchip or any other DSA driver. > > This is really convenient for debugging, especially CPU ports and DSA > links which are not exposed to userspace as net device. This interface > is currently the only way to easily inspect the hardware for such ports. > > With the patch series, any switch device user is able to query the > hardware for the supported tagging protocol, the ports stats and > registers, as well as their FDB, MDB and VLAN entries. > > This support is only compiled if CONFIG_DEBUG_FS is enabled. Below is > and example of usage of this interface on a multi-chip switch fabric: > > # mount -t debugfs none /sys/kernel/debug > # cd /sys/kernel/debug/dsa/ > # ls > switch0 switch1 switch2 > # ls -l switch0/ > drwxr-xr-x 2 root root 0 Jan 1 00:00 port0 > drwxr-xr-x 2 root root 0 Jan 1 00:00 port1 > drwxr-xr-x 2 root root 0 Jan 1 00:00 port2 > drwxr-xr-x 2 root root 0 Jan 1 00:00 port5 > drwxr-xr-x 2 root root 0 Jan 1 00:00 port6 > -r--r--r-- 1 root root 0 Jan 1 00:00 tag_protocol > -r--r--r-- 1 root root 0 Jan 1 00:00 tree > # ls -l switch0/port6 > -r--r--r-- 1 root root 0 Jan 1 00:00 fdb > -r--r--r-- 1 root root 0 Jan 1 00:00 mdb > -r--r--r-- 1 root root 0 Jan 1 00:00 regs > -r--r--r-- 1 root root 0 Jan 1 00:00 stats > -r--r--r-- 1 root root 0 Jan 1 00:00 vlan > # cat switch0/port2/vlan > vid 42 pvid untagged > # cat switch0/port1/fdb > vid 0 12:34:56:78:90:ab static unicast > # pr -mt switch0/port{5,6}/stats > in_good_octets : 0 in_good_octets : 13824 > in_bad_octets : 0 in_bad_octets : 0 > in_unicast : 0 in_unicast : 0 > in_broadcasts : 0 in_broadcasts : 216 > in_multicasts : 0 in_multicasts : 0 > in_pause : 0 in_pause : 0 > in_undersize : 0 in_undersize : 0 > ... > # pr -mt switch0/port{5,6}/regs > 0: 4e07 0: 4d04 > 1: 403e 1: 003d > 2: 0000 2: 0000 > 3: 3521 3: 3521 > 4: 0533 4: 373f > 5: 8000 5: 0000 > 6: 005f 6: 003f > 7: 002a 7: 002a > ... > > where switch0 port5 and port6 are CPU and DSA ports of a ZII Rev B.
For this whole series: Tested-by: Florian Fainelli <f.faine...@gmail.com> On bcm_sf2 > > Vivien Didelot (11): > net: dsa: legacy: assign dst->applied > net: dsa: add debugfs interface > net: dsa: debugfs: add tree > net: dsa: debugfs: add tag_protocol > net: dsa: debugfs: add port stats > net: dsa: debugfs: add port registers > net: dsa: debugfs: add port fdb > net: dsa: restore mdb dump > net: dsa: debugfs: add port mdb > net: dsa: restore VLAN dump > net: dsa: debugfs: add port vlan > > drivers/net/dsa/b53/b53_common.c | 41 +++ > drivers/net/dsa/b53/b53_priv.h | 2 + > drivers/net/dsa/bcm_sf2.c | 1 + > drivers/net/dsa/dsa_loop.c | 38 +++ > drivers/net/dsa/microchip/ksz_common.c | 41 +++ > drivers/net/dsa/mv88e6xxx/chip.c | 82 +++++- > include/net/dsa.h | 15 ++ > net/dsa/Kconfig | 14 + > net/dsa/Makefile | 1 + > net/dsa/debugfs.c | 453 > +++++++++++++++++++++++++++++++++ > net/dsa/dsa.c | 3 + > net/dsa/dsa2.c | 4 + > net/dsa/dsa_priv.h | 13 + > net/dsa/legacy.c | 7 + > 14 files changed, 707 insertions(+), 8 deletions(-) > create mode 100644 net/dsa/debugfs.c > -- Florian