summaryrefslogtreecommitdiff
path: root/tools/testing/selftests/net/forwarding/ethtool_rmon.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tools/testing/selftests/net/forwarding/ethtool_rmon.sh')
-rwxr-xr-xtools/testing/selftests/net/forwarding/ethtool_rmon.sh143
1 files changed, 0 insertions, 143 deletions
diff --git a/tools/testing/selftests/net/forwarding/ethtool_rmon.sh b/tools/testing/selftests/net/forwarding/ethtool_rmon.sh
deleted file mode 100755
index 41a34a61f763..000000000000
--- a/tools/testing/selftests/net/forwarding/ethtool_rmon.sh
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/bin/bash
-# SPDX-License-Identifier: GPL-2.0
-
-ALL_TESTS="
- rmon_rx_histogram
- rmon_tx_histogram
-"
-
-NUM_NETIFS=2
-source lib.sh
-
-ETH_FCS_LEN=4
-ETH_HLEN=$((6+6+2))
-
-declare -A netif_mtu
-
-ensure_mtu()
-{
- local iface=$1; shift
- local len=$1; shift
- local current=$(ip -j link show dev $iface | jq -r '.[0].mtu')
- local required=$((len - ETH_HLEN - ETH_FCS_LEN))
-
- if [ $current -lt $required ]; then
- ip link set dev $iface mtu $required || return 1
- fi
-}
-
-bucket_test()
-{
- local iface=$1; shift
- local neigh=$1; shift
- local set=$1; shift
- local bucket=$1; shift
- local len=$1; shift
- local num_rx=10000
- local num_tx=20000
- local expected=
- local before=
- local after=
- local delta=
-
- # Mausezahn does not include FCS bytes in its length - but the
- # histogram counters do
- len=$((len - ETH_FCS_LEN))
-
- before=$(ethtool --json -S $iface --groups rmon | \
- jq -r ".[0].rmon[\"${set}-pktsNtoM\"][$bucket].val")
-
- # Send 10k one way and 20k in the other, to detect counters
- # mapped to the wrong direction
- $MZ $neigh -q -c $num_rx -p $len -a own -b bcast -d 10us
- $MZ $iface -q -c $num_tx -p $len -a own -b bcast -d 10us
-
- after=$(ethtool --json -S $iface --groups rmon | \
- jq -r ".[0].rmon[\"${set}-pktsNtoM\"][$bucket].val")
-
- delta=$((after - before))
-
- expected=$([ $set = rx ] && echo $num_rx || echo $num_tx)
-
- # Allow some extra tolerance for other packets sent by the stack
- [ $delta -ge $expected ] && [ $delta -le $((expected + 100)) ]
-}
-
-rmon_histogram()
-{
- local iface=$1; shift
- local neigh=$1; shift
- local set=$1; shift
- local nbuckets=0
- local step=
-
- RET=0
-
- while read -r -a bucket; do
- step="$set-pkts${bucket[0]}to${bucket[1]} on $iface"
-
- for if in $iface $neigh; do
- if ! ensure_mtu $if ${bucket[0]}; then
- log_test_skip "$if does not support the required MTU for $step"
- return
- fi
- done
-
- if ! bucket_test $iface $neigh $set $nbuckets ${bucket[0]}; then
- check_err 1 "$step failed"
- return 1
- fi
- log_test "$step"
- nbuckets=$((nbuckets + 1))
- done < <(ethtool --json -S $iface --groups rmon | \
- jq -r ".[0].rmon[\"${set}-pktsNtoM\"][]|[.low, .high]|@tsv" 2>/dev/null)
-
- if [ $nbuckets -eq 0 ]; then
- log_test_skip "$iface does not support $set histogram counters"
- return
- fi
-}
-
-rmon_rx_histogram()
-{
- rmon_histogram $h1 $h2 rx
- rmon_histogram $h2 $h1 rx
-}
-
-rmon_tx_histogram()
-{
- rmon_histogram $h1 $h2 tx
- rmon_histogram $h2 $h1 tx
-}
-
-setup_prepare()
-{
- h1=${NETIFS[p1]}
- h2=${NETIFS[p2]}
-
- for iface in $h1 $h2; do
- netif_mtu[$iface]=$(ip -j link show dev $iface | jq -r '.[0].mtu')
- ip link set dev $iface up
- done
-}
-
-cleanup()
-{
- pre_cleanup
-
- for iface in $h2 $h1; do
- ip link set dev $iface \
- mtu ${netif_mtu[$iface]} \
- down
- done
-}
-
-check_ethtool_counter_group_support
-trap cleanup EXIT
-
-setup_prepare
-setup_wait
-
-tests_run
-
-exit $EXIT_STATUS