• Guillaume Nault's avatar
    selftest: net: Test IPv4 PMTU exceptions with DSCP and ECN · ec730c3e
    Guillaume Nault authored
    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: default avatarGuillaume Nault <gnault@redhat.com>
    Reviewed-by: default avatarDavid Ahern <dsahern@kernel.org>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    ec730c3e
pmtu.sh 69.6 KB