Partager via


Détermination des fonctionnalités de commutateur de carte réseau

Cette rubrique décrit comment les pilotes NDIS et overlying déterminent les fonctionnalités de commutateur de carte réseau d’une carte réseau qui prend en charge la virtualisation d’E/S racine unique (SR-IOV). Cette rubrique contient les informations suivantes :

Création de rapports sur les fonctionnalités de commutateur de carte réseau pendant MiniportInitializeEx

Interrogation des fonctionnalités de commutateur de carte réseau en sur-plaçant les pilotes

Note Seul le pilote miniport pour la fonction physique (PF) PCI Express (PCIe) d’une carte réseau SR-IOV peut signaler les fonctionnalités de commutateur de carte réseau. Les pilotes miniport pour les fonctions virtuelles PCIe ne doivent pas signaler les fonctionnalités de commutateur de carte réseau de l’adaptateur SR-IOV.

Pour plus d’informations sur les commutateurs de carte réseau, consultez Commutateurs de carte réseau.

Création de rapports sur les fonctionnalités de commutateur de carte réseau pendant MiniportInitializeEx

Lorsque NDIS appelle la fonction MiniportInitializeEx du pilote miniport , le pilote fournit les fonctionnalités de commutateur de carte réseau suivantes :

  • Ensemble complet de fonctionnalités matérielles pour un commutateur de carte réseau que la carte réseau peut prendre en charge.

    Note À compter de NDIS 6.30, un seul commutateur de carte réseau est créé sur la carte réseau. Ce commutateur est appelé commutateur de carte réseau par défaut.

  • Fonctionnalités de commutateur de carte réseau actuellement activées sur la carte réseau.

Le pilote miniport signale les fonctionnalités matérielles du commutateur de carte réseau de la carte réseau sous-jacente par le biais d’une structure NDIS_NIC_SWITCH_CAPABILITIES qui est initialisée de la manière suivante :

  1. Le pilote miniport initialise le membre Header . Le pilote définit le membre Type de l’en-tête sur NDIS_OBJECT_TYPE_DEFAULT.

    À compter de NDIS 6.30, le pilote miniport définit le membre Révision de l’en-tête sur NDIS_NIC_SWITCH_CAPABILITIES_REVISION_2 et le membre Size sur NDIS_SIZEOF_NIC_SWITCH_CAPABILITIES_REVISION_2.

  2. Le pilote miniport définit les indicateurs appropriés dans le membre NicSwitchCapabilities de la structure NDIS_NIC_SWITCH_CAPABILITIES aux fonctionnalités de commutateur de carte réseau de la carte réseau SR-IOV. Par exemple, le pilote miniport définit l’indicateur NDIS_NIC_SWITCH_CAPS_PER_VPORT_INTERRUPT_MODERATION_SUPPORTED si le commutateur de carte réseau prend en charge la modération d’interruption sur chaque port virtuel (VPort) créé sur le commutateur.

  3. Le pilote miniport définit les autres membres de la structure NDIS_NIC_SWITCH_CAPABILITIES sur la plage de valeurs pour les fonctionnalités de commutateur de carte réseau de la carte réseau SR-IOV. Par exemple, le pilote miniport définit les membres MaxNumVFs et MaxNumVPorts sur le nombre maximal de machines virtuelles et de VPorts que l’adaptateur peut prendre en charge.

    Note En fonction des ressources matérielles disponibles sur la carte réseau, le pilote miniport peut définir le membre MaxNumVFs sur une valeur inférieure à sa *NumVFs mot clé. Pour plus d’informations sur cette mot clé, consultez Mots clés INF standardisés pour SR-IOV.

