File tree Expand file tree Collapse file tree 3 files changed +62
-4
lines changed
suites/Connectivity/Ethernet Expand file tree Collapse file tree 3 files changed +62
-4
lines changed Original file line number Diff line number Diff line change @@ -7,9 +7,15 @@ SPDX-License-Identifier: BSD-3-Clause-Clear
77
88This test case validates the basic functionality of the Ethernet interface (` eth0 ` ) on the device. It checks for:
99
10- - Interface presence
10+ - Interface detection (auto or user-specified)
1111- Interface status (UP/DOWN)
1212- Basic connectivity via ping to ` 8.8.8.8 `
13+ - Optional: forcing Ethernet link speed using ethtool
14+
15+ By default, the script:
16+
17+ Auto-detects available Ethernet interfaces if none is specified
18+ Forces the link speed to 1000 Mbps, full duplex, autoneg off (using ethtool) unless a different speed is provided
1319
1420## Usage
1521
@@ -29,7 +35,7 @@ scp -r common Runner user@target_device_ip:<Path in device>
2935ssh user@target_device_ip
3036cd <Path in device>/Runner && ./run-test.sh Ethernet
3137# Optional: specify preferred interface (e.g., eth1)
32- ./run.sh [preferred-interface]
38+ ./run.sh [--interface < preferred-interface>] [--speed <mbps> ]
3339```
3440
3541## Prerequisites
Original file line number Diff line number Diff line change @@ -37,11 +37,32 @@ rm -f "$res_file" "$summary_file"
3737log_info " --------------------------------------------------------------------------"
3838log_info " -------------------Starting $TESTNAME Testcase----------------------------"
3939
40+ # CLI parsing: --interface/-i, --speed/-s
41+ user_iface=" "
42+ speed=" "
43+
44+ while [ $# -gt 0 ]; do
45+ case " $1 " in
46+ --interface|-i)
47+ user_iface=" $2 "
48+ shift 2
49+ ;;
50+ --speed|-s)
51+ speed=" $2 "
52+ shift 2
53+ ;;
54+ * )
55+ log_warn " Unknown argument: $1 (ignoring)"
56+ shift 1
57+ ;;
58+ esac
59+ done
60+
61+ [ -z " $speed " ] && speed=1000
62+
4063# Check for dependencies
4164check_dependencies ip ping
4265
43- # User-specified interface (argument) or all detected
44- user_iface=" $1 "
4566if [ -n " $user_iface " ]; then
4667 ETH_IFACES=" $user_iface "
4768 log_info " User specified interface: $user_iface "
@@ -62,6 +83,15 @@ any_tested=0
6283
6384for iface in $ETH_IFACES ; do
6485 log_info " ---- Testing interface: $iface ----"
86+ model=$( get_machine_model)
87+
88+ if [ " $model " = " Monaco EVK" ] || [ " $model " = " Lemans EVK" ] || [ " $model " = " Lemans Ride Rev3" ] || [ " $model " = " QCS8300 Ride" ] || [ " $model " = " Robotics RB3gen2" ]; then
89+ log_info " Setting MAC-PHY speed to $speed for $model "
90+ ethtool -s " $iface " speed " $speed " autoneg off duplex full
91+ sleep 5
92+ else
93+ log_info " Skipping force speed; model is '$model '"
94+ fi
6595
6696 if ! is_interface_up " $iface " ; then
6797 log_warn " $iface is DOWN, skipping"
Original file line number Diff line number Diff line change @@ -3566,4 +3566,26 @@ get_pid() {
35663566 log_info " Process '$process_name ' not found."
35673567 return 1
35683568 fi
3569+ }
3570+
3571+ get_machine_model () {
3572+ if [ -r /sys/firmware/devicetree/base/model ]; then
3573+ raw=` cat /sys/firmware/devicetree/base/model`
3574+ else
3575+ log_info " Model not found"
3576+ return 0
3577+ fi
3578+
3579+ # Strip leading "Qualcomm Technologies, Inc. " if present
3580+ case " $raw " in
3581+ " Qualcomm Technologies, Inc. " * )
3582+ model=` printf ' %s\n' " $raw " | sed ' s/^Qualcomm Technologies, Inc. //' `
3583+ ;;
3584+ * )
3585+ model=" $raw "
3586+ ;;
3587+ esac
3588+
3589+ printf ' %s\n' " $model "
3590+ return 0
35693591}
You can’t perform that action at this time.
0 commit comments