Share via


NDIS_RECEIVE_SCALE_CAPABILITIES 구조체(ntddndis.h)

NDIS_RECEIVE_SCALE_CAPABILITIES 구조는 미니포트 어댑터의 RSS(수신 쪽 크기 조정) 기능을 지정합니다.

구문

typedef struct _NDIS_RECEIVE_SCALE_CAPABILITIES {
  NDIS_OBJECT_HEADER  Header;
  NDIS_RSS_CAPS_FLAGS CapabilitiesFlags;
  ULONG               NumberOfInterruptMessages;
  ULONG               NumberOfReceiveQueues;
  USHORT              NumberOfIndirectionTableEntries;
} NDIS_RECEIVE_SCALE_CAPABILITIES, *PNDIS_RECEIVE_SCALE_CAPABILITIES;

멤버

Header

NDIS_RECEIVE_SCALE_CAPABILITIES 구조체의 NDIS_OBJECT_HEADER 구조체입니다. Header에서 지정하는 구조체의 Type 멤버를 NDIS_OBJECT_TYPE_RSS_CAPABILITIES 설정합니다.

NDIS 6.60 이상에서는 Revision 멤버를 NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_3 설정하고 Size 멤버를 NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_3.

NDIS 6.30 이상에서는 Revision 멤버를 NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_2 설정하고 Size 멤버를 NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_2.

NDIS 6.0, 6.1 및 6.20의 경우 Revision 멤버를 NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1 설정하고 Size 멤버를 NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_1.

CapabilitiesFlags

NIC의 RSS 기능을 지정하는 플래그의 비트 마스크입니다. 미니포트 드라이버는 다음 플래그를 지정할 수 있습니다.

의미
NDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS
NIC가 MSI(메시지 신호 인터럽트)를 지원하는 경우 이 플래그를 설정합니다. 이 플래그는 NIC가 해당 CPU에 할당된 패킷을 큐에 넣은 후 각 CPU에 대해 별도의 인터럽트 생성을 수행할 수 있음을 나타냅니다.
NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR
NIC가 대상 CPU가 수신된 패킷을 대기 중인 MiniportInterrupt 함수에 나타낼 수 있는 경우 이 플래그를 설정합니다.
NDIS_RSS_CAPS_USING_MSI_X
NIC가 MSI(메시지 신호 인터럽트)를 사용하는 경우 이 플래그를 설정합니다. 이 플래그는 NDIS 6.20 이상에서 지원됩니다.
NDIS_RSS_CAPS_SUPPORTS_MSI_X
NIC가 MSI를 지원하는 경우 이 플래그를 설정합니다. 이 플래그는 NDIS 6.30 이상에서 지원됩니다.
NDIS_RSS_CAPS_CLASSIFICATION_AT_DPC
미니포트 드라이버가 MiniportInterruptDPC 함수에서 대기 중인 수신 패킷이 있는 대상 CPU를 검색할 수 있는 경우 이 플래그를 설정합니다.
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV4
NIC가 IPv4 패킷(옵션 포함 또는 제외)을 식별할 수 있는 경우 이 플래그를 설정합니다. 또한 NIC는 IPv4 헤더 필드 및 TCP 헤더 필드에 대한 해시 값 계산을 지원합니다.
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6
NIC가 IPv6 패킷을 식별하고 IPv6 패킷의 필드에 대해 해시 값을 계산할 수 있는 경우 이 플래그를 설정합니다. NIC는 기본 IPv6 헤더의 필드와 TCP 헤더의 필드에 대해 해시 값을 계산할 수 있어야 합니다. NIC가 IPv6 확장 헤더에 있는 필드에 대해 해시 값을 계산할 수 없는 경우 이 플래그를 사용합니다.
NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6_EX
NIC가 IPv6 패킷을 식별하고 IPv6 확장 헤더가 포함된 IPv6 패킷의 필드에 대해 해시 값을 계산할 수 있는 경우 이 플래그를 설정합니다. NIC는 기본 IPv6 헤더, IPv6 확장 헤더 및 TCP 헤더의 필드에 대해 해시 값을 계산할 수 있습니다. NIC는 홈 주소 옵션의 필드와 IPv6 확장 헤더의 type-2 라우팅 헤더에 대한 해시 값을 계산할 수 있어야 합니다.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4
NIC가 옵션을 사용하거나 사용하지 않고 IPv4 패킷을 식별할 수 있고 NIC가 IPv4 헤더 필드 및 UDP 헤더 필드에 대한 해시 값 계산을 지원하는 경우 이 플래그를 설정합니다.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6
NIC가 IPv6 패킷을 식별하고 IPv6 패킷의 필드에 대해 해시 값을 계산할 수 있는 경우 이 플래그를 설정합니다. NIC는 기본 IPv6 헤더의 필드와 UDP 헤더의 필드에 대해 해시 값을 계산할 수 있어야 합니다. NIC가 IPv6 확장 헤더에 있는 필드에 대해 해시 값을 계산할 수 없는 경우 이 플래그를 사용합니다.
NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX
NIC가 IPv6 패킷을 식별하고 IPv6 확장 헤더가 포함된 IPv6 패킷의 필드에 대해 해시 값을 계산할 수 있는 경우 이 플래그를 설정합니다. NIC는 기본 IPv6 헤더, IPv6 확장 헤더 및 UDP 헤더의 필드에 대해 해시 값을 계산할 수 있습니다. NIC는 홈 주소 옵션의 필드와 IPv6 확장 헤더의 type-2 라우팅 헤더에 대한 해시 값을 계산할 수 있어야 합니다.
NdisHashFunctionToeplitz
NIC가 toeplitz 해시 함수를 지원하는 경우 이 플래그를 설정합니다. NIC가 RSS를 지원하는 경우 해시 함수에 대한 지원은 필수입니다. 해시 함수에 대한 자세한 내용은 NDIS_RSS_HASH_FUNC_FROM_HASH_INFO.
NdisHashFunctionReserved1
이 플래그는 나중에 사용하도록 예약되어 있습니다.
NdisHashFunctionReserved2
이 플래그는 나중에 사용하도록 예약되어 있습니다.
NdisHashFunctionReserved3
이 플래그는 나중에 사용하도록 예약되어 있습니다.

