docs: net: include the new ethtool pause stats in the stats doc
Tell people that there now is an interface for querying pause frames. A little bit of restructuring is needed given this is a first source of such statistics. Signed-off-by: Jakub Kicinski <kuba@kernel.org> Reviewed-by: Saeed Mahameed <saeedm@nvidia.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
9a27a33027
commit
8c00bd936f
@ -4,16 +4,23 @@
|
|||||||
Interface statistics
|
Interface statistics
|
||||||
====================
|
====================
|
||||||
|
|
||||||
|
Overview
|
||||||
|
========
|
||||||
|
|
||||||
This document is a guide to Linux network interface statistics.
|
This document is a guide to Linux network interface statistics.
|
||||||
|
|
||||||
There are two main sources of interface statistics in Linux:
|
There are three main sources of interface statistics in Linux:
|
||||||
|
|
||||||
- standard interface statistics based on
|
- standard interface statistics based on
|
||||||
:c:type:`struct rtnl_link_stats64 <rtnl_link_stats64>`; and
|
:c:type:`struct rtnl_link_stats64 <rtnl_link_stats64>`;
|
||||||
|
- protocol-specific statistics; and
|
||||||
- driver-defined statistics available via ethtool.
|
- driver-defined statistics available via ethtool.
|
||||||
|
|
||||||
There are multiple interfaces to reach the former. Most commonly used
|
Standard interface statistics
|
||||||
is the `ip` command from `iproute2`::
|
-----------------------------
|
||||||
|
|
||||||
|
There are multiple interfaces to reach the standard statistics.
|
||||||
|
Most commonly used is the `ip` command from `iproute2`::
|
||||||
|
|
||||||
$ ip -s -s link show dev ens4u1u1
|
$ ip -s -s link show dev ens4u1u1
|
||||||
6: ens4u1u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
|
6: ens4u1u1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
|
||||||
@ -34,7 +41,26 @@ If `-s` is specified once the detailed errors won't be shown.
|
|||||||
|
|
||||||
`ip` supports JSON formatting via the `-j` option.
|
`ip` supports JSON formatting via the `-j` option.
|
||||||
|
|
||||||
Ethtool statistics can be dumped using `ethtool -S $ifc`, e.g.::
|
Protocol-specific statistics
|
||||||
|
----------------------------
|
||||||
|
|
||||||
|
Some of the interfaces used for configuring devices are also able
|
||||||
|
to report related statistics. For example ethtool interface used
|
||||||
|
to configure pause frames can report corresponding hardware counters::
|
||||||
|
|
||||||
|
$ ethtool --include-statistics -a eth0
|
||||||
|
Pause parameters for eth0:
|
||||||
|
Autonegotiate: on
|
||||||
|
RX: on
|
||||||
|
TX: on
|
||||||
|
Statistics:
|
||||||
|
tx_pause_frames: 1
|
||||||
|
rx_pause_frames: 1
|
||||||
|
|
||||||
|
Driver-defined statistics
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
Driver-defined ethtool statistics can be dumped using `ethtool -S $ifc`, e.g.::
|
||||||
|
|
||||||
$ ethtool -S ens4u1u1
|
$ ethtool -S ens4u1u1
|
||||||
NIC statistics:
|
NIC statistics:
|
||||||
@ -94,6 +120,17 @@ Identifiers via `ETHTOOL_GSTRINGS` with `string_set` set to `ETH_SS_STATS`,
|
|||||||
and values via `ETHTOOL_GSTATS`. User space should use `ETHTOOL_GDRVINFO`
|
and values via `ETHTOOL_GSTATS`. User space should use `ETHTOOL_GDRVINFO`
|
||||||
to retrieve the number of statistics (`.n_stats`).
|
to retrieve the number of statistics (`.n_stats`).
|
||||||
|
|
||||||
|
ethtool-netlink
|
||||||
|
---------------
|
||||||
|
|
||||||
|
Ethtool netlink is a replacement for the older IOCTL interface.
|
||||||
|
|
||||||
|
Protocol-related statistics can be requested in get commands by setting
|
||||||
|
the `ETHTOOL_FLAG_STATS` flag in `ETHTOOL_A_HEADER_FLAGS`. Currently
|
||||||
|
statistics are supported in the following commands:
|
||||||
|
|
||||||
|
- `ETHTOOL_MSG_PAUSE_GET`
|
||||||
|
|
||||||
debugfs
|
debugfs
|
||||||
-------
|
-------
|
||||||
|
|
||||||
@ -130,3 +167,13 @@ user space trying to read them.
|
|||||||
|
|
||||||
Statistics must persist across routine operations like bringing the interface
|
Statistics must persist across routine operations like bringing the interface
|
||||||
down and up.
|
down and up.
|
||||||
|
|
||||||
|
Kernel-internal data structures
|
||||||
|
-------------------------------
|
||||||
|
|
||||||
|
The following structures are internal to the kernel, their members are
|
||||||
|
translated to netlink attributes when dumped. Drivers must not overwrite
|
||||||
|
the statistics they don't report with 0.
|
||||||
|
|
||||||
|
.. kernel-doc:: include/linux/ethtool.h
|
||||||
|
:identifiers: ethtool_pause_stats
|
||||||
|
Reference in New Issue
Block a user