[NET] drivers/net: statistics cleanup #1 -- save memory and shrink code
[linux-2.6/linux-acpi-2.6/ibm-acpi-2.6.git] / include / linux / if_shaper.h
blob51574743aa1ba16f519fe4c9d8de69ad72c2db0c
1 #ifndef __LINUX_SHAPER_H
2 #define __LINUX_SHAPER_H
4 #ifdef __KERNEL__
6 #define SHAPER_QLEN 10
7 /*
8 * This is a bit speed dependent (read it shouldn't be a constant!)
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.
13 #define SHAPER_LATENCY (5*HZ)
14 #define SHAPER_MAXSLIP 2
15 #define SHAPER_BURST (HZ/50) /* Good for >128K then */
17 struct shaper
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 spinlock_t lock;
27 struct net_device *dev;
28 int (*hard_start_xmit) (struct sk_buff *skb,
29 struct net_device *dev);
30 int (*hard_header) (struct sk_buff *skb,
31 struct net_device *dev,
32 unsigned short type,
33 void *daddr,
34 void *saddr,
35 unsigned len);
36 int (*rebuild_header)(struct sk_buff *skb);
37 int (*hard_header_cache)(struct neighbour *neigh, struct hh_cache *hh);
38 void (*header_cache_update)(struct hh_cache *hh, struct net_device *dev, unsigned char * haddr);
39 struct net_device_stats* (*get_stats)(struct net_device *dev);
40 struct timer_list timer;
43 #endif
45 #define SHAPER_SET_DEV 0x0001
46 #define SHAPER_SET_SPEED 0x0002
47 #define SHAPER_GET_DEV 0x0003
48 #define SHAPER_GET_SPEED 0x0004
50 struct shaperconf
52 __u16 ss_cmd;
53 union
55 char ssu_name[14];
56 __u32 ssu_speed;
57 } ss_u;
58 #define ss_speed ss_u.ssu_speed
59 #define ss_name ss_u.ssu_name
62 #endif