структура 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) |