Disable IPv6 on bridge devices in LinuxBridgeManager
We don't want to create a bridge device with an IPv6 address because it will see the Router Advertisement from Neutron. Conflicts: neutron/agent/linux/bridge_lib.py Change-Id: If59a823804d3477c5d8877f46fcc4c018af57a5a Closes-bug:1302080
(cherry picked from commit404eaead79
)
This commit is contained in:
parent
0a4eedd912
commit
a381aa07d9
|
@ -25,6 +25,11 @@ class BridgeDevice(ip_lib.IPDevice):
|
|||
ip_wrapper = ip_lib.IPWrapper(self.namespace)
|
||||
return ip_wrapper.netns.execute(cmd, run_as_root=True)
|
||||
|
||||
def _sysctl(self, cmd):
|
||||
cmd = ['sysctl', '-w'] + cmd
|
||||
ip_wrapper = ip_lib.IPWrapper(self.namespace)
|
||||
return ip_wrapper.netns.execute(cmd, run_as_root=True)
|
||||
|
||||
@classmethod
|
||||
def addbr(cls, name, namespace=None):
|
||||
bridge = cls(name, namespace)
|
||||
|
@ -45,3 +50,7 @@ class BridgeDevice(ip_lib.IPDevice):
|
|||
|
||||
def disable_stp(self):
|
||||
return self._brctl(['stp', self.name, 'off'])
|
||||
|
||||
def disable_ipv6(self):
|
||||
cmd = 'net.ipv6.conf.%s.disable_ipv6=1' % self.name
|
||||
return self._sysctl([cmd])
|
||||
|
|
|
@ -394,6 +394,8 @@ class LinuxBridgeManager(object):
|
|||
return
|
||||
if bridge_device.disable_stp():
|
||||
return
|
||||
if bridge_device.disable_ipv6():
|
||||
return
|
||||
if bridge_device.link.set_up():
|
||||
return
|
||||
LOG.debug("Done starting bridge %(bridge_name)s for "
|
||||
|
|
|
@ -47,6 +47,10 @@ class BridgeLibTest(base.BaseTestCase):
|
|||
br.disable_stp()
|
||||
self._verify_bridge_mock(['brctl', 'stp', self._BR_NAME, 'off'])
|
||||
|
||||
br.disable_ipv6()
|
||||
cmd = 'net.ipv6.conf.%s.disable_ipv6=1' % self._BR_NAME
|
||||
self._verify_bridge_mock(['sysctl', '-w', cmd])
|
||||
|
||||
br.addif(self._IF_NAME)
|
||||
self._verify_bridge_mock(
|
||||
['brctl', 'addif', self._BR_NAME, self._IF_NAME])
|
||||
|
|
|
@ -759,6 +759,7 @@ class TestLinuxBridgeManager(base.BaseTestCase):
|
|||
br_fn.addbr.return_value = bridge_device
|
||||
bridge_device.setfd.return_value = False
|
||||
bridge_device.disable_stp.return_value = False
|
||||
bridge_device.disable_ipv6.return_value = False
|
||||
bridge_device.link.set_up.return_value = False
|
||||
self.assertEqual(self.lbm.ensure_bridge("br0", None), "br0")
|
||||
ie_fn.return_Value = False
|
||||
|
|
Loading…
Reference in New Issue