if_shaper.h
上传用户:szlgq88
上传日期:2009-04-28
资源大小:48287k
文件大小:1k
- #ifndef __LINUX_SHAPER_H
- #define __LINUX_SHAPER_H
- #ifdef __KERNEL__
- #define SHAPER_QLEN 10
- /*
- * This is a bit speed dependent (read it shouldn't be a constant!)
- *
- * 5 is about right for 28.8 upwards. Below that double for every
- * halving of speed or so. - ie about 20 for 9600 baud.
- */
- #define SHAPER_LATENCY (5*HZ)
- #define SHAPER_MAXSLIP 2
- #define SHAPER_BURST (HZ/50) /* Good for >128K then */
- struct shaper
- {
- struct sk_buff_head sendq;
- __u32 bytespertick;
- __u32 bitspersec;
- __u32 shapelatency;
- __u32 shapeclock;
- unsigned long recovery; /* Time we can next clock a packet out on
- an empty queue */
- spinlock_t lock;
- struct net_device_stats stats;
- struct net_device *dev;
- int (*hard_start_xmit) (struct sk_buff *skb,
- struct net_device *dev);
- int (*hard_header) (struct sk_buff *skb,
- struct net_device *dev,
- unsigned short type,
- void *daddr,
- void *saddr,
- unsigned len);
- int (*rebuild_header)(struct sk_buff *skb);
- int (*hard_header_cache)(struct neighbour *neigh, struct hh_cache *hh);
- void (*header_cache_update)(struct hh_cache *hh, struct net_device *dev, unsigned char * haddr);
- struct net_device_stats* (*get_stats)(struct net_device *dev);
- struct timer_list timer;
- };
- #endif
- #define SHAPER_SET_DEV 0x0001
- #define SHAPER_SET_SPEED 0x0002
- #define SHAPER_GET_DEV 0x0003
- #define SHAPER_GET_SPEED 0x0004
- struct shaperconf
- {
- __u16 ss_cmd;
- union
- {
- char ssu_name[14];
- __u32 ssu_speed;
- } ss_u;
- #define ss_speed ss_u.ssu_speed
- #define ss_name ss_u.ssu_name
- };
- #endif