]> git.ipfire.org Git - thirdparty/kernel/stable.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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 13 Oct 2013 21:51:07 +0000 (14:51 -0700)
commit2a6a2791b1e6ebd7ad29f137a309471f92d71c55
tree613e5018ff9eeaae11184aac70cd682fa93f31f6
parent20218d3d355cb32bdf1d737438958aa75f6ab21a
ip: generate unique IP identificator if local fragmentation is allowed

[ Upstream commit 703133de331a7a7df47f31fb9de51dc6f68a9de8 ]

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/pptp.c
include/net/ip.h
include/net/ipip.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