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, desenvolvido com base no protocolo IEEE 802.11mc, permite que os aplicativos usem maior precisão e reconhecimento de localização.

Exemplos e fonte

Para usar esse recurso, implemente a interface HAL do fornecedor. No Android 14 e versões posteriores, a interface HAL do fornecedor é definida usando AIDL. No Android 13 e versões anteriores, a interface HAL do fornecedor é definida usando HIDL. No Android 8.0, o HIDL substituiu a estrutura anterior da Camada de Abstração de Hardware (HAL) usada para simplificar as implementações, especificando tipos e chamadas de métodos coletados em interfaces e pacotes.

Siga a interface Wi-Fi para utilizar o recurso Wi-Fi RTT. Dependendo de qual interface é implementada, isto é:

  • AIDL: hardware/interfaces/wifi/aidl
  • HIDL: hardware/interfaces/wifi/1.0 ou posterior.

Você pode consultar o HAL Wi-Fi herdado para ver como ele se correlaciona com as interfaces AIDL e HIDL: hardware/libhardware_legacy/+/main/include/hardware_legacy/rtt.h .

Implementação

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

  • Estrutura:

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

Para implementar esse recurso, implemente a interface Wi-Fi AIDL ou 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 este recurso está incluído no AOSP.

Randomização MAC

Para aumentar a privacidade, o endereço MAC utilizado durante as transações Wi-Fi RTT deve ser randomizado, 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, pode utilizar 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 acts/sl4a , um conjunto de testes que realiza extensos testes de integração.

Testes unitários

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

Testes de serviço:

atest com.android.server.wifi.rtt

Testes de gerente:

atest android.net.wifi.rtt

Testes de integração (ACTS)

O conjunto de testes acts/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 CDF de 90%, nas larguras de banda listadas, espera-se que o KPI recomendado para uma estimativa de intervalo tenha as seguintes tolerâncias:

  • 80 MHz: 2 metros
  • 40MHz: 4 metros
  • 20 MHz: 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 real com o alcance estimado do RTT em distâncias crescentes. Para obter conformidade básica, você deve validar sua solução em relação a um dispositivo conhecido como calibrado RTT. A calibração da faixa deve ser testada nas seguintes condições:

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

A partir dos resultados da etapa 5, um gráfico pode ser desenhado para a verdade básica (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,0m 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 deverá ser recalibrado para trazer os resultados dentro da especificação do KPI.