lkml.org 
[lkml]   [2022]   [Apr]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 051/124] selftests: mlxsw: vxlan_flooding: Prevent flooding of unwanted packets
    Date
    From: Ido Schimmel <idosch@nvidia.com>

    [ Upstream commit 044011fdf162c5dd61c02841930c8f438a9adadb ]

    The test verifies that packets are correctly flooded by the bridge and
    the VXLAN device by matching on the encapsulated packets at the other
    end. However, if packets other than those generated by the test also
    ingress the bridge (e.g., MLD packets), they will be flooded as well and
    interfere with the expected count.

    Make the test more robust by making sure that only the packets generated
    by the test can ingress the bridge. Drop all the rest using tc filters
    on the egress of 'br0' and 'h1'.

    In the software data path, the problem can be solved by matching on the
    inner destination MAC or dropping unwanted packets at the egress of the
    VXLAN device, but this is not currently supported by mlxsw.

    Fixes: 94d302deae25 ("selftests: mlxsw: Add a test for VxLAN flooding")
    Signed-off-by: Ido Schimmel <idosch@nvidia.com>
    Reviewed-by: Amit Cohen <amcohen@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    .../drivers/net/mlxsw/vxlan_flooding.sh | 17 +++++++++++++++++
    1 file changed, 17 insertions(+)

    diff --git a/tools/testing/selftests/drivers/net/mlxsw/vxlan_flooding.sh b/tools/testing/selftests/drivers/net/mlxsw/vxlan_flooding.sh
    index fedcb7b35af9..af5ea50ed5c0 100755
    --- a/tools/testing/selftests/drivers/net/mlxsw/vxlan_flooding.sh
    +++ b/tools/testing/selftests/drivers/net/mlxsw/vxlan_flooding.sh
    @@ -172,6 +172,17 @@ flooding_filters_add()
    local lsb
    local i

    + # Prevent unwanted packets from entering the bridge and interfering
    + # with the test.
    + tc qdisc add dev br0 clsact
    + tc filter add dev br0 egress protocol all pref 1 handle 1 \
    + matchall skip_hw action drop
    + tc qdisc add dev $h1 clsact
    + tc filter add dev $h1 egress protocol all pref 1 handle 1 \
    + flower skip_hw dst_mac de:ad:be:ef:13:37 action pass
    + tc filter add dev $h1 egress protocol all pref 2 handle 2 \
    + matchall skip_hw action drop
    +
    tc qdisc add dev $rp2 clsact

    for i in $(eval echo {1..$num_remotes}); do
    @@ -194,6 +205,12 @@ flooding_filters_del()
    done

    tc qdisc del dev $rp2 clsact
    +
    + tc filter del dev $h1 egress protocol all pref 2 handle 2 matchall
    + tc filter del dev $h1 egress protocol all pref 1 handle 1 flower
    + tc qdisc del dev $h1 clsact
    + tc filter del dev br0 egress protocol all pref 1 handle 1 matchall
    + tc qdisc del dev br0 clsact
    }

    flooding_check_packets()
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-04-26 11:10    [W:4.087 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site