структура 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, которое можно указать в запросе на чтение.
MaxTransferLength
Максимальная общая длина, на которую могут ссылаться все SGEs в одном запросе на отправку, получение, чтение или запись.
MaxInlineDataSize
Максимальный объем встроенных данных в байтах, которые можно отправить в одном запросе на отправку или запись.
MaxInboundReadLimit
Максимальное количество выполняемых входящих операций чтения для каждого QP.
MaxOutboundReadLimit
Максимальное количество выполняемых исходящих операций чтения для каждого QP.
MaxReceiveQueueDepth
Максимальное количество невыполненных запросов для каждой очереди получения.
MaxInitiatorQueueDepth
Максимальное число невыполненных запросов для каждой очереди инициатора.
MaxSrqDepth
Максимальное число невыполненных запросов для каждой общей очереди получения (SRQ). Нулевое значение означает отсутствие поддержки SRQ.
MaxCqDepth
Максимальное количество записей завершения для каждой очереди завершения (CQ).
LargeRequestThreshold
Указание размера данных в байтах, выше которого операции чтения и записи дают лучшие результаты, чем операции отправки и получения.
MaxCallerData
Максимальный размер (в байтах) личных данных, которые могут быть отправлены с помощью запроса на подключение.
MaxCalleeData
Максимальный размер (в байтах) личных данных, которые могут быть отправлены с запросом на принятие или отклонение.
AdapterFlags
Набор флагов, определяющих свойства адаптера. К текущим определенным флагам относятся:
Значение | Значение |
---|---|
|
Задает значение , если поставщик записывает входящие данные в буфер потребителя по порядку. То есть последняя позиция байтов в буфере потребителя гарантированно не будет обновлена до предыдущей позиции байта. |
|
Установите значение , если поставщику не требуются специальные права доступа к буферу приемника для запроса на чтение RDMA. Если этот флаг установлен, потребитель не обязан использовать флаги NDK_MR_FLAG_RDMA_READ_SINK или NDK_OP_FLAG_RDMA_READ_SINK при регистрации буферов приемников для запросов на чтение RDMA. Потребитель также может напрямую использовать сопоставления логических адресов (с маркером, полученным с помощью функции NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN ) в качестве буферов приемника чтения RDMA. Это похоже на доступ к локальным буферам для операций записи, отправки и получения RDMA. |
|
Укажите, поддерживает ли поставщик модерацию прерываний с программным управлением для каждой очереди завершения (CQ). Если этот флаг установлен, потребитель NDK может использовать функцию NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION в таблице NDK_CQ_DISPATCH . |
|
Установите значение , если поставщик поддерживает параллельную обработку нескольких подключений с несколькими модулями выполнения. Если этот флаг установлен, потребитель NDK, который одновременно использует несколько подключений к адаптеру, может обеспечить более высокую производительность, чем одно подключение. |
|
Установите значение , если поставщик поддерживает недействительность локального маркера, указанного в первом NDK_SGE , переданном функции NdkRead (NDK_FN_READ) при выполнении запроса на чтение.
Примечание Это значение поддерживается только в NDKPI 1.2 (Windows Server 2012 R2) и более поздних версиях. |
|
Задайте значение , если поставщик поддерживает изменение размера объектов CQ. Если этот флаг не установлен, потребитель не должен пытаться изменить размер CQ. |
|
Установите значение , если поставщик поддерживает замыкания на себя. То есть замыкаете себя на себя с адреса локальной сети в заданном RNIC на тот же локальный адрес в том же RNIC. |
RdmaTechnology
Комментарии
Функция NDK_FN_QUERY_ADAPTER_INFO извлекает NDK_ADAPTER_INFO, которая содержит сведения о различных ограничениях и возможностях адаптера.
Требования
Минимальная версия клиента | Не поддерживается, поддерживается в NDIS 6.30 и более поздних версиях. |
Минимальная версия сервера | Windows Server 2012 |
Верхняя часть | ndkinfo.h (включая Ndkpi.h) |
См. также раздел
NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION