diff --git a/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_dvr_neutron_agent.py b/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_dvr_neutron_agent.py index 1c73d5f7c92..951ab4575f1 100644 --- a/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_dvr_neutron_agent.py +++ b/neutron/plugins/ml2/drivers/openvswitch/agent/ovs_dvr_neutron_agent.py @@ -418,12 +418,11 @@ class OVSDVRNeutronAgent(object): # TODO(vivek) remove the IPv6 related flows once SNAT is not # used for IPv6 DVR. if ip_version == 4: - if subnet_info['gateway_ip']: - br.install_dvr_process_ipv4( - vlan_tag=lvm.vlan, gateway_ip=subnet_info['gateway_ip']) + br.install_dvr_process_ipv4( + vlan_tag=lvm.vlan, gateway_ip=fixed_ip['ip_address']) else: br.install_dvr_process_ipv6( - vlan_tag=lvm.vlan, gateway_mac=subnet_info['gateway_mac']) + vlan_tag=lvm.vlan, gateway_mac=port.vif_mac) br.install_dvr_process( vlan_tag=lvm.vlan, vif_mac=port.vif_mac, dvr_mac_address=self.dvr_mac_address) diff --git a/neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py b/neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py index e4039eeb0a0..13a46ff1df1 100644 --- a/neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py +++ b/neutron/tests/unit/plugins/ml2/drivers/openvswitch/agent/test_ovs_neutron_agent.py @@ -2616,7 +2616,7 @@ class TestOvsDvrNeutronAgent(object): return resp def _expected_install_dvr_process(self, lvid, port, ip_version, - gateway_ip, gateway_mac): + gateway_ip): if ip_version == 4: ipvx_calls = [ mock.call.install_dvr_process_ipv4( @@ -2627,7 +2627,7 @@ class TestOvsDvrNeutronAgent(object): ipvx_calls = [ mock.call.install_dvr_process_ipv6( vlan_tag=lvid, - gateway_mac=gateway_mac), + gateway_mac=port.vif_mac), ] return ipvx_calls + [ mock.call.install_dvr_process( @@ -2641,12 +2641,13 @@ class TestOvsDvrNeutronAgent(object): ip_version=4): self._setup_for_dvr_test() if ip_version == 4: - gateway_ip = '1.1.1.1' + gateway_ip = '1.1.1.10' cidr = '1.1.1.0/24' else: gateway_ip = '2001:100::1' cidr = '2001:100::0/64' - self._port.vif_mac = gateway_mac = 'aa:bb:cc:11:22:33' + self._port.vif_mac = 'aa:bb:cc:11:22:33' + gateway_mac = 'aa:bb:cc:66:66:66' self._compute_port.vif_mac = '77:88:99:00:11:22' physical_network = self._physical_network segmentation_id = self._segmentation_id @@ -2694,8 +2695,7 @@ class TestOvsDvrNeutronAgent(object): port=self._port, lvid=lvid, ip_version=ip_version, - gateway_ip=gateway_ip, - gateway_mac=gateway_mac) + gateway_ip=self._fixed_ips[0]['ip_address']) expected_on_int_br = [ mock.call.provision_local_vlan( port=int_ofp, @@ -2783,8 +2783,7 @@ class TestOvsDvrNeutronAgent(object): port=self._port, lvid=lvid, ip_version=ip_version, - gateway_ip=gateway_ip, - gateway_mac=gateway_mac) + gateway_ip=gateway_ip) self.assertEqual(expected_on_int_br, int_br.mock_calls) self.assertEqual(expected_on_tun_br, tun_br.mock_calls) self.assertEqual([], phys_br.mock_calls) @@ -3036,8 +3035,7 @@ class TestOvsDvrNeutronAgent(object): port=self._port, lvid=lvid, ip_version=ip_version, - gateway_ip=gateway_ip, - gateway_mac=gateway_mac) + gateway_ip=gateway_ip) self.assertEqual(expected_on_tun_br, tun_br.mock_calls) int_br.reset_mock() @@ -3137,8 +3135,7 @@ class TestOvsDvrNeutronAgent(object): port=self._port, lvid=lvid, ip_version=ip_version, - gateway_ip=gateway_ip, - gateway_mac=gateway_mac) + gateway_ip=gateway_ip) self.assertEqual(expected_on_tun_br, tun_br.mock_calls) int_br.reset_mock() tun_br.reset_mock()