diff --git a/neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py b/neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py index 92a243e6b06..e05b404a9c9 100644 --- a/neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py +++ b/neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py @@ -346,8 +346,12 @@ class LinuxBridgeManager(amb.CommonAgentManagerBase): if self.vxlan_mode == lconst.VXLAN_MCAST: args['group'] = self.get_vxlan_group(segmentation_id) + if cfg.CONF.VXLAN.l2_population: args['proxy'] = cfg.CONF.VXLAN.arp_responder + # L2population should set the local ip address to handle + # a source dev with multiple ip addresses configured. + args['local'] = self.local_ip try: int_vxlan = self.ip.add_vxlan(interface, segmentation_id, diff --git a/neutron/tests/unit/plugins/ml2/drivers/linuxbridge/agent/test_linuxbridge_neutron_agent.py b/neutron/tests/unit/plugins/ml2/drivers/linuxbridge/agent/test_linuxbridge_neutron_agent.py index 4e6747014c9..9c330c41e3b 100644 --- a/neutron/tests/unit/plugins/ml2/drivers/linuxbridge/agent/test_linuxbridge_neutron_agent.py +++ b/neutron/tests/unit/plugins/ml2/drivers/linuxbridge/agent/test_linuxbridge_neutron_agent.py @@ -412,6 +412,7 @@ class TestLinuxBridgeManager(base.BaseTestCase): dstport=None, ttl=None, dev=self.lbm.local_int, + local=self.lbm.local_ip, proxy=expected_proxy) def test_ensure_vxlan_arp_responder_enabled(self):