xref: /openbmc/linux/include/net/rawv6.h (revision c21b37f6)
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