Partager via


NDIS_STATUS_SWITCH_PORT_REMOVE_VF

L’indication NDIS_STATUS_SWITCH_PORT_REMOVE_VF status est émise par une extension de transfert de commutateur extensible Hyper-V pour supprimer la liaison entre une carte réseau de machine virtuelle et une fonction virtuelle PCI Express (VF). La VF est exposée et prise en charge par une carte réseau physique sous-jacente qui prend en charge l’interface de virtualisation d’E/S racine unique (SR-IOV).

Pour émettre l’indication status NDIS_STATUS_SWITCH_PORT_REMOVE_VF, l’extension de transfert doit encapsuler l’indication dans une structure de NDIS_SWITCH_NIC_STATUS_INDICATION et émettre une indication NDIS_STATUS_SWITCH_NIC_STATUS status.

Pour plus d’informations sur ce processus, consultez Recommandations pour l’émission d’une indication d’état NDIS_STATUS_SWITCH_PORT_REMOVE_VF.

Notes

Une VF PCIe est créée et allouée par une carte physique sous-jacente qui prend en charge l’interface SR-IOV. Une fois créée, la pile de virtualisation attache ou affecte la VF à une partition enfant Hyper-V. Le système d’exploitation invité qui s’exécute dans cette partition expose une carte réseau de machine virtuelle liée à la VF de la carte physique SR-IOV sous-jacente.

Une fois les cartes réseau virtuelles et physiques affectées, les paquets sont routés directement entre la VF et la carte réseau de machine virtuelle. Toutefois, étant donné que le commutateur extensible n’est pas impliqué dans la remise de paquets, les stratégies de port de commutateur extensible ne sont pas appliquées à ces paquets. Cela inclut les stratégies de port pour les listes de contrôle d’accès (ACL) et la qualité de service (QoS).

Une extension de transfert de commutateur extensible peut supprimer l’affectation de la VF à la partition enfant en émettant une NDIS_STATUS_SWITCH_PORT_REMOVE_VF status indication. Cette indication entraîne la remise des paquets via un port de commutateur extensible plutôt que directement entre la carte réseau de machine virtuelle et la VF de la carte physique SR-IOV sous-jacente. Cela permet d’appliquer les stratégies de port de commutateur extensible aux paquets reçus ou envoyés via le port de commutateur extensible.

Lorsque l’extension de transfert indique l’NDIS_STATUS_SWITCH_PORT_REMOVE_VF status, elle spécifie le port de commutateur extensible auquel la carte réseau de machine virtuelle est connectée.

Pour plus d’informations sur les extensions de transfert de commutateur extensibles, consultez Transfert d’extensions.

Instructions pour l’émission d’une indication d’état NDIS_STATUS_SWITCH_PORT_REMOVE_VF

Pour émettre l’indication status NDIS_STATUS_SWITCH_PORT_REMOVE_VF, l’extension de transfert doit suivre les étapes suivantes :

  1. L’extension de transfert initialise une structure NDIS_STATUS_INDICATION pour l’indication NDIS_STATUS_SWITCH_PORT_REMOVE_VF . Pour cette indication, les extensions de transfert définissent les membres suivants de la structure NDIS_STATUS_INDICATION :

    • Le membre StatusCode doit être défini sur NDIS_STATUS_SWITCH_PORT_REMOVE_VF.

    • Le membre StatusBuffer doit avoir la valeur NULL.

    • StatusBufferSize doit être défini sur zéro.

  2. L’extension de transfert initialise une structure NDIS_SWITCH_NIC_STATUS_INDICATION . Pour supprimer une affectation VF, l’extension de transfert doit définir les membres de la manière suivante :

    • Le membre DestinationPortId doit être défini sur l’identificateur d’un port de commutateur extensible auquel la carte réseau de machine virtuelle est connectée.

    • Le membre DestinationNicIndex doit être défini sur la valeur d’index de la carte réseau de machine virtuelle connectée au port spécifié.

    • Le membre SourcePortId doit être défini sur NDIS_SWITCH_DEFAULT_PORT_ID.

    • Le membre SourceNicIndex doit être défini sur NDIS_SWITCH_DEFAULT_NIC_INDEX.

    • Le membre StatusIndication doit être défini sur l’adresse de la structure NDIS_STATUS_INDICATION pour l’indication NDIS_STATUS_SWITCH_PORT_REMOVE_VF .

  3. L’extension de transfert initialise une structure NDIS_STATUS_INDICATION pour l’indication NDIS_SWITCH_NIC_STATUS_INDICATION . Pour cette indication, l’extension de transfert définit les membres suivants de la structure NDIS_STATUS_INDICATION :

  4. L’extension de transfert doit appeler ReferenceSwitchNic pour incrémenter un compteur de références pour la carte réseau de machine virtuelle. Si ReferenceSwitchNic ne se termine pas avec NDIS_STATUS_SUCCESS, l’extension de transfert ne doit pas transférer l’indication status.

    Note Si l’extension de transfert a reçu une OID_SWITCH_NIC_DISCONNECT demande définie pour l’adaptateur de machine virtuelle, elle ne doit pas appeler ReferenceSwitchNic ni transférer l’indication status.

  5. L’extension de transfert appelle NdisFIndicateStatus pour transférer l’NDIS_STATUS_INDICATION vers des extensions en sur-position dans la pile de pilotes de commutateur extensible. Lorsque l’extension de transfert appelle cette fonction, elle définit le paramètre StatusIndication sur un pointeur vers la structure NDIS_STATUS_INDICATION pour l’indication NDIS_STATUS_SWITCH_NIC_STATUS .

  6. Une fois NdisFIndicateStatus retourné, l’extension de transfert doit appeler DereferenceSwitchNic pour décrémenter le compteur de référence pour la carte réseau de machine virtuelle.

