xref: /openbmc/linux/tools/testing/selftests/drivers/net/netdevsim/ethtool-pause.sh (revision cdd38c5f1ce4398ec58fec95904b75824daab7b5)
1242aaf03SJakub Kicinski#!/bin/bash
2242aaf03SJakub Kicinski# SPDX-License-Identifier: GPL-2.0-only
3242aaf03SJakub Kicinski
4*fbb8531eSAntonio Cardacesource ethtool-common.sh
5242aaf03SJakub Kicinski
6242aaf03SJakub Kicinski# Bail if ethtool is too old
7242aaf03SJakub Kicinskiif ! ethtool -h | grep include-stat 2>&1 >/dev/null; then
8242aaf03SJakub Kicinski    echo "SKIP: No --include-statistics support in ethtool"
9242aaf03SJakub Kicinski    exit 4
10242aaf03SJakub Kicinskifi
11242aaf03SJakub Kicinski
12*fbb8531eSAntonio CardaceNSIM_NETDEV=$(make_netdev)
13242aaf03SJakub Kicinski
14242aaf03SJakub Kicinskiset -o pipefail
15242aaf03SJakub Kicinski
16242aaf03SJakub Kicinskiecho n > $NSIM_DEV_DFS/ethtool/pause/report_stats_tx
17242aaf03SJakub Kicinskiecho n > $NSIM_DEV_DFS/ethtool/pause/report_stats_rx
18242aaf03SJakub Kicinski
19242aaf03SJakub Kicinskis=$(ethtool --json -a $NSIM_NETDEV | jq '.[].statistics')
20242aaf03SJakub Kicinskicheck $? "$s" "null"
21242aaf03SJakub Kicinski
22242aaf03SJakub Kicinskis=$(ethtool -I --json -a $NSIM_NETDEV | jq '.[].statistics')
23242aaf03SJakub Kicinskicheck $? "$s" "{}"
24242aaf03SJakub Kicinski
25242aaf03SJakub Kicinskiecho y > $NSIM_DEV_DFS/ethtool/pause/report_stats_tx
26242aaf03SJakub Kicinski
27242aaf03SJakub Kicinskis=$(ethtool -I --json -a $NSIM_NETDEV | jq '.[].statistics | length')
28242aaf03SJakub Kicinskicheck $? "$s" "1"
29242aaf03SJakub Kicinski
30242aaf03SJakub Kicinskis=$(ethtool -I --json -a $NSIM_NETDEV | jq '.[].statistics.tx_pause_frames')
31242aaf03SJakub Kicinskicheck $? "$s" "2"
32242aaf03SJakub Kicinski
33242aaf03SJakub Kicinskiecho y > $NSIM_DEV_DFS/ethtool/pause/report_stats_rx
34242aaf03SJakub Kicinski
35242aaf03SJakub Kicinskis=$(ethtool -I --json -a $NSIM_NETDEV | jq '.[].statistics | length')
36242aaf03SJakub Kicinskicheck $? "$s" "2"
37242aaf03SJakub Kicinski
38242aaf03SJakub Kicinskis=$(ethtool -I --json -a $NSIM_NETDEV | jq '.[].statistics.rx_pause_frames')
39242aaf03SJakub Kicinskicheck $? "$s" "1"
40242aaf03SJakub Kicinskis=$(ethtool -I --json -a $NSIM_NETDEV | jq '.[].statistics.tx_pause_frames')
41242aaf03SJakub Kicinskicheck $? "$s" "2"
42242aaf03SJakub Kicinski
43242aaf03SJakub Kicinskiif [ $num_errors -eq 0 ]; then
44242aaf03SJakub Kicinski    echo "PASSED all $((num_passes)) checks"
45242aaf03SJakub Kicinski    exit 0
46242aaf03SJakub Kicinskielse
47242aaf03SJakub Kicinski    echo "FAILED $num_errors/$((num_errors+num_passes)) checks"
48242aaf03SJakub Kicinski    exit 1
49242aaf03SJakub Kicinskifi
50