Merge "add arp_responder flag to linuxbridge agent" into stable/liberty

This commit is contained in:
Jenkins 2016-04-01 15:50:35 +00:00 committed by Gerrit Code Review
commit 6fefdfd65f
5 changed files with 25 additions and 3 deletions

View File

@ -40,6 +40,11 @@
# iproute2 supports unicast flooding - requires 3.11 kernel and iproute2 3.10) # iproute2 supports unicast flooding - requires 3.11 kernel and iproute2 3.10)
# l2_population = False # l2_population = False
# (BoolOpt) Flag to disable local ARP responder which provides local responses
# instead of performing ARP broadcast into the overlay. Enabling local ARP
# responder is not fully compatible with the allowed-address-pairs extension.
# arp_responder = True
[agent] [agent]
# Agent's polling interval in seconds # Agent's polling interval in seconds
# polling_interval = 2 # polling_interval = 2

View File

@ -41,6 +41,12 @@ vxlan_opts = [
help=_("Extension to use alongside ml2 plugin's l2population " help=_("Extension to use alongside ml2 plugin's l2population "
"mechanism driver. It enables the plugin to populate " "mechanism driver. It enables the plugin to populate "
"VXLAN forwarding table.")), "VXLAN forwarding table.")),
cfg.BoolOpt('arp_responder', default=True,
help=_("Enable local ARP responder which provides local "
"responses instead of performing ARP broadcast into "
"the overlay. Enabling local ARP responder is not fully"
"compatible with the allowed-address-pairs extension.")
),
] ]
bridge_opts = [ bridge_opts = [

View File

@ -325,7 +325,7 @@ class LinuxBridgeManager(object):
if cfg.CONF.VXLAN.tos: if cfg.CONF.VXLAN.tos:
args['tos'] = cfg.CONF.VXLAN.tos args['tos'] = cfg.CONF.VXLAN.tos
if cfg.CONF.VXLAN.l2_population: if cfg.CONF.VXLAN.l2_population:
args['proxy'] = True args['proxy'] = cfg.CONF.VXLAN.arp_responder
try: try:
int_vxlan = self.ip.add_vxlan(interface, segmentation_id, int_vxlan = self.ip.add_vxlan(interface, segmentation_id,
**args) **args)

View File

@ -804,7 +804,7 @@ class TestLinuxBridgeManager(base.BaseTestCase):
add_vlan_fn.assert_called_with('eth0.1', 'eth0', '1') add_vlan_fn.assert_called_with('eth0.1', 'eth0', '1')
dv6_fn.assert_called_once_with() dv6_fn.assert_called_once_with()
def test_ensure_vxlan(self): def test_ensure_vxlan(self, expected_proxy=True):
seg_id = "12345678" seg_id = "12345678"
self.lbm.local_int = 'eth0' self.lbm.local_int = 'eth0'
self.lbm.vxlan_mode = lconst.VXLAN_MCAST self.lbm.vxlan_mode = lconst.VXLAN_MCAST
@ -828,7 +828,11 @@ class TestLinuxBridgeManager(base.BaseTestCase):
add_vxlan_fn.assert_called_with("vxlan-" + seg_id, seg_id, add_vxlan_fn.assert_called_with("vxlan-" + seg_id, seg_id,
group="224.0.0.1", group="224.0.0.1",
dev=self.lbm.local_int, dev=self.lbm.local_int,
proxy=True) proxy=expected_proxy)
def test_ensure_vxlan_arp_responder_disabled(self):
cfg.CONF.set_override('arp_responder', False, 'VXLAN')
self.test_ensure_vxlan(expected_proxy=False)
def test_update_interface_ip_details(self): def test_update_interface_ip_details(self):
gwdict = dict(gateway='1.1.1.1', gwdict = dict(gateway='1.1.1.1',

View File

@ -0,0 +1,7 @@
---
fixes:
The Linuxbridge agent now supports the ability to toggle the local ARP
responder when L2Population is enabled. This ensures compatibility with
the allowed-address-pairs extension.
- closes bug 1445089