brintos

brintos / linux-shallow public Read only

0
0
Text · 2.1 KiB · a758444 Raw
117 lines · bash
1#!/bin/bash2# SPDX-License-Identifier: GPL-2.03 4ALL_TESTS="5	autoneg6	autoneg_force_mode7	no_cable8"9 10NUM_NETIFS=211lib_dir=$(dirname "$0")12source "$lib_dir"/../../../net/forwarding/lib.sh13source ethtool_lib.sh14 15TIMEOUT=$((WAIT_TIMEOUT * 1000)) # ms16 17setup_prepare()18{19	swp1=${NETIFS[p1]}20	swp2=${NETIFS[p2]}21	swp3=$NETIF_NO_CABLE22}23 24ethtool_ext_state()25{26	local dev=$1; shift27	local expected_ext_state=$1; shift28	local expected_ext_substate=${1:-""}; shift29 30	local ext_state=$(ethtool $dev | grep "Link detected" \31		| cut -d "(" -f2 | cut -d ")" -f1)32	local ext_substate=$(echo $ext_state | cut -sd "," -f2 \33		| sed -e 's/^[[:space:]]*//')34	ext_state=$(echo $ext_state | cut -d "," -f1)35 36	if [[ $ext_state != $expected_ext_state ]]; then37		echo "Expected \"$expected_ext_state\", got \"$ext_state\""38		return 139	fi40	if [[ $ext_substate != $expected_ext_substate ]]; then41		echo "Expected \"$expected_ext_substate\", got \"$ext_substate\""42		return 143	fi44}45 46autoneg()47{48	local msg49 50	RET=051 52	ip link set dev $swp1 up53 54	msg=$(busywait $TIMEOUT ethtool_ext_state $swp1 \55			"Autoneg" "No partner detected")56	check_err $? "$msg"57 58	log_test "Autoneg, No partner detected"59 60	ip link set dev $swp1 down61}62 63autoneg_force_mode()64{65	local msg66 67	RET=068 69	ip link set dev $swp1 up70	ip link set dev $swp2 up71 72	local -a speeds_arr=($(different_speeds_get $swp1 $swp2 0 0))73	local speed1=${speeds_arr[0]}74	local speed2=${speeds_arr[1]}75 76	ethtool_set $swp1 speed $speed1 autoneg off77	ethtool_set $swp2 speed $speed2 autoneg off78 79	msg=$(busywait $TIMEOUT ethtool_ext_state $swp1 \80			"Autoneg" "No partner detected during force mode")81	check_err $? "$msg"82 83	msg=$(busywait $TIMEOUT ethtool_ext_state $swp2 \84			"Autoneg" "No partner detected during force mode")85	check_err $? "$msg"86 87	log_test "Autoneg, No partner detected during force mode"88 89	ethtool -s $swp2 autoneg on90	ethtool -s $swp1 autoneg on91 92	ip link set dev $swp2 down93	ip link set dev $swp1 down94}95 96no_cable()97{98	local msg99 100	RET=0101 102	ip link set dev $swp3 up103 104	msg=$(busywait $TIMEOUT ethtool_ext_state $swp3 "No cable")105	check_err $? "$msg"106 107	log_test "No cable"108 109	ip link set dev $swp3 down110}111 112setup_prepare113 114tests_run115 116exit $EXIT_STATUS117