mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-27 14:14:24 +08:00
Merge branch 'enhance-network-interface-feature-testing'
Abhinav Jain says: ==================== Enhance network interface feature testing This small series includes fixes for creation of veth pairs for networkless kernels & adds tests for turning the different network interface features on and off in selftests/net/netdevice.sh script. Tested using vng and compiles for network as well as networkless kernel. # selftests: net: netdevice.sh # No valid network device found, creating veth pair # PASS: veth0: set interface up # PASS: veth0: set MAC address # XFAIL: veth0: set IP address unsupported for veth* # PASS: veth0: ethtool list features # PASS: veth0: Turned off feature: rx-checksumming # PASS: veth0: Turned on feature: rx-checksumming # PASS: veth0: Restore feature rx-checksumming to initial state on # Actual changes: # tx-checksum-ip-generic: off ... # PASS: veth0: Turned on feature: rx-udp-gro-forwarding # PASS: veth0: Restore feature rx-udp-gro-forwarding to initial state off # Cannot get register dump: Operation not supported # XFAIL: veth0: ethtool dump not supported # PASS: veth0: ethtool stats # PASS: veth0: stop interface ==================== Link: https://patch.msgid.link/20240821171903.118324-1-jain.abhinav177@gmail.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
commit
1cf60c6121
@ -67,8 +67,12 @@ kci_net_setup()
|
||||
return $ksft_skip
|
||||
fi
|
||||
|
||||
# TODO what ipaddr to set ? DHCP ?
|
||||
echo "SKIP: $netdev: set IP address"
|
||||
if [ "$veth_created" ]; then
|
||||
echo "XFAIL: $netdev: set IP address unsupported for veth*"
|
||||
else
|
||||
# TODO what ipaddr to set ? DHCP ?
|
||||
echo "SKIP: $netdev: set IP address"
|
||||
fi
|
||||
return $ksft_skip
|
||||
}
|
||||
|
||||
@ -86,7 +90,7 @@ kci_netdev_ethtool_test()
|
||||
ret=$?
|
||||
if [ $ret -ne 0 ];then
|
||||
if [ $ret -eq "$1" ];then
|
||||
echo "SKIP: $netdev: ethtool $2 not supported"
|
||||
echo "XFAIL: $netdev: ethtool $2 not supported"
|
||||
return $ksft_skip
|
||||
else
|
||||
echo "FAIL: $netdev: ethtool $2"
|
||||
@ -124,11 +128,45 @@ kci_netdev_ethtool()
|
||||
return 1
|
||||
fi
|
||||
echo "PASS: $netdev: ethtool list features"
|
||||
#TODO for each non fixed features, try to turn them on/off
|
||||
|
||||
while read -r FEATURE VALUE FIXED; do
|
||||
[ "$FEATURE" != "Features" ] || continue # Skip "Features"
|
||||
[ "$FIXED" != "[fixed]" ] || continue # Skip fixed features
|
||||
feature="${FEATURE%:*}"
|
||||
|
||||
ethtool --offload "$netdev" "$feature" off
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "PASS: $netdev: Turned off feature: $feature"
|
||||
else
|
||||
echo "FAIL: $netdev: Failed to turn off feature:" \
|
||||
"$feature"
|
||||
fi
|
||||
|
||||
ethtool --offload "$netdev" "$feature" on
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "PASS: $netdev: Turned on feature: $feature"
|
||||
else
|
||||
echo "FAIL: $netdev: Failed to turn on feature:" \
|
||||
"$feature"
|
||||
fi
|
||||
|
||||
#restore the feature to its initial state
|
||||
ethtool --offload "$netdev" "$feature" "$VALUE"
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "PASS: $netdev: Restore feature $feature" \
|
||||
"to initial state $VALUE"
|
||||
else
|
||||
echo "FAIL: $netdev: Failed to restore feature" \
|
||||
"$feature to initial state $VALUE"
|
||||
fi
|
||||
|
||||
done < "$TMP_ETHTOOL_FEATURES"
|
||||
|
||||
rm "$TMP_ETHTOOL_FEATURES"
|
||||
|
||||
kci_netdev_ethtool_test 74 'dump' "ethtool -d $netdev"
|
||||
kci_netdev_ethtool_test 94 'stats' "ethtool -S $netdev"
|
||||
|
||||
return 0
|
||||
}
|
||||
|
||||
@ -196,10 +234,24 @@ if [ ! -e "$TMP_LIST_NETDEV" ];then
|
||||
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"
|
||||
|
||||
if [ ! -s "$TMP_LIST_NETDEV" ]; then
|
||||
echo "No valid network device found, creating veth pair"
|
||||
ip link add veth0 type veth peer name veth1
|
||||
echo "veth0" > "$TMP_LIST_NETDEV"
|
||||
veth_created=1
|
||||
fi
|
||||
|
||||
while read netdev
|
||||
do
|
||||
kci_test_netdev "$netdev"
|
||||
done < "$TMP_LIST_NETDEV"
|
||||
|
||||
#clean up veth interface pair if it was created
|
||||
if [ "$veth_created" ]; then
|
||||
ip link delete veth0
|
||||
echo "Removed veth pair"
|
||||
fi
|
||||
|
||||
rm "$TMP_LIST_NETDEV"
|
||||
exit 0
|
||||
|
Loading…
Reference in New Issue
Block a user