Wi-Fi RTT (IEEE 802.11mc)

La funzione Wi-Fi Round Trip Time (RTT) in Android 9 consente ai dispositivi di supporto di misurare la distanza da altri dispositivi di supporto: siano essi punti di accesso (AP) o peer Wi-Fi Aware (se Wi-Fi Aware è supportato sul dispositivo). Questa funzionalità, basata sul protocollo IEEE 802.11mc, consente alle app di utilizzare una maggiore precisione e consapevolezza della posizione.

Esempi e fonte

Per utilizzare questa funzionalità, implementare l'interfaccia HAL del fornitore. In Android 14 e versioni successive, l'interfaccia HAL del fornitore viene definita utilizzando AIDL. In Android 13 e versioni precedenti, l'interfaccia HAL del fornitore viene definita utilizzando HIDL. In Android 8.0, HIDL ha sostituito la precedente struttura HAL (Hardware Abstraction Layer) utilizzata per semplificare le implementazioni specificando tipi e chiamate di metodo raccolte in interfacce e pacchetti.

Seguire l'interfaccia Wi-Fi per utilizzare la funzione Wi-Fi RTT. A seconda dell'interfaccia implementata, questo è:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.0 o successivo.

È possibile fare riferimento all'HAL Wi-Fi legacy per vedere come è correlato alle interfacce AIDL e HIDL: hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h .

Implementazione

Per implementare Wi-Fi RTT, è necessario fornire sia il framework che il supporto HAL/firmware:

  • Struttura:

    • Codice AOSP
    • Abilita Wi-Fi RTT: richiede un flag di funzionalità
  • Supporto HAL Wi-Fi RTT (IEEE 802.11mc) (che implica il supporto del firmware)

Per implementare questa funzionalità, implementare l'interfaccia Wi-Fi AIDL o HIDL e abilitare il flag della funzionalità:

  • In device.mk situato in device/<oem>/<device> , modifica la variabile di ambiente PRODUCT_COPY_FILES per includere il supporto per la funzione Wi-Fi RTT:

    PRODUCT_COPY_FILES += frameworks/native/data/etc/android.hardware.wifi.rtt.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.wifi.rtt.xml
    

Altrimenti, tutto ciò che è necessario per questa funzionalità è incluso in AOSP.

Randomizzazione MAC

Per migliorare la privacy, l'indirizzo MAC utilizzato durante le transazioni Wi-Fi RTT deve essere casuale, ovvero non deve corrispondere all'indirizzo MAC nativo dell'interfaccia Wi-Fi. Tuttavia, in via eccezionale, quando un dispositivo è associato a un AP, può utilizzare l'indirizzo MAC a cui è associato per qualsiasi transazione RTT con quell'AP o con altri AP.

Validazione

Per questa funzionalità esistono test Android Compatibility Test Suite (CTS). CTS rileva quando la funzionalità è abilitata e include automaticamente i test associati. Questa funzionalità può anche essere testata utilizzando Vendor Test Suite (VTS) e act/sl4a , una suite di test che conduce test di integrazione approfonditi.

Test unitari

I test del pacchetto Wi-Fi RTT vengono eseguiti utilizzando:

Test di servizio:

atest com.android.server.wifi.rtt

Prove dirigenziali:

atest android.net.wifi.rtt

Test di integrazione (ACTS).

La suite di test act/sl4a, descritta in /tools/test/connectivity/acts_tests/tests/google/wifi/rtt/README.md , fornisce test funzionali, prestazionali e di stress.

CTS

Per questa funzionalità esistono test Android Compatibility Test Suite (CTS). CTS rileva quando la funzionalità è abilitata e include automaticamente i test associati. Un punto di accesso che supporti Wi-Fi RTT (IEEE 802.11mc) deve trovarsi nel raggio di portata del dispositivo sottoposto a test.

I test CTS possono essere attivati ​​utilizzando:

atest WifiRttTest

Calibrazione

Affinché Wi-Fi RTT funzioni bene, gli intervalli restituiti nel protocollo 802.11mc sono idealmente accurati all'interno del Key Performance Indicator (KPI). Per l'errore CDF del 90%, alle larghezze di banda elencate, si prevede che il KPI consigliato per una stima dell'intervallo abbia le seguenti tolleranze:

  • 80 MHz: 2 metri
  • 40 MHz: 4 metri
  • 20 MHz: 8 metri

Per garantire che l'implementazione della funzionalità funzioni correttamente, è necessario eseguire test di calibrazione.

Ciò può essere ottenuto confrontando la portata reale con la portata stimata RTT a distanze crescenti. Per la conformità di base, dovresti convalidare la tua soluzione rispetto a un dispositivo noto per essere calibrato RTT. La calibrazione della gamma deve essere testata nelle seguenti condizioni:

  1. Un grande laboratorio aperto o un corridoio in cui non sono presenti molti oggetti metallici che potrebbero causare un numero insolitamente elevato di percorsi multipli.
  2. Almeno una traccia/percorso Line-Of-Sight (LOS) che si estende per 25 m.
  3. Segnali con incrementi di 0,5 metri da un'estremità all'altra del binario.
  4. Un punto per fissare un punto di accesso compatibile con RTT a un'estremità del binario montato a 20 cm dal pavimento e un supporto mobile per un telefono Android (o altro dispositivo mobile Android in prova) che può essere spostato lungo il binario e allineato con il Segnalini da 0,5 m, anche a 20 cm dal pavimento. Nota: questo compito ripetitivo può essere eseguito da un piccolo robot, ma va bene anche un operatore umano.
  5. Dovrebbero essere registrati 50 risultati di distanza su ciascun marcatore, insieme alla distanza dal punto di accesso. Le statistiche, come la media e la varianza dell'intervallo, dovrebbero essere calcolate per ciascuna posizione del marcatore.

Dai risultati del passaggio 5, è possibile tracciare un grafico per la verità di base (asse x) rispetto all'intervallo stimato (asse y) e una linea di regressione più adatta stimata. La calibrazione ideale del dispositivo risulterà in una linea con gradiente 1,0, con offset 0,0 m sull'asse y. Deviazioni da questi valori sono accettabili se rientrano nel KPI per la larghezza di banda corrispondente. Se i risultati non rientrano nel KPI, la funzionalità del dispositivo deve essere ricalibrata per riportare i risultati entro la specifica KPI.