* [PATCH v4 0/2] Enhance network interface feature testing
@ 2024-08-07 17:57 Abhinav Jain
2024-08-07 17:57 ` [PATCH v4 1/2] selftests: net: Create veth pair for testing in networkless kernel Abhinav Jain
2024-08-07 17:57 ` [PATCH v4 2/2] selftests: net: Add on/off checks for non-fixed features of interface Abhinav Jain
0 siblings, 2 replies; 6+ messages in thread
From: Abhinav Jain @ 2024-08-07 17:57 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni, shuah, netdev, linux-kselftest,
linux-kernel
Cc: skhan, javier.carrasco.cruz, Abhinav Jain
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.
Changes in v4:
Move veth creation/removal to the main shell script.
Tested using vng on a networkless kernel and the script works, sample
output below the changes.
Changes in v3:
https://lore.kernel.org/all/20240614113240.41550-1-jain.abhinav177@gmail.com/
Add a check for netdev, create veth pair for testing.
Restore feature to its initial state.
Changes in v2:
https://lore.kernel.org/all/20240609132124.51683-1-jain.abhinav177@gmail.com/
Remove tail usage; use read to parse the features from temp file.
v1:
https://lore.kernel.org/all/20240606212714.27472-1-jain.abhinav177@gmail.com/
```
# selftests: net: netdevice.sh
# No valid network device found, creating veth pair
# PASS: veth0: set interface up
# PASS: veth0: set MAC address
# SKIP: veth0: set IP address
# 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
# tx-tcp-segmentation: off [not requested]
....
....
....
# PASS: veth1: Restore feature tx-nocache-copy to initial state off
# PASS: veth1: Turned off feature: tx-vlan-stag-hw-insert
# PASS: veth1: Turned on feature: tx-vlan-stag-hw-insert
# PASS: veth1: Restore feature tx-vlan-stag-hw-insert to initial state on
# PASS: veth1: Turned off feature: rx-vlan-stag-hw-parse
# PASS: veth1: Turned on feature: rx-vlan-stag-hw-parse
# PASS: veth1: Restore feature rx-vlan-stag-hw-parse to initial state on
# PASS: veth1: Turned off feature: rx-gro-list
# PASS: veth1: Turned on feature: rx-gro-list
# PASS: veth1: Restore feature rx-gro-list to initial state off
# PASS: veth1: Turned off feature: rx-udp-gro-forwarding
# PASS: veth1: Turned on feature: rx-udp-gro-forwarding
# PASS: veth1: Restore feature rx-udp-gro-forwarding to initial state off
# Cannot get register dump: Operation not supported
# SKIP: veth1: ethtool dump not supported
# PASS: veth1: ethtool stats
# PASS: veth1: stop interface
# Removed veth pair
ok 12 selftests: net: netdevice.sh
```
Abhinav Jain (2):
selftests: net: Create veth pair for testing in networkless kernel
selftests: net: Add on/off checks for non-fixed features of interface
tools/testing/selftests/net/netdevice.sh | 55 +++++++++++++++++++++++-
1 file changed, 54 insertions(+), 1 deletion(-)
--
2.34.1
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v4 1/2] selftests: net: Create veth pair for testing in networkless kernel
2024-08-07 17:57 [PATCH v4 0/2] Enhance network interface feature testing Abhinav Jain
@ 2024-08-07 17:57 ` Abhinav Jain
2024-08-08 1:28 ` Jakub Kicinski
2024-08-07 17:57 ` [PATCH v4 2/2] selftests: net: Add on/off checks for non-fixed features of interface Abhinav Jain
1 sibling, 1 reply; 6+ messages in thread
From: Abhinav Jain @ 2024-08-07 17:57 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni, shuah, netdev, linux-kselftest,
linux-kernel
Cc: skhan, javier.carrasco.cruz, Abhinav Jain
Check if the netdev list is empty and create veth pair to be used for
feature on/off testing.
Remove the veth pair after testing is complete.
Signed-off-by: Abhinav Jain <jain.abhinav177@gmail.com>
---
tools/testing/selftests/net/netdevice.sh | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)
diff --git a/tools/testing/selftests/net/netdevice.sh b/tools/testing/selftests/net/netdevice.sh
index e3afcb424710..279c44271047 100755
--- a/tools/testing/selftests/net/netdevice.sh
+++ b/tools/testing/selftests/net/netdevice.sh
@@ -129,6 +129,7 @@ kci_netdev_ethtool()
kci_netdev_ethtool_test 74 'dump' "ethtool -d $netdev"
kci_netdev_ethtool_test 94 'stats' "ethtool -S $netdev"
+
return 0
}
@@ -196,10 +197,27 @@ 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"
+
+veth_created=0
+
+if [ ! -s "$TMP_LIST_NETDEV" ]; then
+ echo "No valid network device found, creating veth pair"
+ ip link add veth0 type peer name veth1
+ echo "veth0" > "$TMP_LIST_NETDEV"
+ echo "veth1" >> "$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
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH v4 2/2] selftests: net: Add on/off checks for non-fixed features of interface
2024-08-07 17:57 [PATCH v4 0/2] Enhance network interface feature testing Abhinav Jain
2024-08-07 17:57 ` [PATCH v4 1/2] selftests: net: Create veth pair for testing in networkless kernel Abhinav Jain
@ 2024-08-07 17:57 ` Abhinav Jain
1 sibling, 0 replies; 6+ messages in thread
From: Abhinav Jain @ 2024-08-07 17:57 UTC (permalink / raw)
To: davem, edumazet, kuba, pabeni, shuah, netdev, linux-kselftest,
linux-kernel
Cc: skhan, javier.carrasco.cruz, Abhinav Jain
Implement on/off testing for all non-fixed features via while loop.
Save the initial state so that it can be restored after on/off checks.
Signed-off-by: Abhinav Jain <jain.abhinav177@gmail.com>
---
tools/testing/selftests/net/netdevice.sh | 37 +++++++++++++++++++++++-
1 file changed, 36 insertions(+), 1 deletion(-)
diff --git a/tools/testing/selftests/net/netdevice.sh b/tools/testing/selftests/net/netdevice.sh
index 279c44271047..c47fb984616d 100755
--- a/tools/testing/selftests/net/netdevice.sh
+++ b/tools/testing/selftests/net/netdevice.sh
@@ -124,7 +124,42 @@ 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%:*}"
+
+ initial_state=$(ethtool -k "$netdev" | grep "$feature:" \
+ | awk '{print $2}')
+ 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" "$initial_state"
+ if [ $? -eq 0 ]; then
+ echo "PASS: $netdev: Restore feature $feature" \
+ "to initial state $initial_state"
+ else
+ echo "FAIL: $netdev: Failed to restore feature" \
+ "$feature to default $initial_state"
+ fi
+
+ done < "$TMP_ETHTOOL_FEATURES"
+
rm "$TMP_ETHTOOL_FEATURES"
kci_netdev_ethtool_test 74 'dump' "ethtool -d $netdev"
--
2.34.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH v4 1/2] selftests: net: Create veth pair for testing in networkless kernel
2024-08-07 17:57 ` [PATCH v4 1/2] selftests: net: Create veth pair for testing in networkless kernel Abhinav Jain
@ 2024-08-08 1:28 ` Jakub Kicinski
2024-08-08 12:28 ` Abhinav Jain
0 siblings, 1 reply; 6+ messages in thread
From: Jakub Kicinski @ 2024-08-08 1:28 UTC (permalink / raw)
To: Abhinav Jain
Cc: davem, edumazet, pabeni, shuah, netdev, linux-kselftest,
linux-kernel, skhan, javier.carrasco.cruz
On Wed, 7 Aug 2024 17:57:16 +0000 Abhinav Jain wrote:
> + ip link add veth0 type peer name veth1
That's not the right syntax..
--
pw-bot: cr
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v4 1/2] selftests: net: Create veth pair for testing in networkless kernel
2024-08-08 1:28 ` Jakub Kicinski
@ 2024-08-08 12:28 ` Abhinav Jain
2024-08-08 13:31 ` Jakub Kicinski
0 siblings, 1 reply; 6+ messages in thread
From: Abhinav Jain @ 2024-08-08 12:28 UTC (permalink / raw)
To: kuba
Cc: davem, edumazet, jain.abhinav177, javier.carrasco.cruz,
linux-kernel, linux-kselftest, netdev, pabeni, shuah, skhan
On Wed, 7 Aug 2024 18:28:34 -0700 Jakub Kicinski wrote:
> That's not the right syntax..
Thanks for the feedback Jakub. I have rectified this and while at it,
I tested using vng on a network based kernel and found another issue in
veth removal logic. I have fixed that as well.
Please kindly check the v5 series here:
https://lore.kernel.org/all/20240808122452.25683-1-jain.abhinav177@gmail.com/
---
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v4 1/2] selftests: net: Create veth pair for testing in networkless kernel
2024-08-08 12:28 ` Abhinav Jain
@ 2024-08-08 13:31 ` Jakub Kicinski
0 siblings, 0 replies; 6+ messages in thread
From: Jakub Kicinski @ 2024-08-08 13:31 UTC (permalink / raw)
To: Abhinav Jain
Cc: davem, edumazet, javier.carrasco.cruz, linux-kernel,
linux-kselftest, netdev, pabeni, shuah, skhan
On Thu, 8 Aug 2024 12:28:47 +0000 Abhinav Jain wrote:
> On Wed, 7 Aug 2024 18:28:34 -0700 Jakub Kicinski wrote:
> > That's not the right syntax..
>
> Thanks for the feedback Jakub. I have rectified this and while at it,
> I tested using vng on a network based kernel and found another issue in
> veth removal logic. I have fixed that as well.
>
> Please kindly check the v5 series here
I'll take a look, but please try to follow the guidance in our process
doc: https://www.kernel.org/doc/html/next/process/maintainer-netdev.html
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2024-08-08 13:31 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-07 17:57 [PATCH v4 0/2] Enhance network interface feature testing Abhinav Jain
2024-08-07 17:57 ` [PATCH v4 1/2] selftests: net: Create veth pair for testing in networkless kernel Abhinav Jain
2024-08-08 1:28 ` Jakub Kicinski
2024-08-08 12:28 ` Abhinav Jain
2024-08-08 13:31 ` Jakub Kicinski
2024-08-07 17:57 ` [PATCH v4 2/2] selftests: net: Add on/off checks for non-fixed features of interface Abhinav Jain
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.