Paketfluss über einen virtuellen Port
Der Standard-NIC-Switch ist eine Komponente eines Netzwerkadapters, der die SR-IOV-Schnittstelle (Single Root E/O Virtualization) unterstützt. Der Switch fügt immer den standardmäßigen virtuellen Port (VPort) an die PHYSISCHE FUNKTION (PCIe) (PCI Express) an. Der Switch kann einen oder mehrere nicht standardmäßige VPorts an die PF anfügen. Weitere Informationen finden Sie unter Erstellen eines virtuellen Ports.
Die folgenden Punkte gelten für Pakete, die an einen VPort gesendet oder empfangen werden, der an die PF angefügt ist:
Pakete, die über den Standard-VPort gesendet oder empfangen werden, werden mit dem VPort-Bezeichnerwert DEFAULT_VPORT_ID angegeben.
Pakete, die über nicht standardmäßige VPorts gesendet oder empfangen werden, werden mit dem VPort-Bezeichner angegeben, der zurückgegeben wurde, als der VPort über eine OID-Methodenanforderung von OID_NIC_SWITCH_CREATE_VPORT erstellt wurde. Wenn der Treiber diese OID-Anforderung verarbeitet, ruft er den VPort-Bezeichner aus dem VPortId-Member der NDIS_NIC_SWITCH_VPORT_PARAMETERS-Struktur ab, die der OID-Anforderung zugeordnet ist.
Hinweis Wenn ein VPort gelöscht wird, kann der Miniporttreiber eine NBL empfangen, die einen ungültigen VPortId-Wert enthält. In diesem Fall sollte der Miniport die ungültige VPort-ID ignorieren und stattdessen DEFAULT_VPORT_ID verwenden. Die VPortId befindet sich im NetBufferListFilteringInfo-Teil der OOB-Daten der NBL und wird mithilfe des Makros NET_BUFFER_LIST_RECEIVE_FILTER_VPORT_ID abgerufen.
Der PF-Miniporttreiber ruft NdisMIndicateReceiveNetBufferLists auf, um von einem VPort empfangene Pakete anzugeben. Bevor der PF-Miniporttreiber NdisMIndicateReceiveNetBufferLists aufruft, muss er den VPort-Bezeichner in den Out-of-Band-Daten (OOB) in der NET_BUFFER_LIST-Struktur für das Paket festlegen. Dazu verwendet der Treiber das Makro NET_BUFFER_LIST_RECEIVE_FILTER_VPORT_ID .
Der Virtualisierungsstapel ruft NdisSendNetBufferLists auf, um Pakete an einen VPort zu übertragen. Bevor der Virtualisierungsstapel NdisSendNetBufferLists aufruft, legt er den VPort-Bezeichner in den OOB-Daten in der NET_BUFFER_LIST-Struktur für das Paket fest.
Der Miniporttreiber ruft den VPort-Bezeichner mithilfe des makros NET_BUFFER_LIST_RECEIVE_FILTER_VPORT_ID ab.
Der Miniporttreiber muss das Übertragungspaket in der Hardwareübertragungswarteschlange des angegebenen VPorts in die Warteschlange stellen.
Hinweis Der Miniporttreiber für die virtuelle PCIe-Funktion (VF) legt den VPort-Bezeichner in den OOB-Daten der NET_BUFFER_LIST-Struktur für ein Paket nicht fest oder fragt sie ab. Wenn der VF-Miniporttreiber ein Paket sendet, wird das Paket in der Hardwareübertragungswarteschlange für den einzelnen nicht standardmäßigen VPort in die Warteschlange gestellt, der an den VF angefügt ist.