On 2024-04-15 18:25 +0200, Jiri Pirko wrote: > From: Jiri Pirko <jiri@xxxxxxxxxx> > > The existing setup_wait*() helper family check the status of the > interface to be up. Introduce wait_for_dev() to wait for the netdevice > to appear, for example after test script does manual device bind. > > Signed-off-by: Jiri Pirko <jiri@xxxxxxxxxx> > --- > v1->v2: > - reworked wait_for_dev() helper to use slowwait() helper > --- > tools/testing/selftests/net/forwarding/lib.sh | 13 +++++++++++++ > 1 file changed, 13 insertions(+) > > diff --git a/tools/testing/selftests/net/forwarding/lib.sh b/tools/testing/selftests/net/forwarding/lib.sh > index 254698c6ba56..e85b361dc85d 100644 > --- a/tools/testing/selftests/net/forwarding/lib.sh > +++ b/tools/testing/selftests/net/forwarding/lib.sh > @@ -746,6 +746,19 @@ setup_wait() > sleep $WAIT_TIME > } > > +wait_for_dev() > +{ > + local dev=$1; shift > + local timeout=${1:-$WAIT_TIMEOUT}; shift > + > + slowwait $timeout ip link show dev $dev up &> /dev/null Sorry, I just noticed that this includes the "up" flag. I was confused for a while until I realized that `ip` returns success even if the interface is not up: # ip link set dev eth1 down # ip link show dev eth1 up # echo $? 0 So wait_for_dev() really does just wait for the device to appear, not for it to be up. If you agree, please remove the 'up' keyword to avoid confusion.