NDK_ADAPTER_INFO 구조체(ndkinfo.h)

NDK_ADAPTER_INFO 구조체는 NDK 어댑터의 제한 및 기능에 대한 정보를 지정합니다.

구문

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_RDMA_TECHNOLOGY RdmaTechnology;
} NDK_ADAPTER_INFO;

멤버

Version

NDK 인터페이스(NDK_VERSION)의 주 버전 및 부 버전입니다.

VendorId

공급업체의 OUI(조직 고유 식별자)입니다.

DeviceId

공급업체에서 정의한 디바이스 식별자입니다.

MaxRegistrationSize

어댑터가 처리할 수 있는 단일 메모리 등록의 최대 크기(바이트)입니다.

MaxWindowSize

단일 메모리 창의 최대 크기(바이트)입니다.

FRMRPageCount

어댑터가 가장 많은 수의 FRMR을 지원하는 FRMR(빠른 등록 메모리 영역) 크기( PAGE_SIZE 페이지)입니다. 공급자는 16개 이상의 FRMR 페이지를 지원해야 합니다. 이 값은 일반적으로 상층에서 동시 FRMR 기반 I/O 작업을 최적화하는 FRMR 크기로 사용됩니다. 따라서 16보다 큰 값을 보급하는 작업은 해당 크기로 지원되는 총 FRMR 수가 결과적으로 의미 있는 감소가 아닌 경우에만 수행해야 합니다.

MaxInitiatorRequestSge

초기자 큐를 통해 단일 요청에 지정할 수 있는 SGE(분산 수집 항목)의 최대 수입니다.

MaxReceiveRequestSge

수신 큐를 통해 단일 요청에 지정할 수 있는 최대 SGE 수입니다.

MaxReadRequestSge

읽기 요청에 지정할 수 있는 최대 SGE 수입니다.

참고 이 값은 읽기 요청에 대한 MaxInitiatorRequestSge 값을 재정의합니다.
 

MaxTransferLength

단일 송신, 수신, 읽기 또는 쓰기 요청에서 모든 SGE에서 참조할 수 있는 최대 총 길이입니다.

MaxInlineDataSize

단일 송신 또는 쓰기 요청으로 보낼 수 있는 최대 인라인 데이터 양(바이트)입니다.

MaxInboundReadLimit

각 QP에 대해 진행 중인 들어오는 읽기 작업의 최대 수입니다.

MaxOutboundReadLimit

각 QP에 대한 진행 중인 나가는 읽기 작업의 최대 수입니다.

MaxReceiveQueueDepth

각 수신 큐에 대한 미해결 요청의 최대 수입니다.

MaxInitiatorQueueDepth

각 초기자 큐에 대한 미해결 요청의 최대 수입니다.

MaxSrqDepth

각 SRQ(공유 수신 큐)에 대한 미해결 요청의 최대 수입니다. 값이 0이면 SRQ 지원이 없음을 의미합니다.

MaxCqDepth

각 완료 큐(CQ)에 대한 최대 완료 항목 수입니다.

LargeRequestThreshold

데이터 크기 힌트(바이트)로, 위의 읽기 및 쓰기 작업은 송신 및 수신 작업보다 더 나은 결과를 얻을 수 있습니다.

MaxCallerData

연결 요청과 함께 보낼 수 있는 개인 데이터의 최대 크기(바이트)입니다.

MaxCalleeData

수락 또는 거부 요청과 함께 보낼 수 있는 개인 데이터의 최대 크기(바이트)입니다.

AdapterFlags

어댑터 속성을 결정하는 플래그 집합입니다. 현재 정의된 플래그는 다음과 같습니다.

의미
NDK_ADAPTER_FLAG_IN_ORDER_DMA_SUPPORTED
0x00000001
공급자가 들어오는 데이터를 소비자의 버퍼에 순서대로 쓰는지 설정합니다. 즉, 소비자 버퍼의 마지막 바이트 위치는 이전 바이트 위치 이전에 업데이트되지 않도록 보장됩니다.
NDK_ADAPTER_FLAG_RDMA_READ_SINK_NOT_REQUIRED
0x00000002

공급자가 RDMA 읽기 요청에 대한 싱크 버퍼에 대한 특별한 액세스 권한이 필요하지 않은 경우 를 설정합니다. 이 플래그가 설정되면 소비자는 RDMA 읽기 요청에 대한 싱크 버퍼를 등록할 때 NDK_MR_FLAG_RDMA_READ_SINK 또는 NDK_OP_FLAG_RDMA_READ_SINK 플래그를 사용할 필요가 없습니다. 소비자는 RDMA 읽기 싱크 버퍼로 논리 주소 매핑( NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN 함수를 사용하여 얻은 토큰 포함)을 직접 사용할 수도 있습니다. 이는 RDMA 쓰기, 보내기 및 수신 작업에 대한 로컬 버퍼에 대한 액세스와 유사합니다.

NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED
0x00000004
공급자가 각 CQ(완료 큐)에 대해 프로그래밍 방식으로 제어되는 인터럽트 조정을 지원하는지 여부를 설정합니다. 이 플래그가 설정되면 NDK 소비자는 NDK_CQ_DISPATCH 테이블에서 NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION 함수를 사용할 수 있습니다.
NDK_ADAPTER_FLAG_MULTI_ENGINE_SUPPORTED
0x00000008
공급자가 여러 실행 엔진이 있는 여러 연결의 동시 처리를 지원하는지 여부를 설정합니다. 이 플래그를 설정하면 어댑터에서 동시에 둘 이상의 연결을 사용하는 NDK 소비자가 단일 연결보다 더 나은 성능을 제공할 수 있습니다.
NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED
0x00000010
공급자가 읽기 요청을 완료할 때 NdkRead(NDK_FN_READ) 함수에 전달된 첫 번째 NDK_SGE 지정된 로컬 토큰의 무효화를 지원하는지 설정합니다.

참고 이 값은 NDKPI 1.2(Windows Server 2012 R2) 이상에서만 지원됩니다.

NDK_ADAPTER_FLAG_CQ_RESIZE_SUPPORTED
0x00000100
공급자가 CQ 개체 크기 조정을 지원하는지 설정합니다. 이 플래그가 설정되지 않은 경우 소비자는 CQ 크기 조정을 시도해서는 안 됩니다.
NDK_ADAPTER_FLAG_LOOPBACK_CONNECTIONS_SUPPORTED
0x00010000
공급자가 루프백 연결을 지원하는지 설정합니다. 즉, 지정된 RNIC의 로컬 네트워크 주소에서 동일한 RNIC의 동일한 로컬 주소로 루프백합니다.

RdmaTechnology

설명

NDK_FN_QUERY_ADAPTER_INFO 함수는 어댑터의 다양한 제한 및 기능에 대한 정보를 포함하는 NDK_ADAPTER_INFO 검색합니다.

요구 사항

   
지원되는 최소 클라이언트 지원되지 않음, NDIS 6.30 이상에서 지원됨
지원되는 최소 서버 Windows Server 2012
머리글 ndkinfo.h(Ndkpi.h 포함)

추가 정보

NDK_CQ_DISPATCH

NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION

NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN

NDK_VERSION