cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

ethtool_extended_state.sh (1909B)


      1#!/bin/bash
      2# SPDX-License-Identifier: GPL-2.0
      3
      4ALL_TESTS="
      5	autoneg
      6	autoneg_force_mode
      7	no_cable
      8"
      9
     10NUM_NETIFS=2
     11source lib.sh
     12source ethtool_lib.sh
     13
     14setup_prepare()
     15{
     16	swp1=${NETIFS[p1]}
     17	swp2=${NETIFS[p2]}
     18	swp3=$NETIF_NO_CABLE
     19}
     20
     21ethtool_extended_state_check()
     22{
     23	local dev=$1; shift
     24	local expected_ext_state=$1; shift
     25	local expected_ext_substate=${1:-""}; shift
     26
     27	local ext_state=$(ethtool $dev | grep "Link detected" \
     28		| cut -d "(" -f2 | cut -d ")" -f1)
     29	local ext_substate=$(echo $ext_state | cut -sd "," -f2 \
     30		| sed -e 's/^[[:space:]]*//')
     31	ext_state=$(echo $ext_state | cut -d "," -f1)
     32
     33	[[ $ext_state == $expected_ext_state ]]
     34	check_err $? "Expected \"$expected_ext_state\", got \"$ext_state\""
     35
     36	[[ $ext_substate == $expected_ext_substate ]]
     37	check_err $? "Expected \"$expected_ext_substate\", got \"$ext_substate\""
     38}
     39
     40autoneg()
     41{
     42	RET=0
     43
     44	ip link set dev $swp1 up
     45
     46	sleep 4
     47	ethtool_extended_state_check $swp1 "Autoneg" "No partner detected"
     48
     49	log_test "Autoneg, No partner detected"
     50
     51	ip link set dev $swp1 down
     52}
     53
     54autoneg_force_mode()
     55{
     56	RET=0
     57
     58	ip link set dev $swp1 up
     59	ip link set dev $swp2 up
     60
     61	local -a speeds_arr=($(different_speeds_get $swp1 $swp2 0 0))
     62	local speed1=${speeds_arr[0]}
     63	local speed2=${speeds_arr[1]}
     64
     65	ethtool_set $swp1 speed $speed1 autoneg off
     66	ethtool_set $swp2 speed $speed2 autoneg off
     67
     68	sleep 4
     69	ethtool_extended_state_check $swp1 "Autoneg" \
     70		"No partner detected during force mode"
     71
     72	ethtool_extended_state_check $swp2 "Autoneg" \
     73		"No partner detected during force mode"
     74
     75	log_test "Autoneg, No partner detected during force mode"
     76
     77	ethtool -s $swp2 autoneg on
     78	ethtool -s $swp1 autoneg on
     79
     80	ip link set dev $swp2 down
     81	ip link set dev $swp1 down
     82}
     83
     84no_cable()
     85{
     86	RET=0
     87
     88	ip link set dev $swp3 up
     89
     90	sleep 1
     91	ethtool_extended_state_check $swp3 "No cable"
     92
     93	log_test "No cable"
     94
     95	ip link set dev $swp3 down
     96}
     97
     98setup_prepare
     99
    100tests_run
    101
    102exit $EXIT_STATUS