On 3/17/22 6:45 AM, Guillaume Nault wrote:
Add two tests to pmtu.sh, for verifying that PMTU exceptions get properly created for routes that don't belong to the main table.
A fib-rule based on the packet's DSCP field is used to jump to the correct table. ECN shouldn't interfere with this process, so each test has two components: one that only sets DSCP and one that sets both DSCP and ECN.
One of the test triggers PMTU exceptions using ICMP Echo Requests, the other using UDP packets (to test different handlers in the kernel).
A few adjustments are necessary in the rest of the script to allow policy routing scenarios:
Add global variable rt_table that allows setup_routing_*() to add routes to a specific routing table. By default rt_table is set to "main", so existing tests don't need to be modified.
Another global variable, policy_mark, is used to define which dsfield value is used for policy routing. This variable has no effect on tests that don't use policy routing.
The UDP version of the test uses socat. So cleanup() now also need to kill socat PIDs.
route_get_dst_pmtu_from_exception() and route_get_dst_exception() now take an optional third argument specifying the dsfield. If not specified, 0 is used, so existing users don't need to be modified.
Signed-off-by: Guillaume Nault gnault@redhat.com
tools/testing/selftests/net/pmtu.sh | 141 +++++++++++++++++++++++++++- 1 file changed, 137 insertions(+), 4 deletions(-)
Reviewed-by: David Ahern dsahern@kernel.org