d51f23873da96dbfe5f59980926910ece0eae5e8
[safe/jmp/linux-2.6] / include / net / inet_frag.h
1 #ifndef __NET_FRAG_H__
2 #define __NET_FRAG_H__
3
4 struct inet_frag_queue {
5         struct hlist_node       list;
6         struct list_head        lru_list;   /* lru list member */
7         spinlock_t              lock;
8         atomic_t                refcnt;
9         struct timer_list       timer;      /* when will this queue expire? */
10         struct sk_buff          *fragments; /* list of received fragments */
11         ktime_t                 stamp;
12         int                     len;        /* total length of orig datagram */
13         int                     meat;
14         __u8                    last_in;    /* first/last segment arrived? */
15
16 #define COMPLETE                4
17 #define FIRST_IN                2
18 #define LAST_IN                 1
19 };
20
21 #define INETFRAGS_HASHSZ                64
22
23 struct inet_frags {
24         struct list_head        lru_list;
25         struct hlist_head       hash[INETFRAGS_HASHSZ];
26         rwlock_t                lock;
27         u32                     rnd;
28         int                     nqueues;
29         atomic_t                mem;
30         struct timer_list       secret_timer;
31 };
32
33 void inet_frags_init(struct inet_frags *);
34 void inet_frags_fini(struct inet_frags *);
35
36 #endif