Condividi tramite


Modello di comunicazione, sincronizzazione e interruzione

A livello generale, questa documentazione definisce due tipi di oggetti:

  1. Adattatore, che rappresenta il dispositivo Wi-Fi.
  2. Porta, che rappresenta entità MAC e PHY distinte nell'adattatore.

Per altre informazioni su questi oggetti, vedere Modello di dispositivo Wi-Fi e oggetti. I comandi, un set di operazioni consentite, sono definiti per ognuno di questi oggetti. I comandi sono ulteriormente classificati in Proprietà e Attività.

I comandi di proprietà sono semplici comandi, ad esempio ottenere la forza del segnale, ottenere l'elenco BSS corrente e impostare il filtro pacchetti. Vengono completati in un breve periodo di tempo e non sono complicati da implementare.

I comandi attività sono operazioni complesse che possono richiedere diversi secondi per il completamento. Ad esempio, un'operazione di analisi Wi-Fi verrebbe categorizzata come attività in questo modello.

Tutti i comandi rilasciati al componente IHV possono essere completati in modo asincrono.

Sequenza di messaggi

La sequenza di messaggi per ogni tipo di comando è illustrata nelle figure seguenti.

La figura 1 mostra la sequenza di comando dell'attività.

flusso dell'attività del comando wdi.

La figura 2 mostra il flusso del comando della proprietà.

Flusso di comando della proprietà wdi.

La figura 3 mostra il flusso per le indicazioni.

flusso di indicazione wdi.

Sincronizzazione

Per semplificare l'implementazione del componente IHV, il modello definisce le regole di sincronizzazione seguenti:

  1. I comandi vengono sempre serializzati tra i passaggi 1 e 3 nella figura 1 e nella figura 2. Ad esempio, non viene eseguito alcun nuovo comando all'adapter fino all'indicazione dell'adattatore al passaggio 3. Ciò implica anche che tutte le proprietà vengono serializzate tra loro.
  2. Tutti i comandi attività vengono serializzati tra i passaggi 1 e 4 nella figura 1. Ad esempio, solo un'attività viene eseguita sull'adapter alla volta. Tuttavia, dopo l'avvio di un'attività (passaggio 3 nella figura 1), l'adattatore può ottenere richieste di comando delle proprietà. Sia il passaggio 3 che il passaggio 4 devono terminare prima dell'invio del comando successivo dell'attività.
  3. I comandi del set di proprietà sono di due tipi, ovvero quelli che possono essere inviati dopo l'avvio dell'attività e quelli che devono essere serializzati con attività in sospeso.
  4. Il percorso dati non viene serializzato con il percorso del comando, ad eccezione dei casi specifici descritti più avanti nella documentazione.
  5. L'ambito di sincronizzazione è l'ambito a livello di adattatore.
  6. Un subset di attività può essere interrotto dopo l'avvio. Ciò significa che se arriva un'attività con priorità più alta (A) mentre un'attività con priorità più bassa (B) è in sospeso, B può essere interrotta dall'host. La razionalizzazione delle decisioni di definizione delle priorità esula dall'ambito di questa documentazione e dipende dagli scenari utente.
  7. Per i comandi dell'attività, il passaggio 4 può venire prima del completamento del passaggio 3. Tuttavia, se è indicato il passaggio 4, il passaggio 3 non può avere esito negativo.

Interruzione

La maggior parte delle attività può essere interrotta dopo l'avvio. Lo scopo dell'interruzione è attivare l'adattatore per completare rapidamente l'attività inviando l'indicazione completa (passaggio 4 nella figura 1). L'interruzione è consentita solo nella finestra tra i passaggi 3 e 4 nella figura 1. Alla ricezione dell'interruzione, l'adattatore deve completare l'attività entro 50 millisecondi. Per la maggior parte dei comandi, al momento della ricezione dell'interruzione, l'adapter non deve eseguire il rollback allo stato prima dell'avvio del comando. Esistono race condition tra il comando di interruzione da eseguire e i completamenti che arrivano al componente host. In questo caso, se il componente IHV riceve un'interruzione per un'attività già completata, non sono necessarie ulteriori azioni dal componente IHV per elaborare l'operazione di interruzione. L'interruzione di un'attività è semplicemente un segnale che il componente IHV deve pulire l'attività il prima possibile. La semantica di completamento dei comandi non viene modificata se viene eseguita un'interruzione. Sia il completamento per il comando della proprietà di interruzione che l'indicazione di completamento dell'attività deve essere notificata in tutti i casi.

Le proprietà devono essere completate in breve tempo in modo che non possano essere interrotte.

I comandi attività hanno un identificatore univoco che consente all'host di scegliere come destinazione un comando specifico per l'interruzione.