diff --git a/nova/network/model.py b/nova/network/model.py index d04e2d377d..6a4d9ad388 100644 --- a/nova/network/model.py +++ b/nova/network/model.py @@ -87,6 +87,8 @@ VNIC_TYPE_NORMAL = 'normal' VNIC_TYPE_DIRECT = 'direct' VNIC_TYPE_MACVTAP = 'macvtap' +VNIC_TYPES_SRIOV = (VNIC_TYPE_DIRECT, VNIC_TYPE_MACVTAP) + # Constants for the 'vif_model' values VIF_MODEL_VIRTIO = 'virtio' VIF_MODEL_NE2K_PCI = 'ne2k_pci' diff --git a/nova/network/neutronv2/api.py b/nova/network/neutronv2/api.py index ae96e70dcf..50f3b99a42 100644 --- a/nova/network/neutronv2/api.py +++ b/nova/network/neutronv2/api.py @@ -1043,7 +1043,7 @@ class API(base_api.NetworkAPI): fields=['binding:vnic_type', 'network_id']) vnic_type = port.get('binding:vnic_type', network_model.VNIC_TYPE_NORMAL) - if vnic_type != network_model.VNIC_TYPE_NORMAL: + if vnic_type in network_model.VNIC_TYPES_SRIOV: net_id = port['network_id'] net = neutron.show_network(net_id, fields='provider:physical_network').get('network') @@ -1069,7 +1069,7 @@ class API(base_api.NetworkAPI): vnic_type, phynet_name = self._get_port_vnic_info( context, neutron, request_net.port_id) pci_request_id = None - if vnic_type != network_model.VNIC_TYPE_NORMAL: + if vnic_type in network_model.VNIC_TYPES_SRIOV: request = objects.InstancePCIRequest( count=1, spec=[{pci_request.PCI_NET_TAG: phynet_name}],