ethtool: add standard pause stats
authorJakub Kicinski <kuba@kernel.org>
Tue, 15 Sep 2020 00:11:52 +0000 (17:11 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 15 Sep 2020 20:26:28 +0000 (13:26 -0700)
commit9a27a33027f22a716ce362be48d70ae0eb012ab7
treee4da475ac5ed89e6030694571c1cd825d91ce2d4
parent0f9ad4e7594419e906427bceba8e52467412895b
ethtool: add standard pause stats

Currently drivers have to report their pause frames statistics
via ethtool -S, and there is a wide variety of names used for
these statistics.

Add the two statistics defined in IEEE 802.3x to the standard
API. Create a new ethtool request header flag for including
statistics in the response to GET commands.

Always create the ETHTOOL_A_PAUSE_STATS nest in replies when
flag is set. Testing if driver declares the op is not a reliable
way of checking if any stats will actually be included and therefore
we don't want to give the impression that presence of
ETHTOOL_A_PAUSE_STATS indicates driver support.

Note that this patch does not include PFC counters, which may fit
better in dcbnl? But mostly I don't need them/have a setup to test
them so I haven't looked deeply into exposing them :)

v3:
 - add a helper for "uninitializing" stats, rather than a cryptic
   memset() (Andrew)

Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Saeed Mahameed <saeedm@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Documentation/networking/ethtool-netlink.rst
include/linux/ethtool.h
include/uapi/linux/ethtool_netlink.h
net/ethtool/pause.c