@@ -21,6 +21,8 @@ CLIENT_GW6="2001:db8:1::2"
MAX_SIZE=128000
CHK_SIZE=65535
+ipv6=true
+
# Kselftest framework requirement - SKIP code is 4.
ksft_skip=4
@@ -34,9 +36,9 @@ setup() {
ip -net $CLIENT_NS link set link0 up
ip -net $CLIENT_NS link set link0 mtu 1442
ip -net $CLIENT_NS addr add $CLIENT_IP4/24 dev link0
- ip -net $CLIENT_NS addr add $CLIENT_IP6/64 dev link0 nodad
+ $ipv6 && ip -net $CLIENT_NS addr add $CLIENT_IP6/64 dev link0 nodad
ip -net $CLIENT_NS route add $SERVER_IP4 dev link0 via $CLIENT_GW4
- ip -net $CLIENT_NS route add $SERVER_IP6 dev link0 via $CLIENT_GW6
+ $ipv6 && ip -net $CLIENT_NS route add $SERVER_IP6 dev link0 via $CLIENT_GW6
ip -net $CLIENT_NS link set dev link0 \
gro_ipv4_max_size $MAX_SIZE gso_ipv4_max_size $MAX_SIZE
ip -net $CLIENT_NS link set dev link0 \
@@ -46,9 +48,9 @@ setup() {
ip -net $ROUTER_NS link set link1 up
ip -net $ROUTER_NS link set link2 up
ip -net $ROUTER_NS addr add $CLIENT_GW4/24 dev link1
- ip -net $ROUTER_NS addr add $CLIENT_GW6/64 dev link1 nodad
+ $ipv6 && ip -net $ROUTER_NS addr add $CLIENT_GW6/64 dev link1 nodad
ip -net $ROUTER_NS addr add $SERVER_GW4/24 dev link2
- ip -net $ROUTER_NS addr add $SERVER_GW6/64 dev link2 nodad
+ $ipv6 && ip -net $ROUTER_NS addr add $SERVER_GW6/64 dev link2 nodad
ip -net $ROUTER_NS link set dev link1 \
gro_ipv4_max_size $MAX_SIZE gso_ipv4_max_size $MAX_SIZE
ip -net $ROUTER_NS link set dev link2 \
@@ -61,16 +63,16 @@ setup() {
ip net exec $ROUTER_NS tc qdisc add dev link1 ingress
ip net exec $ROUTER_NS tc filter add dev link1 ingress \
proto ip flower ip_proto tcp action ct
- ip net exec $ROUTER_NS tc filter add dev link1 ingress \
- proto ipv6 flower ip_proto tcp action ct
+ $ipv6 && ip net exec $ROUTER_NS tc filter add dev link1 ingress \
+ proto ipv6 flower ip_proto tcp action ct
ip net exec $ROUTER_NS sysctl -wq net.ipv4.ip_forward=1
- ip net exec $ROUTER_NS sysctl -wq net.ipv6.conf.all.forwarding=1
+ $ipv6 && ip net exec $ROUTER_NS sysctl -wq net.ipv6.conf.all.forwarding=1
ip -net $SERVER_NS link set link3 up
ip -net $SERVER_NS addr add $SERVER_IP4/24 dev link3
- ip -net $SERVER_NS addr add $SERVER_IP6/64 dev link3 nodad
+ $ipv6 && ip -net $SERVER_NS addr add $SERVER_IP6/64 dev link3 nodad
ip -net $SERVER_NS route add $CLIENT_IP4 dev link3 via $SERVER_GW4
- ip -net $SERVER_NS route add $CLIENT_IP6 dev link3 via $SERVER_GW6
+ $ipv6 && ip -net $SERVER_NS route add $CLIENT_IP6 dev link3 via $SERVER_GW6
ip -net $SERVER_NS link set dev link3 \
gro_ipv4_max_size $MAX_SIZE gso_ipv4_max_size $MAX_SIZE
ip -net $SERVER_NS link set dev link3 \
@@ -165,6 +167,24 @@ testup() {
do_test "off" "on" "off" "on"
}
+usage() {
+ echo "Usage: $0 [ -4 ]"
+ echo -e "\t-4: IPv4 only: disable IPv6 tests (default: test both IPv4 and IPv6)"
+}
+
+optstring="h4"
+while getopts "$optstring" option;do
+ case "$option" in
+ "h")
+ usage $0
+ exit ${KSFT_PASS}
+ ;;
+ "4")
+ ipv6=false
+ ;;
+ esac
+done
+
if ! netperf -V &> /dev/null; then
echo "SKIP: Could not run test without netperf tool"
exit $ksft_skip
@@ -177,6 +197,6 @@ fi
trap cleanup EXIT
setup && echo "Testing for BIG TCP:" && \
-NF=4 testup && echo "***v4 Tests Done***" && \
-NF=6 testup && echo "***v6 Tests Done***"
+NF=4 testup && echo "***v4 Tests Done***" || exit $?
+$ipv6 && NF=6 testup && echo "***v6 Tests Done***"
exit $?