selftests: forwarding: Fix race condition in mirror installation
authorDanielle Ratson <danieller@nvidia.com>
Thu, 25 Feb 2021 16:57:19 +0000 (18:57 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Mar 2021 16:06:17 +0000 (17:06 +0100)
commit824c94cbf4d6050892633a443df9d9cb4f72ad9d
treedf6ba05e0fb3685014dd23eb49413ffb1b581c7b
parentc1e1a64a23136b47844e71991b3cdd4acb2f57d8
selftests: forwarding: Fix race condition in mirror installation

commit edcbf5137f093b5502f5f6b97cce3cbadbde27aa upstream.

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, so that it is
always valid.

Fixes: b5b029399fa6d ("selftests: forwarding: mirror_gre_bridge_1d_vlan: Add STP test")
Signed-off-by: Danielle Ratson <danieller@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tools/testing/selftests/net/forwarding/mirror_gre_bridge_1d_vlan.sh