Per i dispositivi con Android 13 o versioni successive, Android supporta lo standard Wi-Fi 7 (IEEE 802.11be). Questa pagina descrive le funzionalità Wi-Fi 7 di Android, tra cui il funzionamento di base e multi-link (MLO).
Funzionalità di base del Wi-Fi 7
Questa sezione descrive le funzionalità di base del Wi-Fi 7 incluse in Android 13 e versioni successive.
Supporto del Wi-Fi 7 per i dispositivi
Il framework Android include l'API
WifiManager#isWifiStandardSupported(int standard)
,
che le app possono chiamare con l'argomento
ScanResults.WIFI_STANDARD_11BE
per verificare se un dispositivo supporta il Wi-Fi 7.
Quando viene chiamata questa API, il
modulo Wi-Fi
controlla se l'overlay di configurazione config_wifi11beSupportOverride
viene
utilizzato come override e svolge le seguenti operazioni:
- Se l'overlay è impostato su
true
, si presume che il dispositivo supporti il Wi-Fi 7 indipendentemente dalla risposta di nl80211. Questo override è utile solo per i produttori di dispositivi che non dispongono di driver che supportano il Wi-Fi 7. - Se l'overlay è impostato su
false
(valore predefinito), il modulo Wi-Fi utilizza le informazioni di nl80211. Il modulo Wi-Fi richiede le informazioni a wificond, che chiama il comando nl80211NL80211_CMD_GET_WIPHY
. Se l'attributoNL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY
è presente nella risposta del driver, si presume che il dispositivo supporti il Wi-Fi 7.
Supporto Wi-Fi 7 AP scansionato
Il framework Android include l'API
int ScanResult#getWifiStandard()
, che le app possono chiamare per verificare se un punto di accesso (AP) scansionato
supporta il Wi-Fi 7. Se il punto di accesso supporta il Wi-Fi 7, l'API restituisce
ScanResults.WIFI_STANDARD_11BE
.
Per utilizzare questa API, non è necessario che il dispositivo supporti il Wi-Fi 7.
Quando viene chiamata questa API, il modulo Wi-Fi controlla se EHT Capability IE
è
nei risultati restituiti della scansione della connettività. Se EHT Capability IE
è presente
nei risultati della scansione, il punto di accesso scansionato supporta il Wi-Fi 7.
La classe AOSP WifiTracker
mostra queste informazioni di assistenza nell'interfaccia utente quando viene eseguita in modalità dettagliata.
Modalità di connessione STA
Il framework Android include l'API
int WifiInfo#getWifiStandard()
, che le app possono chiamare per verificare se la modalità di connessione della stazione (STA) attuale è Wi-Fi 7. La modalità di connessione STA è Wi-Fi 7 quando sia il dispositivo sia
l'AP connesso supportano Wi-Fi 7. Se la modalità di connessione è Wi-Fi 7, l'API
restituisce
ScanResults.WIFI_STANDARD_11BE
.
Quando viene chiamato getWifiStandard
, il modulo Wi-Fi determina la modalità chiamando l'API HAL ISupplicantStaIface#getConnectionCapabilities()
. L'implementazione di questa API HAL nel livello AIDL wpa_supplicant
controlla se EHT Capability IE
è sia in AssocReq
che in AssocRsp
durante la configurazione della connessione.
Selezione rete
In Android 13, la selezione della rete utilizza diversi
parametri per determinare a quale AP connettersi. Uno dei parametri è la
velocità effettiva stimata del punto di accesso, che viene stimata utilizzando il
blocco ThroughputPredictor
. Il blocco
ThroughputPredictor
utilizza i parametri PHY sia del dispositivo sia
dell'AP scansionato.
In Android 13, ThroughputPredictor
utilizza le seguenti funzionalità dell'API nel calcolo:
- Supporto del Wi-Fi 7 (802.11be)
- Supporto della larghezza del canale di 320 MHz
L'inclusione di queste funzionalità nella logica di ThroughputPredictor
aumenta le
probabilità di selezionare AP compatibili con il Wi-Fi 7 quando il dispositivo può utilizzare queste
funzionalità.
Misurazione basata su Wi-Fi RTT
Android fornisce il supporto API per il preambolo EHT e la larghezza del canale di 320 MHz per Wi-Fi RTT. Ciò consente il supporto delle funzionalità relative al Wi-Fi 7 nella misurazione RTT ogni volta che è supportato dal chip.
API HAL
Le seguenti API HAL supportano le funzionalità Wi-Fi 7 per la misurazione della distanza basata su RTT:
EHT
: costante inenum RttPreamble
eenum WifiRatePreamble
WIDTH_320
: Costante inenum WifiChannelWidthInMhz
BW_320MHz
: Costante inenum RttBw
API
Le app possono utilizzare le seguenti API per la misurazione della distanza basata su Wi-Fi 7 RTT:
ScanResult#PREAMBLE_EHT
ResponderConfig#PREAMBLE_EHT
(SystemApi)
Soft AP
Android supporta il Wi-Fi 7 in Soft AP e fornisce le seguenti funzionalità.
Avvia Soft AP
Android supporta l'avvio di Soft AP in modalità Wi-Fi 7.
Questo aspetto è regolato dalla configurazione
della sovrapposizione config_wifiSoftapIeee80211beSupported
.
Il modulo Wi-Fi utilizza l'overlay config_wifiSoftapIeee80211beSupported
per impostare
il valore booleano HwModeParams#enable80211BE
nella
chiamata API IHostApd#addAccessPoint()
. Nel livello AIDL hostapd, questo valore viene
utilizzato per impostare i parametri hostapd.conf
.
API HAL
Il
enable80211BE
booleano in HwModeParams
nell'HAL hostapd supporta
l'avvio di Soft AP in modalità Wi-Fi 7.
Segnalare informazioni sul Soft AP
Android include il supporto API per includere informazioni su Wi-Fi 7 e larghezza del canale di 320 MHz nelle informazioni Soft AP segnalate.
API HAL
La costante WIFI_STANDARD_11BE
nell'interfaccia AIDL Generation.aidl
nell'HAL hostapd, utilizzata in ApInfo
segnalato nel callback IHostapdCallback#onApInstanceInfoChanged()
, supporta la segnalazione delle informazioni Soft AP.
API
Le app possono utilizzare i seguenti metodi (API di sistema) in
SoftApInfo
per segnalare le informazioni sull'AP virtuale.
SoftApInfo#getWifiStandard()
: RestituisceScanResults.WIFI_STANDARD_11BE
se l'AP software viene avviato in modalità Wi-Fi 7.SoftApInfo#getBandwidth()
: restituisceSoftApInfo#CHANNEL_WIDTH_320MHZ
se viene utilizzata la larghezza del canale di 320 MHz.
Funzionalità Wi-Fi 7 MLO
Il funzionamento multi-link (MLO) è la funzionalità principale della specifica Wi-Fi 7 (802.11be). MLO è una funzionalità obbligatoria per i dispositivi multi-link (MLD) che utilizzano Wi-Fi 7, in modo simultaneo o non simultaneo.
Figura 1. Diagramma MLO.
Come mostrato nella figura 1, sia AP-MLD che STA-MLD hanno più istanze AP o STA in esecuzione su ogni link. Ogni link ha un indirizzo MAC AP o STA separato. L'AP o la STA dispone anche di un indirizzo MAC MLD per identificare il dispositivo.
Rappresentazione del link MLO
La classe
android.net.wifi.MloLink
rappresenta il link MLO. Questa classe include i seguenti parametri:
int getLinkId()
: ID link come pubblicizzato dall'AP MLD.MacAddress getApMacAddress()
: Indirizzo MAC del punto di accesso. Il BSSID dell'istanza AP per quel link.MacAddress getStaMacAddress()
: Indirizzo MAC STA. L'indirizzo MAC assegnato localmente per l'istanza STA sul link.int getChannel()
: Collega il canale. Il numero del canale del link.int getBand()
: Cinturino a maglie. La banda del link.int getState()
: Stato del link. Può avere uno dei seguenti stati:MLO_LINK_STATE_INVALID
: Non valido. Utilizzato per l'inizializzazione e i casi di errore.MLO_LINK_STATE_UNASSOCIATED
: Non associato. Il link non è associato a un AP.MLO_LINK_STATE_IDLE
: Inattivo. Il link è associato, ma non attivo (nessun identificatore del traffico (TID) è mappato al link).MLO_LINK_STATE_ACTIVE
: Attivo. Il link è associato e attivo (almeno un ID transazione è mappato al link). Un link attivo può essere in modalità di risparmio energetico perché il framework non monitora lo stato di alimentazione del link.
Informazioni sugli AP Wi-Fi 7 MLO scansionati
Le app possono ottenere i parametri MLO per un AP MLD Wi-Fi 7 quando il modulo Wi-Fi
riceve un oggetto
ScanResult
dall'AP-MLD. WifiTracker
AOSP mostra i parametri MLO quando
viene eseguito in modalità dettagliata.
Il modulo Wi-Fi raccoglie le informazioni MLO nel seguente modo:
- Analizza l'elemento informativo (IE) multi-link incluso nella risposta del beacon o del probe per leggere l'indirizzo MAC MLD del punto di accesso e l'ID link corrente.
- Analizza l'IE del report sui vicini ridotti (RNR) incluso nella risposta del beacon o della sonda per leggere l'elenco delle informazioni sui link affiliati.
API
Per ottenere informazioni AP MLO scansionate, le app possono utilizzare le seguenti API:
ScanResult#BSSID
: L'indirizzo MAC dell'istanza AP (per il link su cui viene ricevuto il risultato della scansione)MacAddress ScanResult#getApMldMacAddress()
: Restituisce l'indirizzo MAC MLD del punto di accesso.int ScanResult#getApMloLinkId()
: Restituisce l'ID collegamento per il link su cui è stato ricevuto ScanResult.List<MloLink> ScanResult#getAffiliatedMloLinks()
: restituisce un elenco di oggettiMloLink
per tutti i link pubblicizzati dall'AP-MLD, incluso il link su cui è stato ricevuto ScanResult.
Informazioni sul punto di accesso Wi-Fi 7 MLO connesso
Quando un dispositivo si connette a un AP-MLD Wi-Fi 7, il framework raccoglie i
parametri MLO della connessione dall'oggetto WifiInfo
. L'oggetto AOSP
WifiTracker
mostra queste informazioni quando viene eseguito in modalità dettagliata.
Quando il dispositivo si connette all'AP-MLD, il modulo Wi-Fi copia le informazioni MLO
dall'oggetto ScanResult
ricevuto dall'AP. Il modulo chiama quindi
l'API HAL ISupplicantStaIface#getConnectionMloLinksInfo()
per leggere gli indirizzi MAC di ogni link sia per AP che per STA e per aggiornare
lo stato dei link associati.
API
Per ottenere le informazioni di connessione MLO, le app possono utilizzare le seguenti API:
WifiInfo#getBSSID()
: Restituisce l'indirizzo MAC dell'istanza AP (per il link a cui è associato il dispositivo).MacAddress WifiInfo#getApMldMacAddress()
: Restituisce l'indirizzo MAC MLD del punto di accesso.int WifiInfo#getApMloLinkId()
: Restituisce l'ID collegamento per il collegamento su cui la STA è associata al PA.List<MloLink> WifiInfo#getAffiliatedMloLinks()
: Restituisce un elenco di oggettiMloLink
per tutti i link pubblicizzati dall'AP-MLD, incluso il link associato. È possibile eseguire query sugli indirizzi MAC AP e STA su ogni oggettoMloLink
.
Scansione AP-MLD
Il software del fornitore fornisce al framework Wi-Fi i risultati della scansione per ogni beacon o risposta di probing che riceve. Ciò significa che il framework Wi-Fi:
- Potrebbe ricevere più oggetti
ScanResults
dallo stesso AP-MLD (perché l'AP può avere più link di beaconing). - Potrebbe ricevere solo un insieme parziale dei risultati della scansione per i link AP di un AP-MLD perché alcuni di questi segnali di collegamento potrebbero non essere ricevuti dal firmware.
Il software del fornitore segnala solo i risultati della scansione ricevuti via etere e non deve creare (sintetizzare artificialmente) risultati della scansione in base ai link pubblicizzati dall'AP-MLD.
Il software del fornitore deve includere i componenti di base multi-link e RNR IE ricevuti dalle istanze AP nei risultati della scansione segnalata. Se i dettagli dell'AP affiliato non sono presenti nei risultati della scansione, il software del fornitore può inviare richieste di probe multi-link (frame della richiesta di probe che include un elemento multi-link della richiesta di probe) per includere l'insieme completo o parziale di funzionalità, parametri e elementi di operazione dell'AP con l'AP-MLD di destinazione nel frame di risposta.
Il software del fornitore può attivare l'analisi ML (utilizzando la variante ML IE della richiesta di probe nel frame della richiesta di probe) se necessario.
Associazione di rete AP-MLD
Quando un dispositivo si unisce a una rete AP-MLD, il software del fornitore utilizza il link AP (link associato) selezionato per la segnalazione. Il software del fornitore può associarsi a tutti o ad alcuni dei link supportati dal dispositivo.
Una volta eseguita l'associazione, il driver segnala
ISupplicantStaIfaceCallback#onStateChanged()
con il BSSID di un link per
l'AP-MLD. Il driver seleziona quindi un link dell'AP-MLD a condizione che
i risultati della scansione siano stati segnalati al framework per quel link.
Punteggio della rete
Per i dispositivi con Android 14 o versioni successive, Selezione della rete Wi-Fi Android supporta Wi-Fi 7 MLO. Ciò significa che Android seleziona la migliore rete Wi-Fi per il dispositivo in base al numero di link disponibili per MLO.
Per supportare MLO, l'algoritmo di selezione della rete utilizza le seguenti funzionalità MLO del chip Wi-Fi:
- Numero massimo di link STR
- Numero massimo di link di associazione
- Combinazioni di bande simultanee
Figura 2. Selezione della rete MLO.
Numero massimo di link STR
La trasmissione e ricezione simultanea (STR) è uno schema di contesa del mezzo Wi-Fi per il funzionamento multi-link. L'isolamento del segnale tra i diversi link è sufficiente in modo che i link possano funzionare in modo indipendente e siano in grado di trasmettere e ricevere simultaneamente in link diversi. STR è diverso dalla STA legacy a collegamento singolo (SL) e dalla STA legacy a doppia banda e doppia simultaneità (DBDC). Le STA affiliate a una STA MLD condividono un numero di sequenza (SN) del trasmettitore comune e uno spazio comune per la trasmissione dei dati allocato a link diversi se la trasmissione di più link ha la stessa categoria di accesso (AC).
Il numero massimo di link STR utilizzati può essere diverso dal numero massimo di emittenti supportate dal chip. Nell'esempio della Figura 2, il numero massimo di link STR è 2.
Le seguenti interfacce HAL AIDL supportano il numero massimo di link STR e il numero massimo di funzionalità di conteggio dei link di associazione:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/WifiChipCapabilities.aidl
Numero massimo di link di associazione
Più link possono operare su una singola radio utilizzando lo schema di contesa Enhanced Multi-Link Single Radio (eMLSR). Un dispositivo multi-link utilizza eMLSR su un insieme di link se può ricevere determinati frame di controllo di base ed eseguire la valutazione del canale libero (CCA) contemporaneamente sull'insieme di link. Tuttavia, il MLD trasmette o riceve dati su un solo link (quello scelto dinamicamente in ogni periodo di opportunità di trasmissione (TXOP)) alla volta.
Una stazione MLD può massimizzare il numero di link di associazione per una migliore affidabilità, una migliore velocità effettiva e una latenza inferiore (rispetto a una stazione legacy a link singolo) operando contemporaneamente in STR ed eMLSR, se supportati dal chip. Nella Figura 2, il numero massimo di link di associazione è 3.
Le seguenti interfacce HAL AIDL supportano la funzionalità di conteggio massimo dei link di associazione:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/WifiChipCapabilities.aidl
Combinazioni di bande simultanee
Il framework esegue query sul chip per ottenere le combinazioni radio consentite (tramite
l'interfaccia AIDL IWifiChip.aidl
) che possono funzionare contemporaneamente. Da queste
informazioni, il framework deriva possibili combinazioni di bande simultanee. Di
seguito è riportato un elenco di esempio di combinazioni di bande simultanee (GHz):
- 2.4
- 5
- 6
- 2,4 x 5
- 2,4 x 6
- 5 x 6
La seguente interfaccia HAL AIDL supporta combinazioni radio simultanee:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
Selezione rete
Durante la selezione della rete (MLO), l'elenco dei candidati viene raggruppato in base ai membri con lo stesso indirizzo MAC MLD. Il punteggio massimo di throughput multi-link previsto viene calcolato per ogni gruppo in base al numero massimo di link STR e alle combinazioni di bande simultanee supportate dal chip. Se il candidato è in grado di supportare più link e il chip supporta STR, il punteggio di throughput previsto viene sostituito con il punteggio di throughput previsto per più link. In questo modo, i candidati MLO ricevono un boost durante la selezione della rete.
Quando si accede a una rete AP-MLD, il framework esegue la selezione dell'SSID in base
alle informazioni ricevute nell'oggetto ScanResults
come riportato dal software
del fornitore. Una volta selezionato l'SSID dal framework, il software del fornitore è
responsabile della selezione del BSSID per il miglior AP (o collegamento AP) da utilizzare per
l'associazione.
Gestione dell'indirizzo MAC STA del dispositivo
Questa sezione descrive come vengono gestiti gli indirizzi MAC STA del dispositivo (indirizzi MAC MLD e indirizzi MAC STA per collegamento).
Indirizzo MAC MLD
Il framework Wi-Fi gestisce l'indirizzo MAC MLD del dispositivo. L'indirizzo MAC MLD
viene gestito allo stesso modo in cui un dispositivo non MLD gestisce il proprio indirizzo MAC.
L'indirizzo MAC può essere un indirizzo MAC casuale o un indirizzo MAC di provisioning hardware in base alla scelta dell'utente. L'indirizzo MAC MLD viene impostato dal framework
utilizzando l'API HAL IWifiStaIface#setMacAddress()
.
Indirizzo MAC STA per collegamento
Il software del fornitore gestisce gli indirizzi MAC STA dell'istanza (per ogni link). Quando un dispositivo si associa a un punto di accesso, il software del fornitore assegna un indirizzo MAC dell'istanza per ogni link associato.
Il software del fornitore assegna indirizzi MAC per collegamento in base al suo algoritmo. L'algoritmo deve essere ripetibile e una funzione di quanto segue:
- Indirizzo MAC STA-MLD impostato dal framework Wi-Fi.
- ID collegamento (ricevuto dall'AP)
Ciò significa che se il framework riutilizza lo stesso indirizzo MAC MLD, il fornitore deve riutilizzare gli stessi indirizzi MAC per istanza associati e viceversa. Ciò garantisce che quando l'indirizzo STA-MLD generato dal framework è persistente per un SSID, anche gli indirizzi MAC per STA sono persistenti.
Di seguito è riportato un esempio di algoritmo per l'assegnazione dell'indirizzo MAC STA per collegamento (i fornitori possono implementare qualsiasi algoritmo che soddisfi i criteri dell'algoritmo):
- Ottetto 0: assicurati che il bit amministrato localmente sia impostato
- Ottetti 1-4: uguali all'indirizzo MAC STA-MLD
- Ottetto 5: Per-STA = (STA-MLD + link ID + 1) MOD (256)
Gestione di più link
Il firmware del fornitore può eseguire il cambio di collegamento e gestire lo stato di risparmio energetico dei collegamenti per l'attivazione o la disattivazione senza input dal framework Wi-Fi.
Il framework Wi-Fi non prevede una notifica quando lo stato del link viene modificato.
Gestione dello stato di risparmio energetico
Lo stato di risparmio energetico è attivo per impostazione predefinita nel framework Wi-Fi. Nello stato di risparmio energetico, il firmware del fornitore gestisce lo stato di risparmio energetico dei singoli link in base ai pattern di traffico e alle decisioni di attivazione o disattivazione dei link.
Tuttavia, il framework Wi-Fi può forzare la disattivazione dello stato di risparmio energetico
chiamando l'API HAL ISupplicantStaIface::setPowerSave(false)
. Se lo stato di
risparmio energetico è disattivato dal framework, il firmware del fornitore deve mantenere
almeno un collegamento attivo (risparmio energetico disattivato). In questo stato, l'implementazione
del firmware decide quale link viene impostato.
Percorso dei dati
Descrive l'implementazione del firmware del fornitore per la gestione del traffico di uplink e download.
Traffico uplink
Il firmware indirizza il traffico di uplink a uno o più link in base alla sua implementazione interna. Il firmware del fornitore decide quando eseguire il bilanciamento del carico, la duplicazione o l'aggregazione del traffico in base ai pattern di traffico. Consigliamo la duplicazione del traffico del firmware su più link nei seguenti casi:
- Quando la modalità a bassa latenza è impostata tramite l'API HAL
IWifiChip#setLatencyMode()
. - Quando è presente traffico con priorità utente 6 e 7.
Traffico downlink
Il firmware deve sostituire l'indirizzo MAC per STA (destinazione) dell'intestazione MAC con l'indirizzo MAC MLD-STA e l'indirizzo MAC per AP (origine) dell'intestazione MAC con l'indirizzo MAC MLD-AP. Il firmware deve eseguire questa sostituzione dell'indirizzo MAC prima di passare attraverso il filtro APF perché i comandi del filtro APF hanno filtri basati sugli indirizzi MAC MLD. Esiste un unico filtro APF per tutti i link di un AP-MLD.
Concorrenza
Gli scenari di concorrenza, in cui una radio viene utilizzata per una nuova interfaccia, devono avere la priorità rispetto all'utilizzo di più radio per i link della stessa interfaccia. Anche gli scenari di concorrenza devono avere la priorità rispetto a MLO, indipendentemente da quale sia stato eseguito per primo. L'utilizzo di più link per una singola interfaccia è opportunistico, il che significa che più link vengono utilizzati solo quando:
- MLO è obbligatorio in base alla decisione del firmware per il bilanciamento del carico, l'aggregazione o la duplicazione.
- MLO è disponibile, il che significa che una radio non è richiesta da un'altra interfaccia.
Mappatura ID transazione-link
Per i dispositivi con Android 14 o versioni successive, quando l'AP Wi-Fi 7 annuncia una disattivazione temporanea di uno dei link tramite un elemento di mapping TID-to-link trasmesso nei frame di beacon, risposta di probing e risposta di associazione, la stazione Wi-Fi 7 continua la connessione con l'AP utilizzando i link rimanenti configurati, senza eseguire un'altra associazione.
Per i dispositivi con Android 13 o versioni precedenti, il framework Wi-Fi non supporta la ricezione di notifiche quando lo stato del collegamento viene modificato a causa del mapping TID-collegamento, anche se il collegamento associato non è collegato a un TID.
AIDL HAL
Il supplicant Wi-Fi notifica al framework Wi-Fi le modifiche alla mappatura TID-to-link tramite le seguenti interfacce AIDL:
hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl
hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIface.aidl
hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant/MloLinksInfo.aidl
API
Le app possono ottenere informazioni sulle modifiche alla mappatura TID-link utilizzando le seguenti API:
ConnectivityManager.NetworkCallback.onCapabilitiesChanged()
: Callback di rete attivato dal framework quando si verifica una modifica del mapping TID-to-link.WifiInfo#getAssociatedMloLinks()
: Restituisce i link MLO associati.MloLink#getState()
: Restituisce lo stato del link,MLO_LINK_STATE_ACTIVE
oMLO_LINK_STATE_IDLE
.
Funzionalità di negoziazione della mappatura TID-to-link
Per i dispositivi con Android 14 o versioni successive, sono disponibili le seguenti API per ottenere le funzionalità di negoziazione della mappatura TID-to-link per la stazione e l'AP.
Funzionalità del chip
Le seguenti interfacce supportano la funzionalità del chip per la negoziazione della mappatura TID-to-link.
AIDL HAL
L'interfaccia AIDL per la negoziazione della mappatura TID-to-link si trova in FeatureSetMask
in hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
. La funzionalità
T2LM_NEGOTIATION = 1 << 8
indica che il chip supporta
la mappatura TID-to-link.
API
WifiManager.isTidToLinkMappingNegotiationSupported()
: Restituisce il chip che supporta la negoziazione della mappatura dall'ID transazione al link.
Funzionalità AP
Le seguenti interfacce supportano la funzionalità AP per la negoziazione della mappatura TID-to-link.
AIDL HAL
Il framework esegue query sulla funzionalità AP dal supplicante insieme alla funzionalità di connessione corrente.
apTidToLinkMapNegotiationSupported
: Verifica se un AP supporta la funzionalità di negoziazione della mappa TID-to-link.
API
WifiInfo.isApTidToLinkMappingNegotiationSupported()
: Restituisce un valore che indica se AP supporta la negoziazione della mappatura dall'ID al link.
Statistiche del livello di collegamento
Le statistiche del livello di collegamento includono dettagli specifici del collegamento Wi-Fi, come RSSI, vari contatori di pacchetti TX e RX e statistiche radio. Il framework Wi-Fi esegue periodicamente il polling delle statistiche del livello di collegamento e dell'RSSI per selezionare la rete migliore o per valutare la qualità della rete connessa. Per i dispositivi con Android 14 o versioni successive, le statistiche del livello di collegamento includono il supporto multi-link. Per supportare il Wi-Fi 7, Android supporta MLO sia nelle statistiche del livello di collegamento sia nel polling del segnale.
Le statistiche specifiche per i link si trovano nelle seguenti interfacce AIDL del livello di collegamento:
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceStats.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerLinkStats.aidl
L'API di sistema
android.net.wifi.WifiManager#addOnWifiUsabilityStatsListener()
ascolta tutte le statistiche del livello di collegamento. Il framework richiama periodicamente
questa API per aggiornare le statistiche di usabilità del Wi-Fi.
Le seguenti API specifiche per i link sono disponibili in
android.net.wifi.WifiUsabilityStatsEntry
.
int getRssi(int linkId)
int getLinkState(int linkId)
int getRadioId(int linkId)
int getTxLinkSpeedMbps(int linkId)
long getTotalTxSuccess(int linkId)
long getTotalTxRetries(int linkId)
long getTotalTxBad(int linkId)
long getTotalRxSuccess(int linkId)
long getTotalBeaconRx(int linkId)
int getRxLinkSpeedMbps(int linkId)
int getTimeSliceDutyCycleInPercent(int linkId)
ContentionTimeStats getContentionTimeStats(int linkId, @WmeAccessCategory int ac)
List<RateStats> getRateStats(int linkId)
Per eseguire una query sugli ID link disponibili, le app possono chiamare il metodo
android.net.wifi.WifiUsabilityStatsEntry#getLinkIds()
.
Le API in
android.net.wifi.WifiUsabilityStatsEntry
per il singolo link (non MLO) restituiscono le statistiche aggregate per le connessioni MLO. Di seguito sono riportati i criteri di aggregazione:
Le seguenti statistiche sui pacchetti aggregati utilizzano la somma delle statistiche per link:
public long getTotalTxSuccess() public long getTotalTxRetries() public long getTotalTxBad() public long getTotalRxSuccess() public int getRxLinkSpeedMbps()
Le seguenti statistiche utilizzano i dati del collegamento con l'RSSI più alto:
public int getRssi() public int getLinkSpeedMbps() public long getTotalBeaconRx() public int getTimeSliceDutyCycleInPercent() public ContentionTimeStats getContentionTimeStats(@WmeAccessCategory int ac) public List<RateStats> getRateStats()
Statistiche del livello di collegamento in Android 13
Per i dispositivi con Android 13, le statistiche del livello di collegamento
non tengono conto
dell'utilizzo di più collegamenti per una singola interfaccia. Per supportare MLO, il software del fornitore
deve applicare la seguente logica di aggregazione quando segnala LinkLayerStats
tramite l'API HAL IWifi# getLinkLayerStats_1_6()
. Il collegamento migliore è quello con l'RSSI più alto.
StaLinkLayerStats.iface.beaconRx
: segnala il conteggio dei beacon per il collegamento migliore utilizzato per l'interfaccia.StaLinkLayerStats.iface.avgRssiMgmt
: segnalaavgRssiMgmt
per il miglior link utilizzato per l'interfaccia.StaLinkLayerStats.iface.wmeXxPktStats
(Xx = Vo, Vi, Be,Bk): Report the aggregated packet stats (total) over the links of the interface.StaLinkLayerStats.iface.wmeXxContentionTimeStats
(Xx = Vo, Vi, Be,Bk): riporta le statistiche sul tempo di contesa per il miglior link utilizzato sull'interfaccia (le statistiche sul tempo di contesa più basse).
Riconfigurazione del link MLO
Quando uno dei link del punto di accesso Wi-Fi 7 viene riassegnato, il punto di accesso può annunciare la rimozione del link tramite la riconfigurazione del link MLO. Le stazioni possono mantenere una connettività continua con il punto di accesso senza una riassociazione sui link rimanenti.
L'interfaccia
onMloLinksInfoChanged
AIDL, che si trova nel supplicante Wi-Fi all'indirizzo
ISupplicantStaIfaceCallback.aidl
,
supporta la riconfigurazione del link (rimozione del link AP).
Quando il framework Wi-Fi elabora la rimozione di un link, lo stato del link viene impostato
su
MLO_LINK_STATE_UNASSOCIATED
.
Il framework attiva quindi
ConnectivityManager.NetworkCallback#onCapabilitiesChanged()
per una modifica dello stato del link.
Il metodo
WifiInfo#getAffiliatedMloLinks
restituisce i link MLO affiliati. Il metodo
MloLink#getState
restituisce lo stato del collegamento. Se il link viene rimosso, lo stato del link restituito è
MLO_LINK_STATE_UNASSOCIATED
.
Strategia Chip MLO
MLO consente ai dispositivi di inviare e ricevere dati su più link Wi-Fi contemporaneamente, il che può migliorare le prestazioni delle app che hanno requisiti specifici come bassa latenza, larghezza di banda elevata e basso consumo energetico. I fornitori di chip possono sviluppare algoritmi su come utilizzare i link disponibili.
Le app con privilegi possono modificare questi algoritmi utilizzando il metodo
setMloMode
in Wifimanager
e impostare le
seguenti modalità:
MLO_MODE_DEFAULT = 0
MLO_MODE_LOW_LATENCY = 1
MLO_MODE_HIGH_THROUGHPUT = 2
MLO_MODE_LOW_POWER = 3
Il framework utilizza
setMloMode
nell'interfaccia AIDL IWifiChip
per impostare la modalità MLO.