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@xxxxxxxxxx> > --- > tools/testing/selftests/net/pmtu.sh | 141 +++++++++++++++++++++++++++- > 1 file changed, 137 insertions(+), 4 deletions(-) > Reviewed-by: David Ahern <dsahern@xxxxxxxxxx>