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