/usr/src/linux-headers-5.15.0-181/tools/testing/selftests/net
NameSizeModeActions
af_unix/-0755rm
forwarding/-0755rm
mptcp/-0755rm
altnames.sh18170755editdlrm
bareudp.sh212900755editdlrm
drop_monitor_tests.sh44390755editdlrm
fcnal-test.sh1032210755editdlrm
fib-onlink-tests.sh124090755editdlrm
fib_nexthops.sh680030755editdlrm
fib_nexthop_multiprefix.sh58700755editdlrm
fib_nexthop_nongw.sh23270755editdlrm
fib_rule_tests.sh59810755editdlrm
fib_tests.sh572240755editdlrm
fin_ack_lat.sh5070755editdlrm
gre_gso.sh42370755editdlrm
gro.sh21320755editdlrm
icmp.sh26180755editdlrm
icmp_redirect.sh128200755editdlrm
in_netns.sh3230755editdlrm
ioam6.sh259620755editdlrm
ip6_gre_headroom.sh14000755editdlrm
ipv6_flowlabel.sh5020755editdlrm
ip_defrag.sh20870755editdlrm
l2tp.sh99090755editdlrm
lib.sh5970644editdlrm
Makefile24990644editdlrm
msg_zerocopy.sh30120755editdlrm
netdevice.sh45210755editdlrm
net_helper.sh5140644editdlrm
pmtu.sh747110755editdlrm
psock_snd.sh22520755editdlrm
reuseaddr_ports_exhausted.sh6350755editdlrm
reuseport_addr_any.sh810755editdlrm
route_localnet.sh18710755editdlrm
rtnetlink.sh294760755editdlrm
rxtimestamp.sh790755editdlrm
setup_loopback.sh26540644editdlrm
setup_veth.sh9290644editdlrm
so_txtime.sh24340755editdlrm
srv6_end_dt4_l3vpn_test.sh174540755editdlrm
srv6_end_dt6_l3vpn_test.sh176150755editdlrm
srv6_end_dt46_l3vpn_test.sh211210755editdlrm
tcp_fastopen_backup_key.sh10860755editdlrm
test_blackhole_dev.sh2800755editdlrm
test_bpf.sh2250755editdlrm
test_vxlan_fdb_changelink.sh6780755editdlrm
test_vxlan_under_vrf.sh56070755editdlrm
toeplitz.sh49830755editdlrm
toeplitz_client.sh6670755editdlrm
traceroute.sh71310755editdlrm
txtimestamp.sh17020755editdlrm
udpgro.sh59880755editdlrm
udpgro_bench.sh21260755editdlrm
udpgro_fwd.sh71450755editdlrm
udpgso.sh5450755editdlrm
udpgso_bench.sh28520755editdlrm
unicast_extensions.sh82630755editdlrm
veth.sh104410755editdlrm
vrf-xfrm-tests.sh109700755editdlrm
vrf_route_leaking.sh149460755editdlrm
vrf_strict_mode_test.sh76880755editdlrm
xfrm_policy.sh147590755editdlrm
Edit: /usr/src/linux-headers-5.15.0-181/tools/testing/selftests/net/netdevice.sh (4521B)
#!/bin/sh # SPDX-License-Identifier: GPL-2.0 # # This test is for checking network interface # For the moment it tests only ethernet interface (but wifi could be easily added) # # We assume that all network driver are loaded # if not they probably have failed earlier in the boot process and their logged error will be catched by another test # # Kselftest framework requirement - SKIP code is 4. ksft_skip=4 # this function will try to up the interface # if already up, nothing done # arg1: network interface name kci_net_start() { netdev=$1 ip link show "$netdev" |grep -q UP if [ $? -eq 0 ];then echo "SKIP: $netdev: interface already up" return $ksft_skip fi ip link set "$netdev" up if [ $? -ne 0 ];then echo "FAIL: $netdev: Fail to up interface" return 1 else echo "PASS: $netdev: set interface up" NETDEV_STARTED=1 fi return 0 } # this function will try to setup an IP and MAC address on a network interface # Doing nothing if the interface was already up # arg1: network interface name kci_net_setup() { netdev=$1 # do nothing if the interface was already up if [ $NETDEV_STARTED -eq 0 ];then return 0 fi MACADDR='02:03:04:05:06:07' ip link set dev $netdev address "$MACADDR" if [ $? -ne 0 ];then echo "FAIL: $netdev: Cannot set MAC address" else ip link show $netdev |grep -q "$MACADDR" if [ $? -eq 0 ];then echo "PASS: $netdev: set MAC address" else echo "FAIL: $netdev: Cannot set MAC address" fi fi #check that the interface did not already have an IP ip address show "$netdev" |grep '^[[:space:]]*inet' if [ $? -eq 0 ];then echo "SKIP: $netdev: already have an IP" return $ksft_skip fi # TODO what ipaddr to set ? DHCP ? echo "SKIP: $netdev: set IP address" return $ksft_skip } # test an ethtool command # arg1: return code for not supported (see ethtool code source) # arg2: summary of the command # arg3: command to execute kci_netdev_ethtool_test() { if [ $# -le 2 ];then echo "SKIP: $netdev: ethtool: invalid number of arguments" return 1 fi $3 >/dev/null ret=$? if [ $ret -ne 0 ];then if [ $ret -eq "$1" ];then echo "SKIP: $netdev: ethtool $2 not supported" return $ksft_skip else echo "FAIL: $netdev: ethtool $2" return 1 fi else echo "PASS: $netdev: ethtool $2" fi return 0 } # test ethtool commands # arg1: network interface name kci_netdev_ethtool() { netdev=$1 #check presence of ethtool ethtool --version 2>/dev/null >/dev/null if [ $? -ne 0 ];then echo "SKIP: ethtool not present" return $ksft_skip fi TMP_ETHTOOL_FEATURES="$(mktemp)" if [ ! -e "$TMP_ETHTOOL_FEATURES" ];then echo "SKIP: Cannot create a tmp file" return 1 fi ethtool -k "$netdev" > "$TMP_ETHTOOL_FEATURES" if [ $? -ne 0 ];then echo "FAIL: $netdev: ethtool list features" rm "$TMP_ETHTOOL_FEATURES" return 1 fi echo "PASS: $netdev: ethtool list features" #TODO for each non fixed features, try to turn them on/off rm "$TMP_ETHTOOL_FEATURES" kci_netdev_ethtool_test 74 'dump' "ethtool -d $netdev" kci_netdev_ethtool_test 94 'stats' "ethtool -S $netdev" return 0 } # stop a netdev # arg1: network interface name kci_netdev_stop() { netdev=$1 if [ $NETDEV_STARTED -eq 0 ];then echo "SKIP: $netdev: interface kept up" return 0 fi ip link set "$netdev" down if [ $? -ne 0 ];then echo "FAIL: $netdev: stop interface" return 1 fi echo "PASS: $netdev: stop interface" return 0 } # run all test on a netdev # arg1: network interface name kci_test_netdev() { NETDEV_STARTED=0 IFACE_TO_UPDOWN="$1" IFACE_TO_TEST="$1" #check for VLAN interface MASTER_IFACE="$(echo $1 | cut -d@ -f2)" if [ ! -z "$MASTER_IFACE" ];then IFACE_TO_UPDOWN="$MASTER_IFACE" IFACE_TO_TEST="$(echo $1 | cut -d@ -f1)" fi NETDEV_STARTED=0 kci_net_start "$IFACE_TO_UPDOWN" kci_net_setup "$IFACE_TO_TEST" kci_netdev_ethtool "$IFACE_TO_TEST" kci_netdev_stop "$IFACE_TO_UPDOWN" return 0 } #check for needed privileges if [ "$(id -u)" -ne 0 ];then echo "SKIP: Need root privileges" exit $ksft_skip fi ip link show 2>/dev/null >/dev/null if [ $? -ne 0 ];then echo "SKIP: Could not run test without the ip tool" exit $ksft_skip fi TMP_LIST_NETDEV="$(mktemp)" if [ ! -e "$TMP_LIST_NETDEV" ];then echo "FAIL: Cannot create a tmp file" exit 1 fi ip link show |grep '^[0-9]' | grep -oE '[[:space:]].*eth[0-9]*:|[[:space:]].*enp[0-9]s[0-9]:' | cut -d\ -f2 | cut -d: -f1> "$TMP_LIST_NETDEV" while read netdev do kci_test_netdev "$netdev" done < "$TMP_LIST_NETDEV" rm "$TMP_LIST_NETDEV" exit 0