Merge "add arp_responder flag to linuxbridge agent" into stable/liberty
This commit is contained in:
commit
6fefdfd65f
|
@ -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
|
||||||
|
|
|
@ -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 = [
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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',
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue