2020-11-09 05:23:58 +01:00
|
|
|
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
2020-02-10 11:41:12 +01:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "conf-parser.h"
|
|
|
|
#include "qdisc.h"
|
2020-02-12 01:52:56 +01:00
|
|
|
#include "tclass.h"
|
2020-02-10 11:41:12 +01:00
|
|
|
|
|
|
|
typedef struct HierarchyTokenBucket {
|
|
|
|
QDisc meta;
|
|
|
|
|
|
|
|
uint32_t default_class;
|
2020-06-08 10:36:52 +02:00
|
|
|
uint32_t rate_to_quantum;
|
2020-02-10 11:41:12 +01:00
|
|
|
} HierarchyTokenBucket;
|
|
|
|
|
|
|
|
DEFINE_QDISC_CAST(HTB, HierarchyTokenBucket);
|
|
|
|
extern const QDiscVTable htb_vtable;
|
|
|
|
|
|
|
|
CONFIG_PARSER_PROTOTYPE(config_parse_hierarchy_token_bucket_default_class);
|
2020-06-08 10:36:52 +02:00
|
|
|
CONFIG_PARSER_PROTOTYPE(config_parse_hierarchy_token_bucket_u32);
|
2020-02-12 01:52:56 +01:00
|
|
|
|
|
|
|
typedef struct HierarchyTokenBucketClass {
|
|
|
|
TClass meta;
|
|
|
|
|
|
|
|
uint32_t priority;
|
2020-06-08 10:36:52 +02:00
|
|
|
uint32_t quantum;
|
|
|
|
uint32_t mtu;
|
|
|
|
uint16_t overhead;
|
2020-02-12 01:52:56 +01:00
|
|
|
uint64_t rate;
|
2020-06-08 10:36:52 +02:00
|
|
|
uint32_t buffer;
|
2020-02-12 01:52:56 +01:00
|
|
|
uint64_t ceil_rate;
|
2020-06-08 10:36:52 +02:00
|
|
|
uint32_t ceil_buffer;
|
2020-02-12 01:52:56 +01:00
|
|
|
} HierarchyTokenBucketClass;
|
|
|
|
|
|
|
|
DEFINE_TCLASS_CAST(HTB, HierarchyTokenBucketClass);
|
|
|
|
extern const TClassVTable htb_tclass_vtable;
|
|
|
|
|
2020-06-08 10:36:52 +02:00
|
|
|
CONFIG_PARSER_PROTOTYPE(config_parse_hierarchy_token_bucket_class_u32);
|
|
|
|
CONFIG_PARSER_PROTOTYPE(config_parse_hierarchy_token_bucket_class_size);
|
|
|
|
CONFIG_PARSER_PROTOTYPE(config_parse_hierarchy_token_bucket_class_rate);
|