]> git.ipfire.org Git - thirdparty/systemd.git/blame - src/network/tc/htb.h
license: LGPL-2.1+ -> LGPL-2.1-or-later
[thirdparty/systemd.git] / src / network / tc / htb.h
CommitLineData
db9ecf05 1/* SPDX-License-Identifier: LGPL-2.1-or-later */
b934ac3d
YW
2#pragma once
3
4#include "conf-parser.h"
5#include "qdisc.h"
19f86a63 6#include "tclass.h"
b934ac3d
YW
7
8typedef struct HierarchyTokenBucket {
9 QDisc meta;
10
11 uint32_t default_class;
d9eacc1c 12 uint32_t rate_to_quantum;
b934ac3d
YW
13} HierarchyTokenBucket;
14
15DEFINE_QDISC_CAST(HTB, HierarchyTokenBucket);
16extern const QDiscVTable htb_vtable;
17
18CONFIG_PARSER_PROTOTYPE(config_parse_hierarchy_token_bucket_default_class);
d9eacc1c 19CONFIG_PARSER_PROTOTYPE(config_parse_hierarchy_token_bucket_u32);
19f86a63
YW
20
21typedef struct HierarchyTokenBucketClass {
22 TClass meta;
23
24 uint32_t priority;
d9eacc1c
YW
25 uint32_t quantum;
26 uint32_t mtu;
27 uint16_t overhead;
19f86a63 28 uint64_t rate;
d9eacc1c 29 uint32_t buffer;
19f86a63 30 uint64_t ceil_rate;
d9eacc1c 31 uint32_t ceil_buffer;
19f86a63
YW
32} HierarchyTokenBucketClass;
33
34DEFINE_TCLASS_CAST(HTB, HierarchyTokenBucketClass);
35extern const TClassVTable htb_tclass_vtable;
36
d9eacc1c
YW
37CONFIG_PARSER_PROTOTYPE(config_parse_hierarchy_token_bucket_class_u32);
38CONFIG_PARSER_PROTOTYPE(config_parse_hierarchy_token_bucket_class_size);
39CONFIG_PARSER_PROTOTYPE(config_parse_hierarchy_token_bucket_class_rate);