Поделиться через


структура 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) (в PAGE_SIZE страницах), для которой адаптер поддерживает наибольшее количество FRMR. Поставщик должен поддерживать не менее 16 страниц FRMR. Это значение обычно используется верхними слоями в качестве размера FRMR, который оптимизирует параллельные операции ввода-вывода на основе FRMR. Таким образом, объявление значения больше 16 следует делать только в том случае, если общее число FRMR, поддерживаемых таким размером, не будет существенно уменьшено.

MaxInitiatorRequestSge

Максимальное количество записей точечного сбора (SGEs), которые можно указать в одном запросе по очереди инициатора.

MaxReceiveRequestSge

Максимальное число SGEs, которое можно указать в одном запросе по очереди получения.

MaxReadRequestSge

Максимальное число SGEs, которое можно указать в запросе на чтение.

Примечание Это значение переопределяет значение MaxInitiatorRequestSge для запросов на чтение.
 

MaxTransferLength

Максимальная общая длина, на которую могут ссылаться все SGEs в одном запросе на отправку, получение, чтение или запись.

MaxInlineDataSize

Максимальный объем встроенных данных в байтах, которые можно отправить в одном запросе на отправку или запись.

MaxInboundReadLimit

Максимальное количество выполняемых входящих операций чтения для каждого QP.

MaxOutboundReadLimit

Максимальное количество выполняемых исходящих операций чтения для каждого QP.

MaxReceiveQueueDepth

Максимальное количество невыполненных запросов для каждой очереди получения.

MaxInitiatorQueueDepth

Максимальное число невыполненных запросов для каждой очереди инициатора.

MaxSrqDepth

Максимальное число невыполненных запросов для каждой общей очереди получения (SRQ). Нулевое значение означает отсутствие поддержки 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. Если этот флаг установлен, потребитель не обязан использовать флаги NDK_MR_FLAG_RDMA_READ_SINK или NDK_OP_FLAG_RDMA_READ_SINK при регистрации буферов приемников для запросов на чтение RDMA. Потребитель также может напрямую использовать сопоставления логических адресов (с маркером, полученным с помощью функции NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN ) в качестве буферов приемника чтения RDMA. Это похоже на доступ к локальным буферам для операций записи, отправки и получения RDMA.

NDK_ADAPTER_FLAG_CQ_INTERRUPT_MODERATION_SUPPORTED
0x00000004
Укажите, поддерживает ли поставщик модерацию прерываний с программным управлением для каждой очереди завершения (CQ). Если этот флаг установлен, потребитель NDK может использовать функцию NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION в таблице NDK_CQ_DISPATCH .
NDK_ADAPTER_FLAG_MULTI_ENGINE_SUPPORTED
0x00000008
Установите значение , если поставщик поддерживает параллельную обработку нескольких подключений с несколькими модулями выполнения. Если этот флаг установлен, потребитель NDK, который одновременно использует несколько подключений к адаптеру, может обеспечить более высокую производительность, чем одно подключение.
NDK_ADAPTER_FLAG_RDMA_READ_LOCAL_INVALIDATE_SUPPORTED
0x00000010
Установите значение , если поставщик поддерживает недействительность локального маркера, указанного в первом NDK_SGE , переданном функции NdkRead (NDK_FN_READ) при выполнении запроса на чтение.

Примечание Это значение поддерживается только в 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