| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 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 */ | 
| Christoph Hellwig | bc971de | 2005-07-05 15:03:46 -0700 | [diff] [blame] | 26 | spinlock_t lock; | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 27 | struct net_device *dev; | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 28 | struct net_device_stats* (*get_stats)(struct net_device *dev); | 
| Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 29 | struct timer_list timer; | 
|  | 30 | }; | 
|  | 31 |  | 
|  | 32 | #endif | 
|  | 33 |  | 
|  | 34 | #define SHAPER_SET_DEV		0x0001 | 
|  | 35 | #define SHAPER_SET_SPEED	0x0002 | 
|  | 36 | #define SHAPER_GET_DEV		0x0003 | 
|  | 37 | #define SHAPER_GET_SPEED	0x0004 | 
|  | 38 |  | 
|  | 39 | struct shaperconf | 
|  | 40 | { | 
|  | 41 | __u16	ss_cmd; | 
|  | 42 | union | 
|  | 43 | { | 
|  | 44 | char 	ssu_name[14]; | 
|  | 45 | __u32	ssu_speed; | 
|  | 46 | } ss_u; | 
|  | 47 | #define ss_speed ss_u.ssu_speed | 
|  | 48 | #define ss_name ss_u.ssu_name | 
|  | 49 | }; | 
|  | 50 |  | 
|  | 51 | #endif |