diff --git a/src/network/tc/qdisc.c b/src/network/tc/qdisc.c index 828fe9ab82..6a4d2043a0 100644 --- a/src/network/tc/qdisc.c +++ b/src/network/tc/qdisc.c @@ -536,6 +536,14 @@ int manager_rtnl_process_qdisc(sd_netlink *rtnl, sd_netlink_message *message, Ma qdisc = TAKE_PTR(tmp); } + if (!m->enumerating) { + /* Some kind of QDisc (e.g. tbf) also create an implicit class under the qdisc, but + * the kernel may not notify about the class. Hence, we need to enumerate classes. */ + r = link_enumerate_tclass(link, qdisc->handle); + if (r < 0) + log_link_warning_errno(link, r, "Failed to enumerate TClass, ignoring: %m"); + } + break; case RTM_DELQDISC: