mirror of
https://git.kernel.org/pub/scm/network/iproute2/iproute2.git
synced 2024-11-16 14:35:34 +08:00
8334bb325d
Starting from linux-3.13, we can break the 32bit limitation of rates on HTB qdisc/classes. Prior limit was 34.359.738.360 bits per second. lpq83:~# tc -s qdisc show dev lo ; tc -s class show dev lo qdisc htb 1: root refcnt 2 r2q 2000 default 1 direct_packets_stat 0 direct_qlen 6000 Sent 6591936144493 bytes 149549182 pkt (dropped 0, overlimits 213757419 requeues 0) rate 39464Mbit 114938pps backlog 0b 15p requeues 0 class htb 1:1 root prio 0 rate 50000Mbit ceil 50000Mbit burst 200000b cburst 0b Sent 6591942184547 bytes 149549310 pkt (dropped 0, overlimits 0 requeues 0) rate 39464Mbit 114938pps backlog 0b 15p requeues 0 lended: 149549310 borrowed: 0 giants: 0 tokens: 336 ctokens: -164 Signed-off-by: Eric Dumazet <edumazet@google.com>
35 lines
888 B
C
35 lines
888 B
C
#ifndef _TC_CORE_H_
|
|
#define _TC_CORE_H_ 1
|
|
|
|
#include <asm/types.h>
|
|
#include <linux/pkt_sched.h>
|
|
|
|
#define TIME_UNITS_PER_SEC 1000000
|
|
|
|
enum link_layer {
|
|
LINKLAYER_UNSPEC,
|
|
LINKLAYER_ETHERNET,
|
|
LINKLAYER_ATM,
|
|
};
|
|
|
|
|
|
int tc_core_time2big(unsigned time);
|
|
unsigned tc_core_time2tick(unsigned time);
|
|
unsigned tc_core_tick2time(unsigned tick);
|
|
unsigned tc_core_time2ktime(unsigned time);
|
|
unsigned tc_core_ktime2time(unsigned ktime);
|
|
unsigned tc_calc_xmittime(__u64 rate, unsigned size);
|
|
unsigned tc_calc_xmitsize(__u64 rate, unsigned ticks);
|
|
int tc_calc_rtable(struct tc_ratespec *r, __u32 *rtab,
|
|
int cell_log, unsigned mtu, enum link_layer link_layer);
|
|
int tc_calc_size_table(struct tc_sizespec *s, __u16 **stab);
|
|
|
|
int tc_setup_estimator(unsigned A, unsigned time_const, struct tc_estimator *est);
|
|
|
|
int tc_core_init(void);
|
|
|
|
extern struct rtnl_handle g_rth;
|
|
extern int is_batch_mode;
|
|
|
|
#endif
|