Adds an option to enable broadcast replies to Dnsmasq

Adds a flag for DHCP agent configuration
to add dhcp-broadcast flag to Dnsmasq process
In order to support virtual network on top of Infiniband
Fabric, there is a requirement to receive DHCP response
via broadcast message (according to IB Spec).

DocImpact
Change-Id: I95329e535bacf14b650a8f37179ecd020b5bfafe
Closes-Bug: #1293953
This commit is contained in:
Itzik Brown 2014-09-02 10:02:22 +03:00 committed by Itzik Brown
parent 8cd633ad19
commit 0ed0857461
3 changed files with 13 additions and 0 deletions

View File

@ -72,6 +72,9 @@
# Location to DHCP lease relay UNIX domain socket
# dhcp_lease_relay_socket = $state_path/dhcp/lease_relay
# Use broadcast in DHCP replies
# dhcp_broadcast_reply = False
# Location of Metadata Proxy UNIX domain socket
# metadata_proxy_socket = $state_path/metadata_proxy

View File

@ -57,6 +57,8 @@ OPTS = [
'dnsmasq_lease_max',
default=(2 ** 24),
help=_('Limit number of leases to prevent a denial-of-service.')),
cfg.BoolOpt('dhcp_broadcast_reply', default=False,
help=_("Use broadcast in DHCP replies")),
]
IPV4 = 4
@ -414,6 +416,9 @@ class Dnsmasq(DhcpLocalProcess):
if self.conf.dhcp_domain:
cmd.append('--domain=%s' % self.conf.dhcp_domain)
if self.conf.dhcp_broadcast_reply:
cmd.append('--dhcp-broadcast')
ip_wrapper = ip_lib.IPWrapper(self.root_helper,
self.network.namespace)
ip_wrapper.netns.execute(cmd, addl_env=env)

View File

@ -856,6 +856,11 @@ class TestDnsmasq(TestBase):
network=FakeV4Network(),
max_leases=256)
def test_spawn_cfg_broadcast(self):
self.conf.set_override('dhcp_broadcast_reply', True)
self._test_spawn(['--conf-file=', '--domain=openstacklocal',
'--dhcp-broadcast'])
def test_output_opts_file(self):
fake_v6 = '2001:0200:feed:7ac0::1'
expected = (