network: Remove circular header dependencies in network/tc

Include the headers in the implementation file (and the gperf file)
instead of in the qdisc.h header. I opted to keep them separate from
the other headers since they're slightly different than regular headers.
This commit is contained in:
Daan De Meyer
2025-04-23 10:33:37 +02:00
parent 02d83a8a1e
commit 72673948f3
12 changed files with 54 additions and 29 deletions
+21
View File
@@ -41,6 +41,27 @@ _Pragma("GCC diagnostic ignored \"-Wzero-as-null-pointer-constant\"")
#include "qdisc.h"
#include "tclass.h"
#include "vlan-util.h"
#include "cake.h"
#include "codel.h"
#include "ets.h"
#include "fifo.h"
#include "fq-codel.h"
#include "fq-pie.h"
#include "fq.h"
#include "gred.h"
#include "hhf.h"
#include "htb.h"
#include "mq.h"
#include "multiq.h"
#include "pie.h"
#include "qfq.h"
#include "netem.h"
#include "drr.h"
#include "sfb.h"
#include "sfq.h"
#include "tbf.h"
#include "teql.h"
%}
struct ConfigPerfItem;
%null_strings
+1 -1
View File
@@ -4,10 +4,10 @@
#include <linux/pkt_sched.h>
#include "alloc-util.h"
#include "codel.h"
#include "conf-parser.h"
#include "netlink-util.h"
#include "parse-util.h"
#include "qdisc.h"
#include "string-util.h"
static int controlled_delay_init(QDisc *qdisc) {
+1
View File
@@ -3,6 +3,7 @@
#pragma once
#include "qdisc.h"
#include "tclass.h"
typedef struct DeficitRoundRobinScheduler {
QDisc meta;
+1 -1
View File
@@ -5,9 +5,9 @@
#include "alloc-util.h"
#include "conf-parser.h"
#include "fq-codel.h"
#include "netlink-util.h"
#include "parse-util.h"
#include "qdisc.h"
#include "string-util.h"
#include "strv.h"
+1 -1
View File
@@ -5,9 +5,9 @@
#include "alloc-util.h"
#include "conf-parser.h"
#include "gred.h"
#include "netlink-util.h"
#include "parse-util.h"
#include "qdisc.h"
#include "string-util.h"
static int generic_random_early_detection_init(QDisc *qdisc) {
+2
View File
@@ -1,5 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include <linux/pkt_sched.h>
#include "multiq.h"
static int multi_queueing_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
+21
View File
@@ -18,6 +18,27 @@
#include "strv.h"
#include "tc-util.h"
#include "cake.h"
#include "codel.h"
#include "ets.h"
#include "fifo.h"
#include "fq-codel.h"
#include "fq-pie.h"
#include "fq.h"
#include "gred.h"
#include "hhf.h"
#include "htb.h"
#include "mq.h"
#include "multiq.h"
#include "pie.h"
#include "qfq.h"
#include "netem.h"
#include "drr.h"
#include "sfb.h"
#include "sfq.h"
#include "tbf.h"
#include "teql.h"
const QDiscVTable * const qdisc_vtable[_QDISC_KIND_MAX] = {
[QDISC_KIND_BFIFO] = &bfifo_vtable,
[QDISC_KIND_CAKE] = &cake_vtable,
-21
View File
@@ -97,24 +97,3 @@ DEFINE_SECTION_CLEANUP_FUNCTIONS(QDisc, qdisc_unref);
CONFIG_PARSER_PROTOTYPE(config_parse_qdisc_parent);
CONFIG_PARSER_PROTOTYPE(config_parse_qdisc_handle);
#include "cake.h"
#include "codel.h"
#include "ets.h"
#include "fifo.h"
#include "fq-codel.h"
#include "fq-pie.h"
#include "fq.h"
#include "gred.h"
#include "hhf.h"
#include "htb.h"
#include "mq.h"
#include "multiq.h"
#include "pie.h"
#include "qfq.h"
#include "netem.h"
#include "drr.h"
#include "sfb.h"
#include "sfq.h"
#include "tbf.h"
#include "teql.h"
+1
View File
@@ -4,6 +4,7 @@
#include "conf-parser.h"
#include "qdisc.h"
#include "tclass.h"
typedef struct QuickFairQueueing {
QDisc meta;
+1 -1
View File
@@ -10,9 +10,9 @@
#include "netlink-util.h"
#include "networkd-manager.h"
#include "parse-util.h"
#include "qdisc.h"
#include "string-util.h"
#include "strv.h"
#include "tbf.h"
#include "tc-util.h"
static int token_bucket_filter_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
+4
View File
@@ -18,6 +18,10 @@
#include "tc-util.h"
#include "tclass.h"
#include "drr.h"
#include "htb.h"
#include "qfq.h"
const TClassVTable * const tclass_vtable[_TCLASS_KIND_MAX] = {
[TCLASS_KIND_DRR] = &drr_tclass_vtable,
[TCLASS_KIND_HTB] = &htb_tclass_vtable,
-4
View File
@@ -77,7 +77,3 @@ DEFINE_SECTION_CLEANUP_FUNCTIONS(TClass, tclass_unref);
CONFIG_PARSER_PROTOTYPE(config_parse_tclass_parent);
CONFIG_PARSER_PROTOTYPE(config_parse_tclass_classid);
#include "drr.h"
#include "htb.h"
#include "qfq.h"