Note L’extension de transfert doit suivre les étapes précédentes pour chaque affectation VF que l’extension de transfert est en cours de suppression.

Pour plus d’informations sur la façon dont une extension de transfert transfère les indications status, consultez Filtrer les indications d’état du module.

Instructions pour la détermination des affectations VF

L’extension de transfert peut énumérer les affectations VF actuelles pour les cartes réseau virtuelles en émettant une requête OID de OID_SWITCH_NIC_ARRAY. Cette requête retourne une structure NDIS_SWITCH_NIC_ARRAY qui contient un tableau de structures NDIS_SWITCH_NIC_PARAMETERS . Chaque structure NDIS_SWITCH_NIC_PARAMETERS spécifie les paramètres d’une carte réseau exposée dans l’un des environnements suivants :

  • Système d’exploitation de gestion qui s’exécute dans la partition parente Hyper-V.

    Les cartes réseau exposées dans ce système d’exploitation sont spécifiées avec une valeur d’énumération NDIS_SWITCH_NIC_TYPEde NdisSwitchNicTypeExternal ou NdisSwitchNicTypeInternal.

  • Système d’exploitation invité qui s’exécute dans une partition enfant Hyper-V.

    Les cartes réseau exposées dans ce système d’exploitation sont spécifiées avec une valeur d’énumération NDIS_SWITCH_NIC_TYPEde NdisSwitchNicTypeSynthetic ou NdisSwitchNicTypeEmulated.

Si la requête OID de OID_SWITCH_NIC_ARRAY se termine par une status de NDIS_STATUS_SUCCESS, l’extension de transfert peut déterminer les affectations VF en inspectant chaque structure NDIS_SWITCH_NIC_PARAMETERS dans le tableau retourné. Si le membre VFAssigned de la structure NDIS_SWITCH_NIC_PARAMETERS a la valeur TRUE, la carte réseau qui correspond à la structure NDIS_SWITCH_NIC_PARAMETERS est affectée à une VF.

L’extension de transfert peut supprimer l’affectation en émettant une NDIS_STATUS_SWITCH_PORT_REMOVE_VF status indication. Dans ce cas, l’extension de transfert doit définir le membre DestinationPortId du NDIS_SWITCH_NIC_STATUS_INDICATION sur la valeur du membre PortId de la structure NDIS_SWITCH_NIC_PARAMETERS .

Pour plus d’informations sur l’émission d’une indication status NDIS_STATUS_SWITCH_PORT_REMOVE_VF, consultez Instructions pour l’émission d’une indication d’état NDIS_STATUS_SWITCH_PORT_REMOVE_VF.

Spécifications

Version

Pris en charge dans NDIS 6.30 et versions ultérieures.

En-tête

Ndis.h (inclure Ndis.h)

Voir aussi


NdisFIndicateStatus

NDIS_STATUS_INDICATION

NDIS_STATUS_SWITCH_NIC_STATUS

NDIS_SWITCH_NIC_ARRAY

NDIS_SWITCH_NIC_PARAMETERS

NDIS_SWITCH_NIC_TYPE

OID_SWITCH_NIC_ARRAY