From: Andrew Lunn <andrew@lunn.ch>
To: Jiri Pirko <jiri@resnulli.us>
Cc: Alexander Duyck <alexander.duyck@gmail.com>,
Maxim Uvarov <muvarov@gmail.com>,
Vivien Didelot <vivien.didelot@savoirfairelinux.com>,
netdev <netdev@vger.kernel.org>,
kernel@savoirfairelinux.com,
Florian Fainelli <f.fainelli@gmail.com>,
Egil Hjelmeland <privat@egil-hjelmeland.no>,
John Crispin <john@phrozen.org>,
Woojung Huh <Woojung.Huh@microchip.com>,
Sean Wang <sean.wang@mediatek.com>,
Nikita Yushchenko <nikita.yoush@cogentembedded.com>,
Chris Healy <cphealy@gmail.com>
Subject: Re: [PATCH net-next v2 01/10] net: dsa: add debugfs interface
Date: Fri, 15 Sep 2017 16:08:39 +0200 [thread overview]
Message-ID: <20170915140839.GD3084@lunn.ch> (raw)
In-Reply-To: <20170915055107.GA1927@nanopsycho.orion>
> Could you put together your requirements so we can work it out to extend
> devlink to support them?
As i've said multiple times, generic two dimensional tables. Examples
could look like:
Stats cpu lan0 lan1 lan2 lan3 lan4 dsa
---------------------------------------------------------------------
tx_packets: 2 0 0 0 0 0 0
tx_bytes: 1180 6666 0 0 0 0 0
rx_packets: 0 0 0 0 0 0 0
rx_bytes: 0 1180 0 0 0 0 0
in_good_octets: 6666 1188 0 0 0 0 0
in_bad_octets: 0 0 0 0 0 0 0
in_unicast: 0 0 0 0 0 0 0
in_broadcasts: 0 0 0 0 0 0 0
in_multicasts: 89 0 0 0 0 0 0
in_pause: 0 0 0 0 0 0 0
in_undersize: 0 0 0 0 0 0 0
in_fragments: 0 0 0 0 0 0 0
in_oversize: 0 0 0 0 0 0 0
in_jabber: 0 0 0 0 0 0 0
in_rx_error: 0 0 0 0 0 0 0
in_fcs_error: 0 0 0 0 0 0 0
out_octets: 1188 6666 0 0 0 0 0
out_unicast: 0 0 0 0 0 0 0
out_broadcasts: 2 2 0 0 0 0 0
out_multicasts: 0 89 0 0 0 0 0
out_pause: 0 0 0 0 0 0 0
excessive: 0 0 0 0 0 0 0
collisions: 0 0 0 0 0 0 0
deferred: 0 0 0 0 0 0 0
single: 0 0 0 0 0 0 0
multiple: 0 0 0 0 0 0 0
out_fcs_error: 0 0 0 0 0 0 0
late: 0 0 0 0 0 0 0
hist_64bytes: 0 0 0 0 0 0 0
hist_65_127bytes: 0 0 0 0 0 0 0
hist_128_255bytes: 0 0 0 0 0 0 0
hist_256_511bytes: 0 0 0 0 0 0 0
hist_512_1023bytes: 0 0 0 0 0 0 0
hist_1024_max_bytes: 0 0 0 0 0 0 0
sw_in_discards: 0 0 0 0 0 0 0
sw_in_filtered: 0 0 0 0 0 0 0
sw_out_filtered: 89 89 0 0 0 0 0
Reg cpu lan0 lan1 lan2 lan3 lan4 lan5 global0 global1
-----------------------------------------------------------------------------
00: 4e07 4d04 4d04 4d04 4d04 4d04 4d04 0000 00000
01: 403e 003d 003d 003d 003d 003d 003d 0000 00000
02: 0000 0000 0000 0000 0000 0000 0000 0000 00000
03: 3521 3521 3521 3521 3521 3521 3521 0000 00000
04: 0533 373f 373f 373f 373f 373f 373f 0000 00000
05: 8000 0000 0000 0000 0000 0000 0000 0000 00000
06: 005f 003f 003f 003f 003f 003f 003f 0000 00000
07: 002a 002a 002a 002a 002a 002a 002a 0000 00000
08: 2080 2080 2080 2080 2080 2080 2080 0000 00000
09: 0001 0001 0001 0001 0001 0001 0001 0000 00000
0a: 0000 0000 0000 0000 0000 0000 0000 0000 00000
0b: 0020 0000 0000 0000 0000 0000 0000 0000 00000
0c: 0000 0000 0000 0000 0000 0000 0000 0000 00000
0d: 0000 0000 0000 0000 0000 0000 0000 0000 00000
0e: 0000 0000 0000 0000 0000 0000 0000 0000 00000
0f: 9100 dada dada dada dada dada dada 0000 00000
10: 0000 0000 0000 0000 0000 0000 0000 0000 00000
11: 0000 0000 0000 0000 0000 0000 0000 0000 00000
12: 0000 0000 0000 0000 0000 0000 0000 0000 00000
13: 0000 00d8 00d8 00d8 00d8 00d8 00d8 0000 00000
14: 0000 0000 0000 0000 0000 0000 0000 0000 00000
15: 0000 0000 0000 0000 0000 0000 0000 0000 00000
16: 0022 0000 0000 0000 0000 0000 0000 0000 00000
17: 0000 0000 0000 0000 0000 0000 0000 0000 00000
18: 3210 2210 2210 2210 2210 2210 2210 0000 00000
19: 7654 7654 7654 7654 7654 7654 7654 0000 00000
1a: 0000 0000 0000 0000 0000 0000 0000 0000 00000
1b: 8000 8000 8000 8000 8000 8000 8000 0000 00000
1c: 0000 0000 0000 0000 0000 0000 0000 0000 00000
1d: 0000 0000 0000 0000 0000 0000 0000 0000 00000
1e: 0000 0000 0000 0000 0000 0000 0000 0000 00000
1f: 0000 0000 0000 0000 0000 0000 0000 0000 00000
So a table would have an optional header row. Then a number of data
rows. The number of columns is the same for each row. The number of
columns is determined at run time, but is known at the beginning of
enumerating the table. The number of data rows is not known until the
last one is enumerated.
Each cell in the row is typed. Can be a string, bool, u8, u16, u32, u64,
ifindex, MAC address, IP address, devlink port, ....
Each cell in a row can have a different type. The types of the header
row cells can be different to the types of the data cells. All data
rows have the same type information. So you can enumerate the types
once, and use them for the whole table.
The userspace tool should make its best effort to print the table,
using the type info. It might need hits from the command line, like -x
to print in hex not decimal. The second example shows this. Registers
make more sense in hex, where as statistics make more sense in
decimal. But let the user choose, so keeping the kAPI simple. This is
intended as a debug tool. The output does not need to be highly
polished. But it needs to be a lot more readable than the current
dpipe output which prints a table as a list, not a table.
The tables can be per port, or per switch. Remember that DSA allows a
cluster of switches within one DSA instance.
Vivien, Florian, did i miss anything?
Andrew
next prev parent reply other threads:[~2017-09-15 14:08 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-28 19:17 [PATCH net-next v2 00/10] net: dsa: add generic debugfs interface Vivien Didelot
2017-08-28 19:17 ` [PATCH net-next v2 01/10] net: dsa: add " Vivien Didelot
2017-08-28 19:50 ` Jiri Pirko
2017-08-28 19:58 ` Florian Fainelli
2017-08-28 20:05 ` Jiri Pirko
2017-08-28 20:19 ` Andrew Lunn
2017-09-07 19:34 ` Greg KH
2017-09-08 13:58 ` Vivien Didelot
2017-09-14 19:59 ` Maxim Uvarov
2017-09-14 20:12 ` Alexander Duyck
2017-09-14 21:01 ` Andrew Lunn
2017-09-15 5:51 ` Jiri Pirko
2017-09-15 7:35 ` Egil Hjelmeland
2017-09-15 14:08 ` Andrew Lunn [this message]
2017-09-15 14:26 ` Jiri Pirko
2017-09-15 15:19 ` Andrew Lunn
2017-08-28 19:17 ` [PATCH net-next v2 02/10] net: dsa: debugfs: add tree Vivien Didelot
2017-09-08 14:18 ` Vivien Didelot
2017-09-08 14:40 ` Greg Kroah-Hartman
2017-09-08 14:57 ` Vivien Didelot
2017-09-08 15:03 ` David Laight
2017-09-08 15:29 ` Greg Kroah-Hartman
2017-08-28 19:17 ` [PATCH net-next v2 03/10] net: dsa: debugfs: add tag_protocol Vivien Didelot
2017-08-28 20:16 ` Andrew Lunn
2017-08-28 19:17 ` [PATCH net-next v2 04/10] net: dsa: debugfs: add port stats Vivien Didelot
2017-08-28 19:17 ` [PATCH net-next v2 05/10] net: dsa: debugfs: add port regs Vivien Didelot
2017-08-28 19:17 ` [PATCH net-next v2 06/10] net: dsa: debugfs: add port fdb Vivien Didelot
2017-08-28 19:17 ` [PATCH net-next v2 07/10] net: dsa: restore mdb dump Vivien Didelot
2017-08-28 19:17 ` [PATCH net-next v2 08/10] net: dsa: debugfs: add port mdb Vivien Didelot
2017-08-28 19:17 ` [PATCH net-next v2 09/10] net: dsa: restore VLAN dump Vivien Didelot
2017-08-28 19:17 ` [PATCH net-next v2 10/10] net: dsa: debugfs: add port vlan Vivien Didelot
2017-08-28 19:53 ` [PATCH net-next v2 00/10] net: dsa: add generic debugfs interface Jiri Pirko
2017-08-28 20:08 ` Andrew Lunn
2017-08-29 6:25 ` Jiri Pirko
2017-08-29 12:50 ` Andrew Lunn
2017-08-29 19:05 ` Arkadi Sharshevsky
2017-08-29 19:19 ` Florian Fainelli
2017-08-29 20:27 ` Andrew Lunn
2017-08-30 7:43 ` Jiri Pirko
2017-08-29 4:38 ` David Miller
2017-08-29 6:29 ` Jiri Pirko
2017-08-29 15:57 ` Vivien Didelot
2017-08-30 7:40 ` Jiri Pirko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170915140839.GD3084@lunn.ch \
--to=andrew@lunn.ch \
--cc=Woojung.Huh@microchip.com \
--cc=alexander.duyck@gmail.com \
--cc=cphealy@gmail.com \
--cc=f.fainelli@gmail.com \
--cc=jiri@resnulli.us \
--cc=john@phrozen.org \
--cc=kernel@savoirfairelinux.com \
--cc=muvarov@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=nikita.yoush@cogentembedded.com \
--cc=privat@egil-hjelmeland.no \
--cc=sean.wang@mediatek.com \
--cc=vivien.didelot@savoirfairelinux.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.