diff --git a/src/network/networkd-nexthop.c b/src/network/networkd-nexthop.c index 81eb85b4a0..0e453e1597 100644 --- a/src/network/networkd-nexthop.c +++ b/src/network/networkd-nexthop.c @@ -784,11 +784,6 @@ static bool nexthop_is_ready_to_configure(Link *link, const NextHop *nexthop) { if (nexthop_bound_to_link(nexthop)) { assert(nexthop->ifindex == link->ifindex); - if (link->set_flags_messages > 0) - return false; - if (!link_is_up(link)) - return false; - return gateway_is_ready(link, FLAGS_SET(nexthop->flags, RTNH_F_ONLINK), nexthop->family, &nexthop->gw.address); } diff --git a/src/network/networkd-route-util.c b/src/network/networkd-route-util.c index 37ace2d335..3a7156fc41 100644 --- a/src/network/networkd-route-util.c +++ b/src/network/networkd-route-util.c @@ -139,6 +139,12 @@ bool gateway_is_ready(Link *link, bool onlink, int family, const union in_addr_u assert(link); assert(link->manager); + if (link->set_flags_messages > 0) + return false; + + if (!link_is_up(link)) + return false; + if (onlink) return true;