Správa požadavků OID pro hardwarové offloadování na fyzické síťové adaptéry
Toto téma popisuje, jak rozšíření pro předávání Hyper-V rozšiřitelného přepínače spravuje požadavky identifikátoru objektu (OID) na technologie přesměrování hardwaru na podkladových fyzických adaptérech přes rozšiřitelnou cestu řízení přepínače.
Externí síťový adaptér může být například svázán s hraničním bodem virtuálního miniportu zprostředkujícího ovladače NDIS multiplexeru (MUX). Ovladač MUX je vázán na tým jedné nebo více fyzických sítí na hostiteli. Tato konfigurace je známá jako rozšiřitelný tým přepínačů .
V této konfiguraci je rozšíření rozšiřitelného přepínače vystavené každému síťovému adaptéru v týmu. To umožňuje rozšíření spravovat konfiguraci a použití jednotlivých síťových adaptérů v týmu. Rozšíření pro předávání může například poskytovat podporu pro řešení převzetí služeb při selhání vyrovnávání zatížení (LBFO) v rámci týmu přesměrováním odchozích paketů na jednotlivé adaptéry. Rozšíření pro předávání, které spravuje rozšiřitelný tým přepínače, se označuje jako poskytovatel seskupení. Další informace o poskytovateli seskupování naleznete v tématu Rozšíření poskytovatele seskupování.
Následující obrázek ukazuje příklad týmu rozšiřitelného přepínače pro NDIS 6.40 (Windows Server 2012 R2) a novější.
Následující schéma ukazuje příklad rozšiřitelné skupiny přepínačů pro NDIS 6.30 (Windows Server 2012).
Poznámka V rozšiřitelném rozhraní přepínače jsou ovladače filtru NDIS známé jako rozšíření rozšiřitelných přepínačů a zásobník ovladačů se označuje jako rozšiřitelný zásobník ovladačů.
Zpracováním žádosti o identifikátor (OID) OID_SWITCH_NIC_REQUESTse rozšíření předávání může účastnit konfigurace týmu rozšiřitelného přepínače pro hardwarové offloady. Pokud například rozšíření spravuje fyzické síťové adaptéry rozšiřitelného týmu přepínačů, může předat požadavek OID_SWITCH_NIC_REQUEST fyzickému adaptéru, který podporuje přesměrování zátěže hardwaru.
Ovladače NDIS a nadřazeného protokolu a filtru mohou vydávat požadavky OID pro technologie hardwarového offloadu na podřízený fyzický síťový adaptér. Když tyto požadavky OID dorazí na rozšiřitelné rozhraní přepínače, zapouzdří požadavek OID do NDIS_SWITCH_NIC_OID_REQUEST. Poté hrana protokolu rozšiřitelného přepínače vydá požadavek OID OID_SWITCH_NIC_REQUEST, který obsahuje tuto strukturu.
Rozšiřitelné rozhraní přepínače zapouzdřuje identifikátory OID pro následující technologie snižování zátěže hardwaru:
odlehčení zpracování Internet Protocol Security (IPsec) (verze 2)
Jsou encapsulovány následující požadavky IPsec OID:
Rozšíření předávání nesmí selhat, jinak zamítne, tyto požadavky OID.
Další informace o verzi 2 technologie přesměrování zpracování hardwaru IPsec naleznete v tématu IPsec Offload verze 2.
virtualizace I/O s jedním kořenem (SR-IOV)
Následující požadavky OID SR-IOV jsou zapouzdřeny:
Rozšíření pro předávání může vetovat požadavky OID OID_NIC_SWITCH_ALLOCATE_VF a OID_NIC_SWITCH_CREATE_VPORT tím, že je dokončí s jiným stavovým kódem než NDIS_STATUS_SUCCESS. Rozšíření však nesmí vetovat ostatní požadavky identifikátorů SR-IOV OID.
Další informace o technologii hardwarového offloadu SR-IOV naleznete v tématu Single Root I/O Virtualization (SR-IOV).
fronta virtualizovaných strojů (VMQ)
Následující požadavky identifikátoru VMQ jsou zapouzdřené:
Rozšíření pro předávání může zamítnout požadavky OID OID_RECEIVE_FILTER_ALLOCATE_QUEUE a OID_RECEIVE_FILTER_SET_FILTER tím, že dokončí požadavek s jiným stavovým kódem než NDIS_STATUS_SUCCESS. Rozšíření však nesmí vetovat ostatní požadavky VMQ OID.
Další informace o technologii snižování zátěže hardwaru VMQ naleznete v tématu Fronta virtuálních počítačů (VMQ).
Rozšíření přesměrování musí dodržovat tyto pokyny pro zpracování požadavků OID vyložení na hardware:
Platforma zasílání rychlých zpráv Microsoftu inzeruje pouze běžné funkce snižování zátěže pro celkový tým. Rozšíření ale může generovat požadavky OID pro dotazování schopností jednotlivých adaptérů v týmu.
Jakmile rozšíření určí hardwarové možnosti fyzických adaptérů v týmu, může předávat požadavky na OID set pro hardwarové odlehčení adaptéru, který je pro toto odlehčení nejvhodnější.
Všechny požadavky OID na snižování zátěže hardwaru, které pocházejí od nadřazených protokolů nebo ovladačů filtru, budou zapouzdřeny ve struktuře NDIS_SWITCH_NIC_OID_REQUEST. Všechny hardwarové offload OID požadavky, které pocházejí z rozšíření předávání, musí být také zapouzdřeny ve struktuře NDIS_SWITCH_NIC_OID_REQUEST.
Rozšíření předává zapouzdřený požadavek OID podkladovému fyzickému síťovému adaptéru prostřednictvím požadavku sady identifikátorů OID_SWITCH_NIC_REQUEST. Další informace o tomto postupu naleznete v tématu Předávání požadavků OID na fyzické síťové adaptéry.
Rozšíření nesmí upravovat ani selhávat požadavky na identifikátory objektů (OID) pro hardwarové offloady, aby uvolnilo, obstaralo nebo dokončilo alokaci offloadových zdrojů. Například rozšíření nesmí selhat při požadavcích OID OID_RECEIVE_FILTER_CLEAR_FILTER nebo OID_NIC_SWITCH_DELETE_VPORT. Rozšiřitelné rozhraní přepínače musí zpracovávat tyto požadavky OID, aby se vyčistily informace o stavu těchto prostředků.
Rozšíření může upravit nebo se mu může nepodařit zpracovat hardwarové OID offload požadavky za účelem přidělení, přesunutí nebo nastavení offload zdrojů. Rozšíření může například selhat nebo upravit požadavky OID, jako je OID_NIC_SWITCH_ALLOCATE_VF nebo OID_TCP_TASK_IPSEC_OFFLOAD_V2_ADD_SA.
Rozšíření může iniciovat jakékoli OID požadavky na hardwarové snižování zátěže vůči základnímu fyzickému síťovému adaptéru. Rozšíření však nesmí vytvořit identifikátor hardwarového odkládání zátěže, který by vymazal nebo uvolnil prostředky pro odkládání zátěže, které rozšíření nepřidělilo.
Například rozšíření nesmí iniciovat požadavek OID na snižování zátěže hardwaru OID_RECEIVE_FILTER_FREE_QUEUE, pokud neiniciovalo požadavek OID_RECEIVE_FILTER_ALLOCATE_QUEUE pro stejnou frontu.
Poznámka Rozšíření může zahájit vlastní zapouzdřený požadavek OID na hardwarové odlehčení pouze tehdy, pokud filtruje stejný požadavek OID, který byl vydán nadřazenými ovladači. V tomto případě rozšíření nesmí přeposílat původní požadavek OID. Místo toho musí rozšíření volat NdisFOidRequestComplete, aby dokončilo tento požadavek, když NDIS volá svůj FilterOidRequestComplete k dokončení původního požadavku OID.
Pokud rozšíření předává požadavek OID snižování zátěže hardwaru na základní fyzický síťový adaptér, DestinationNicIndex člen struktury NDIS_SWITCH_NIC_OID_REQUEST musí být nastaven na nenulovou indexovou hodnotu adaptéru. Další informace o těchto hodnotách indexu naleznete v tématu indexové hodnoty síťových adaptérů.
Také člen DestinationPortId musí být nastaven na identifikátor portu rozšiřitelného přepínače, ke kterému je připojen externí síťový adaptér.
Pokud rozšíření iniciuje požadavek OID hardwarového přesměrování pro přidělení prostředků pro Hyper-V podřízený oddíl, musí být SourcePortId člen struktury NDIS_SWITCH_NIC_OID_REQUEST nastaven na identifikátor portu rozšiřitelného přepínače, ke kterému je tento oddíl připojen.
SourceNicIndex člen musí být nastaven na NDIS_SWITCH_DEFAULT_NIC_INDEX.
Když rozšíření volá NdisFOidRequest pro předání požadavku OID, musí nastavit parametr OidRequest tak, aby ukazoval na strukturu NDIS_OID_REQUEST pro požadavek OID typu OID_SWITCH_NIC_REQUEST.
Další informace o tom, jak rozšíření filtruje požadavky OID, naleznete v tématu Filtrování požadavků OID v ovladači filtru NDIS.
Další informace o ovladačích MUX naleznete v tématu NDIS MUX Intermediate Drivers.