Condividi tramite


Percorso TX WDI

Componenti del percorso TX

Il diagramma seguente illustra i componenti del percorso TX.

percorso wdi tx.

Descrittori TX

Il TAL utilizza un descrittore Target TX (TTD) per informare il target delle dimensioni e della posizione del frame.

Diversi dispositivi WLAN di destinazione possono avere definizioni diverse del TTD. A causa di questo, la programmazione TTD viene eseguita all'interno del TAL, in base alle informazioni fornite da WDI. Per programmare un TTD, WDI specifica un NET_BUFFER_LIST (NBL), tramite cui i metadati dei frame, ad esempio l'ID frame, il TID esteso, gli offload di attività applicabili e l'azione di esenzione della crittografia, sono accessibili.

Il TAL trasferisce il TTD e il frame TX alla destinazione. Dall'analisi dei metadati nel TTD e dei campi all'interno dell'intestazione del frame, la destinazione può determinare il destinatario previsto del frame di trasmissione e come trasmetterlo correttamente.

Alla fine, la destinazione trasmette il frame e invia una notifica all'host quando viene eseguito il trasferimento (ed eventualmente la trasmissione). La destinazione utilizza un messaggio di completamento TX che specifica se la trasmissione è riuscita e gli ID dei fotogrammi la cui trasmissione è stata completata.

Operazione di base

La trasmissione di un frame di dati prevede i passaggi seguenti all'interno del software TX host WLAN.

  1. WDI ottiene un NBL da NDIS ed esegue la classificazione TX (se WDI funziona in modalità di accodamento PeerTID).
  2. L'NBL è collegato a un TTD ottenuto eseguendo una query su TAL. Per efficienza, il TAL può preallocare TTD da un elenco temporaneo.
  3. TxMgr accoda il frame di trasmissione a seconda della modalità TargetPriorityQueueing, basandosi su PeerTID o Port.
  4. TxMgr fornisce il NBL e il TTD collegato al TxEngine, che a sua volta lo passa al TIL per il trasferimento alla destinazione. TxEngine/TIL non accoda fotogrammi (ad esempio, prima di renderli disponibili per DMA).
  5. TxEngine indica lo stato TX aggiornato dei fotogrammi di proprietà del TxEngine/target usando il completamento del trasferimento (e trasmettere l'indicazione di completamento, se applicabile).
  6. Quando un frame è sia Transfer Complete che, se necessario, TX Complete, TxMgr cerca il NBL utilizzando l'ID del frame, restituisce il TTD al pool di TxEngine e completa l'invio del frame a NDIS.

Host - Controllo del flusso TX di destinazione

Il controllo del flusso TX è necessario per evitare di sovraccaricare le risorse TIL e di destinazione.

Il sistema di credito di destinazione e il meccanismo di sospensione/ripresa

Il TxMgr accoda e trasferisce i frame TX all'obiettivo in base a uno schema basato sul credito. La destinazione fornisce al motore TX indicazioni sull'aggiornamento del credito che specificano le risorse disponibili per fotogrammi aggiuntivi nella destinazione. Il numero di crediti utilizzati da ogni fotogramma sul bersaglio viene determinato al momento della programmazione TTD. Il numero di frame passati al TxEngine come parte di un'operazione di invio da una determinata coda è limitato dai crediti disponibili e dal costo dei frame all'inizio della coda nell'ordine FIFO.

Per TxMgr, i crediti hanno un'unità astratta. Target/TxEngine deve usare qualsiasi definizione di credito sia più utile per l'implementazione specifica.

Il TAL utilizza indicazioni di sospensione/ripresa per arrestare/riprendere il flusso del traffico TX da una determinata porta o destinato a un determinato ricevitore con un TID specificato. Se il TxEngine ottiene una richiesta di invio mentre il credito disponibile è inferiore al costo massimo del frame, il TxEngine sospende il traffico dal TxMgr (in tutte le porte) fino al successivo aggiornamento del credito dalla destinazione.

Quando WDI è nella modalità di accodamento di porta (TargetPriorityQueueing è uguale a TRUE), le indicazioni di sospensione/ripresa sono consentite/definite solo a livello di porta o adattatore a causa dell'assenza di classificazione e accodamento Peer,TID.

Limitazione del numero massimo di fotogrammi per le operazioni di invio

Per evitare la necessità di code temporanee nell'TIL (ad esempio, coda di corrispondenza della frequenza DMA), il numero di fotogrammi che TxMgr passa a TxEngine in un'operazione di invio è limitato da un conteggio massimo specificato da TxEngine. Questo limite può essere specifico per la coda dalla quale il TxMgr sta tentando di inviare e cambia nel tempo man mano che è disponibile più spazio nel TIL.

Host - Pianificazione del trasferimento TX di destinazione

TxMgr usa un singolo thread TX per inviare frame al TxEngine. È presente un thread TX che invia attivamente i pacchetti al TxEngine, finché ci sono code arretrate.

Il TxMgr pianifica le code nel modo seguente a seconda della modalità di accodamento.

Per l'accodamento delle porte WDI (TargetPriorityQueueing è uguale a TRUE), TxMgr gestisce le code utilizzando il Deficit Round Robin (DRR) attraverso tutte le code di porte arretrate.

Per l'accodamento PeerTID WDI (conTargetPriorityQueueing impostato su FALSE), i servizi TxMgr gestiscono le code in base alla priorità AC senza penalizzare alcuna coda e garantiscono che qualsiasi risorsa limitata in TIL e destinazione venga condivisa equamente tra i flussi RA-TID. Impedisce ai flussi lenti di consumare una condivisione sproporzionata di tali risorse.

In generale, il pianificatore usa DRR per scegliere la coda di Peer-TID da cui trasmettere in ogni momento. Per ogni coda, DRR associa un parametro di quantizzazione che limita il numero di ottetti da inviare dalla coda in ogni round. TxEngine aggiorna questo parametro in ogni operazione di invio che coinvolge la coda in modo che corrisponda alle dimensioni previste di una o due opportunità di trasmissione.

In generale, il service DRR gestisce solo le code RA-TID associate all'AC con accumulo di maggior priorità. Per evitare l'esaurimento, il pianificatore esegue periodicamente DRR su tutte le code in attesa.

Mappatura delle priorità per i TID riservati IHV

I frame inseriti dall'IHV con TID esteso nell'intervallo riservato IHV vengono mappati ai seguenti AC estesi per la pianificazione delle priorità. La tabella è in ordine di priorità crescente.

TID esteso Climatizzazione estesa
17 AC_BK
18 AC_BE
19 AC_VI
20 AC_VO
21 AC_PR0
22 AC_PR1
23 AC_PR2
24 AC_PR3

Per l'accodamento delle porte WDI, tutti i fotogrammi inseriti vengono trattati equamente, indipendentemente dal tipo di TID esteso.

interfaccia TxMgr-TxEngine

Richieste a TxEngine

Indicazioni da TxEngine

Richieste di controllo specifiche TX

Indicazioni di controllo specifiche TX

Funzioni del percorso WDI TX

NET_BUFFER_LIST

WDI_TXRX_CAPABILITIES