NDIS_RECEIVE_SCALE_CAPABILITIES (NDIS 6.20) structure
The NDIS_RECEIVE_SCALE_CAPABILITIES structure specifies the RSS capabilities of a miniport adapter.
Syntax
typedef struct _NDIS_RECEIVE_SCALE_CAPABILITIES {
NDIS_OBJECT_HEADER Header;
ULONG CapabilitiesFlags;
ULONG NumberOfInterruptMessages;
ULONG NumberOfReceiveQueues;
#if (NDIS_SUPPORT_NDIS630)
USHORT NumberOfIndirectionTableEntries;
#endif
} NDIS_RECEIVE_SCALE_CAPABILITIES, *PNDIS_RECEIVE_SCALE_CAPABILITIES;
Members
Header
The NDIS_OBJECT_HEADER structure for the NDIS_RECEIVE_SCALE_CAPABILITIES structure. Set the Type member of the structure that Header specifies to NDIS_OBJECT_TYPE_RSS_CAPABILITIES, the Revision member to NDIS_RECEIVE_SCALE_CAPABILITIES_REVISION_1, and the Size member to NDIS_SIZEOF_RECEIVE_SCALE_CAPABILITIES_REVISION_1.CapabilitiesFlags
The flags that can be combined, with the OR operator, to define the RSS capabilities of the NIC. The miniport driver can specify the following flags:NDIS_RSS_CAPS_MESSAGE_SIGNALED_INTERRUPTS
Set this flag if the NIC supports message signaled interrupts (MSIs). This flag indicates that the NIC can generate a separate interrupt for each CPU after it queues the packets that are assigned to that CPU.NDIS_RSS_CAPS_CLASSIFICATION_AT_ISR
Set this flag if the NIC can indicate to the MiniportInterrupt function which target CPUs have queued received packets.NDIS_RSS_CAPS_USING_MSI_X
Set this flag if the NIC is using message signaled interrupts (MSIs). This flag is supported in NDIS 6.20 and later versions.NDIS_RSS_CAPS_CLASSIFICATION_AT_DPC
Set this flag if the miniport driver can detect which target CPUs have queued receive packets from its MiniportInterruptDPC function.NDIS_RSS_CAPS_HASH _TYPE_TCP_IPV4
Set this flag if the NIC can identify an IPv4 packet (with or without options). Also, the NIC supports calculation of the hash value over the IPv4 header fields and TCP header fields.NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6
Set this flag if the NIC can identify an IPv6 packet and compute a hash value over fields in an IPv6 packet. The NIC must be able to compute a hash value over fields in the basic IPv6 header and over fields in the TCP header. Use this flag if the NIC cannot compute a hash value over fields that are located in IPv6 extension headers.NDIS_RSS_CAPS_HASH_TYPE_TCP_IPV6_EX
Set this flag if the NIC can identify an IPv6 packet and compute a hash value over fields in an IPv6 packet that contains IPv6 extension headers. The NIC can compute a hash value over fields in the basic IPv6 header, IPv6 extension headers, and TCP header. The NIC must be able to compute hash values over fields in the home address option and the type-2 routing header in the IPv6 extension headers.NdisHashFunctionToeplitz
Set this flag if the NIC supports the toeplitz hash function. If the NIC supports RSS, support for the hash function is mandatory. For more information about hash functions, see NDIS_RSS_HASH_FUNC_FROM_HASH_INFO.NdisHashFunctionReserved1
This flag is reserved for future use.NdisHashFunctionReserved2
This flag is reserved for future use.NdisHashFunctionReserved3
This flag is reserved for future use.
NumberOfInterruptMessages
The number of interrupt messages that the NIC supports if the NIC supports MSIs. If the NIC does not support MSIs but supports line-based interrupts, set this number to one.NumberOfReceiveQueues
The number of hardware receive queues that the NIC supports.NumberOfIndirectionTableEntries
The maximum number of entries that the miniport driver supports in the indirection table. This value must be a power of 2. All NDIS 6.30 and later miniport adapters must support this member, which is required for virtual functions.
Remarks
Overlying drivers can use the OID_GEN_RECEIVE_SCALE_CAPABILITIES OID to query the receive side scaling (RSS) capabilities of a NIC and its miniport driver.
The miniport driver returns the RSS capabilities in an NDIS_RECEIVE_SCALE_CAPABILITIES structure.
Requirements
Version |
Supported in NDIS 6.0 and later. |
Header |
Ndis.h (include Ndis.h) |
See also
NDIS_RSS_HASH_FUNC_FROM_HASH_INFO
OID_GEN_RECEIVE_SCALE_CAPABILITIES
Send comments about this topic to Microsoft
Build date: 7/17/2013