home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / linux / if_shaper.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  1.5 KB  |  64 lines

  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.     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.  
  51. struct 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
  64.