From ed54648b47779d2ba24ceffd16b7b63ec0845043 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 9 Mar 2026 11:46:01 +0900 Subject: [PATCH] network: route bound to a link requires the link is up We checked if the link is up only when configuring (explicit) nexthop, but we did not checked that when configuring route which has (implicit) nexthop. Let's move the checks from nexthop_is_ready_to_configure() to gateway_is_ready(), which is called for both implicit and explict nexthops. Fixes #40106. --- src/network/networkd-nexthop.c | 5 ----- src/network/networkd-route-util.c | 6 ++++++ 2 files changed, 6 insertions(+), 5 deletions(-) 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;