blob: 8a63b79c147f9573f5e3b91ab71e2cda5f551d0a [file] [log] [blame]
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +00001#ifndef _TC_CORE_H_
2#define _TC_CORE_H_ 1
3
4#include <asm/types.h>
5#include <linux/pkt_sched.h>
6
Stephen Hemminger89151442007-03-14 10:14:07 -07007#define TIME_UNITS_PER_SEC 1000000
Patrick McHardyf0bda7e2007-03-04 20:14:59 +01008
Jesper Dangaard Brouer292f29b2008-04-09 23:01:01 +02009enum link_layer {
Jussi Kivilinna839c8452008-07-25 16:19:09 +030010 LINKLAYER_UNSPEC,
11 LINKLAYER_ETHERNET,
12 LINKLAYER_ATM,
Jesper Dangaard Brouer292f29b2008-04-09 23:01:01 +020013};
14
15
Andreas Henriksson64e2ad52007-10-12 14:37:09 +020016int tc_core_time2big(unsigned time);
Andreas Henriksson44759842007-10-12 10:56:46 +020017unsigned tc_core_time2tick(unsigned time);
18unsigned tc_core_tick2time(unsigned tick);
Andreas Henriksson57a800d2007-10-12 13:49:49 +020019unsigned tc_core_time2ktime(unsigned time);
20unsigned tc_core_ktime2time(unsigned ktime);
Eric Dumazet8334bb32013-11-12 14:34:07 -080021unsigned tc_calc_xmittime(__u64 rate, unsigned size);
22unsigned tc_calc_xmitsize(__u64 rate, unsigned ticks);
Jesper Dangaard Brouer292f29b2008-04-09 23:01:01 +020023int tc_calc_rtable(struct tc_ratespec *r, __u32 *rtab,
24 int cell_log, unsigned mtu, enum link_layer link_layer);
Jussi Kivilinna839c8452008-07-25 16:19:09 +030025int tc_calc_size_table(struct tc_sizespec *s, __u16 **stab);
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000026
27int tc_setup_estimator(unsigned A, unsigned time_const, struct tc_estimator *est);
28
29int tc_core_init(void);
30
net[shemminger]!shemminger38c7e2e2005-03-14 19:02:41 +000031extern struct rtnl_handle g_rth;
32extern int is_batch_mode;
33
osdl.org!shemmingeraba5acd2004-04-15 20:56:59 +000034#endif