Zarządzanie żądaniami OID związanymi z odciążeniem sprzętu na fizycznych adapterach sieciowych
W tym temacie omówiono sposób, w jaki rozszerzenie przekazywania przełącznika rozszerzalnego Hyper-V zarządza żądaniami identyfikatora obiektu (OID) dla technologii odciążania sprzętu na podstawowych kartach fizycznych za pośrednictwem rozszerzalnej ścieżki sterowania przełącznika.
Na przykład zewnętrzna karta sieciowa może być powiązana z wirtualną krawędzią miniportu sterownika pośredniego multipleksera NDIS (MUX). Sterownik MUX jest powiązany z zespołem jednej lub większej liczby sieci fizycznych na hoście. Ta konfiguracja jest znana jako zespół przełączników rozszerzalnych .
W tej konfiguracji rozszerzalne rozszerzenie przełącznika jest widoczne dla każdej karty sieciowej w zespole. Dzięki temu rozszerzenie może zarządzać konfiguracją i używaniem poszczególnych kart sieciowych w zespole. Na przykład rozszerzenie do przekazywania może zapewnić obsługę rozwiązania równoważenia obciążenia z awaryjnym przełączaniem (LBFO) przez przekazywanie pakietów wychodzących do poszczególnych adapterów sieciowych. Rozszerzenie przekazujące, które zarządza zespołem rozszerzalnych przełączników, nazywa się dostawcą tworzenia zespołów . Aby uzyskać więcej informacji na temat dostawców zespołów, zobacz Rozszerzenia dostawcy zespołu.
Na poniższej ilustracji przedstawiono przykład zespołu rozszerzalnych przełączników dla NDIS 6.40 (Windows Server 2012 R2) i nowszych.
Na poniższej ilustracji przedstawiono przykład zespołu rozszerzalnego przełącznika dla serwera NDIS 6.30 (Windows Server 2012).
Uwaga W interfejsie rozszerzalnego przełącznika sterowniki filtrów NDIS są znane jako rozszerzenia przełącznika rozszerzalnego , a stos sterowników jest znany jako rozszerzalny stos sterowników przełącznika.
Dzięki obsłudze żądania identyfikatora OID OID_SWITCH_NIC_REQUESTrozszerzenie przekazujące może uczestniczyć w konfiguracji rozszerzalnego zespołu przełączników na potrzeby odciążeń sprzętowych. Jeśli na przykład rozszerzenie zarządza fizycznymi kartami sieciowymi zespołu przełącznika rozłącznego, może przekazać żądanie OID_SWITCH_NIC_REQUEST do fizycznej karty, która obsługuje zrzut sprzętowy.
NDIS i nadrzędne sterowniki protokołu i filtru mogą wysyłać żądania OID dotyczące technologii odciążania sprzętu do podstawowej fizycznej karty sieciowej. Gdy te żądania identyfikatora OID docierają do rozszerzalnego interfejsu przełącznika, hermetyzuje żądanie OID wewnątrz NDIS_SWITCH_NIC_OID_REQUEST. Następnie krawędź przełącznika rozszerzalnego w protokole wystawia żądanie OID OID_SWITCH_NIC_REQUEST, które zawiera tę strukturę.
Interfejs przełącznika rozszerzalnego zawiera OID-y dla następujących technologii odciążania sprzętowego:
odciążenie zabezpieczeń protokołu internetowego (IPsec) (wersja 2)
Następujące żądania OID protokołu IPsec są hermetyzowane:
Rozszerzenie przekazywania nie może zakończyć się niepowodzeniem przy tych żądaniach OID ani zostać zawetowane przez.
Aby uzyskać więcej informacji na temat wersji 2 technologii odciążania sprzętu IPsec, zobacz IPsec Offload Version 2.
wirtualizacja we/wy pojedynczego rdzenia (SR-IOV)
Następujące żądania SR-IOV OID są hermetyzowane:
Rozszerzenie przekazujące może zawetować żądania OID OID_NIC_SWITCH_ALLOCATE_VF i OID_NIC_SWITCH_CREATE_VPORT, wypełniając żądanie kodem stanu innym niż NDIS_STATUS_SUCCESS. Rozszerzenie nie może jednak zawetować innych żądań OID SR-IOV.
Aby uzyskać więcej informacji na temat technologii odciążania sprzętu SR-IOV, zobacz Single Root I/O Virtualization (SR-IOV).
Zwirtualizowana kolejka maszyn wirtualnych (VMQ)
Następujące żądania OID vmQ są hermetyzowane:
Rozszerzenie przekazujące może zawetować żądania OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE i OID_RECEIVE_FILTER_SET_FILTER, wypełniając żądanie kodem stanu innym niż NDIS_STATUS_SUCCESS. Rozszerzenie nie może jednak zawetować innych żądań OID vmQ.
Aby uzyskać więcej informacji na temat technologii odciążania sprzętowego VMQ, zobacz Kolejka maszyn wirtualnych (VMQ).
Rozszerzenie przekazywania musi przestrzegać następujących wskazówek dotyczących obsługi żądań odciążania sprzętowego identyfikatora OID:
Platforma wiadomości błyskawicznych firmy Microsoft anonsuje tylko typowe możliwości odciążania dla całego zespołu. Jednak rozszerzenie może generować żądania OID w celu zapytania o możliwości każdego adaptera w zespole.
Po tym, jak rozszerzenie określi możliwości sprzętowe fizycznych adapterów w zespole, może przekazywać żądania ustalenia OID dla odciążenia sprzętowego do adaptera, który jest najlepiej przystosowany do tego celu.
Wszystkie sprzętowe żądania odciążania identyfikatora OID inicjowane przez nadrzędne protokoły lub sterowniki filtrów będą umieszczone w strukturze NDIS_SWITCH_NIC_OID_REQUEST. Wszystkie sprzętowe żądania odciążania OID pochodzące z rozszerzenia przekazywania muszą być również zamknięte w strukturze NDIS_SWITCH_NIC_OID_REQUEST.
Rozszerzenie przekazuje hermetyzowane żądanie OID do podstawowej fizycznej karty sieciowej za pośrednictwem żądania zestawu OID OID_SWITCH_NIC_REQUEST. Aby uzyskać więcej informacji na temat tej procedury, zobacz Przekazywanie żądań OID do fizycznych adapterów sieciowych.
Rozszerzenie nie może modyfikować ani powodować niepowodzenia żądań odciążania sprzętowego OID, aby wyczyścić, zwolnić lub ukończyć alokację zasobów sprzętowego odciążania. Na przykład rozszerzenie nie może zakończyć się niepowodzeniem żądań OID OID_RECEIVE_FILTER_CLEAR_FILTER lub OID_NIC_SWITCH_DELETE_VPORT. Rozszerzalny interfejs przełącznika musi obsłużyć te żądania OID, aby wyczyścić informacje o stanie tych zasobów.
Rozszerzenie może modyfikować lub wyłączać sprzętowe żądania OID przydzielania, przenoszenia lub odciążania zasobów. Na przykład rozszerzenie może zakończyć się niepowodzeniem lub zmodyfikować żądania OID OID_NIC_SWITCH_ALLOCATE_VF lub OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA.
Rozszerzenie może inicjować wszelkie operacje odciążenia OID do podstawowej fizycznej karty sieciowej. Rozszerzenie nie może jednak inicjować sprzętowego identyfikatora OID odciążania, który usuwa lub zwalnia zasoby odciążania, których rozszerzenie nie przydzieliło.
Na przykład rozszerzenie nie może inicjować sprzętowego żądania odciążania identyfikatora OID OID_RECEIVE_FILTER_FREE_QUEUE, jeśli nie zainicjowało żądania OID_RECEIVE_FILTER_ALLOCATE_QUEUE dla tej samej kolejki.
Uwaga Rozszerzenie może inicjować tylko własne enkapsulowane żądanie odciążenia sprzętowego OID, jeśli filtruje takie samo żądanie OID, które zostało wydane przez nadrzędne sterowniki. W takim przypadku rozszerzenie nie może przekazywać oryginalnego żądania identyfikatora OID. Zamiast tego rozszerzenie musi wywołać NdisFOidRequestComplete, aby ukończyć to żądanie, kiedy NDIS wywołuje FilterOidRequestComplete, aby zakończyć oryginalne żądanie OID.
Jeśli moduł przekazuje żądanie OID offload sprzętu do fizycznej karty sieciowej, składowa DestinationNicIndex struktury NDIS_SWITCH_NIC_OID_REQUEST musi być ustawiona na wartość indeksu inną niż zerowa karty. Aby uzyskać więcej informacji na temat tych wartości indeksu, zobacz Wartości indeksu karty sieciowej.
Ponadto członek DestinationPortId musi być ustawiony na wartość identyfikatora rozszerzalnego portu przełącznika, do którego jest podłączona zewnętrzna karta sieciowa.
Jeśli rozszerzenie pochodzi ze sprzętowego żądania odciążania identyfikatora OID w celu przydzielenia zasobów dla partycji podrzędnej Hyper-V, SourcePortId element członkowski struktury NDIS_SWITCH_NIC_OID_REQUEST musi być ustawiony na identyfikator rozszerzalnego portu przełącznika, z którym jest połączona partycja.
Element członkowski SourceNicIndex musi być ustawiony na wartość NDIS_SWITCH_DEFAULT_NIC_INDEX.
Gdy rozszerzenie wywołuje NdisFOidRequest, aby przekazać żądanie OID, musi ustawić parametr OidRequest jako wskaźnik na strukturę NDIS_OID_REQUEST dla żądania OID OID_SWITCH_NIC_REQUEST.
Aby uzyskać więcej informacji na temat tego, jak rozszerzenie filtruje żądania OID, zobacz Filtrowanie żądań OID w sterowniku filtru NDIS.
Aby uzyskać więcej informacji na temat sterowników MUX, zobacz NDIS MUX Intermediate Drivers.