OSDN Git Service

selftests: forwarding: Fix race condition in mirror installation
authorDanielle Ratson <danieller@nvidia.com>
Tue, 20 Jun 2023 12:45:15 +0000 (14:45 +0200)
committerPaolo Abeni <pabeni@redhat.com>
Thu, 22 Jun 2023 08:03:07 +0000 (10:03 +0200)
commitc7c059fba6fb19c3bc924925c984772e733cb594
tree4355fb966aefca950da60353703a4da8de8abfa3
parent7f4e09700bdc13ce9aafa279bc999051e9bcda35
selftests: forwarding: Fix race condition in mirror installation

When mirroring to a gretap in hardware the device expects to be
programmed with the egress port and all the encapsulating headers. This
requires the driver to resolve the path the packet will take in the
software data path and program the device accordingly.

If the path cannot be resolved (in this case because of an unresolved
neighbor), then mirror installation fails until the path is resolved.
This results in a race that causes the test to sometimes fail.

Fix this by setting the neighbor's state to permanent in a couple of
tests, so that it is always valid.

Fixes: 35c31d5c323f ("selftests: forwarding: Test mirror-to-gretap w/ UL 802.1d")
Fixes: 239e754af854 ("selftests: forwarding: Test mirror-to-gretap w/ UL 802.1q")
Signed-off-by: Danielle Ratson <danieller@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Petr Machata <petrm@nvidia.com>
Link: https://lore.kernel.org/r/268816ac729cb6028c7a34d4dda6f4ec7af55333.1687264607.git.petrm@nvidia.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
tools/testing/selftests/net/forwarding/mirror_gre_bridge_1d.sh
tools/testing/selftests/net/forwarding/mirror_gre_bridge_1q.sh