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 기능을 지정하는 플래그의 비트 마스크입니다. 미니포트 드라이버는 다음 플래그를 지정할 수 있습니다.
값 | 의미 |
---|---|
|
NIC가 MSI(메시지 신호 인터럽트)를 지원하는 경우 이 플래그를 설정합니다. 이 플래그는 NIC가 해당 CPU에 할당된 패킷을 큐에 넣은 후 각 CPU에 대해 별도의 인터럽트 생성을 수행할 수 있음을 나타냅니다. |
|
NIC가 대상 CPU가 수신된 패킷을 대기 중인 MiniportInterrupt 함수에 나타낼 수 있는 경우 이 플래그를 설정합니다. |
|
NIC가 MSI(메시지 신호 인터럽트)를 사용하는 경우 이 플래그를 설정합니다. 이 플래그는 NDIS 6.20 이상에서 지원됩니다. |
|
NIC가 MSI를 지원하는 경우 이 플래그를 설정합니다. 이 플래그는 NDIS 6.30 이상에서 지원됩니다. |
|
미니포트 드라이버가 MiniportInterruptDPC 함수에서 대기 중인 수신 패킷이 있는 대상 CPU를 검색할 수 있는 경우 이 플래그를 설정합니다. |
|
NIC가 IPv4 패킷(옵션 포함 또는 제외)을 식별할 수 있는 경우 이 플래그를 설정합니다. 또한 NIC는 IPv4 헤더 필드 및 TCP 헤더 필드에 대한 해시 값 계산을 지원합니다. |
|
NIC가 IPv6 패킷을 식별하고 IPv6 패킷의 필드에 대해 해시 값을 계산할 수 있는 경우 이 플래그를 설정합니다. NIC는 기본 IPv6 헤더의 필드와 TCP 헤더의 필드에 대해 해시 값을 계산할 수 있어야 합니다. NIC가 IPv6 확장 헤더에 있는 필드에 대해 해시 값을 계산할 수 없는 경우 이 플래그를 사용합니다. |
|
NIC가 IPv6 패킷을 식별하고 IPv6 확장 헤더가 포함된 IPv6 패킷의 필드에 대해 해시 값을 계산할 수 있는 경우 이 플래그를 설정합니다. NIC는 기본 IPv6 헤더, IPv6 확장 헤더 및 TCP 헤더의 필드에 대해 해시 값을 계산할 수 있습니다. NIC는 홈 주소 옵션의 필드와 IPv6 확장 헤더의 type-2 라우팅 헤더에 대한 해시 값을 계산할 수 있어야 합니다. |
|
NIC가 옵션을 사용하거나 사용하지 않고 IPv4 패킷을 식별할 수 있고 NIC가 IPv4 헤더 필드 및 UDP 헤더 필드에 대한 해시 값 계산을 지원하는 경우 이 플래그를 설정합니다. |
|
NIC가 IPv6 패킷을 식별하고 IPv6 패킷의 필드에 대해 해시 값을 계산할 수 있는 경우 이 플래그를 설정합니다. NIC는 기본 IPv6 헤더의 필드와 UDP 헤더의 필드에 대해 해시 값을 계산할 수 있어야 합니다. NIC가 IPv6 확장 헤더에 있는 필드에 대해 해시 값을 계산할 수 없는 경우 이 플래그를 사용합니다. |
|
NIC가 IPv6 패킷을 식별하고 IPv6 확장 헤더가 포함된 IPv6 패킷의 필드에 대해 해시 값을 계산할 수 있는 경우 이 플래그를 설정합니다. NIC는 기본 IPv6 헤더, IPv6 확장 헤더 및 UDP 헤더의 필드에 대해 해시 값을 계산할 수 있습니다. NIC는 홈 주소 옵션의 필드와 IPv6 확장 헤더의 type-2 라우팅 헤더에 대한 해시 값을 계산할 수 있어야 합니다. |
|
NIC가 toeplitz 해시 함수를 지원하는 경우 이 플래그를 설정합니다. NIC가 RSS를 지원하는 경우 해시 함수에 대한 지원은 필수입니다. 해시 함수에 대한 자세한 내용은 NDIS_RSS_HASH_FUNC_FROM_HASH_INFO. |
|
이 플래그는 나중에 사용하도록 예약되어 있습니다. |
|
이 플래그는 나중에 사용하도록 예약되어 있습니다. |
|
이 플래그는 나중에 사용하도록 예약되어 있습니다. |
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_IPV6 및 NDIS_RSS_CAPS_HASH_TYPE_UDP_IPV6_EX 보급하는 미니포트 드라이버는 고급 속성을 통해 UDP RSS 기능을 사용하지 않도록 설정하는 방법을 제공해야 합니다.
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | NDIS 6.0 이상에서 지원됩니다. |
머리글 | ntddndis.h(Ndis.h 포함) |