Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/sparc-2.6
[linux-2.6] / include / net / rawv6.h
1 #ifndef _NET_RAWV6_H
2 #define _NET_RAWV6_H
3
4 #ifdef __KERNEL__
5
6 #include <net/protocol.h>
7
8 #define RAWV6_HTABLE_SIZE       MAX_INET_PROTOS
9 extern struct hlist_head raw_v6_htable[RAWV6_HTABLE_SIZE];
10 extern rwlock_t raw_v6_lock;
11
12 extern int ipv6_raw_deliver(struct sk_buff *skb, int nexthdr);
13
14 extern struct sock *__raw_v6_lookup(struct sock *sk, unsigned short num,
15                                     struct in6_addr *loc_addr, struct in6_addr *rmt_addr,
16                                     int dif);
17
18 extern int                      rawv6_rcv(struct sock *sk,
19                                           struct sk_buff *skb);
20
21
22 extern void                     rawv6_err(struct sock *sk,
23                                           struct sk_buff *skb,
24                                           struct inet6_skb_parm *opt,
25                                           int type, int code, 
26                                           int offset, __be32 info);
27
28 #if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
29 int rawv6_mh_filter_register(int (*filter)(struct sock *sock,
30                                            struct sk_buff *skb));
31 int rawv6_mh_filter_unregister(int (*filter)(struct sock *sock,
32                                              struct sk_buff *skb));
33 #endif
34
35 #endif
36
37 #endif