From: Yu Watanabe Date: Sat, 6 Aug 2022 03:32:23 +0000 (+0900) Subject: network/teql: wait for corresponding teql interface to be available X-Git-Tag: v252-rc1~484^2~8 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9b2a2e06c470df1af01f636bc549103968b6275c;p=thirdparty%2Fsystemd.git network/teql: wait for corresponding teql interface to be available --- diff --git a/src/network/tc/teql.c b/src/network/tc/teql.c index 1422860f55d..9fd9e090069 100644 --- a/src/network/tc/teql.c +++ b/src/network/tc/teql.c @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #include "macro.h" +#include "networkd-link.h" #include "parse-util.h" #include "string-util.h" #include "teql.h" @@ -17,9 +18,24 @@ static int trivial_link_equalizer_verify(QDisc *qdisc) { return free_and_replace(qdisc->tca_kind, tca_kind); } +static int trivial_link_equalizer_is_ready(QDisc *qdisc, Link *link) { + Link *teql; + + assert(qdisc); + assert(qdisc->tca_kind); + assert(link); + assert(link->manager); + + if (link_get_by_name(link->manager, qdisc->tca_kind, &teql) < 0) + return false; + + return link_is_ready_to_configure(teql, /* allow_unmanaged = */ true); +} + const QDiscVTable teql_vtable = { .object_size = sizeof(TrivialLinkEqualizer), .verify = trivial_link_equalizer_verify, + .is_ready = trivial_link_equalizer_is_ready, }; int config_parse_trivial_link_equalizer_id(