Lorsque NDIS appelle la fonction MiniportInitializeEx du pilote miniport, le pilote enregistre les fonctionnalités de commutateur de carte réseau de la carte réseau en procédant comme suit :

  1. Le pilote miniport initialise une structure NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .

    Le pilote miniport définit le membre HardwareNicSwitchCapabilities sur un pointeur vers une structure de NDIS_NIC_SWITCH_CAPABILITIES précédemment initialisée.

    Si le paramètre de Registre pour le *SRIOV INF mot clé a une valeur, la carte réseau est actuellement activée pour la création et la configuration du commutateur de carte réseau. Le pilote miniport définit les membres CurrentNicSwitchCapabilities sur un pointeur vers la même structure NDIS_NIC_SWITCH_CAPABILITIES .

    Si le paramètre de Registre pour le *SRIOV INF mot clé a la valeur zéro, la carte réseau n’est actuellement pas activée pour la création et la configuration du commutateur de carte réseau. Le pilote miniport doit définir le membre CurrentNicSwitchCapabilities sur NULL.

    Pour plus d’informations sur le *SRIOV INF mot clé, consultez Mots clés INF standardisés pour SR-IOV.

  2. Le pilote appelle NdisMSetMiniportAttributes et définit le paramètre MiniportAttributes sur un pointeur vers la structure NDIS_MINIPORT_ADAPTER_HARDWARE_ASSIST_ATTRIBUTES .

Pour plus d’informations sur le processus d’initialisation de l’adaptateur, consultez Initialisation d’un adaptateur Miniport.

Création d’un commutateur de carte réseau sans SR-IOV

Les pilotes miniport dans NDIS 6.60 et versions ultérieures doivent respecter les conditions suivantes pour la coexistence d’un commutateur de carte réseau et des fonctionnalités VMQ lorsque SR-IOV n’est pas activé. Lorsque SR-IOV est activé, le pilote miniport doit respecter les exigences existantes de la section précédente.

  • Le pilote miniport publie à la fois le commutateur de carte réseau et les fonctionnalités VMQ.
  • La carte réseau peut basculer entre le commutateur de carte réseau et le mode VMQ sans redémarrage de la carte réseau.
    • Lorsque la carte réseau démarre initialement, elle est prête à être dans l’un ou l’autre mode (soit en créant un commutateur de carte réseau, soit en créant des files d’attente VMQ).
      • Si un commutateur de carte réseau est créé, le miniport échoue tous les rappels d’allocation de file d’attente VMQ suivants.
      • Si une file d’attente VMQ est créée en premier, le pilote miniport réussit l’allocation de file d’attente VMQ et échoue à tous les appels d’allocation de commutateur de carte réseau.
    • Lorsque le commutateur de carte réseau est supprimé ou que toutes les files d’attente VMQ sont supprimées, le pilote miniport revient à l’état initial et est prêt à passer à nouveau à l’un de ces modes.

Pour annoncer qu’un commutateur de carte réseau peut être créé sans l’utilisation de SR-IOV, le pilote miniport définit l’indicateur NDIS_NIC_SWITCH_CAPS_NIC_SWITCH_WITHOUT_IOV_SUPPORTED dans le membre NicSwitchCapabilities de la structure NDIS_NIC_SWITCH_CAPABILITIES .

Interrogation des fonctionnalités de commutateur de carte réseau en sur-plaçant les pilotes

NDIS transmet les fonctionnalités de commutateur de carte réseau actuellement activées à des pilotes qui se lient à la carte réseau de la manière suivante :

  • Lorsque NDIS appelle la fonction FilterAttach d’un pilote de filtre trop long, NDIS transmet les fonctionnalités de commutateur de carte réseau de la carte réseau via le paramètre AttachParameters . Ce paramètre contient un pointeur vers une structure NDIS_FILTER_ATTACH_PARAMETERS . Le membre NicSwitchCapabilities de cette structure contient un pointeur vers une structure NDIS_NIC_SWITCH_CAPABILITIES .

  • Lorsque NDIS appelle la fonction ProtocolBindAdapterEx d’un pilote de protocole sur-menting, NDIS transmet les fonctionnalités de commutateur de carte réseau de la carte réseau via le paramètre BindParameters . Ce paramètre contient un pointeur vers une structure NDIS_FILTER_ATTACH_PARAMETERS . Le membre NicSwitchCapabilities de cette structure contient un pointeur vers une structure NDIS_NIC_SWITCH_CAPABILITIES .

NDIS retourne également la structure de NDIS_NIC_SWITCH_CAPABILITIES lorsqu’il gère les requêtes d’identificateur d’objet (OID) de OID_NIC_SWITCH_HARDWARE_CAPABILITIES et de OID_NIC_SWITCH_CURRENT_CAPABILITIES qui sont émises par des pilotes de protocole ou de filtre qui se superposent.