Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
422 | giacomo | 1 | #ifndef __LINUX_SHAPER_H |
2 | #define __LINUX_SHAPER_H |
||
3 | |||
4 | #ifdef __KERNEL__ |
||
5 | |||
6 | #define SHAPER_QLEN 10 |
||
7 | /* |
||
8 | * This is a bit speed dependent (read it shouldn't be a constant!) |
||
9 | * |
||
10 | * 5 is about right for 28.8 upwards. Below that double for every |
||
11 | * halving of speed or so. - ie about 20 for 9600 baud. |
||
12 | */ |
||
13 | #define SHAPER_LATENCY (5*HZ) |
||
14 | #define SHAPER_MAXSLIP 2 |
||
15 | #define SHAPER_BURST (HZ/50) /* Good for >128K then */ |
||
16 | |||
17 | struct shaper |
||
18 | { |
||
19 | struct sk_buff_head sendq; |
||
20 | __u32 bytespertick; |
||
21 | __u32 bitspersec; |
||
22 | __u32 shapelatency; |
||
23 | __u32 shapeclock; |
||
24 | unsigned long recovery; /* Time we can next clock a packet out on |
||
25 | an empty queue */ |
||
26 | unsigned long locked; |
||
27 | struct net_device_stats stats; |
||
28 | struct net_device *dev; |
||
29 | int (*hard_start_xmit) (struct sk_buff *skb, |
||
30 | struct net_device *dev); |
||
31 | int (*hard_header) (struct sk_buff *skb, |
||
32 | struct net_device *dev, |
||
33 | unsigned short type, |
||
34 | void *daddr, |
||
35 | void *saddr, |
||
36 | unsigned len); |
||
37 | int (*rebuild_header)(struct sk_buff *skb); |
||
38 | int (*hard_header_cache)(struct neighbour *neigh, struct hh_cache *hh); |
||
39 | void (*header_cache_update)(struct hh_cache *hh, struct net_device *dev, unsigned char * haddr); |
||
40 | struct net_device_stats* (*get_stats)(struct net_device *dev); |
||
41 | wait_queue_head_t wait_queue; |
||
42 | struct timer_list timer; |
||
43 | }; |
||
44 | |||
45 | #endif |
||
46 | |||
47 | #define SHAPER_SET_DEV 0x0001 |
||
48 | #define SHAPER_SET_SPEED 0x0002 |
||
49 | #define SHAPER_GET_DEV 0x0003 |
||
50 | #define SHAPER_GET_SPEED 0x0004 |
||
51 | |||
52 | struct shaperconf |
||
53 | { |
||
54 | __u16 ss_cmd; |
||
55 | union |
||
56 | { |
||
57 | char ssu_name[14]; |
||
58 | __u32 ssu_speed; |
||
59 | } ss_u; |
||
60 | #define ss_speed ss_u.ssu_speed |
||
61 | #define ss_name ss_u.ssu_name |
||
62 | }; |
||
63 | |||
64 | #endif |