Merge "mdns: Expose option to customize tcp keepidle"

This commit is contained in:
Zuul 2025-01-06 04:34:01 +00:00 committed by Gerrit Code Review
commit 35be2ac4e9
5 changed files with 22 additions and 6 deletions

View File

@ -23,16 +23,18 @@ MDNS_GROUP = cfg.OptGroup(
MDNS_OPTS = [
cfg.IntOpt('workers',
help='Number of mdns worker processes to spawn'),
help='Number of mDNS worker processes to spawn'),
cfg.IntOpt('threads', default=1000,
help='Number of mdns greenthreads to spawn'),
help='Number of mDNS greenthreads to spawn'),
cfg.ListOpt('listen',
default=['0.0.0.0:%d' % DEFAULT_MDNS_PORT],
help='mDNS host:port pairs to listen on'),
cfg.IntOpt('tcp_backlog', default=100,
help='mDNS TCP Backlog'),
cfg.IntOpt('tcp_keepidle',
help='mDNS TCP Keepidle in seconds'),
cfg.FloatOpt('tcp_recv_timeout', default=0.5,
help='mDNS TCP Receive Timeout'),
help='mDNS TCP Receive Timeout in seconds'),
cfg.BoolOpt('query_enforce_tsig', default=False,
help='Enforce all incoming queries (including AXFR) are TSIG '
'signed'),

View File

@ -42,6 +42,7 @@ class Service(service.Service):
self.dns_application, self.tg,
CONF['service:mdns'].listen,
CONF['service:mdns'].tcp_backlog,
CONF['service:mdns'].tcp_keepidle,
CONF['service:mdns'].tcp_recv_timeout,
)

View File

@ -142,11 +142,13 @@ class WSGIService(Service):
class DNSService:
_TCP_RECV_MAX_SIZE = 65535
def __init__(self, app, tg, listen, tcp_backlog, tcp_recv_timeout):
def __init__(self, app, tg, listen, tcp_backlog, tcp_keepidle,
tcp_recv_timeout):
self._running = threading.Event()
self.app = app
self.tg = tg
self.tcp_backlog = tcp_backlog
self.tcp_keepidle = tcp_keepidle
self.tcp_recv_timeout = tcp_recv_timeout
self.listen = listen
@ -170,7 +172,7 @@ class DNSService:
def _start(self, host, port):
sock_tcp = utils.bind_tcp(
host, port, self.tcp_backlog
host, port, self.tcp_backlog, self.tcp_keepidle
)
sock_udp = utils.bind_udp(
host, port

View File

@ -270,6 +270,7 @@ class TestDNSService(oslotest.base.BaseTestCase):
self.application, self.tg,
CONF['service:mdns'].listen,
CONF['service:mdns'].tcp_backlog,
CONF['service:mdns'].tcp_keepidle,
CONF['service:mdns'].tcp_recv_timeout,
)
self.service._running = mock.Mock()
@ -279,6 +280,9 @@ class TestDNSService(oslotest.base.BaseTestCase):
self.assertEqual(
CONF['service:mdns'].tcp_backlog, self.service.tcp_backlog
)
self.assertEqual(
CONF['service:mdns'].tcp_keepidle, self.service.tcp_keepidle
)
self.assertEqual(
CONF['service:mdns'].tcp_recv_timeout,
self.service.tcp_recv_timeout
@ -291,7 +295,8 @@ class TestDNSService(oslotest.base.BaseTestCase):
mock_bind_udp.assert_called_with('0.0.0.0', 5354)
mock_bind_tcp.assert_called_with(
'0.0.0.0', 5354, CONF['service:mdns'].tcp_backlog
'0.0.0.0', 5354, CONF['service:mdns'].tcp_backlog,
CONF['service:mdns'].tcp_keepidle,
)
def test_service_stop(self):
@ -353,6 +358,7 @@ class TestDNSService(oslotest.base.BaseTestCase):
self.application, self.tg,
CONF['service:mdns'].listen,
CONF['service:mdns'].tcp_backlog,
CONF['service:mdns'].tcp_keepidle,
CONF['service:mdns'].tcp_recv_timeout,
)
self.service._running = mock.Mock()

View File

@ -0,0 +1,5 @@
---
features:
- |
The new ``[service:mdns] tcp_keepidle`` option has been added. This option
allows customizing TCP keepidle set for socket used by designate-mdns.