struttura NDK_ADAPTER_INFO (ndkinfo.h)
La struttura NDK_ADAPTER_INFO specifica informazioni sui limiti e sulle funzionalità di una scheda NDK.
Sintassi
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;
Members
Version
Le versioni principali e secondarie dell'interfaccia NDK (NDK_VERSION).
VendorId
Identificatore univoco dell'organizzazione (OUI) di un fornitore.
DeviceId
Identificatore del dispositivo definito dal fornitore.
MaxRegistrationSize
Dimensioni massime, in byte, di una singola registrazione di memoria che l'adattatore può gestire.
MaxWindowSize
Dimensione massima, in byte, per una singola finestra di memoria.
FRMRPageCount
Dimensioni dell'area di memoria con registrazione rapida (FRMR) (in PAGE_SIZE pagine) per cui l'adattatore supporta il maggior numero di richieste pull. Un provider deve supportare almeno 16 pagine FRMR. Questo valore viene in genere usato dai livelli superiori come dimensione FRMR che ottimizza le operazioni di I/O basate su FRMR simultanee. Di conseguenza, la pubblicità di un valore maggiore di 16 deve essere eseguita solo se il numero totale di richieste pull supportate con tale dimensione non è significativamente ridotto di conseguenza.
MaxInitiatorRequestSge
Numero massimo di voci di raccolta a dispersione (SGEs) che possono essere specificate in una singola richiesta su una coda iniziatore.
MaxReceiveRequestSge
Numero massimo di sges che è possibile specificare in una singola richiesta in una coda di ricezione.
MaxReadRequestSge
Numero massimo di sges che è possibile specificare in una richiesta di lettura.
MaxTransferLength
Lunghezza totale massima a cui è possibile fare riferimento da tutti gli SGEs in un'unica richiesta di invio, ricezione, lettura o scrittura.
MaxInlineDataSize
Quantità massima di dati inline, in byte, che può essere inviata in una singola richiesta di invio o scrittura.
MaxInboundReadLimit
Numero massimo di operazioni di lettura in ingresso in corso per ogni QP.
MaxOutboundReadLimit
Numero massimo di operazioni di lettura in uscita in corso per ogni QP.
MaxReceiveQueueDepth
Numero massimo di richieste in sospeso per ogni coda di ricezione.
MaxInitiatorQueueDepth
Numero massimo di richieste in sospeso per ogni coda iniziatore.
MaxSrqDepth
Numero massimo di richieste in sospeso per ogni coda di ricezione condivisa (SRQ). Un valore pari a zero indica che non è supportato SRQ.
MaxCqDepth
Numero massimo di voci di completamento per ogni coda di completamento (CQ).
LargeRequestThreshold
L'hint per le dimensioni dei dati, in byte, sopra il quale le operazioni di lettura e scrittura produrranno risultati migliori rispetto alle operazioni di invio e ricezione.
MaxCallerData
Dimensioni massime, in byte, dei dati privati che possono essere inviati con una richiesta di connessione.
MaxCalleeData
Dimensione massima, in byte, dei dati privati che possono essere inviati con una richiesta di accettazione o rifiuto.
AdapterFlags
Set di flag che determinano le proprietà dell'adattatore. I flag attualmente definiti includono:
Valore | Significato |
---|---|
|
Impostare se il provider scrive i dati in ingresso nel buffer del consumer in ordine. Vale a dire, l'ultima posizione di byte nel buffer del consumer non deve essere aggiornata prima di qualsiasi posizione di byte precedente. |
|
Impostare se il provider non richiede diritti di accesso speciali nel buffer sink per una richiesta di lettura RDMA. Quando questo flag è impostato, il consumer non deve usare i flag NDK_MR_FLAG_RDMA_READ_SINK o NDK_OP_FLAG_RDMA_READ_SINK quando registra i buffer sink per le richieste di lettura RDMA. Il consumer può anche usare direttamente i mapping di indirizzi logici (con un token ottenuto con la funzione NDK_FN_GET_PRIVILEGED_MEMORY_REGION_TOKEN ) come buffer sink di lettura RDMA. Questo è simile all'accesso ai buffer locali per le operazioni di scrittura, invio e ricezione RDMA. |
|
Impostare se il provider supporta la moderazione degli interrupt controllata a livello di codice per ogni coda di completamento (CQ). Quando questo flag è impostato, un consumer NDK può usare la funzione NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION nella tabella NDK_CQ_DISPATCH . |
|
Impostare se il provider supporta l'elaborazione simultanea di più connessioni con più motori di esecuzione. Se questo flag è impostato, un consumer NDK che usa più di una connessione simultaneamente nella scheda potrebbe offrire prestazioni migliori rispetto a una singola connessione. |
|
Impostare se il provider supporta l'invalidazione del token locale specificato nel primo NDK_SGE passato a una funzione NdkRead (NDK_FN_READ) durante il completamento della richiesta di lettura.
Nota Questo valore è supportato solo in NDKPI 1.2 (Windows Server 2012 R2) e versioni successive. |
|
Impostare se il provider supporta il ridimensionamento degli oggetti CQ. Se questo flag non è impostato, il consumer non deve tentare un ridimensionamento CQ. |
|
Impostare se il provider supporta le connessioni loopback. Ovvero, loopback da un indirizzo di rete locale in una scheda di interfaccia di rete specifica allo stesso indirizzo locale nella stessa scheda di interfaccia di rete. |
RdmaTechnology
Commenti
La funzione NDK_FN_QUERY_ADAPTER_INFO recupera il NDK_ADAPTER_INFO, che contiene informazioni su vari limiti e funzionalità dell'adattatore.
Requisiti
Client minimo supportato | None supported,Supported in NDIS 6.30 and later. |
Server minimo supportato | Windows Server 2012 |
Intestazione | ndkinfo.h (include Ndkpi.h) |
Vedi anche
NDK_FN_CONTROL_CQ_INTERRUPT_MODERATION