selftests: netfilter: add MTU arguments to flowtables

Add some documentation, default values defined in original
script and Originator/Link/Responder arguments
using getopts like in tools/power/cpupower/bench/cpufreq-bench_plot.sh

Signed-off-by: Fabian Frederick <fabf@skynet.be>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
This commit is contained in:
Fabian Frederick 2020-08-07 21:31:50 +02:00 committed by Pablo Neira Ayuso
parent 6d006a4e38
commit dd08734d8a
1 changed files with 24 additions and 6 deletions

View File

@ -2,13 +2,18 @@
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
# #
# This tests basic flowtable functionality. # This tests basic flowtable functionality.
# Creates following topology: # Creates following default topology:
# #
# Originator (MTU 9000) <-Router1-> MTU 1500 <-Router2-> Responder (MTU 2000) # Originator (MTU 9000) <-Router1-> MTU 1500 <-Router2-> Responder (MTU 2000)
# Router1 is the one doing flow offloading, Router2 has no special # Router1 is the one doing flow offloading, Router2 has no special
# purpose other than having a link that is smaller than either Originator # purpose other than having a link that is smaller than either Originator
# and responder, i.e. TCPMSS announced values are too large and will still # and responder, i.e. TCPMSS announced values are too large and will still
# result in fragmentation and/or PMTU discovery. # result in fragmentation and/or PMTU discovery.
#
# You can check with different Orgininator/Link/Responder MTU eg:
# sh nft_flowtable.sh -o1000 -l500 -r100
#
# Kselftest framework requirement - SKIP code is 4. # Kselftest framework requirement - SKIP code is 4.
ksft_skip=4 ksft_skip=4
@ -78,11 +83,24 @@ ip -net nsr2 addr add dead:2::1/64 dev veth1
# ns2 is going via nsr2 with a smaller mtu, so that TCPMSS announced by both peers # ns2 is going via nsr2 with a smaller mtu, so that TCPMSS announced by both peers
# is NOT the lowest link mtu. # is NOT the lowest link mtu.
ip -net nsr1 link set veth0 mtu 9000 omtu=9000
ip -net ns1 link set eth0 mtu 9000 lmtu=1500
rmtu=2000
ip -net nsr2 link set veth1 mtu 2000 while getopts "o:l:r:" o
ip -net ns2 link set eth0 mtu 2000 do
case $o in
o) omtu=$OPTARG;;
l) lmtu=$OPTARG;;
r) rmtu=$OPTARG;;
esac
done
ip -net nsr1 link set veth0 mtu $omtu
ip -net ns1 link set eth0 mtu $omtu
ip -net nsr2 link set veth1 mtu $rmtu
ip -net ns2 link set eth0 mtu $rmtu
# transfer-net between nsr1 and nsr2. # transfer-net between nsr1 and nsr2.
# these addresses are not used for connections. # these addresses are not used for connections.
@ -136,7 +154,7 @@ table inet filter {
# as PMTUd is off. # as PMTUd is off.
# This rule is deleted for the last test, when we expect PMTUd # This rule is deleted for the last test, when we expect PMTUd
# to kick in and ensure all packets meet mtu requirements. # to kick in and ensure all packets meet mtu requirements.
meta length gt 1500 accept comment something-to-grep-for meta length gt $lmtu accept comment something-to-grep-for
# next line blocks connection w.o. working offload. # next line blocks connection w.o. working offload.
# we only do this for reverse dir, because we expect packets to # we only do this for reverse dir, because we expect packets to