diff --git a/pkg/ip/addr_linux.go b/pkg/ip/addr_linux.go index 53383de8c..276bb36c3 100644 --- a/pkg/ip/addr_linux.go +++ b/pkg/ip/addr_linux.go @@ -66,9 +66,16 @@ func SettleAddresses(ifName string, timeout time.Duration) error { return nil } if time.Now().After(deadline) { - return fmt.Errorf("link %s still has tentative addresses after %d seconds", - ifName, - timeout) + link, err := netlinksafe.LinkByName(ifName) + if err != nil { + return fmt.Errorf("failed to retrieve link: %v", err) + } + if link.Attrs().OperState == netlink.OperUp { + return fmt.Errorf("link %s still has tentative addresses after %d seconds", + ifName, + timeout) + } + return nil } time.Sleep(SETTLE_INTERVAL)