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 38