NDK_ADAPTER_INFO structure

The NDK_ADAPTER_INFO structure specifies information about limits and capabilities of an NDK adapter.

Syntax


typedef struct _NDK_ADAPTER_INFO {
  NDK_VERSION Version;
  UINT32      VendorId;
  UINT32      DeviceId;
  SIZE_T      MaxRegistrationSize;
  SIZE_T      MaxWindowSize;
  ULONG       FRMRPageCount;
  ULONG       MaxInitiatorRequestSge;
  ULONG       MaxReceiveRequestSge;
  ULONG       MaxReadRequestSge;
  ULONG       MaxTransferLength;
  ULONG       MaxInlineDataSize;
  ULONG       MaxInboundReadLimit;
  ULONG       MaxOutboundReadLimit;
  ULONG       MaxReceiveQueueDepth;
  ULONG       MaxInitiatorQueueDepth;
  ULONG       MaxSrqDepth;
  ULONG       MaxCqDepth;
  ULONG       LargeRequestThreshold;
  ULONG       MaxCallerData;
  ULONG       MaxCalleeData;
  ULONG       AdapterFlags;
} NDK_ADAPTER_INFO;

Members

Version

The major and minor versions of the NDK interface (NDK_VERSION).

VendorId

A vendor's organizational unique identifier (OUI).

DeviceId

A vendor defined device identifier.

MaxRegistrationSize

The maximum size, in bytes, of a single memory registration that the adapter can address.

MaxWindowSize

The maximum size, in bytes, for a single memory window.

FRMRPageCount

The fast-register memory region (FRMR) size (in PAGE_SIZE pages) for which the adapter supports the greatest number of FRMRs. A provider must support at least 16 FRMR pages. This value is typically used by upper layers as an FRMR size that optimizes concurrent FRMR-based I/O operations. Hence, advertising a value greater than 16 should be done only if the total number of FRMRs supported with that size is not meaningfully reduced as a result.

MaxInitiatorRequestSge

The maximum number of scatter-gather entries (SGEs) that can be specified in a single request over an initiator queue.

MaxReceiveRequestSge

The maximum number of SGEs that can be specified in a single request over an receive queue.

MaxReadRequestSge

The maximum number of SGEs that can be specified in a read request.

Note  This value overrides the MaxInitiatorRequestSge value for read requests.

MaxTransferLength

The maximum total length that can be referenced by all SGEs in a single send, receive, read, or write request.

MaxInlineDataSize

The maximum amount of inline data, in bytes, that can be sent in a single send or write request.

MaxInboundReadLimit

The maximum number of in-progress incoming read operations for each QP.

MaxOutboundReadLimit

The maximum number of in-progress outgoing read operations for each QP.

MaxReceiveQueueDepth

The maximum number of outstanding requests for each receive queue.

MaxInitiatorQueueDepth

The maximum number of outstanding requests for each initiator queue.

MaxSrqDepth

The maximum number of outstanding requests for each shared receive queue (SRQ). A value of zero means no SRQ support.

MaxCqDepth

The maximum number of completion entries for each completion queue (CQ).

LargeRequestThreshold

The data size hint, in bytes, above which read and write operations will yield better results than send and receive operations.

MaxCallerData

The maximum size, in bytes, of the private data that can be sent with a connect request.

MaxCalleeData

The maximum size, in bytes, of the private data that can be sent with an accept or reject request.

AdapterFlags

A set of flags that determine adapter properties. The currently defined flags include:

ValueMeaning
NDK_ADAPTER_FLAG_IN_ORDER_DMA_SUPPORTED
0x00000001

Set if the provider writes incoming data into the consumer’s buffer in order. That is, the last byte position in the consumer’s buffer is guaranteed not to be updated before any prior byte position.

NDK_ADAPTER_FLAG_RDMA_READ_SINK_NOT_REQUIRED
0x00000002

Set if the provider does not require special access rights on the sink buffer for an RDMA read request. When this flag is set, the consumer is not required to use the NDK_MR_FLAG_RDMA_READ_SINK or NDK_OP_FLAG_RDMA_READ_SINK flags when it registers sink buffers for RDMA read requests. The consumer can also use logical address mappings directly (with a token obtained with the NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN function) as RDMA read sink buffers. This is similar to access to local buffers for RDMA write, send, and receive operations.

NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED
0x00000004

Set if the provider supports programmatically controlled interrupt moderation for each completion queue (CQ). When this flag is set, an NDK consumer can use the NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION function in the NDK_CQ_DISPATCH table.

NDK_ADAPTER_FLAG_MULTI_ENGINE_SUPPORTED
0x00000008

Set if the provider supports concurrent processing of multiple connections with multiple execution engines. If this flag is set, an NDK consumer that uses more than one connection concurrently on the adapter might provide better performance than a single connection.

NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED
0x00000010

Set if the provider supports invalidation of the local token specified in the first NDK_SGE passed to an NdkRead (NDK_FN_READ) function when completing the read request.

Note  This value is supported only in NDKPI 1.2 (Windows Server 2012 R2) and later.

NDK_ADAPTER_FLAG_CQ_RESIZE_SUPPORTED
0x00000100

Set if the provider supports resizing CQ objects. If this flag is not set, the consumer must not attempt a CQ resize.

NDK_ADAPTER_FLAG_LOOPBACK_CONNECTIONS_SUPPORTED
0x00010000

Set if the provider supports loopback connections. That is, loopback from a local network address on a given RNIC to the same local address on the same RNIC.

 

Remarks

The NDK_FN_QUERY_ADAPTER_INFO function retrieves the NDK_ADAPTER_INFO, which contains information on various limits and capabilities of the adapter.

Requirements

Minimum supported client

None supported

Minimum supported server

Windows Server 2012

Version

Supported in NDIS 6.30 and later.

Header

Ndkinfo.h (include Ndkpi.h)

See also

NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION
NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN
NDK_CQ_DISPATCH
NDK_VERSION

 

 

Send comments about this topic to Microsoft

顯示:
© 2014 Microsoft