linux/tools/testing/selftests/net/ip_defrag.sh
Peter Oskolkov 02c7f38b7a selftests/net: add ip_defrag selftest
This test creates a raw IPv4 socket, fragments a largish UDP
datagram and sends the fragments out of order.

Then repeats in a loop with different message and fragment lengths.

Then does the same with overlapping fragments (with overlapping
fragments the expectation is that the recv times out).

Tested:

root@<host># time ./ip_defrag.sh
ipv4 defrag
PASS
ipv4 defrag with overlaps
PASS

real    1m7.679s
user    0m0.628s
sys     0m2.242s

A similar test for IPv6 is to follow.

Signed-off-by: Peter Oskolkov <posk@google.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2018-08-29 19:49:36 -07:00

29 lines
537 B
Bash
Executable File

#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
#
# Run a couple of IP defragmentation tests.
set +x
set -e
echo "ipv4 defrag"
run_v4() {
sysctl -w net.ipv4.ipfrag_high_thresh=9000000 &> /dev/null
sysctl -w net.ipv4.ipfrag_low_thresh=7000000 &> /dev/null
./ip_defrag -4
}
export -f run_v4
./in_netns.sh "run_v4"
echo "ipv4 defrag with overlaps"
run_v4o() {
sysctl -w net.ipv4.ipfrag_high_thresh=9000000 &> /dev/null
sysctl -w net.ipv4.ipfrag_low_thresh=7000000 &> /dev/null
./ip_defrag -4o
}
export -f run_v4o
./in_netns.sh "run_v4o"