diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2017-11-27 22:29:52 +0100 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2018-01-08 18:01:26 +0100 |
commit | 3f87c08c615f567799b426aff0341ea8010a0ebb (patch) | |
tree | 47a33546f33fb7792ab0e5c2ed647c1a80f7a4f5 /include/linux/netfilter_ipv6.h | |
parent | netfilter: remove saveroute indirection in struct nf_afinfo (diff) | |
download | wireguard-linux-3f87c08c615f567799b426aff0341ea8010a0ebb.tar.xz wireguard-linux-3f87c08c615f567799b426aff0341ea8010a0ebb.zip |
netfilter: move route indirection to struct nf_ipv6_ops
We cannot make a direct call to nf_ip6_route() because that would result
in autoloading the 'ipv6' module because of symbol dependencies.
Therefore, define route indirection in nf_ipv6_ops where this really
belongs to.
For IPv4, we can indeed make a direct function call, which is faster,
given IPv4 is built-in in the networking code by default. Still,
CONFIG_INET=n and CONFIG_NETFILTER=y is possible, so define empty inline
stub for IPv4 in such case.
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'include/linux/netfilter_ipv6.h')
-rw-r--r-- | include/linux/netfilter_ipv6.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/netfilter_ipv6.h b/include/linux/netfilter_ipv6.h index 08d58dc018b5..e5700bb314a1 100644 --- a/include/linux/netfilter_ipv6.h +++ b/include/linux/netfilter_ipv6.h @@ -33,6 +33,8 @@ struct nf_ipv6_ops { __sum16 (*checksum_partial)(struct sk_buff *skb, unsigned int hook, unsigned int dataoff, unsigned int len, u_int8_t protocol); + int (*route)(struct net *net, struct dst_entry **dst, struct flowi *fl, + bool strict); }; #ifdef CONFIG_NETFILTER |