Just three minor details, feel free to ignore: On Mon, 25 Feb 2019 12:13:46 +0100 Paolo Abeni <pab...@redhat.com> wrote:
> @@ -1006,6 +1017,60 @@ test_pmtu_vti6_link_change_mtu() { > return ${fail} > } > > +chk_command() { All the other functions checking something are called 'check_*'. > + cmd=${1} > + > + if ! which ${cmd} > /dev/null 2>&1; then > + err " missing required command: '${cmd}'" > + return 1 > + fi > + return 0 > +} > + > +test_cleanup_vxlanX_exception() { > + outer="${1}" > + encap="vxlan" > + ll_mtu=4000 > + > + chk_command taskset || return 2 > + chk_command timeout || return 2 > + cpu_list=$(grep -m 2 processor /proc/cpuinfo | cut -d ' ' -f 2) > + > + setup namespaces routing ${encap}${outer} || return 2 > + trace "${ns_a}" ${encap}_a "${ns_b}" ${encap}_b \ > + "${ns_a}" veth_A-R1 "${ns_r1}" veth_R1-A \ > + "${ns_b}" veth_B-R1 "${ns_r1}" veth_R1-B > + > + # Create route exception by exceeding link layer MTU > + mtu "${ns_a}" veth_A-R1 $((${ll_mtu} + 1000)) > + mtu "${ns_r1}" veth_R1-A $((${ll_mtu} + 1000)) > + mtu "${ns_b}" veth_B-R1 ${ll_mtu} > + mtu "${ns_r1}" veth_R1-B ${ll_mtu} > + > + mtu "${ns_a}" ${encap}_a $((${ll_mtu} + 1000)) > + mtu "${ns_b}" ${encap}_b $((${ll_mtu} + 1000)) > + > + # Fill exception cache for multiple CPUs (2) > + # we can always use inner IPv4 for that > + for cpu in ${cpu_list}; do > + taskset --cpu-list ${cpu} ${ns_a} ping -q -M want -i 0.1 -w 1 > -s $((${ll_mtu} + 500)) ${tunnel4_b_addr} > /dev/null > + done > + > + if ! timeout 1 ${ns_a} ip link del dev veth_A-R1; then > + err " can't delete veth device in a timely manner, PMTU dst > likely leaked" > + return 1 > + fi > + return 0 No need for explicit return 0. > +} > + > +test_pmtu_ipv6_exception_cleanup() { > + test_cleanup_vxlanX_exception 6 vxlan > +} > + > +test_pmtu_ipv4_exception_cleanup() { > + test_cleanup_vxlanX_exception 4 vxlan This function now takes just one argument. -- Stefano