2 # SPDX-License-Identifier: GPL-2.0
14 TIMEOUT=$((WAIT_TIMEOUT * 1000)) # ms
26 local expected_ext_state=$1; shift
27 local expected_ext_substate=${1:-""}; shift
29 local ext_state=$(ethtool $dev | grep "Link detected" \
30 | cut -d "(" -f2 | cut -d ")" -f1)
31 local ext_substate=$(echo $ext_state | cut -sd "," -f2 \
32 | sed -e 's/^[[:space:]]*//')
33 ext_state=$(echo $ext_state | cut -d "," -f1)
35 if [[ $ext_state != $expected_ext_state ]]; then
36 echo "Expected \"$expected_ext_state\", got \"$ext_state\""
39 if [[ $ext_substate != $expected_ext_substate ]]; then
40 echo "Expected \"$expected_ext_substate\", got \"$ext_substate\""
51 ip link set dev $swp1 up
53 msg=$(busywait $TIMEOUT ethtool_ext_state $swp1 \
54 "Autoneg" "No partner detected")
57 log_test "Autoneg, No partner detected"
59 ip link set dev $swp1 down
68 ip link set dev $swp1 up
69 ip link set dev $swp2 up
71 local -a speeds_arr=($(different_speeds_get $swp1 $swp2 0 0))
72 local speed1=${speeds_arr[0]}
73 local speed2=${speeds_arr[1]}
75 ethtool_set $swp1 speed $speed1 autoneg off
76 ethtool_set $swp2 speed $speed2 autoneg off
78 msg=$(busywait $TIMEOUT ethtool_ext_state $swp1 \
79 "Autoneg" "No partner detected during force mode")
82 msg=$(busywait $TIMEOUT ethtool_ext_state $swp2 \
83 "Autoneg" "No partner detected during force mode")
86 log_test "Autoneg, No partner detected during force mode"
88 ethtool -s $swp2 autoneg on
89 ethtool -s $swp1 autoneg on
91 ip link set dev $swp2 down
92 ip link set dev $swp1 down
101 ip link set dev $swp3 up
103 msg=$(busywait $TIMEOUT ethtool_ext_state $swp3 "No cable")
108 ip link set dev $swp3 down