at v2.6.21 1.5 kB view raw
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 17struct 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 spinlock_t lock; 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 struct timer_list timer; 42}; 43 44#endif 45 46#define SHAPER_SET_DEV 0x0001 47#define SHAPER_SET_SPEED 0x0002 48#define SHAPER_GET_DEV 0x0003 49#define SHAPER_GET_SPEED 0x0004 50 51struct shaperconf 52{ 53 __u16 ss_cmd; 54 union 55 { 56 char ssu_name[14]; 57 __u32 ssu_speed; 58 } ss_u; 59#define ss_speed ss_u.ssu_speed 60#define ss_name ss_u.ssu_name 61}; 62 63#endif