1 /* IPv4-specific defines for netfilter.
2  * (C)1998 Rusty Russell -- This code is GPL.
3  */
4 #ifndef __LINUX_IP_NETFILTER_H
5 #define __LINUX_IP_NETFILTER_H
6 
7 #include <uapi/linux/netfilter_ipv4.h>
8 
9 /* Extra routing may needed on local out, as the QUEUE target never returns
10  * control to the table.
11  */
12 struct ip_rt_info {
13 	__be32 daddr;
14 	__be32 saddr;
15 	u_int8_t tos;
16 	u_int32_t mark;
17 };
18 
19 int ip_route_me_harder(struct net *net, struct sock *sk, struct sk_buff *skb, unsigned addr_type);
20 
21 struct nf_queue_entry;
22 
23 #ifdef CONFIG_INET
24 __sum16 nf_ip_checksum(struct sk_buff *skb, unsigned int hook,
25 		       unsigned int dataoff, u_int8_t protocol);
26 int nf_ip_route(struct net *net, struct dst_entry **dst, struct flowi *fl,
27 		bool strict);
28 int nf_ip_reroute(struct sk_buff *skb, const struct nf_queue_entry *entry);
29 #else
nf_ip_checksum(struct sk_buff * skb,unsigned int hook,unsigned int dataoff,u_int8_t protocol)30 static inline __sum16 nf_ip_checksum(struct sk_buff *skb, unsigned int hook,
31 				     unsigned int dataoff, u_int8_t protocol)
32 {
33 	return 0;
34 }
nf_ip_route(struct net * net,struct dst_entry ** dst,struct flowi * fl,bool strict)35 static inline int nf_ip_route(struct net *net, struct dst_entry **dst,
36 			      struct flowi *fl, bool strict)
37 {
38 	return -EOPNOTSUPP;
39 }
nf_ip_reroute(struct sk_buff * skb,const struct nf_queue_entry * entry)40 static inline int nf_ip_reroute(struct sk_buff *skb,
41 				const struct nf_queue_entry *entry)
42 {
43 	return -EOPNOTSUPP;
44 }
45 #endif /* CONFIG_INET */
46 
47 #endif /*__LINUX_IP_NETFILTER_H*/
48