Wi-Fi RTT (IEEE 802.11mc)

La funzionalità Tempo di round trip Wi-Fi (RTT) in Android 9 consente ai dispositivi di supporto di misurare la distanza da altri dispositivi di supporto, sia che si tratti di punti di accesso (AP) o peer Wi-Fi Aware (se il dispositivo Wi-Fi Aware è supportato sul dispositivo). Questa funzionalità, basata sul protocollo IEEE 802.11mc, consente alle app di usufruire di una maggiore precisione e rilevamento della posizione.

Esempi e fonte

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

Segui l'interfaccia Wi-Fi per utilizzare la funzionalità Wi-Fi RTT. A seconda dell'interfaccia implementata, si tratta di:

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

Per vedere come è correlato alle interfacce AIDL e HIDL, fai riferimento alla versione precedente dell'HAL Wi-Fi: hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h.

Implementazione

Per implementare RTT Wi-Fi, devi fornire il supporto sia per il framework sia per HAL/firmware:

  • Framework:

    • Codice AOSP
    • Attiva RTT Wi-Fi: è richiesto un flag funzionalità
  • Supporto HAL per Wi-Fi RTT (IEEE 802.11mc) (che implica il supporto firmware)

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

  • Nella sezione device.mk del campo device/<oem>/<device>, modifica la variabile di ambiente PRODUCT_COPY_FILES in modo da includere il supporto della funzionalità RTT Wi-Fi:

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

In caso contrario, tutto ciò che serve per questa funzionalità è incluso in AOSP.

Randomizzazione MAC

Per migliorare la privacy, l'indirizzo MAC utilizzato durante le transazioni RTT Wi-Fi 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 punto di accesso, può utilizzare l'indirizzo MAC con cui è associato per qualsiasi transazione RTT con tale AP o con altri AP.

Convalida

Per questa funzionalità esistono test della suite di test di compatibilità Android (CTS). Il CTS rileva quando la funzionalità è abilitata e include automaticamente i test associati. Questa funzionalità può essere testata anche utilizzando la suite di test del fornitore (VTS).

Test delle unità

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

Test di servizio:

atest com.android.server.wifi.rtt

Test del gestore:

atest android.net.wifi.rtt

CTS

Per questa funzionalità esistono test della suite di test di compatibilità Android (CTS). Il CTS rileva quando la funzionalità è abilitata e include automaticamente i test associati. Un punto di accesso che supporta Wi-Fi RTT (IEEE 802.11mc) deve rientrare nel raggio d'azione del dispositivo sottoposto a test.

I test CTS possono essere attivati utilizzando:

atest WifiRttTest

Calibrazione

Affinché RTT Wi-Fi funzioni correttamente, gli intervalli restituiti nel protocollo 802.11mc sono idealmente accurati all'interno del Key Performance Indicator (KPI). Per l'errore CDF del 90%, nelle 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 il test di calibrazione.

Questo può essere ottenuto confrontando un intervallo di dati empirici reali con l'intervallo stimato RTT a distanze crescenti. Per la conformità di base, devi convalidare la soluzione rispetto a un dispositivo noto per essere calibrato RTT. La calibrazione dell'intervallo deve essere testata nelle seguenti condizioni:

  1. Un grande laboratorio aperto o un corridoio che non contiene molti oggetti metallici che possono causare occorrenze insolitamente elevate di multi-propagazione.
  2. Almeno un percorso o una linea di visibilità (LOS) che si estende per 25 m.
  3. Indicatori con incrementi di 0,5 metri da un'estremità all'altra della traccia.
  4. Un punto di accesso che supporta la funzionalità RTT a un'estremità del binario montato a 20 cm dal pavimento e un supporto mobile per uno smartphone Android (o un altro dispositivo mobile Android sottoposto a test) che può essere spostato lungo il binario e allineato con gli indicatori di 0,5 m, sempre a 20 cm dal pavimento.

  5. In corrispondenza di ogni indicatore devono essere registrati 50 risultati di distanza, insieme alla distanza dal punto di accesso. Per ogni posizione dell'indicatore devono essere calcolate statistiche come la media dell'intervallo e la varianza.

Dai risultati al passaggio 5, è possibile tracciare un grafico per dati di fatto (asse x) in base all'intervallo stimato (asse y) e a una linea di regressione di adattamento migliore. La calibrazione ideale del dispositivo genererà una linea con una sfumatura di 1,0, con un offset di 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 rientrare nella specifica del KPI.