Поделиться через


структура NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO (ndis.h)

Структура NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO содержит дополнительные сведения о аппаратном канале для инкапсулированных пакетов. Дополнительные сведения см. в статье Network Virtualization using Generic Routing Encapsulation (NVGRE) Task Offload (NVGRE-TO).

Синтаксис

typedef struct _NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO {
  union {
    struct {
      ULONG IsEncapsulatedPacket : 1;
      ULONG EncapsulatedPacketOffsetsValid : 1;
      ULONG InnerFrameOffset : 8;
      ULONG TransportIpHeaderRelativeOffset : 6;
      ULONG TcpHeaderRelativeOffset : 10;
      ULONG IsInnerIPv6 : 1;
      ULONG TcpOptionsPresent : 1;
      ULONG Reserved : 4;
    } EncapsulatedPacketOffsets;
    PVOID Value;
  };
} NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO, *PNDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO;

Члены

EncapsulatedPacketOffsets

EncapsulatedPacketOffsets.IsEncapsulatedPacket

Если этот элемент имеет значение TRUE, этот NBL представляет пакет, содержащий внутренний кадр Ethernet с ip-заголовком транспорта. Для обычных пакетов имеет значение FALSE . Если isEncapsulatedPacket имеет значение TRUE, существующие поля смещения заголовка NDIS_TCP_LARGE_SEND_OFFLOAD_NET_BUFFER_LIST_INFO. LsoV2Transmit. TcpHeaderOffset и NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO. Передача. TcpHeaderOffset не будет иметь правильных значений и не должен использоваться сетевым адаптером или драйвером. Вместо этого драйвер мини-порта должен использовать смещения, указанные в других элементах этой структуры.

EncapsulatedPacketOffsets.EncapsulatedPacketOffsetsValid

Если этот элемент имеет значение TRUE, элементы InnerFrameOffset, TransportIpHeaderRelativeOffset и TcpHeaderRelativeOffset имеют допустимые значения.

EncapsulatedPacketOffsets.InnerFrameOffset

Смещение от начала пакета до первого байта внутреннего кадра Ethernet.

EncapsulatedPacketOffsets.TransportIpHeaderRelativeOffset

Смещение до первого байта внутреннего IP-заголовка относительно InnerFrameOffset.

EncapsulatedPacketOffsets.TcpHeaderRelativeOffset

Смещение до первого байта внутреннего (транспортного) заголовка относительно TransportIpHeaderRelativeOffset. Для этого значения всегда устанавливается правильное смещение, даже если внутренний кадр не является tcp-пакетом.

EncapsulatedPacketOffsets.IsInnerIPv6

Задается драйвером протокола, чтобы указать, что внутренний IP-заголовок в инкапсулированном пакете содержит IPv6-адреса.

EncapsulatedPacketOffsets.TcpOptionsPresent

Устанавливается драйвером протокола, если внутренний заголовок TCP содержит параметры TCP. Это позволяет драйверу мини-порта оптимизировать ситуацию, когда нет вариантов предполагать длину заголовка TCP для доступа к полезным данным.

EncapsulatedPacketOffsets.Reserved

Зарезервировано для будущего использования.

Value

Зарезервировано для будущего использования.

Комментарии

Члены NDIS_TCP_SEND_OFFLOADS_SUPPLEMENTAL_NET_BUFFER_LIST_INFO имеют смысл только в том случае, если в структуре NDIS_NET_BUFFER_LIST_INFO указан tcpIpChecksumNetBufferListInfo или TcpLargeSendNetBufferListInfo.

Если элемент IsEncapsulatedPacket имеет значение TRUE , а данные TcpIpChecksumNetBufferListInfo вне канала (OOB) допустимы, это означает, что требуется поддержка NVGRE и сетевой адаптер должен вычислить контрольную сумму для заголовка IP-адреса туннеля (внешнего), транспортного (внутреннего) IP-заголовка и заголовка TCP или UDP, если один из них присутствует. Пакет NVGRE будет разгружен только в том случае, если пакет соответствует возможностям, объявленным в мини-портах. Например, пакет, содержащий заголовок UDP, не будет разгружен, если минипорт не объявлял поддержку разгрузки контрольной суммы UDP Tx в своих базовых возможностях. Дополнительные сведения см. в разделе Разгрузка задач контрольной суммы.

Требования

Требование Значение
Минимальная версия клиента Поддерживается в NDIS 6.30 и более поздних версиях.
Верхняя часть ndis.h

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

NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD

NDIS_NET_BUFFER_LIST_INFO

Виртуализация сети с помощью разгрузки задачи Инкапсуляции универсальной маршрутизации (NVGRE)

Разгрузка задач контрольной суммы