blob: 53d86b6055e8cceaf9b394e10fcff025b8c1b236 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Linus Torvalds1da177e2005-04-16 15:20:36 -07002#ifndef _NET_RAWV6_H
3#define _NET_RAWV6_H
4
Masahide NAKAMURA59fbb3a62007-06-26 23:56:32 -07005#include <net/protocol.h>
6
Cyrill Gorcunov432490f2016-10-21 13:03:44 +03007extern struct raw_hashinfo raw_v6_hashinfo;
8struct sock *__raw_v6_lookup(struct net *net, struct sock *sk,
9 unsigned short num, const struct in6_addr *loc_addr,
David Ahern5108ab42017-08-07 08:44:22 -070010 const struct in6_addr *rmt_addr, int dif, int sdif);
Cyrill Gorcunov432490f2016-10-21 13:03:44 +030011
12int raw_abort(struct sock *sk, int err);
13
Pavel Emelyanov69d6da02007-11-19 22:35:57 -080014void raw6_icmp_error(struct sk_buff *, int nexthdr,
Brian Haleyd5fdd6b2009-06-23 04:31:07 -070015 u8 type, u8 code, int inner_offset, __be32);
Eric Dumazeta50feda2012-05-18 18:57:34 +000016bool raw6_local_deliver(struct sk_buff *, int);
Linus Torvalds1da177e2005-04-16 15:20:36 -070017
Joe Perches0ad6ad92013-09-22 10:32:19 -070018int rawv6_rcv(struct sock *sk, struct sk_buff *skb);
Linus Torvalds1da177e2005-04-16 15:20:36 -070019
Masahide NAKAMURA59fbb3a62007-06-26 23:56:32 -070020#if defined(CONFIG_IPV6_MIP6) || defined(CONFIG_IPV6_MIP6_MODULE)
21int rawv6_mh_filter_register(int (*filter)(struct sock *sock,
22 struct sk_buff *skb));
23int rawv6_mh_filter_unregister(int (*filter)(struct sock *sock,
24 struct sk_buff *skb));
25#endif
26
Linus Torvalds1da177e2005-04-16 15:20:36 -070027#endif