Merge branch 'master' of /repos/git/net-next-2.6
[safe/jmp/linux-2.6] / include / net / dst_ops.h
1 #ifndef _NET_DST_OPS_H
2 #define _NET_DST_OPS_H
3 #include <linux/types.h>
4
5 struct dst_entry;
6 struct kmem_cachep;
7 struct net_device;
8 struct sk_buff;
9
10 struct dst_ops {
11         unsigned short          family;
12         __be16                  protocol;
13         unsigned                gc_thresh;
14
15         int                     (*gc)(struct dst_ops *ops);
16         struct dst_entry *      (*check)(struct dst_entry *, __u32 cookie);
17         void                    (*destroy)(struct dst_entry *);
18         void                    (*ifdown)(struct dst_entry *,
19                                           struct net_device *dev, int how);
20         struct dst_entry *      (*negative_advice)(struct dst_entry *);
21         void                    (*link_failure)(struct sk_buff *);
22         void                    (*update_pmtu)(struct dst_entry *dst, u32 mtu);
23         int                     (*local_out)(struct sk_buff *skb);
24
25         atomic_t                entries;
26         struct kmem_cache       *kmem_cachep;
27 };
28 #endif