plugins/led.opt \
plugins/kernel-libipsec.opt \
plugins/kernel-netlink.opt \
+ plugins/kernel-pfkey.opt \
plugins/kernel-pfroute.opt \
plugins/load-tester.opt \
plugins/lookip.opt \
--- /dev/null
+charon.plugins.kernel-pfkey.events_buffer_size = 0
+ Size of the receive buffer for the event socket (0 for default size).
+
+ Size of the receive buffer for the event socket (0 for default size).
+ Because events are received asynchronously installing e.g. lots of policies
+ may require a larger buffer than the default on certain platforms in order
+ to receive all messages.
{
private_kernel_pfkey_ipsec_t *this;
bool register_for_events = TRUE;
+ int rcv_buffer;
INIT(this,
.public = {
return NULL;
}
+ rcv_buffer = lib->settings->get_int(lib->settings,
+ "%s.plugins.kernel-pfkey.events_buffer_size", 0, lib->ns);
+ if (rcv_buffer > 0)
+ {
+ if (setsockopt(this->socket_events, SOL_SOCKET, SO_RCVBUF,
+ &rcv_buffer, sizeof(rcv_buffer)) == -1)
+ {
+ DBG1(DBG_KNL, "unable to set receive buffer size on PF_KEY "
+ "event socket: %s", strerror(errno));
+ }
+ }
+
/* register the event socket */
if (register_pfkey_socket(this, SADB_SATYPE_ESP) != SUCCESS ||
register_pfkey_socket(this, SADB_SATYPE_AH) != SUCCESS)