1
0
mirror of https://passt.top/passt synced 2024-12-22 21:55:22 +00:00
passt/test/passt
David Gibson c6e6106413 test: Improve logic for waiting for SLAAC & DAD to complete in NDP tests
Since 9a0e544f05 the NDP tests attempt to explicitly wait for DAD to
complete, rather than just having a hard coded sleep.  However, the
conditions we use are a bit sloppy and allow for a number of possible cases
where it might not work correctly.  Stefano seems to be hitting one of
these (though I'm not sure which) with some later patches.

 - We wait for *lack* of a tentative address, so if the first check occurs
   before we have even a tentative address it will bypass the delay
 - It's not entirely clear if the permanent address will always appear
   as soon as the tentative address disappears
 - We weren't filtering on interface
 - We were doing the filtering with ip-address options rather than in jq.
   However in at least in some circumstances this seems to result in an
   empty .addr_info field, rather than omitting it entirely, which could
   cause us to get the wrong result

So, instead, explicitly wait for the address we need to be present: an
RA provided address on the external interface.  While we're here we remove
the requirement that it have global scope: the "kernel_ra" check is already
sufficient to make sure this address comes from an NDP RA, not something
else.  If it's not the global scope address we expect, better to check it
and fail, rather than keep waiting.

Fixes: 9a0e544f05 ("test: Improve test for NDP assigned prefix")
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
2024-11-26 08:30:18 +01:00
..
dhcp test: Wait for DAD on DHCPv6 addresses 2024-10-18 20:27:51 +02:00
ndp test: Improve logic for waiting for SLAAC & DAD to complete in NDP tests 2024-11-26 08:30:18 +01:00
shutdown passt: Relicense to GPL 2.0, or any later version 2023-04-06 18:00:33 +02:00
tcp passt: Relicense to GPL 2.0, or any later version 2023-04-06 18:00:33 +02:00
udp passt: Relicense to GPL 2.0, or any later version 2023-04-06 18:00:33 +02:00