kernel-netlink: Optionally ignore errors resulting from response message loss
authorMartin Willi <martin@revosec.ch>
Thu, 14 Aug 2014 09:33:12 +0000 (11:33 +0200)
committerMartin Willi <martin@revosec.ch>
Fri, 21 Nov 2014 09:55:45 +0000 (10:55 +0100)
commit50bb81425e93ee04f42b5db542447f7665c4aa6a
tree2a0743a82f00c906e03fdd0c5550c7cdea79dc49
parent8925abbec49a6c603ce3417569d7c2392633739f
kernel-netlink: Optionally ignore errors resulting from response message loss

As some backends over unreliable transport do not cache response messages,
retransmissions due the loss of responses perform the operation again. Add an
option to ignore some errors arising from such duplicate operations.

Note: This approach can't distinguish between real EXIST/NOTFOUND errors
and packet failures, and therefore is a source of race conditions and can't
detect any of these errors actually happening. Therefore that behavior is
disabled by default, and can be enabled with the ignore_retransmit_errors
strongswan.conf option.

To properly distinguish between real and retransmission errors, a Netlink
backend should implement retransmission detection using sequence numbers.
src/libhydra/plugins/kernel_netlink/kernel_netlink_shared.c