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 2efd7cefa67..a3d927f70d0 100644 --- a/neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py +++ b/neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py @@ -347,8 +347,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 cba81a25f43..9c300f9c61a 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):