diff --git a/nova/tests/unit/virt/libvirt/test_vif.py b/nova/tests/unit/virt/libvirt/test_vif.py index 90a91f49a74e..648d6dc408a2 100644 --- a/nova/tests/unit/virt/libvirt/test_vif.py +++ b/nova/tests/unit/virt/libvirt/test_vif.py @@ -832,12 +832,14 @@ class LibvirtVifTestCase(test.NoDBTestCase): network_model.VIF_MODEL_PCNET, network_model.VIF_MODEL_RTL8139, network_model.VIF_MODEL_E1000, + network_model.VIF_MODEL_E1000E, network_model.VIF_MODEL_SPAPR_VLAN) else: supported = (network_model.VIF_MODEL_NE2K_PCI, network_model.VIF_MODEL_PCNET, network_model.VIF_MODEL_RTL8139, network_model.VIF_MODEL_E1000, + network_model.VIF_MODEL_E1000E, network_model.VIF_MODEL_SPAPR_VLAN) for model in supported: image_meta = objects.ImageMeta.from_dict( diff --git a/nova/virt/libvirt/vif.py b/nova/virt/libvirt/vif.py index d3a2a26dbab4..89c259a61811 100644 --- a/nova/virt/libvirt/vif.py +++ b/nova/virt/libvirt/vif.py @@ -67,6 +67,7 @@ def is_vif_model_valid_for_virt(virt_type, vif_model): network_model.VIF_MODEL_PCNET, network_model.VIF_MODEL_RTL8139, network_model.VIF_MODEL_E1000, + network_model.VIF_MODEL_E1000E, network_model.VIF_MODEL_LAN9118, network_model.VIF_MODEL_SPAPR_VLAN], 'kvm': [network_model.VIF_MODEL_VIRTIO, @@ -74,6 +75,7 @@ def is_vif_model_valid_for_virt(virt_type, vif_model): network_model.VIF_MODEL_PCNET, network_model.VIF_MODEL_RTL8139, network_model.VIF_MODEL_E1000, + network_model.VIF_MODEL_E1000E, network_model.VIF_MODEL_SPAPR_VLAN], 'xen': [network_model.VIF_MODEL_NETFRONT, network_model.VIF_MODEL_NE2K_PCI, diff --git a/releasenotes/notes/bug-1882919-support-e1000e-vif-5437a45c13dff978.yaml b/releasenotes/notes/bug-1882919-support-e1000e-vif-5437a45c13dff978.yaml new file mode 100644 index 000000000000..1e316c1f2337 --- /dev/null +++ b/releasenotes/notes/bug-1882919-support-e1000e-vif-5437a45c13dff978.yaml @@ -0,0 +1,7 @@ +--- +fixes: + - | + Previously, attempting to configure an instance with the ``e1000e`` or + legacy ``VirtualE1000e`` VIF types on a host using the QEMU/KVM driver + would result in an incorrect ``UnsupportedHardware`` exception. These + interfaces are now correctly marked as supported.