Partager via


Flux de paquets sur un port virtuel

Le commutateur de carte réseau par défaut est un composant d’une carte réseau qui prend en charge l’interface de virtualisation d’E/S racine unique (SR-IOV). Le commutateur attache toujours le port virtuel par défaut (VPort) à la fonction physique (PF) PCI Express (PCIe). Le commutateur peut attacher un ou plusieurs VPorts non par défaut au pf. Pour plus d’informations, consultez Création d’un port virtuel.

Les points suivants s’appliquent aux paquets envoyés ou reçus sur un VPort attaché au pf :

  • Les paquets envoyés ou reçus sur le VPort par défaut sont spécifiés avec une valeur d’identificateur VPort de DEFAULT_VPORT_ID.

    Les paquets envoyés ou reçus via des VPorts non par défaut sont spécifiés avec l’identificateur VPort qui a été retourné lors de la création du VPort via une demande de méthode OID de OID_NIC_SWITCH_CREATE_VPORT. Lorsque le pilote gère cette requête OID, il obtient l’identificateur VPort du membre VPortId de la structure NDIS_NIC_SWITCH_VPORT_PARAMETERS associée à la requête OID.

    Note Lorsqu’un VPort est supprimé, il est possible que le pilote miniport reçoive un NBL qui contient une valeur VPortId non valide. Si cela se produit, le miniport doit ignorer l’ID VPort non valide et utiliser DEFAULT_VPORT_ID à la place. Le VPortId se trouve dans la partie NetBufferListFilteringInfo des données OOB du NBL et est récupéré à l’aide de la macro NET_BUFFER_LIST_RECEIVE_FILTER_VPORT_ID .

  • Le pilote pf miniport appelle NdisMIndicateReceiveNetBufferLists pour indiquer les paquets reçus d’un VPort. Avant que le pilote pf miniport appelle NdisMIndicateReceiveNetBufferLists, il doit définir l’identificateur VPort dans les données OOB (out-of-band) de la structure NET_BUFFER_LIST pour le paquet. Pour ce faire, le pilote utilise la macro NET_BUFFER_LIST_RECEIVE_FILTER_VPORT_ID .

  • La pile de virtualisation appelle NdisSendNetBufferLists pour transmettre des paquets à un VPort. Avant que la pile de virtualisation appelle NdisSendNetBufferLists, elle définit l’identificateur VPort dans les données OOB de la structure NET_BUFFER_LIST pour le paquet.

    Le pilote miniport obtient l’identificateur VPort à l’aide de la macro NET_BUFFER_LIST_RECEIVE_FILTER_VPORT_ID .

    Le pilote miniport doit mettre en file d’attente le paquet de transmission sur la file d’attente de transmission matérielle du VPort spécifié.

Note Le pilote miniport pour la fonction virtuelle PCIe (VF) ne définit pas ou n’interroge pas l’identificateur VPort dans les données OOB de la structure NET_BUFFER_LIST d’un paquet. Lorsque le pilote de miniport VF envoie un paquet, il met en file d’attente le paquet sur la file d’attente de transmission matérielle pour le VPort non défini par défaut qui est attaché au VF.