selftests: add explicit test for multiple concurrent GRO sockets
This covers for proper accounting of encap needed static keys Signed-off-by: Paolo Abeni <pabeni@redhat.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
b24b767fb1
commit
9c549a6b05
|
@ -91,6 +91,28 @@ run_one_nat() {
|
|||
wait $(jobs -p)
|
||||
}
|
||||
|
||||
run_one_2sock() {
|
||||
# use 'rx' as separator between sender args and receiver args
|
||||
local -r all="$@"
|
||||
local -r tx_args=${all%rx*}
|
||||
local -r rx_args=${all#*rx}
|
||||
|
||||
cfg_veth
|
||||
|
||||
ip netns exec "${PEER_NS}" ./udpgso_bench_rx ${rx_args} -p 12345 &
|
||||
ip netns exec "${PEER_NS}" ./udpgso_bench_rx ${rx_args} && \
|
||||
echo "ok" || \
|
||||
echo "failed" &
|
||||
|
||||
# Hack: let bg programs complete the startup
|
||||
sleep 0.1
|
||||
./udpgso_bench_tx ${tx_args} -p 12345
|
||||
sleep 0.1
|
||||
# first UDP GSO socket should be closed at this point
|
||||
./udpgso_bench_tx ${tx_args}
|
||||
wait $(jobs -p)
|
||||
}
|
||||
|
||||
run_nat_test() {
|
||||
local -r args=$@
|
||||
|
||||
|
@ -98,6 +120,13 @@ run_nat_test() {
|
|||
./in_netns.sh $0 __subprocess_nat $2 rx -r $3
|
||||
}
|
||||
|
||||
run_2sock_test() {
|
||||
local -r args=$@
|
||||
|
||||
printf " %-40s" "$1"
|
||||
./in_netns.sh $0 __subprocess_2sock $2 rx -G -r $3
|
||||
}
|
||||
|
||||
run_all() {
|
||||
local -r core_args="-l 4"
|
||||
local -r ipv4_args="${core_args} -4 -D 192.168.1.1"
|
||||
|
@ -120,6 +149,7 @@ run_all() {
|
|||
run_test "GRO with custom segment size cmsg" "${ipv4_args} -M 1 -s 14720 -S 500 " "-4 -n 1 -l 14720 -S 500"
|
||||
|
||||
run_nat_test "bad GRO lookup" "${ipv4_args} -M 1 -s 14720 -S 0" "-n 10 -l 1472"
|
||||
run_2sock_test "multiple GRO socks" "${ipv4_args} -M 1 -s 14720 -S 0 " "-4 -n 1 -l 14720 -S 1472"
|
||||
|
||||
echo "ipv6"
|
||||
run_test "no GRO" "${ipv6_args} -M 10 -s 1400" "-n 10 -l 1400"
|
||||
|
@ -130,6 +160,7 @@ run_all() {
|
|||
run_test "GRO with custom segment size cmsg" "${ipv6_args} -M 1 -s 14520 -S 500" "-n 1 -l 14520 -S 500"
|
||||
|
||||
run_nat_test "bad GRO lookup" "${ipv6_args} -M 1 -s 14520 -S 0" "-n 10 -l 1452"
|
||||
run_2sock_test "multiple GRO socks" "${ipv6_args} -M 1 -s 14520 -S 0 " "-n 1 -l 14520 -S 1452"
|
||||
}
|
||||
|
||||
if [ ! -f ../bpf/xdp_dummy.o ]; then
|
||||
|
@ -145,4 +176,7 @@ elif [[ $1 == "__subprocess" ]]; then
|
|||
elif [[ $1 == "__subprocess_nat" ]]; then
|
||||
shift
|
||||
run_one_nat $@
|
||||
elif [[ $1 == "__subprocess_2sock" ]]; then
|
||||
shift
|
||||
run_one_2sock $@
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue