|
@@ -180,8 +180,10 @@ static inline __u8 ip_reply_arg_flowi_flags(const struct ip_reply_arg *arg)
|
|
|
return (arg->flags & IP_REPLY_ARG_NOSRCCHECK) ? FLOWI_FLAG_ANYSRC : 0;
|
|
|
}
|
|
|
|
|
|
-void ip_send_unicast_reply(struct net *net, struct sk_buff *skb, __be32 daddr,
|
|
|
- __be32 saddr, const struct ip_reply_arg *arg,
|
|
|
+void ip_send_unicast_reply(struct net *net, struct sk_buff *skb,
|
|
|
+ const struct ip_options *sopt,
|
|
|
+ __be32 daddr, __be32 saddr,
|
|
|
+ const struct ip_reply_arg *arg,
|
|
|
unsigned int len);
|
|
|
|
|
|
#define IP_INC_STATS(net, field) SNMP_INC_STATS64((net)->mib.ip_statistics, field)
|
|
@@ -511,7 +513,14 @@ int ip_forward(struct sk_buff *skb);
|
|
|
|
|
|
void ip_options_build(struct sk_buff *skb, struct ip_options *opt,
|
|
|
__be32 daddr, struct rtable *rt, int is_frag);
|
|
|
-int ip_options_echo(struct ip_options *dopt, struct sk_buff *skb);
|
|
|
+
|
|
|
+int __ip_options_echo(struct ip_options *dopt, struct sk_buff *skb,
|
|
|
+ const struct ip_options *sopt);
|
|
|
+static inline int ip_options_echo(struct ip_options *dopt, struct sk_buff *skb)
|
|
|
+{
|
|
|
+ return __ip_options_echo(dopt, skb, &IPCB(skb)->opt);
|
|
|
+}
|
|
|
+
|
|
|
void ip_options_fragment(struct sk_buff *skb);
|
|
|
int ip_options_compile(struct net *net, struct ip_options *opt,
|
|
|
struct sk_buff *skb);
|