On Fri, 2020-09-11 at 16:28 -0700, Jakub Kicinski wrote:
> 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 <k...@kernel.org>
> ---
>  Documentation/networking/statistics.rst | 57 ++++++++++++++++++++++-
> --
>  1 file changed, 52 insertions(+), 5 deletions(-)
> 
> diff --git a/Documentation/networking/statistics.rst
> b/Documentation/networking/statistics.rst
> index d490b535cd14..8e15bc98830b 100644
> --- a/Documentation/networking/statistics.rst
> +++ b/Documentation/networking/statistics.rst
> @@ -4,16 +4,23 @@
>  Interface statistics
>  ====================
>  
> +Overview
> +========
> +
>  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
> -   :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.
>  
> -There are multiple interfaces to reach the former. Most commonly
> used
> -is the `ip` command from `iproute2`::
> +Standard interface statistics
> +-----------------------------
> +
> +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
>    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.
>  
> -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
> +

this will require to access the HW twice per stats request to read both
stats and current parameters, maybe this is not a big deal, but sharp
accuracy can be important for some performance enthusiasts.

Do we need an API that only reports statistics without the current
parameters ?

Reply via email to