Commit b964641e authored by Stefano Brivio's avatar Stefano Brivio Committed by David S. Miller

selftests: pmtu: Make list_flush_ipv6_exception test more demanding

Instead of just listing and flushing two cached exceptions, create
a relatively big number of them, and count how many are listed. Single
netlink dump messages contain approximately 25 entries each, and this
way we can make sure the partial dump tracking mechanism is working
properly.

While at it, also ensure that no cached routes can be listed after
flush, and remove 'sleep 1' calls, they are not actually needed.

v7: No changes

v6:
  - Merge this patch into series including fix, as it's also targeted
    for net-next. No actual changes
Signed-off-by: default avatarStefano Brivio <sbrivio@redhat.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent de755a85
...@@ -1274,7 +1274,7 @@ test_list_flush_ipv6_exception() { ...@@ -1274,7 +1274,7 @@ test_list_flush_ipv6_exception() {
"${ns_a}" veth_A-R2 "${ns_r2}" veth_R2-A \ "${ns_a}" veth_A-R2 "${ns_r2}" veth_R2-A \
"${ns_r2}" veth_R2-B "${ns_b}" veth_B-R2 "${ns_r2}" veth_R2-B "${ns_b}" veth_B-R2
dst1="${prefix6}:${b_r1}::1" dst_prefix1="${prefix6}:${b_r1}::"
dst2="${prefix6}:${b_r2}::1" dst2="${prefix6}:${b_r2}::1"
# Set up initial MTU values # Set up initial MTU values
...@@ -1290,20 +1290,26 @@ test_list_flush_ipv6_exception() { ...@@ -1290,20 +1290,26 @@ test_list_flush_ipv6_exception() {
fail=0 fail=0
# Create route exceptions # Add 100 addresses for veth endpoint on B reached by default A route
run_cmd ${ns_a} ${ping6} -q -M want -i 0.1 -w 1 -s 1800 ${dst1} for i in $(seq 100 199); do
run_cmd ${ns_a} ${ping6} -q -M want -i 0.1 -w 1 -s 1800 ${dst2} run_cmd ${ns_b} ip addr add "${dst_prefix1}${i}" dev veth_B-R1
done
if [ "$(${ns_a} ip -6 route list cache | wc -l)" -ne 2 ]; then # Create 100 cached route exceptions for path via R1, one via R2
for i in $(seq 100 199); do
run_cmd ${ns_a} ping -q -M want -i 0.1 -w 1 -s 1800 "${dst_prefix1}${i}"
done
run_cmd ${ns_a} ping -q -M want -i 0.1 -w 1 -s 1800 "${dst2}"
if [ "$(${ns_a} ip -6 route list cache | wc -l)" -ne 101 ]; then
err " can't list cached exceptions" err " can't list cached exceptions"
fail=1 fail=1
fi fi
run_cmd ${ns_a} ip -6 route flush cache run_cmd ${ns_a} ip -6 route flush cache
sleep 1 pmtu1="$(route_get_dst_pmtu_from_exception "${ns_a}" "${dst_prefix1}100")"
pmtu1="$(route_get_dst_pmtu_from_exception "${ns_a}" ${dst1})"
pmtu2="$(route_get_dst_pmtu_from_exception "${ns_a}" ${dst2})" pmtu2="$(route_get_dst_pmtu_from_exception "${ns_a}" ${dst2})"
if [ -n "${pmtu1}" ] || [ -n "${pmtu2}" ]; then if [ -n "${pmtu1}" ] || [ -n "${pmtu2}" ] || \
[ -n "$(${ns_a} ip -6 route list cache)" ]; then
err " can't flush cached exceptions" err " can't flush cached exceptions"
fail=1 fail=1
fi fi
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment