]> git.baikalelectronics.ru Git - kernel.git/commit
ip: generate unique IP identificator if local fragmentation is allowed
authorAnsis Atteka <aatteka@nicira.com>
Wed, 18 Sep 2013 22:29:53 +0000 (15:29 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 19 Sep 2013 18:11:15 +0000 (14:11 -0400)
commit87c1af195a370d75706d08e0c04af5be7a538420
tree0c6c49e15c9461cd3a563d17062a866d2fafd6fa
parent16d21ffe7e068a190fb54d64e597beafca3b1605
ip: generate unique IP identificator if local fragmentation is allowed

If local fragmentation is allowed, then ip_select_ident() and
ip_select_ident_more() need to generate unique IDs to ensure
correct defragmentation on the peer.

For example, if IPsec (tunnel mode) has to encrypt large skbs
that have local_df bit set, then all IP fragments that belonged
to different ESP datagrams would have used the same identificator.
If one of these IP fragments would get lost or reordered, then
peer could possibly stitch together wrong IP fragments that did
not belong to the same datagram. This would lead to a packet loss
or data corruption.

Signed-off-by: Ansis Atteka <aatteka@nicira.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ppp/pptp.c
include/net/ip.h
net/ipv4/igmp.c
net/ipv4/inetpeer.c
net/ipv4/ip_output.c
net/ipv4/ipmr.c
net/ipv4/raw.c
net/ipv4/xfrm4_mode_tunnel.c
net/netfilter/ipvs/ip_vs_xmit.c