Gestion du déchargement matériel des requêtes OID vers des cartes réseau physiques
Cette rubrique explique comment une extension de transfert de commutateur extensible Hyper-V gère les demandes d’identificateur d’objet (OID) pour les technologies de déchargement matériel sur les adaptateurs physiques sous-jacents via le chemin de contrôle du commutateur extensible.
Par exemple, la carte réseau externe peut être liée au bord de miniport virtuel d’un pilote intermédiaire de multiplexeur NDIS (MUX). Le pilote MUX est lié à une équipe d’un ou plusieurs réseaux physiques sur l’hôte. Cette configuration est connue sous le nom d’équipe de commutateur extensible.
Dans cette configuration, une extension de commutateur extensible est exposée à chaque carte réseau de l’équipe. Cela permet à l’extension de gérer la configuration et l’utilisation de cartes réseau individuelles dans l’équipe. Par exemple, une extension de transfert peut fournir la prise en charge d’une solution de basculement d’équilibrage de charge (LBFO) sur l’équipe en transférant les paquets sortants vers des adaptateurs individuels. Une extension de transfert qui gère une équipe de commutateur extensible est appelée fournisseur d’association. Pour plus d’informations sur les fournisseurs d’association, consultez Extensions du fournisseur d’association.
La figure suivante montre un exemple d’équipe de commutateur extensible pour NDIS 6.40 (Windows Server 2012 R2) et versions ultérieures.
La figure suivante montre un exemple d’équipe de commutateur extensible pour NDIS 6.30 (Windows Server 2012).
Note Dans l’interface de commutateur extensible, les pilotes de filtre NDIS sont appelés extensions de commutateur extensible et la pile de pilotes est appelée pile de pilotes de commutateur extensible.
En gérant la demande OID de OID_SWITCH_NIC_REQUEST, une extension de transfert peut participer à la configuration de l’équipe de commutateur extensible pour les déchargements matériels. Par exemple, si l’extension gère les cartes réseau physiques d’une équipe de commutateur extensible, elle peut transférer la demande de OID_SWITCH_NIC_REQUEST à une carte physique qui prend en charge le déchargement matériel.
Les pilotes NDIS et les pilotes de protocole et de filtres overlying peuvent émettre des demandes OID pour les technologies de déchargement matériel sur la carte réseau physique sous-jacente. Lorsque ces requêtes OID arrivent à l’interface de commutateur extensible, elle encapsule la requête OID à l’intérieur d’un NDIS_SWITCH_NIC_OID_REQUEST. Ensuite, le bord du protocole du commutateur extensible émet une requête OID de OID_SWITCH_NIC_REQUEST qui contient cette structure.
L’interface de commutateur extensible encapsule des OID pour les technologies de déchargement matérielles suivantes :
Déchargement IPsec (Internet Protocol Security) (version 2)
Les requêtes OID IPsec suivantes sont encapsulées :
L’extension de transfert ne doit pas échouer ou opposer son veto à ces demandes OID.
Pour plus d’informations sur la version 2 de la technologie de déchargement matériel IPsec, consultez Déchargement IPsec version 2.
Virtualisation d’E/S racine unique (SR-IOV)
Les requêtes OID SR-IOV suivantes sont encapsulées :
L’extension de transfert peut opposer son veto aux demandes OID de OID_NIC_SWITCH_ALLOCATE_VF et de OID_NIC_SWITCH_CREATE_VPORT en effectuant la demande avec un code status autre que NDIS_STATUS_SUCCESS. Toutefois, la prolongation ne doit pas opposer son veto aux autres demandes d’OID SR-IOV.
Pour plus d’informations sur la technologie de déchargement matériel SR-IOV, consultez Virtualisation d’E/S racine unique (SR-IOV).
File d’attente de machines virtualisées (VMQ)
Les requêtes OID VMQ suivantes sont encapsulées :
L’extension de transfert peut opposer son veto aux demandes OID de OID_RECEIVE_FILTER_ALLOCATE_QUEUE et de OID_RECEIVE_FILTER_SET_FILTER en effectuant la demande avec un code status autre que NDIS_STATUS_SUCCESS. Toutefois, l’extension ne doit pas opposer son veto aux autres demandes d’OID VMQ.
Pour plus d’informations sur la technologie de déchargement matériel VMQ, consultez File d’attente de machines virtuelles (VMQ).
L’extension de transfert doit suivre ces instructions pour gérer les demandes d’OID de déchargement matériel :
La plateforme de messagerie instantanée Microsoft publie uniquement les fonctionnalités de déchargement courantes pour l’ensemble de l’équipe. Toutefois, l’extension peut générer des requêtes OID pour interroger les fonctionnalités de chaque adaptateur de l’équipe.
Une fois que l’extension a déterminé les fonctionnalités matérielles des adaptateurs physiques de l’équipe, elle peut transférer les demandes de déchargements matériels de jeu d’OID à l’adaptateur le mieux adapté au déchargement.
Toutes les requêtes OID de déchargement matériel qui proviennent de pilotes de protocole ou de filtre surchargés sont encapsulées dans une structure de NDIS_SWITCH_NIC_OID_REQUEST . Toutes les requêtes OID de déchargement matériel qui proviennent de l’extension de transfert doivent également être encapsulées dans une structure de NDIS_SWITCH_NIC_OID_REQUEST .
L’extension transfère la requête OID encapsulée à une carte réseau physique sous-jacente via une demande de jeu d’OID de OID_SWITCH_NIC_REQUEST. Pour plus d’informations sur cette procédure, consultez Transfert de requêtes OID vers des cartes réseau physiques.
L’extension ne doit pas modifier ou échouer les requêtes OID de déchargement matériel pour effacer, libérer ou terminer l’allocation des ressources de déchargement. Par exemple, l’extension ne doit pas faire échouer les requêtes OID de OID_RECEIVE_FILTER_CLEAR_FILTER ou de OID_NIC_SWITCH_DELETE_VPORT. L’interface de commutateur extensible doit gérer ces requêtes OID pour propre les informations d’état de ces ressources.
L’extension peut modifier ou échouer le déchargement matériel des requêtes OID pour allouer, déplacer ou définir des ressources de déchargement. Par exemple, l’extension peut échouer ou modifier des requêtes OID de OID_NIC_SWITCH_ALLOCATE_VF ou de OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA.
L’extension peut provenir de n’importe quel OID de déchargement matériel vers une carte réseau physique sous-jacente. Toutefois, l’extension ne doit pas provenir d’un OID de déchargement matériel qui efface ou libère les ressources de déchargement que l’extension n’a pas allouées.
Par exemple, l’extension ne doit pas provenir d’une demande OID de déchargement matériel de OID_RECEIVE_FILTER_FREE_QUEUE si elle n’a pas été à l’origine d’une demande de OID_RECEIVE_FILTER_ALLOCATE_QUEUE pour la même file d’attente.
Note L’extension peut uniquement provenir de sa propre demande OID de déchargement matériel encapsulé si elle filtre la même demande OID que celle qui a été émise par des pilotes surchargés. Dans ce cas, l’extension ne doit pas transférer la requête OID d’origine. Au lieu de cela, l’extension doit appeler NdisFOidRequestComplete pour terminer cette demande lorsque NDIS appelle son FilterOidRequestComplete pour terminer la requête OID d’origine.
Si l’extension transfère une demande OID de déchargement matériel à une carte réseau physique sous-jacente, le membre DestinationNicIndex de la structure NDIS_SWITCH_NIC_OID_REQUEST doit être défini sur la valeur d’index différente de zéro de la carte. Pour plus d’informations sur ces valeurs d’index, consultez Valeurs d’index de carte réseau.
En outre, le membre DestinationPortId doit être défini sur l’identificateur du port de commutateur extensible auquel la carte réseau externe est connectée.
Si l’extension est à l’origine d’une demande OID de déchargement matériel pour allouer des ressources pour une partition enfant Hyper-V, le membre SourcePortId de la structure NDIS_SWITCH_NIC_OID_REQUEST doit être défini sur l’identificateur du port de commutateur extensible auquel la partition est connectée.
Le membre SourceNicIndex doit être défini sur NDIS_SWITCH_DEFAULT_NIC_INDEX.
Lorsque l’extension appelle NdisFOidRequest pour transférer la requête OID, elle doit définir le paramètre OidRequest sur un pointeur vers une structure NDIS_OID_REQUEST pour une requête OID OID_SWITCH_NIC_REQUEST .
Pour plus d’informations sur la façon dont l’extension filtre les requêtes OID, consultez Filtrage des requêtes OID dans un pilote de filtre NDIS.
Pour plus d’informations sur les pilotes MUX, consultez Pilotes intermédiaires MUX NDIS.