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

Reply via email to