diff options
Diffstat (limited to 'include/net/ip.h')
| -rw-r--r-- | include/net/ip.h | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/include/net/ip.h b/include/net/ip.h index 0bb620702929..025c61c0dffb 100644 --- a/include/net/ip.h +++ b/include/net/ip.h | |||
| @@ -39,11 +39,12 @@ struct inet_skb_parm { | |||
| 39 | struct ip_options opt; /* Compiled IP options */ | 39 | struct ip_options opt; /* Compiled IP options */ |
| 40 | unsigned char flags; | 40 | unsigned char flags; |
| 41 | 41 | ||
| 42 | #define IPSKB_FORWARDED 1 | 42 | #define IPSKB_FORWARDED BIT(0) |
| 43 | #define IPSKB_XFRM_TUNNEL_SIZE 2 | 43 | #define IPSKB_XFRM_TUNNEL_SIZE BIT(1) |
| 44 | #define IPSKB_XFRM_TRANSFORMED 4 | 44 | #define IPSKB_XFRM_TRANSFORMED BIT(2) |
| 45 | #define IPSKB_FRAG_COMPLETE 8 | 45 | #define IPSKB_FRAG_COMPLETE BIT(3) |
| 46 | #define IPSKB_REROUTED 16 | 46 | #define IPSKB_REROUTED BIT(4) |
| 47 | #define IPSKB_DOREDIRECT BIT(5) | ||
| 47 | 48 | ||
| 48 | u16 frag_max_size; | 49 | u16 frag_max_size; |
| 49 | }; | 50 | }; |
| @@ -180,7 +181,7 @@ static inline __u8 ip_reply_arg_flowi_flags(const struct ip_reply_arg *arg) | |||
| 180 | return (arg->flags & IP_REPLY_ARG_NOSRCCHECK) ? FLOWI_FLAG_ANYSRC : 0; | 181 | return (arg->flags & IP_REPLY_ARG_NOSRCCHECK) ? FLOWI_FLAG_ANYSRC : 0; |
| 181 | } | 182 | } |
| 182 | 183 | ||
| 183 | void ip_send_unicast_reply(struct net *net, struct sk_buff *skb, | 184 | void ip_send_unicast_reply(struct sock *sk, struct sk_buff *skb, |
| 184 | const struct ip_options *sopt, | 185 | const struct ip_options *sopt, |
| 185 | __be32 daddr, __be32 saddr, | 186 | __be32 daddr, __be32 saddr, |
| 186 | const struct ip_reply_arg *arg, | 187 | const struct ip_reply_arg *arg, |
| @@ -537,7 +538,7 @@ int ip_options_rcv_srr(struct sk_buff *skb); | |||
| 537 | */ | 538 | */ |
| 538 | 539 | ||
| 539 | void ipv4_pktinfo_prepare(const struct sock *sk, struct sk_buff *skb); | 540 | void ipv4_pktinfo_prepare(const struct sock *sk, struct sk_buff *skb); |
| 540 | void ip_cmsg_recv(struct msghdr *msg, struct sk_buff *skb); | 541 | void ip_cmsg_recv_offset(struct msghdr *msg, struct sk_buff *skb, int offset); |
| 541 | int ip_cmsg_send(struct net *net, struct msghdr *msg, | 542 | int ip_cmsg_send(struct net *net, struct msghdr *msg, |
| 542 | struct ipcm_cookie *ipc, bool allow_ipv6); | 543 | struct ipcm_cookie *ipc, bool allow_ipv6); |
| 543 | int ip_setsockopt(struct sock *sk, int level, int optname, char __user *optval, | 544 | int ip_setsockopt(struct sock *sk, int level, int optname, char __user *optval, |
| @@ -557,6 +558,11 @@ void ip_icmp_error(struct sock *sk, struct sk_buff *skb, int err, __be16 port, | |||
| 557 | void ip_local_error(struct sock *sk, int err, __be32 daddr, __be16 dport, | 558 | void ip_local_error(struct sock *sk, int err, __be32 daddr, __be16 dport, |
| 558 | u32 info); | 559 | u32 info); |
| 559 | 560 | ||
| 561 | static inline void ip_cmsg_recv(struct msghdr *msg, struct sk_buff *skb) | ||
| 562 | { | ||
| 563 | ip_cmsg_recv_offset(msg, skb, 0); | ||
| 564 | } | ||
| 565 | |||
| 560 | bool icmp_global_allow(void); | 566 | bool icmp_global_allow(void); |
| 561 | extern int sysctl_icmp_msgs_per_sec; | 567 | extern int sysctl_icmp_msgs_per_sec; |
| 562 | extern int sysctl_icmp_msgs_burst; | 568 | extern int sysctl_icmp_msgs_burst; |
