![Pablo Neira Ayuso](/assets/img/avatar_default.png)
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>
51 lines
1.4 KiB
C
51 lines
1.4 KiB
C
/* IPv4-specific defines for netfilter.
|
|
* (C)1998 Rusty Russell -- This code is GPL.
|
|
*/
|
|
#ifndef __LINUX_IP_NETFILTER_H
|
|
#define __LINUX_IP_NETFILTER_H
|
|
|
|
#include <uapi/linux/netfilter_ipv4.h>
|
|
|
|
/* Extra routing may needed on local out, as the QUEUE target never returns
|
|
* control to the table.
|
|
*/
|
|
struct ip_rt_info {
|
|
__be32 daddr;
|
|
__be32 saddr;
|
|
u_int8_t tos;
|
|
u_int32_t mark;
|
|
};
|
|
|
|
int ip_route_me_harder(struct net *net, struct sk_buff *skb, unsigned addr_type);
|
|
|
|
#ifdef CONFIG_INET
|
|
__sum16 nf_ip_checksum(struct sk_buff *skb, unsigned int hook,
|
|
unsigned int dataoff, u_int8_t protocol);
|
|
__sum16 nf_ip_checksum_partial(struct sk_buff *skb, unsigned int hook,
|
|
unsigned int dataoff, unsigned int len,
|
|
u_int8_t protocol);
|
|
int nf_ip_route(struct net *net, struct dst_entry **dst, struct flowi *fl,
|
|
bool strict);
|
|
#else
|
|
static inline __sum16 nf_ip_checksum(struct sk_buff *skb, unsigned int hook,
|
|
unsigned int dataoff, u_int8_t protocol)
|
|
{
|
|
return 0;
|
|
}
|
|
static inline __sum16 nf_ip_checksum_partial(struct sk_buff *skb,
|
|
unsigned int hook,
|
|
unsigned int dataoff,
|
|
unsigned int len,
|
|
u_int8_t protocol)
|
|
{
|
|
return 0;
|
|
}
|
|
static inline int nf_ip_route(struct net *net, struct dst_entry **dst,
|
|
struct flowi *fl, bool strict)
|
|
{
|
|
return -EOPNOTSUPP;
|
|
}
|
|
#endif /* CONFIG_INET */
|
|
|
|
#endif /*__LINUX_IP_NETFILTER_H*/
|