diff --git a/vif_plug_ovs/linux_net.py b/vif_plug_ovs/linux_net.py index a9f7bb3..6697887 100644 --- a/vif_plug_ovs/linux_net.py +++ b/vif_plug_ovs/linux_net.py @@ -68,7 +68,7 @@ def create_ovs_vif_port(bridge, dev, iface_id, mac, instance_id, interface_type)) # Note at present there is no support for setting the # mtu for vhost-user type ports. - if interface_type != constants.OVS_VHOSTUSER_INTERFACE_TYPE: + if mtu and interface_type != constants.OVS_VHOSTUSER_INTERFACE_TYPE: _set_device_mtu(dev, mtu) else: LOG.debug("MTU not set on %(interface_name)s interface " diff --git a/vif_plug_ovs/tests/test_linux_net.py b/vif_plug_ovs/tests/test_linux_net.py index c445ad5..2534a61 100644 --- a/vif_plug_ovs/tests/test_linux_net.py +++ b/vif_plug_ovs/tests/test_linux_net.py @@ -156,3 +156,18 @@ class LinuxNetTest(testtools.TestCase): "fake-instance-uuid", constants.OVS_VHOSTUSER_INTERFACE_TYPE) self.assertFalse(mock_set_device_mtu.called) self.assertTrue(mock_vsctl.called) + + @mock.patch.object(linux_net, '_ovs_vsctl') + @mock.patch.object(linux_net, '_create_ovs_vif_cmd') + @mock.patch.object(linux_net, '_set_device_mtu') + def test_ovs_vif_port_with_no_mtu(self, mock_set_device_mtu, + mock_create_cmd, mock_vsctl): + linux_net.create_ovs_vif_port( + 'fake-bridge', + 'fake-dev', 'fake-iface-id', 'fake-mac', + "fake-instance-uuid") + mock_create_cmd.assert_called_once_with('fake-bridge', + 'fake-dev', 'fake-iface-id', 'fake-mac', + "fake-instance-uuid", None) + self.assertFalse(mock_set_device_mtu.called) + self.assertTrue(mock_vsctl.called)