NumberOfInterruptMessages

NIC가 MSI를 지원하는 경우 NIC에서 지원하는 인터럽트 메시지 수입니다. NIC가 MSI를 지원하지 않지만 줄 기반 인터럽트는 지원하는 경우 이 숫자를 1로 설정합니다.

NumberOfReceiveQueues

NIC에서 지원하는 하드웨어 수신 큐 수입니다.

NumberOfIndirectionTableEntries

미니포트 드라이버가 간접 참조 테이블에서 지원하는 최대 항목 수입니다. 이 값은 2의 힘이어야 합니다. 모든 NDIS 6.30 이상 미니포트 어댑터는 가상 함수에 필요한 이 멤버를 지원해야 합니다.

설명

오버리싱 드라이버는 다음을 사용할 수 있습니다. OID_GEN_RECEIVE_SCALE_CAPABILITIES OID - NIC 및 해당 미니포트 드라이버의 RSS(수신 쪽 크기 조정) 기능을 쿼리합니다.

미니포트 드라이버는 NDIS_RECEIVE_SCALE_CAPABILITIES 구조에서 RSS 기능을 반환합니다.

일부 워크로드의 경우 경로 변경 또는 보낸 사람이 MTU 제한을 준수하지 않아 UDP 패킷의 하위 집합이 조각화될 수 있습니다. 이러한 드문 경우에서 동일한 흐름의 패킷은 4 튜플 또는 2 튜플 해시를 기반으로 다른 프로세서에 표시될 수 있습니다. 따라서 NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV4, NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX 보급하는 미니포트 드라이버는 고급 속성을 통해 UDP RSS 기능을 사용하지 않도록 설정하는 방법을 제공해야 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 NDIS 6.0 이상에서 지원됩니다.
머리글 ntddndis.h(Ndis.h 포함)

추가 정보

MiniportInterrupt

MiniportInterruptDPC

NDIS_OBJECT_HEADER

NDIS_RSS_HASH_FUNC_FROM_HASH_INFO OID_GEN_RECEIVE_SCALE_CAPABILITIES

Receive Side Scaling (RSS)