From: Petr Machata <petrm@nvidia.com>
To: Ioana Ciornei <ioana.ciornei@nxp.com>
Cc: <netdev@vger.kernel.org>, Andrew Lunn <andrew+netdev@lunn.ch>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
"Jakub Kicinski" <kuba@kernel.org>,
Paolo Abeni <pabeni@redhat.com>, Simon Horman <horms@kernel.org>,
<linux-kernel@vger.kernel.org>, <petrm@nvidia.com>,
<willemb@google.com>, <linux-kselftest@vger.kernel.org>
Subject: Re: [PATCH net-next v4 10/10] selftests: drivers: hw: add test for the ethtool standard counters
Date: Mon, 30 Mar 2026 14:03:35 +0200 [thread overview]
Message-ID: <87bjg54ivh.fsf@nvidia.com> (raw)
In-Reply-To: <20260326132828.805703-11-ioana.ciornei@nxp.com>
Ioana Ciornei <ioana.ciornei@nxp.com> writes:
> Add a new selftest - ethtool_std_stats.sh - which validates the
> eth-ctrl, eth-mac and pause standard statistics exported by an
> interface. Collision related eth-mac counters as well as the error ones
> will be checked against zero since that is the most likely correct
> scenario.
>
> The central part of this patch is the traffic_test() function which
> gathers the 'before' counter values, sends a batch of traffic and then
> interrogates again the same counters in order to determine if the delta
> is on target. The function receives an array through which the caller
> can request what counters to be interrogated and, for each of them, what
> is their target delta value.
>
> The output from this selftest looks as follows on a LX2160ARDB board:
>
> $ ./run_kselftest.sh -t drivers/net/hw:ethtool_std_stats.sh
> TAP version 13
> 1..1
> # timeout set to 0
> # selftests: drivers/net/hw: ethtool_std_stats.sh
> # TAP version 13
> # 1..26
> # ok 1 ethtool_std_stats.eth-ctrl-MACControlFramesTransmitted
> # ok 2 ethtool_std_stats.eth-ctrl-MACControlFramesReceived
> # ok 3 ethtool_std_stats.eth-mac-FrameCheckSequenceErrors
> # ok 4 ethtool_std_stats.eth-mac-AlignmentErrors
> # ok 5 ethtool_std_stats.eth-mac-FramesLostDueToIntMACXmitError
> # ok 6 ethtool_std_stats.eth-mac-CarrierSenseErrors # SKIP
> # ok 7 ethtool_std_stats.eth-mac-FramesLostDueToIntMACRcvError
> # ok 8 ethtool_std_stats.eth-mac-InRangeLengthErrors # SKIP
> # ok 9 ethtool_std_stats.eth-mac-OutOfRangeLengthField # SKIP
> # ok 10 ethtool_std_stats.eth-mac-FrameTooLongErrors # SKIP
> # ok 11 ethtool_std_stats.eth-mac-FramesAbortedDueToXSColls # SKIP
> # ok 12 ethtool_std_stats.eth-mac-SingleCollisionFrames # SKIP
> # ok 13 ethtool_std_stats.eth-mac-MultipleCollisionFrames # SKIP
> # ok 14 ethtool_std_stats.eth-mac-FramesWithDeferredXmissions # SKIP
> # ok 15 ethtool_std_stats.eth-mac-LateCollisions # SKIP
> # ok 16 ethtool_std_stats.eth-mac-FramesWithExcessiveDeferral # SKIP
> # ok 17 ethtool_std_stats.eth-mac-BroadcastFramesXmittedOK
> # ok 18 ethtool_std_stats.eth-mac-OctetsTransmittedOK
> # ok 19 ethtool_std_stats.eth-mac-BroadcastFramesReceivedOK
> # ok 20 ethtool_std_stats.eth-mac-OctetsReceivedOK
> # ok 21 ethtool_std_stats.eth-mac-FramesTransmittedOK
> # ok 22 ethtool_std_stats.eth-mac-MulticastFramesXmittedOK
> # ok 23 ethtool_std_stats.eth-mac-FramesReceivedOK
> # ok 24 ethtool_std_stats.eth-mac-MulticastFramesReceivedOK
> # ok 25 ethtool_std_stats.pause-tx_pause_frames
> # ok 26 ethtool_std_stats.pause-rx_pause_frames
> # # 10 skipped test(s) detected. Consider enabling relevant config options to improve coverage.
> # # Totals: pass:16 fail:0 xfail:0 xpass:0 skip:10 error:0
> ok 1 selftests: drivers/net/hw: ethtool_std_stats.sh
>
> Please note that not all MACs are counting the software injected pause
> frames as real Tx pause. For example, on a LS1028ARDB the selftest
> output will reflect the fact that neither the ENETC MAC, nor the Felix
> switch MAC are able to detect Tx pause frames injected by software.
>
> $ ./run_kselftest.sh -t drivers/net/hw:ethtool_std_stats.sh
> (...)
> # # software sent pause frames not detected
> # ok 25 ethtool_std_stats.pause-tx_pause_frames # XFAIL
> # ok 26 ethtool_std_stats.pause-rx_pause_frames
>
> Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
I didn't go into details much, but the code looks broadly correct.
Acked-by: Petr Machata <petrm@nvidia.com>
next prev parent reply other threads:[~2026-03-30 12:12 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-03-26 13:28 [PATCH net-next v4 00/10] selftests: drivers: bash support for remote traffic generators Ioana Ciornei
2026-03-26 13:28 ` [PATCH net-next v4 01/10] selftests: forwarding: extend ethtool_std_stats_get with pause statistics Ioana Ciornei
2026-03-26 13:28 ` [PATCH net-next v4 02/10] selftests: net: add helpers for running a command on other targets Ioana Ciornei
2026-03-30 11:02 ` Petr Machata
2026-03-30 11:32 ` Petr Machata
2026-03-30 12:12 ` Ioana Ciornei
2026-03-30 14:55 ` Petr Machata
2026-03-31 0:04 ` Jakub Kicinski
2026-03-31 11:53 ` Petr Machata
2026-03-26 13:28 ` [PATCH net-next v4 03/10] selftests: net: extend lib.sh to parse drivers/net/net.config Ioana Ciornei
2026-03-30 11:28 ` Petr Machata
2026-03-30 12:28 ` Ioana Ciornei
2026-03-26 13:28 ` [PATCH net-next v4 04/10] selftests: net: update some helpers to use run_on Ioana Ciornei
2026-03-30 11:55 ` Petr Machata
2026-03-26 13:28 ` [PATCH net-next v4 05/10] selftests: drivers: hw: cleanup shellcheck warnings in the rmon test Ioana Ciornei
2026-03-26 13:28 ` [PATCH net-next v4 06/10] selftests: drivers: hw: test rmon counters only on first interface Ioana Ciornei
2026-03-26 13:28 ` [PATCH net-next v4 07/10] selftests: drivers: hw: replace counter upper limit with UINT32_MAX in rmon test Ioana Ciornei
2026-03-26 13:28 ` [PATCH net-next v4 08/10] selftests: drivers: hw: move to KTAP output Ioana Ciornei
2026-03-30 12:01 ` Petr Machata
2026-03-26 13:28 ` [PATCH net-next v4 09/10] selftests: drivers: hw: update ethtool_rmon to work with a single local interface Ioana Ciornei
2026-03-26 13:28 ` [PATCH net-next v4 10/10] selftests: drivers: hw: add test for the ethtool standard counters Ioana Ciornei
2026-03-30 12:03 ` Petr Machata [this message]
2026-03-26 19:03 ` [PATCH net-next v4 00/10] selftests: drivers: bash support for remote traffic generators Jakub Kicinski
2026-03-27 7:32 ` Ioana Ciornei
2026-03-28 0:24 ` Jakub Kicinski
2026-03-30 10:38 ` Petr Machata
2026-03-30 11:10 ` Petr Machata
2026-03-30 11:11 ` Ioana Ciornei
2026-03-30 11:52 ` Petr Machata
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=87bjg54ivh.fsf@nvidia.com \
--to=petrm@nvidia.com \
--cc=andrew+netdev@lunn.ch \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=horms@kernel.org \
--cc=ioana.ciornei@nxp.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=willemb@google.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.