Udostępnij przez


Obsługa NVGRE w funkcji Large Send Offload (LSO)

NDIS 6.30 (Windows Server 2012) wprowadza wirtualizację sieci przy użyciu ogólnej kapsulacji routingu (NVGRE). Sterowniki NDIS miniport, protokoły i sterowniki filtru oraz karty sieciowe, które wykonują duże odciążanie wysyłania (LSO) w wersji 2 (LSOV2), powinny to robić w sposób obsługujący NVGRE.

Uwaga Ta strona zakłada, że jesteś zaznajomiony z informacjami zawartymi w sekcji "Odciążanie segmentacji dużych pakietów TCP".

Jeśli NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO.IsEncapsulatedPacket jest PRAWDA i informacje poza pasmem (OOB) w TcpIpChecksumNetBufferListInfo są prawidłowe, oznacza to, że obsługa NVGRE jest wymagana, a karta sieciowa musi dokonać odciążenia LSOV2 w pakiecie w formacie NVGRE, z następującymi warunkami:

Aby obsługiwać protokół NVGRE w LSOV2, sterowniki protokołu i filtru muszą wprowadzić następujące zmiany:

Karty sieciowe i sterowniki miniportów mogą używać wartości InnerFrameOffset, TransportIpHeaderRelativeOffseti TcpHeaderRelativeOffset podanych w strukturze NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO. Sterownik karty sieciowej lub miniportu może wykonać wszelkie wymagane sprawdzenia zewnętrznego nagłówka IP tunelu lub kolejnych nagłówków w celu zweryfikowania tych przesunięć.

Sterowniki Miniport muszą obsługiwać przypadek, w którym NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO.InnerFrameOffset może znajdować się na innej liście scatter-gather niż początek pakietu. Sterownik protokołu gwarantuje, że wszystkie nagłówki hermetyzacji dodane na początku (ETH, IP, GRE) będą fizycznie przylegające i znajdą się w pierwszym MDL pakietu.

Sterowniki protokołów i filtrów nie zapewniają, że łączna długość ładunku TCP jest dokładną wielokrotnością zmniejszonej wartości MSS. Z tego powodu sterowniki miniportów i karty sieciowe muszą zaktualizować nagłówek adresu IP tunelu (zewnętrznego). Karty sieciowe muszą generować jak najwięcej segmentów o pełnym rozmiarze na podstawie zmniejszonej wartości MSS w informacjach NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO.LsoV2Transmit pozapasmowych (OOB). Na każde wysyłanie LSOv2 może zostać wygenerowany tylko jeden segmentMSS.

Sterowniki miniportu muszą wykonywać następujące czynności:

  • Oblicz sumę kontrolną dla nagłówka adresu IP tunelu (zewnętrznego).
  • Zwiększaj wartość identyfikatora IP (IP ID) w nagłówku zewnętrznego adresu IP tunelu dla każdego pakietu. Pierwszy pakiet musi używać identyfikatora IP w nagłówku adresu IP oryginalnego tunelu (zewnętrznego).
  • Zwiększ identyfikator IP w wewnętrznym nagłówku IP transportu dla każdego pakietu. Pierwszy pakiet musi używać ID IP w oryginalnym nagłówku IP transportowym (wewnętrznym).
  • Oblicz sumę kontrolną nagłówka TCP i nagłówka IP warstwy transportowej (wewnętrznego).
  • Upewnij się, że pełne nagłówki, w tym nagłówki tunelu hermetyzacji (zewnętrzne) są dodawane do każdego wygenerowanego pakietu.

Odciążanie segmentacji dużych pakietów TCP