Wi-Fi RTT (IEEE 802.11mc)

O recurso Wi-Fi Round Trip Time (RTT) no Android 9 permite que dispositivos compatíveis meçam a distância de outros dispositivos compatíveis: sejam eles pontos de acesso (APs) ou pares Wi-Fi Aware (se o Wi-Fi Aware for compatível no dispositivo). Esse recurso, construído com base no protocolo IEEE 802.11mc, permite que os aplicativos usem precisão e reconhecimento de localização aprimorados.

Exemplos e fonte

Para usar esse recurso, implemente a linguagem de design de interface de hardware Wi-Fi (HIDL) fornecida no Android Open Source Project (AOSP). No Android 8.0, HIDL substitui a estrutura anterior de HAL (Hardware Abstraction Layer) usada para simplificar implementações especificando tipos e chamadas de método coletadas em interfaces e pacotes.

Siga o Wi-Fi HIDL para empregar o recurso Wi-Fi RTT: hardware/interfaces/wifi/1.0 ou posterior.

Você pode consultar o legado Wi-Fi HAL para ver como ele se correlaciona com a nova interface HIDL: hardware/libhardware_legacy/+/master/include/hardware_legacy/rtt.h .

Implementação

Para implementar o Wi-Fi RTT, você deve fornecer suporte à estrutura e HAL/firmware:

  • Estrutura:

    • Código AOSP
    • Ativar Wi-Fi RTT: requer um sinalizador de recurso
  • Suporte a Wi-Fi RTT (IEEE 802.11mc) HAL (o que implica suporte a firmware)

Para implementar este recurso, implemente o Wi-Fi HIDL e ative o sinalizador de recurso:

  • Em device.mk localizado em device/<oem>/<device> , modifique a variável de ambiente PRODUCT_COPY_FILES para incluir suporte para o recurso 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
    

Caso contrário, tudo o que é necessário para esse recurso está incluído no AOSP.

Randomização MAC

Para aumentar a privacidade, o endereço MAC usado durante as transações Wi-Fi RTT deve ser aleatório, ou seja, não deve corresponder ao endereço MAC nativo da interface Wi-Fi. No entanto, como exceção, quando um dispositivo está associado a um AP, ele pode usar o endereço MAC ao qual está associado para quaisquer transações RTT com esse AP ou com outros APs.

Validação

Existem testes do Android Compatibility Test Suite (CTS) para esse recurso. O CTS detecta quando o recurso está habilitado e inclui automaticamente os testes associados. Esse recurso também pode ser testado usando o Vendor Test Suite (VTS) e o act/sl4a , um conjunto de testes que realiza extensos testes de integração.

Testes de unidade

Os testes do pacote Wi-Fi RTT são executados usando:

Testes de serviço:

atest com.android.server.wifi.rtt

Testes do gerente:

atest android.net.wifi.rtt

Testes de integração (ACTS)

O conjunto de testes actos/sl4a, descrito em /tools/test/connectivity/acts_tests/tests/google/wifi/rtt/README.md , fornece testes funcionais, de desempenho e de estresse.

CTS

Existem testes do Android Compatibility Test Suite (CTS) para esse recurso. O CTS detecta quando o recurso está habilitado e inclui automaticamente os testes associados. Um ponto de acesso que suporte Wi-Fi RTT (IEEE 802.11mc) deve estar dentro do alcance do dispositivo em teste.

Os testes CTS podem ser acionados usando:

atest WifiRttTest

Calibração

Para que o Wi-Fi RTT tenha um bom desempenho, os intervalos retornados no protocolo 802.11mc são idealmente precisos dentro do Key Performance Indicator (KPI). Para o erro de CDF de 90%, nas larguras de banda listadas, espera-se que o KPI recomendado para uma estimativa de intervalo tenha as seguintes tolerâncias:

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

Para garantir que a implementação do recurso esteja funcionando corretamente, são necessários testes de calibração.

Isso pode ser alcançado comparando um alcance de verdade do solo com o alcance estimado do RTT em distâncias crescentes. Para conformidade básica, você deve validar sua solução em relação a um dispositivo conhecido por ser calibrado com RTT. A calibração da faixa deve ser testada sob as seguintes condições:

  1. Um grande laboratório aberto ou um corredor que não tenha muitos objetos de metal que podem resultar em ocorrências incomumente altas de multi-caminho.
  2. Pelo menos uma pista/caminho de linha de visão (LOS) estendendo-se por 25m.
  3. Marcadores de incrementos de 0,5 metros de uma extremidade da pista à outra.
  4. Um local para fixar um ponto de acesso compatível com RTT em uma extremidade do trilho montado 20 cm acima do piso e um suporte móvel para um telefone Android (ou outro dispositivo móvel Android em teste) que pode ser movido ao longo do trilho e alinhado com o Marcadores de 0,5m, também a 20cm acima do chão. Nota: Esta tarefa repetitiva pode ser realizada por um pequeno robô, mas um operador humano também está bem.
  5. 50 resultados de alcance devem ser registrados em cada marcador, juntamente com a distância do ponto de acesso. Estatísticas, como média de intervalo e variância, devem ser calculadas para cada posição do marcador.

A partir dos resultados na etapa 5, um gráfico pode ser desenhado para a verdade do terreno (eixo x) em relação ao intervalo estimado (eixo y) e uma linha de regressão de melhor ajuste estimada. A calibração ideal do dispositivo resultará em uma linha de gradiente 1,0, com deslocamento de 0,0 m no eixo y. Desvios desses valores são aceitáveis ​​se estiverem dentro do KPI para a largura de banda correspondente. Se os resultados estiverem fora do KPI, o recurso do dispositivo deve ser recalibrado para trazer os resultados dentro da especificação do KPI.