-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
selftests/net: allow GRO coalesce test on veth
This change extends the existing GRO coalesce test to allow running on top of a veth pair, so that no H/W dep is required to run them. By default gro.sh will use the veth backend, and will try to use exiting H/W in loopback mode if a specific device name is provided with the '-i' command line option. No functional change is intended for the loopback-based tests, just move all the relevant initialization/cleanup code into the related script. Introduces a new initialization helper script for the veth backend, and plugs the correct helper script according to the provided command line. Additionally, enable veth-based tests by default. v1 -> v2: - drop unused code in setup_veth_ns() - Willem Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
- Loading branch information
Paolo Abeni
authored and
David S. Miller
committed
Aug 26, 2021
1 parent
8b325d2
commit 9af771d
Showing
4 changed files
with
86 additions
and
37 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
#!/bin/bash | ||
# SPDX-License-Identifier: GPL-2.0 | ||
|
||
setup_veth_ns() { | ||
local -r link_dev="$1" | ||
local -r ns_name="$2" | ||
local -r ns_dev="$3" | ||
local -r ns_mac="$4" | ||
|
||
[[ -e /var/run/netns/"${ns_name}" ]] || ip netns add "${ns_name}" | ||
echo 100000 > "/sys/class/net/${ns_dev}/gro_flush_timeout" | ||
ip link set dev "${ns_dev}" netns "${ns_name}" mtu 65535 | ||
ip -netns "${ns_name}" link set dev "${ns_dev}" up | ||
|
||
ip netns exec "${ns_name}" ethtool -K "${ns_dev}" gro on tso off | ||
} | ||
|
||
setup_ns() { | ||
# Set up server_ns namespace and client_ns namespace | ||
ip link add name server type veth peer name client | ||
|
||
setup_veth_ns "${dev}" server_ns server "${SERVER_MAC}" | ||
setup_veth_ns "${dev}" client_ns client "${CLIENT_MAC}" | ||
} | ||
|
||
cleanup_ns() { | ||
local ns_name | ||
|
||
for ns_name in client_ns server_ns; do | ||
[[ -e /var/run/netns/"${ns_name}" ]] && ip netns del "${ns_name}" | ||
done | ||
} | ||
|
||
setup() { | ||
# no global init setup step needed | ||
: | ||
} | ||
|
||
cleanup() { | ||
cleanup_ns | ||
} |