структура NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 (ntddndis.h)

Структура NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 содержит сведения об инкапсуляции пакетов для разгрузки задачи Виртуальной расширяемой локальной сети (VXLAN). VXLAN похожа на разгрузку задач NVGRE, но с другим протоколом.

Эта структура используется в элементе EncapsulatedPacketTaskOffloadVxlanструктуры NDIS_OFFLOAD в NDIS 6.50 и более поздних версиях.

Синтаксис

typedef struct _NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 {
  ULONG                        TransmitChecksumOffloadSupported : 4;
  ULONG                        ReceiveChecksumOffloadSupported : 4;
  ULONG                        LsoV2Supported : 4;
  ULONG                        RssSupported : 4;
  ULONG                        VmqSupported : 4;
  ULONG                        UsoSupported : 4;
#if ...
  ULONG                        Reserved : 8;
#else
  ULONG                        Reserved : 12;
#endif
  ULONG                        MaxHeaderSizeSupported;
  union {
    struct {
      USHORT VxlanUDPPortNumber;
      USHORT VxlanUDPPortNumberConfigurable : 1;
    } VxlanInfo;
    ULONG Value;
  } EncapsulationProtocolInfo;
  _ENCAPSULATION_PROTOCOL_INFO _ENCAPSULATION_PROTOCOL_INFO;
  ULONG                        Reserved1;
  ULONG                        Reserved2;
} NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2, *PNDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2;

Члены

TransmitChecksumOffloadSupported

Параметры разгрузки задачи для контрольной суммы передачи.

ReceiveChecksumOffloadSupported

Параметры разгрузки задачи для получения контрольной суммы.

LsoV2Supported

Параметры разгрузки задачи для разгрузки большой отправки версии 2 (LSOv2).

RssSupported

Параметры разгрузки задач для масштабирования на стороне получения (RSS).

VmqSupported

Параметры разгрузки задач для очереди виртуальных машин (VMQ).

UsoSupported

Параметры разгрузки задач для разгрузки сегментации UDP (USO).

Reserved

Зарезервировано для системного использования.

MaxHeaderSizeSupported

Для этого элемента должен быть задан максимальный размер заголовка от начала пакета до начала внутренних полезных данных TCP или UDP (последний байт внутреннего заголовка TCP или UDP), который сетевой адаптер должен поддерживать для всех этих разгрузки задач. Ожидается, что драйвер протокола не разгрузит обработку пакета, совокупные заголовки инкапсуляции которого превышают этот размер.

Совет

256 байт — это хорошее значение по умолчанию, которое должно охватывать все возможные случаи.

EncapsulationProtocolInfo

Объединение, содержащее элемент VxlanInfo и элемент Value .

EncapsulationProtocolInfo.VxlanInfo

Структуру, содержащую элемент VxlanUDPPortNumber и элемент VxlanUDPPortNumberConfigurable .

EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumber

Номер порта, используемого для порта назначения UDP VXLAN.

EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumberConfigurable

Описывает, можно ли настроить номер порта UDP.

EncapsulationProtocolInfo.Value

Значение контрольной суммы UDP для этого пакета.

_ENCAPSULATION_PROTOCOL_INFO

Reserved1

Зарезервировано для системного использования.

Reserved2

Зарезервировано для системного использования.

Комментарии

В начальном объявлении возможности, а также в NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIG и NDIS_STATUS_TASK_OFFLOAD_HARDWARE_CAPABILITIES обозначениях состояния члены TransmitChecksumOffloadSupported, ReceiveChecksumOffloadSupported, LsoV2Supported, RssSupported, VmqSupported и UsoSupported могут иметь побитовое значение ИЛИ следующих флагов:

Термин Описание
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_NOT_SUPPORTED Указывает, что адаптер мини-порта не поддерживает соответствующую функцию разгрузки задач, указанную элементом.
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4 Указывает, что адаптер мини-порта поддерживает соответствующую функцию разгрузки задач, которую член указывает, где внутренний IP-заголовок инкапсулированного пакета — IPv4.
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 Указывает, что адаптер мини-порта поддерживает соответствующую функцию разгрузки задач, которую член указывает, где внешний IP-заголовок инкапсулированного пакета — IPv4.
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV6 Указывает, что адаптер мини-порта поддерживает соответствующую функцию разгрузки задач, которую член указывает, где внутренний IP-заголовок инкапсулированного пакета — IPv6.
NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6 Указывает, что адаптер мини-порта поддерживает соответствующую функцию разгрузки задач, которую член указывает, где внешний IP-заголовок инкапсулированного пакета — IPv6.

Например, если адаптер и драйвер мини-порта поддерживают только заголовок IPv6 в качестве внешнего IP-заголовка, но не как внутренний заголовок IP- адреса, они зададут для параметра TransmitChecksumOffloadSupported, ReceiveChecksumOffloadSupported, LsoV2Supported, RssSupported, VmqSupported и UsoSupported значение побитового ИЛИ NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_INNER_IPV4, NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 и NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6.

Что касается параметров IP и TCP, для инкапсулированных пакетов было сделано следующее предположение:

  • Если сетевая карта указывает поддержку IpOptions и TcpOptions в обычной разгрузке контрольной суммы и объявлении LSOv2, она должна поддерживать обработку параметров для инкапсулированных пакетов, если поддерживается виртуализация сети с помощью разгрузки задач VXLAN. Это означает, что он будет поддерживать параметры внутреннего и внешнего IP-адреса и параметры TCP внутри инкапсулированных пакетов. Для этих отдельных возможностей нет объявления только для разгрузки задач VXLAN.

Драйвер протокола может разгружать пакеты в смешанном режиме, что означает пакеты, в которых внутренняя и внешняя версии заголовков IP-адресов отличаются. Например, заголовок внешнего IP-адреса пакета может иметь значение IPv6, а заголовок внутреннего IP-адреса — как IPv4.

Дополнительные сведения о VXLAN см. в статье RFC 7348.

Требования

Требование Значение
Минимальная версия клиента NDIS 6.50
Верхняя часть ntddndis.h (включая ndis.h)

См. также раздел

NDIS_OFFLOAD