NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 구조체(ntddndis.h)

NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_V2 구조에는 VXLAN(Virtual Extensible LAN) 태스크 오프로드에 대한 패킷 캡슐화 정보가 포함되어 있습니다. VXLAN은 NVGRE 태스크 오프로드와 비슷하지만 다른 프로토콜을 사용합니다.

이 구조체는 NDIS 6.50 이상에서 NDIS_OFFLOAD 구조체의 EncapsulatedPacketTaskOffloadVxlan 멤버에 사용됩니다.

구문

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

LSOv2(대규모 송신 오프로드 버전 2)에 대한 작업 오프로드 설정입니다.

RssSupported

RSS(수신 측 크기 조정)에 대한 작업 오프로드 설정입니다.

VmqSupported

VMQ(가상 머신 큐)에 대한 작업 오프로드 설정입니다.

UsoSupported

UDP 구분 오프로드(USO)에 대한 작업 오프로드 설정입니다.

Reserved

시스템에서 사용하도록 예약되었습니다.

MaxHeaderSizeSupported

이 멤버는 패킷의 시작부터 내부 TCP 또는 UDP 페이로드의 시작(TCP 또는 UDP 내부 헤더의 마지막 바이트)까지 NIC가 이러한 모든 작업 오프로드에 대해 지원해야 하는 최대 헤더 크기로 설정해야 합니다. 프로토콜 드라이버는 결합된 캡슐화 헤더가 이 크기를 초과하는 패킷의 처리를 오프로드하지 않을 것으로 예상됩니다.

256바이트 는 가능한 모든 사례를 포함해야 하는 좋은 기본값입니다.

EncapsulationProtocolInfo

VxlanInfo 멤버 및 Value 멤버를 포함하는 공용 구조체입니다.

EncapsulationProtocolInfo.VxlanInfo

VxlanUDPPortNumber 멤버 및 VxlanUDPPortNumberConfigurable 멤버를 포함하는 구조체입니다.

EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumber

VXLAN UDP 대상 포트에 사용할 포트 번호입니다.

EncapsulationProtocolInfo.VxlanInfo.VxlanUDPPortNumberConfigurable

UDP 포트 번호를 구성할 수 있는지 여부를 설명합니다.

EncapsulationProtocolInfo.Value

이 패킷의 UDP 체크섬 값입니다.

_ENCAPSULATION_PROTOCOL_INFO

Reserved1

시스템에서 사용하도록 예약되었습니다.

Reserved2

시스템에서 사용하도록 예약되었습니다.

설명

초기 기능 보급 알림 및 NDIS_STATUS_TASK_OFFLOAD_CURRENT_CONFIGNDIS_STATUS_TASK_OFFLOAD_HARDWARE_CAPABILITIES 상태 표시에서 TransmitChecksumOffloadSupported, ReceiveChecksumOffloadSupported, LsoV2Supported, RssSupported, VmqSupportedUsoSupported 멤버는 다음 플래그의 비트 OR로 설정할 수 있습니다.

용어 Description
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 비트 OR 값, NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV4 및 usoSupported 로 설정합니다. NDIS_ENCAPSULATED_PACKET_TASK_OFFLOAD_OUTER_IPV6.

IP 옵션 및 TCP 옵션과 관련하여 캡슐화된 패킷에 대해 다음과 같은 가정이 이루어졌습니다.

  • NIC가 일반 체크섬 오프로드 및 LSOv2 보급 알림에서 IpOptionsTcpOptions 지원을 지정하는 경우 VXLAN 작업 오프로드를 사용한 네트워크 가상화가 지원되는 경우 캡슐화된 패킷에 대한 옵션 처리를 지원해야 합니다. 즉, 캡슐화된 패킷 내에서 내부 및 외부 IP 옵션 및 TCP 옵션을 모두 지원합니다. 이러한 기능에 대한 별도의 기능 보급 알림은 VXLAN 작업 오프로드에만 해당되지 않습니다.

프로토콜 드라이버가 내부 및 외부 IP 헤더 버전이 다른 패킷을 의미하는 "혼합 모드" 패킷을 오프로드할 수 있습니다. 예를 들어 패킷은 외부 IP 헤더를 IPv6으로, 내부 IP 헤더를 IPv4로 가질 수 있습니다.

VXLAN에 대한 자세한 내용은 RFC 7348을 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.50
머리글 ntddndis.h(include ndis.h)

추가 정보

NDIS_OFFLOAD