Merge tags 'compiler-attributes-for-linus-v5.0-rc3' and 'clang-format-for-linus-v5...
[sfrench/cifs-2.6.git] / include / linux / netfilter_ipv4.h
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 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
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 }
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 }
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*/