Subversion Repositories shark

Rev

Rev 422 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
422 giacomo 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
        unsigned long locked;
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
        wait_queue_head_t  wait_queue;
42
        struct timer_list timer;
43
};
44
 
45
#endif
46
 
47
#define SHAPER_SET_DEV          0x0001
48
#define SHAPER_SET_SPEED        0x0002
49
#define SHAPER_GET_DEV          0x0003
50
#define SHAPER_GET_SPEED        0x0004
51
 
52
struct shaperconf
53
{
54
        __u16   ss_cmd;
55
        union
56
        {
57
                char    ssu_name[14];
58
                __u32   ssu_speed;
59
        } ss_u;
60
#define ss_speed ss_u.ssu_speed
61
#define ss_name ss_u.ssu_name
62
};
63
 
64
#endif