mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 22:54:05 +08:00
[IPSEC]: Fix IP ID selection
I was looking through the xfrm input/output code in order to abstract out the address family specific encapsulation/decapsulation code. During that process I found this bug in the IP ID selection code in xfrm4_output.c. At that point dst is still the xfrm_dst for the current SA which represents an internal flow as far as the IPsec tunnel is concerned. Since the IP ID is going to sit on the outside of the encapsulated packet, we obviously want the external flow which is just dst->child. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
da753beaeb
commit
a76e07acd0
@ -62,7 +62,7 @@ static void xfrm4_encap(struct sk_buff *skb)
|
||||
top_iph->frag_off = (flags & XFRM_STATE_NOPMTUDISC) ?
|
||||
0 : (iph->frag_off & htons(IP_DF));
|
||||
if (!top_iph->frag_off)
|
||||
__ip_select_ident(top_iph, dst, 0);
|
||||
__ip_select_ident(top_iph, dst->child, 0);
|
||||
|
||||
top_iph->ttl = dst_metric(dst->child, RTAX_HOPLIMIT);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user