Merge branch 'avoid-rekey-loss'
authorTobias Brunner <tobias@strongswan.org>
Tue, 23 May 2017 16:49:13 +0000 (18:49 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 23 May 2017 16:49:13 +0000 (18:49 +0200)
commitf8eb636e701cc66198bfab9e601842273b038219
tree4e4d7b800c93c1c479f153784a996a434f192d7c
parent4cc77142e0292d5d00f20e62849139f4401895c8
parent10c7a668067b2657e8dffef70812d81b6408f12c
Merge branch 'avoid-rekey-loss'

This changes the behavior during IKEv2 CHILD_SA rekeyings to avoid
traffic loss.  When responding to a CREATE_CHILD_SA request to rekey a
CHILD_SA the responder already has everything available to install and
use the new CHILD_SA.  However, this could lead to lost traffic as the
initiator won't be able to process inbound packets until it processed the
CREATE_CHILD_SA response and updated the inbound SA.  To avoid this the
responder now only installs the new inbound SA and delays installing the
outbound SA until it receives the DELETE for the replaced CHILD_SA.  The
messages transporting these DELETEs could reach the peer before packets
sent with the deleted outbound SAs reach the respective peer.  To reduce
the chance of traffic loss due to this the inbound SA of the replaced
CHILD_SA is not removed for a configurable amount of seconds after
the DELETE has been processed.

Fixes #1291.