From cd24556e1412a3c6bedb026d7e78e34286c19130 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Sur=C3=BD?= Date: Tue, 5 Apr 2022 01:20:13 +0200 Subject: [PATCH] Enable the load-balance-sockets configuration Previously, HAVE_SO_REUSEPORT_LB has been defined only in the private netmgr-int.h header file, making the configuration of load balanced sockets inoperable. Move the missing HAVE_SO_REUSEPORT_LB define the isc/netmgr.h and add missing isc_nm_getloadbalancesockets() implementation. (cherry picked from commit 142c63dda8ada1214ea8f308a0d28fcff2d94cbe) --- bin/named/config.c | 1 + bin/named/server.c | 1 + lib/isc/include/isc/netmgr.h | 9 +++++++++ lib/isc/netmgr/netmgr-int.h | 4 ---- lib/isc/netmgr/netmgr.c | 7 +++++++ 5 files changed, 18 insertions(+), 4 deletions(-) diff --git a/bin/named/config.c b/bin/named/config.c index 798f745581..a33db0e072 100644 --- a/bin/named/config.c +++ b/bin/named/config.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include diff --git a/bin/named/server.c b/bin/named/server.c index 0909887f27..1e52cd4338 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include diff --git a/lib/isc/include/isc/netmgr.h b/lib/isc/include/isc/netmgr.h index 8a29bce9ec..8f2a548882 100644 --- a/lib/isc/include/isc/netmgr.h +++ b/lib/isc/include/isc/netmgr.h @@ -13,12 +13,21 @@ #pragma once +#include + #include #include #include #include #include +#include +#include + +#if defined(SO_REUSEPORT_LB) || (defined(SO_REUSEPORT) && defined(__linux__)) +#define HAVE_SO_REUSEPORT_LB 1 +#endif + /* * Replacement for isc_sockettype_t provided by socket.h. */ diff --git a/lib/isc/netmgr/netmgr-int.h b/lib/isc/netmgr/netmgr-int.h index 40aebd15b4..8d8684602b 100644 --- a/lib/isc/netmgr/netmgr-int.h +++ b/lib/isc/netmgr/netmgr-int.h @@ -111,10 +111,6 @@ STATIC_ASSERT(ISC_NETMGR_TCP_RECVBUF_SIZE <= ISC_NETMGR_RECVBUF_SIZE, */ #define NM_MAXSEG (1280 - 20 - 40) -#if defined(SO_REUSEPORT_LB) || (defined(SO_REUSEPORT) && defined(__linux__)) -#define HAVE_SO_REUSEPORT_LB 1 -#endif - /* * Define NETMGR_TRACE to activate tracing of handles and sockets. * This will impair performance but enables us to quickly determine, diff --git a/lib/isc/netmgr/netmgr.c b/lib/isc/netmgr/netmgr.c index 4cec777bd8..4a6e2adf4c 100644 --- a/lib/isc/netmgr/netmgr.c +++ b/lib/isc/netmgr/netmgr.c @@ -580,6 +580,13 @@ isc_nm_setnetbuffers(isc_nm_t *mgr, int32_t recv_tcp, int32_t send_tcp, atomic_store(&mgr->send_udp_buffer_size, send_udp); } +bool +isc_nm_getloadbalancesockets(isc_nm_t *mgr) { + REQUIRE(VALID_NM(mgr)); + + return (mgr->load_balance_sockets); +} + void isc_nm_setloadbalancesockets(isc_nm_t *mgr, bool enabled) { REQUIRE(VALID_NM(mgr));