• Petr Machata's avatar
    selftests: mirror: do_test_span_dir_ips(): Install accurate taps · 83341535
    Petr Machata authored
    The mirroring selftests work by sending ICMP traffic between two hosts.
    Along the way, this traffic is mirrored to a gretap netdevice, and counter
    taps are then installed strategically along the path of the mirrored
    traffic to verify the mirroring took place.
    
    The problem with this is that besides mirroring the primary traffic, any
    other service traffic is mirrored as well. At the same time, because the
    tests need to work in HW-offloaded scenarios, the ability of the device to
    do arbitrary packet inspection should not be taken for granted. Most tests
    therefore simply use matchall, one uses flower to match on IP address.
    
    As a result, the selftests are noisy, because besides the primary ICMP
    traffic, any amount of other service traffic is mirrored as well.
    
    However, often the counter tap is installed at the remote end of the gretap
    tunnel. Since this is a SW-datapath scenario anyway, we can make the filter
    arbitrarily accurate.
    
    Thus in this patch, add parameters forward_type and backward_type to
    several mirroring test helpers, as some other helpers already have. Then
    change do_test_span_dir_ips() to instead of installing one generic tap and
    using it for test in both directions, install the tap for each direction
    separately, matching on the ICMP type given by these parameters.
    Signed-off-by: default avatarPetr Machata <petrm@nvidia.com>
    Reviewed-by: default avatarDanielle Ratson <danieller@nvidia.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    83341535
mirror_gre.sh 3.27 KB