2 # SPDX-License-Identifier: GPL-2.0
11 lib_dir
=$
(dirname "$0")
12 source "$lib_dir"/..
/..
/..
/net
/forwarding
/lib.sh
15 TIMEOUT
=$
((WAIT_TIMEOUT
* 1000)) # ms
27 local expected_ext_state
=$1; shift
28 local expected_ext_substate
=${1:-""}; shift
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)
36 if [[ $ext_state != $expected_ext_state ]]; then
37 echo "Expected \"$expected_ext_state\", got \"$ext_state\""
40 if [[ $ext_substate != $expected_ext_substate ]]; then
41 echo "Expected \"$expected_ext_substate\", got \"$ext_substate\""
52 ip link
set dev
$swp1 up
54 msg
=$
(busywait
$TIMEOUT ethtool_ext_state
$swp1 \
55 "Autoneg" "No partner detected")
58 log_test
"Autoneg, No partner detected"
60 ip link
set dev
$swp1 down
69 ip link
set dev
$swp1 up
70 ip link
set dev
$swp2 up
72 local -a speeds_arr
=($
(different_speeds_get
$swp1 $swp2 0 0))
73 local speed1
=${speeds_arr[0]}
74 local speed2
=${speeds_arr[1]}
76 ethtool_set
$swp1 speed
$speed1 autoneg off
77 ethtool_set
$swp2 speed
$speed2 autoneg off
79 msg
=$
(busywait
$TIMEOUT ethtool_ext_state
$swp1 \
80 "Autoneg" "No partner detected during force mode")
83 msg
=$
(busywait
$TIMEOUT ethtool_ext_state
$swp2 \
84 "Autoneg" "No partner detected during force mode")
87 log_test
"Autoneg, No partner detected during force mode"
89 ethtool
-s $swp2 autoneg on
90 ethtool
-s $swp1 autoneg on
92 ip link
set dev
$swp2 down
93 ip link
set dev
$swp1 down
102 ip link
set dev
$swp3 up
104 msg
=$
(busywait
$TIMEOUT ethtool_ext_state
$swp3 "No cable")
109 ip link
set dev
$swp3 down