Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Une carte réseau qui prend en charge la virtualisation d’E/S racine unique (SR-IOV) doit être en mesure de prendre en charge les composants matériels suivants :
Une fonction physique PCI Express (PCIe, PF). Le PF existe toujours sur l'adaptateur réseau et est rattaché à la partition parente Hyper-V.
Pour plus d’informations sur ce composant matériel, consultez SR-IOV fonction physique (PF).
Une ou plusieurs fonctions virtuelles PCIe (VF). Chaque machine virtuelle doit être initialisée et attachée à une partition enfant Hyper-V avant que les composants réseau du système d’exploitation invité puissent envoyer ou recevoir des paquets sur la machine virtuelle.
Pour plus d’informations sur ce composant matériel, consultez SR-IOV Virtual Functions (VFs).
Le pilote miniport PF, qui s'exécute dans le système d'exploitation de gestion de la partition parente Hyper-V, initialise et alloue des ressources pour un VF sur la carte réseau SR-IOV. Une fois que NDIS appelle la fonction MiniportInitializeEx du pilote MINIport PF, NDIS et la pile de virtualisation peuvent émettre des requêtes d’identificateur d’objet (OID) au pilote miniport PF pour effectuer les opérations suivantes :
Créez un commutateur sur l'adaptateur réseau. Le commutateur de carte réseau relie le trafic réseau entre les machines virtuelles, PF et le port réseau physique.
Pour plus d’informations, consultez Commutateurs de carte réseau.
Note À compter de Windows Server 2012, l’interface SR-IOV prend en charge un seul commutateur de carte réseau sur la carte réseau. Ce commutateur est appelé commutateur de carte réseau par défaut et est référencé par l’identificateur NDIS_DEFAULT_SWITCH_ID.
Demandez au pilote PF miniport d’initialiser et d’allouer des ressources pour une machine virtuelle sur la carte réseau.
Pour plus d’informations, consultez SR-IOV Virtual Functions (VFs).
Créez un port virtuel (VPort) sur le commutateur de carte réseau et attachez-le au VF.
Pour plus d’informations, consultez Ports virtuels (VPorts).
Le diagramme suivant montre les étapes qui sont impliquées dans l’initialisation VF.
NDIS, la pile de virtualisation et le pilote miniport PF suivent ces étapes pendant la séquence d’initialisation VF :
NDIS lit la configuration par défaut du commutateur à partir du registre et émet une demande de méthode OID de OID_NIC_SWITCH_CREATE_SWITCH pour approvisionner le commutateur dans la carte réseau. Les paramètres transmis dans cette demande OID incluent des informations sur la configuration des ressources matérielles importantes telles que les machines virtuelles et les ports virtuels. Il inclut également des informations sur la façon de distribuer les ressources entre les ports virtuels non définis et les ports virtuels par défaut attachés au PF.
Une fois que l’OID a été correctement effectué par le pilote miniport PF, le commutateur de carte réseau est prêt à être utilisé pour créer des VPorts et allouer des machines virtuelles sur celui-ci.
Pour plus d’informations sur la création d’un commutateur de carte réseau, consultez Création d’un commutateur de carte réseau.
Une VF est traitée comme un mécanisme de déchargement pour la carte réseau de la machine virtuelle. Cet adaptateur est exposé dans le système d’exploitation invité qui s’exécute dans la partition enfant Hyper-V. Par défaut, les composants réseau du système d’exploitation invité envoient et reçoivent des paquets sur le chemin des données synthétiques basées sur le logiciel. Toutefois, si une partition enfant est activée pour le déchargement VF, la pile de virtualisation émet des demandes OID au pilote miniport PF pour l’allocation de ressources et l’initialisation d’une machine virtuelle. Une fois que la machine virtuelle est attachée à la partition enfant et à un VPort sur le commutateur de carte réseau, les composants réseau envoient et reçoivent des paquets sur le chemin de données VF. Pour plus d’informations sur ces chemins de données, consultez SR-IOV Chemins de données.
Si une partition enfant Hyper-V a été activée pour le déchargement VF, la pile de virtualisation émet une requête de méthode OID de OID_NIC_SWITCH_ALLOCATE_VF au pilote miniport PF. Les paramètres transmis dans cette requête OID incluent l’identificateur du commutateur de carte réseau sur lequel la machine virtuelle est allouée. D'autres paramètres incluent des identificateurs pour la partition enfant à laquelle la VF sera attachée.
Le pilote PF miniport alloue les ressources matérielles et logicielles nécessaires pour la VF. Le pilote PF miniport détermine également l’identificateur de demandeur PCIe (RID) pour la machine virtuelle en appelant NdisMGetVirtualFunctionLocation. Le RID est utilisé pour le remappage DMA et interruption lorsque les requêtes de DMA et les interruptions sont générées par le VF.
Le RID ainsi que l’identificateur VF sont retournés par le pilote miniport PF lorsqu’il termine correctement la demande de OID_NIC_SWITCH_ALLOCATE_VF .
Pour plus d’informations sur l’allocation de ressources pour une fonction virtuelle, consultez Allocation de ressources pour une fonction virtuelle.
La pile de virtualisation crée un VPort sur le commutateur de carte réseau en envoyant une requête de méthode OID de OID_NIC_SWITCH_CREATE_VPORT au pilote miniport PF. Les paramètres transmis dans cette requête OID incluent l’identificateur du commutateur de carte réseau sur lequel la passerelle virtuelle doit être créée. D’autres paramètres incluent l’identificateur du VF auquel le VPort sera attaché.
Note Le VPort par défaut sur le commutateur NIC existe toujours et est attaché au PF. Seul un seul VPort nondefault peut être créé et attaché à une machine virtuelle.
Avant que NDIS transfère la requête OID au pilote miniport de PF, il alloue un identificateur VPort valide et unique à travers l'adaptateur réseau.
Lorsque le pilote pf miniport gère la requête OID, il alloue les ressources matérielles requises pour le VPort et conserve l’identificateur de la VPort. Cet identificateur est utilisé dans les requêtes OID ultérieures et les appels de fonction SR-IOV.
Pour plus d’informations sur la création d’un port virtuel, consultez Création d’un port virtuel.
La partition secondaire Hyper-V peut être démarrée, longtemps avant qu’une VF et un VPort soient alloués. Pendant ce temps, les composants réseau du système d’exploitation invité envoient et reçoivent des paquets sur le chemin des données synthétiques. Cela implique le trafic de paquets sur le VPort par défaut attaché au PF. Pour connecter le trafic à la partition enfant, la pile de virtualisation configure le VPort par défaut avec des filtres sur le contrôle d'accès aux médias (MAC) et sur le réseau local virtuel (VLAN) pour l'adaptateur réseau de la machine virtuelle de la partition enfant.
Une fois que les ressources pour la machine virtuelle et VPort sont allouées, la pile de virtualisation émet une requête de méthode OID de OID_RECEIVE_FILTER_MOVE_FILTER au pilote miniport PF. Cette requête OID déplace les filtres MAC et VLAN de l'adaptateur réseau de la machine virtuelle du VPort par défaut vers le VPort attaché au VF. Cela entraîne le transfert de paquets qui correspondent à ces filtres vers le VF VPort via le chemin de données VF.
Note Les filtres de réception existants peuvent être déplacés du VPort par défaut vers le VPort VF à l’aide de OID_RECEIVE_FILTER_MOVE_FILTER. De plus, de nouveaux filtres peuvent être définis sur le VF VPort en utilisant OID_RECEIVE_FILTER_SET_FILTER.
Une fois que le VF et le VPort ont été créés avec succès et que les filtres MAC ont été définis sur le VPort, la pile de virtualisation avertit le fournisseur de services virtuels PCI (VPCI) virtuel. Ce VSP s’exécute dans le système d’exploitation de gestion de la partition parente Hyper-V. La notification informe le VSP du VPCI que le VF ayant été correctement alloué et attaché à une partition enfant. Le VSP VPCI envoie des messages sur le bus de machine virtuelle (VMBus) au client de service virtuel VPCI (VSC) qui s’exécute dans le système d’exploitation invité de la partition enfant. Le VSC VPCI est un pilote de bus qui expose un périphérique PCI pour la carte réseau VF.
Une fois la carte réseau VF exposée, le sous-système PnP qui s’exécute dans le système d’exploitation invité détecte l’adaptateur et charge le pilote miniport VF. Ce pilote s’inscrit auprès de NDIS. Une fois que le pilote miniport VF a été initialisé et que les filtres de paquets appropriés sont configurés sur la carte réseau VF, le chemin de données VF est entièrement opérationnel. Par conséquent, le trafic de paquets dans le système d’exploitation invité a basculé vers ce chemin de données à partir du chemin de données synthétique.