Wi-Fi 7

Para dispositivos com Android 13 ou superior, o Android oferece suporte ao padrão Wi-Fi 7 (IEEE 802.11be). Esta página descreve os recursos do Android Wi-Fi 7, incluindo operação de linha de base e multi-link (MLO).

Recursos básicos do Wi-Fi 7

Esta seção descreve os recursos básicos do Wi-Fi 7 incluídos no Android 13 e versões posteriores.

Suporte para dispositivo Wi-Fi 7

A estrutura do Android inclui a API WifiManager#isWifiStandardSupported(int standard) , que os aplicativos podem chamar com o argumento ScanResults.WIFI_STANDARD_11BE para verificar se um dispositivo é compatível com Wi-Fi 7.

Quando esta API é chamada, o módulo Wi-Fi verifica se a sobreposição de configuração config_wifi11beSupportOverride é usada como uma substituição e faz o seguinte:

  • Se a sobreposição for definida como true , presume-se que o dispositivo seja compatível com Wi-Fi 7, independentemente da resposta do nl80211. Essa substituição é útil apenas para fabricantes de dispositivos que não possuem drivers que retornem suporte ao Wi-Fi 7.
  • Se a sobreposição for definida como false (valor padrão), o módulo Wi-Fi usará as informações do nl80211. O módulo Wi-Fi solicita as informações do wificond, que chama o comando nl80211 NL80211_CMD_GET_WIPHY . Se o atributo NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY estiver na resposta do driver, presume-se que o dispositivo seja compatível com Wi-Fi 7.

Suporte para AP Wi-Fi 7 digitalizado

A estrutura do Android inclui a API int ScanResult#getWifiStandard() , que os aplicativos podem chamar para verificar se um ponto de acesso (AP) verificado é compatível com Wi-Fi 7. Se o AP for compatível com Wi-FI 7, a API retornará ScanResults.WIFI_STANDARD_11BE . O dispositivo não é necessário para oferecer suporte a Wi-Fi 7 para que os aplicativos usem esta API.

Quando esta API é chamada, o módulo Wi-Fi verifica se EHT Capability IE está nos resultados retornados da verificação de conectividade. Se EHT Capability IE estiver nos resultados da verificação, o AP verificado suporta Wi-Fi 7. A classe AOSP WifiTracker exibe essas informações de suporte na interface do usuário quando executada no modo detalhado.

Modo de conexão STA

A estrutura Android inclui a API int WifiInfo#getWifiStandard() , que os aplicativos podem chamar para verificar se o modo de conexão da estação atual (STA) é Wi-Fi 7. O modo de conexão STA é Wi-Fi 7 quando o dispositivo e o conectado AP suporta Wi-Fi 7. Se o modo de conexão for Wi-Fi 7, a API retornará ScanResults.WIFI_STANDARD_11BE .

Quando getWifiStandard é chamado, o módulo Wi-Fi determina o modo chamando a API HAL ISupplicantStaIface#getConnectionCapabilities() . A implementação desta API HAL na camada AIDL wpa_supplicant verifica se EHT Capability IE está em AssocReq e AssocRsp durante a configuração da conexão.

Seleção de rede

No Android 13, a seleção de rede usa vários parâmetros para determinar a qual AP se conectar. Um dos parâmetros é o rendimento estimado do AP, que é estimado usando o bloco ThroughputPredictor . O bloco ThroughputPredictor usa os parâmetros PHY do dispositivo e do AP verificado.

No Android 13, ThroughputPredictor usa os seguintes recursos de AP em seu cálculo:

  • Suporte de Wi-Fi 7 (802.11be)
  • Suporte para largura de canal de 320 MHz

A inclusão desses recursos na lógica ThroughputPredictor aumenta as chances de seleção de APs compatíveis com Wi-Fi 7 quando o dispositivo pode fazer uso desses recursos.

Alcance baseado em Wi-Fi RTT

O Android fornece suporte de API para preâmbulo EHT e largura de canal de 320 MHz para Wi-Fi RTT . Isso permite o suporte de recursos relacionados ao Wi-Fi 7 em RTT sempre que for compatível com o chip.

APIs HAL

As seguintes APIs HAL suportam os recursos do Wi-Fi 7 para alcance baseado em RTT:

APIs

Os aplicativos podem usar as seguintes APIs para alcance baseado em RTT do Wi-Fi 7:

PA suave

O Android oferece suporte a Wi-Fi 7 em Soft AP e oferece os seguintes recursos.

Iniciar AP suave

O Android suporta a inicialização do Soft AP no modo Wi-Fi 7. Isso é regido pela configuração de sobreposição config_wifiSoftapIeee80211beSupported .

O módulo Wi-Fi usa a sobreposição config_wifiSoftapIeee80211beSupported para definir o booleano HwModeParams#enable80211BE na chamada de API IHostApd#addAccessPoint() . Na camada hostapd AIDL, esse valor é usado para definir os parâmetros hostapd.conf .

APIs HAL

O booleano enable80211BE em HwModeParams no hostapd HAL oferece suporte ao início do Soft AP no modo Wi-Fi 7.

Relatar informações de Soft AP

O Android inclui suporte de API para incluir informações de largura de canal de Wi-Fi 7 e 320 MHz nas informações de Soft AP relatadas.

APIs HAL

A constante WIFI_STANDARD_11BE na interface Generation.aidl AIDL no hostapd HAL, que é usada no ApInfo relatado no retorno de chamada IHostapdCallback#onApInstanceInfoChanged() , oferece suporte ao relatório de informações de Soft AP.

APIs

Os aplicativos podem usar os seguintes métodos (APIs do sistema) no SoftApInfo para relatar informações do Soft AP.

Recursos do MLO Wi-Fi 7

A operação multi-link (MLO) é o principal recurso da especificação Wi-Fi 7 (802.11be). MLO é um recurso obrigatório para dispositivos multi-link (MLD) executados em Wi-Fi 7, seja simultaneamente ou não.

Diagrama MLO

Figura 1. Diagrama MLO.

Conforme mostrado na Figura 1, tanto o AP-MLD quanto o STA-MLD possuem múltiplas instâncias de AP ou STA em execução em cada link. Cada link possui um endereço MAC AP ou STA separado. O AP ou STA também possui um endereço MAC MLD para identificar o dispositivo.

A classe android.net.wifi.MloLink representa o link MLO. Esta classe inclui os seguintes parâmetros:

Informações de Wi-Fi 7 AP MLO digitalizadas

Os aplicativos podem obter os parâmetros MLO para um MLD Wi-Fi 7 AP quando o módulo Wi-Fi recebe um objeto ScanResult do AP-MLD. O AOSP WifiTracker exibe os parâmetros MLO ao executar no modo detalhado.

O módulo Wi-Fi coleta as informações do MLO fazendo o seguinte:

  • Analisa o elemento de informação multi-link (IE) incluído no beacon ou na resposta da sonda para ler o endereço MAC do AP MLD e o ID do link atual.
  • Analisa o IE do relatório de vizinho reduzido (RNR) incluído no beacon ou na resposta da sonda para ler a lista de informações dos links afiliados.

APIs

Para obter informações digitalizadas do AP MLO, os aplicativos podem usar as seguintes APIs:

Informações do Wi-Fi 7 AP MLO conectado

Quando um dispositivo se conecta a um Wi-Fi 7 AP-MLD, a estrutura coleta os parâmetros MLO da conexão do objeto WifiInfo . O objeto AOSP WifiTracker exibe essas informações quando executado em modo detalhado.

Quando o dispositivo se conecta ao AP-MLD, o módulo Wi-Fi copia as informações do MLO do objeto ScanResult recebido do AP. O módulo então chama a API HAL ISupplicantStaIface#getConnectionMloLinksInfo() para ler os endereços MAC de cada link para AP e STA e para atualizar o estado dos links associados.

APIs

Para obter informações de conexão MLO, os aplicativos podem usar as seguintes APIs:

Varredura AP-MLD

O software do fornecedor fornece à estrutura Wi-Fi os resultados da varredura para cada beacon ou resposta de sonda que recebe. Isso significa que a estrutura Wi-Fi:

  • Pode receber vários objetos ScanResults do mesmo AP-MLD (porque o AP pode ter vários links de beacon).
  • Pode receber apenas um conjunto parcial dos resultados da varredura para os links AP de um AP-MLD porque alguns desses sinais de link podem não ser recebidos pelo firmware.

O software do fornecedor relata apenas resultados de varredura recebidos pelo ar e não deve criar (sintetizar artificialmente) resultados de varredura com base em links anunciados pelo AP-MLD.

O software do fornecedor deve incluir os IEs multi-link e RNR da variante básica recebidos das instâncias do AP nos resultados da verificação relatados. Se os detalhes do AP afiliado estiverem faltando nos resultados da verificação, o software do fornecedor pode enviar solicitações de sondagem multi-link (quadro de solicitação de sonda que inclui um elemento multi-link de solicitação de sonda) para incluir o conjunto completo ou parcial de recursos, parâmetros e elementos de operação do AP com o AP-MLD direcionado no quadro de resposta.

O software do fornecedor pode acionar a sondagem de ML (usando a variante de solicitação de sonda ML IE no quadro de solicitação de sonda), se necessário.

Associação de rede AP-MLD

Quando um dispositivo ingressa em uma rede AP-MLD, o software do fornecedor usa o link AP selecionado (link associado) para sinalização. O software do fornecedor pode associar-se a todos ou a alguns dos links suportados pelo dispositivo.

Após a associação bem-sucedida, o driver reporta ISupplicantStaIfaceCallback#onStateChanged() com o BSSID de um link para o AP-MLD. O driver então seleciona um link do AP-MLD, desde que os resultados da verificação tenham sido relatados à estrutura para esse link.

Pontuação de rede

Para dispositivos com Android 14 ou superior, a seleção de rede Wi-Fi do Android oferece suporte a Wi-Fi 7 MLO. Isso significa que o Android seleciona a melhor rede Wi-Fi para o dispositivo com base no número de links disponíveis para MLO.

Para oferecer suporte ao MLO, o algoritmo de seleção de rede usa os seguintes recursos de MLO do chip Wi-Fi:

  • Contagem máxima de links STR
  • Contagem máxima de links de associação
  • Combinações de bandas simultâneas

Seleção de rede Wi-Fi MLO

Figura 2. Seleção de rede MLO.

Transmissão e recepção simultâneas (STR) é um esquema de contenção de meio Wi-Fi para operação multi-link. O isolamento do sinal entre diferentes enlaces é suficiente para que os enlaces possam operar de forma independente e sejam capazes de transmitir e receber simultaneamente em diferentes enlaces. STR é diferente do STA legado de link único (SL) e do STA legado de banda dupla simultânea (DBDC). STAs afiliadas a um STA MLD compartilham um número de sequência de transmissor (SN) comum e um espaço comum para transmissão de dados alocado para diferentes enlaces se a transmissão de múltiplos enlaces tiver a mesma categoria de acesso (AC).

O número máximo de links STR utilizados pode ser diferente do número máximo de rádios suportados pelo chip. No exemplo da Figura 2, a contagem máxima de links STR é 2.

As seguintes interfaces AIDL HAL suportam a contagem máxima de links STR e o número máximo de recursos de contagem de links de associação:

Vários links podem operar em um único rádio usando o esquema de contenção, Enhanced Multi-Link Single Radio (eMLSR). Um dispositivo multi-link usa eMLSR em um conjunto de links se puder receber certos quadros de controle básicos e realizar avaliação de canal claro (CCA) simultaneamente no conjunto de links. Entretanto, o MLD transmite ou recebe dados em apenas um enlace (o enlace escolhido dinamicamente em cada período de oportunidade de transmissão (TXOP)) por vez.

Uma estação MLD pode maximizar o número de links de associação para melhor confiabilidade, melhor rendimento e menor latência (em comparação com uma estação legada de link único) operando simultaneamente em STR e eMLSR, se suportado pelo chip. Na Figura 2, a contagem máxima de links de associação é 3.

As seguintes interfaces AIDL HAL suportam a capacidade máxima de contagem de links de associação:

Combinações de bandas simultâneas

A estrutura consulta o chip para obter as combinações de rádio permitidas (por meio da interface AIDL IWifiChip.aidl ) que podem operar simultaneamente. A partir desta informação, a estrutura deriva possíveis combinações de bandas simultâneas. A seguir está um exemplo de lista de combinações de bandas simultâneas (GHz):

  • 2.4
  • 5
  • 6
  • 2,4x5
  • 2,4x6
  • 5x6

A seguinte interface AIDL HAL suporta combinações de rádio simultâneas:

Seleção de rede

Durante a seleção de rede (MLO), a lista de candidatos é agrupada por membros com o mesmo endereço MAC MLD. A pontuação máxima prevista de rendimento multi-link é calculada para cada grupo, com base na contagem máxima de links STR e combinações de bandas simultâneas suportadas pelo chip. Se o candidato for capaz de multi-link e o chip suportar STR, a pontuação de rendimento previsto será substituída pela pontuação de rendimento predicado de multi-link. Isto dá um impulso aos candidatos MLO durante a seleção da rede.

Ao ingressar em uma rede AP-MLD, a estrutura realiza a seleção do SSID com base nas informações recebidas no objeto ScanResults conforme relatado pelo software do fornecedor. Após a seleção do SSID pela estrutura, o software do fornecedor é responsável por selecionar o BSSID para o melhor AP (ou link de AP) a ser usado para associação.

Manipulação de endereço MAC do dispositivo STA

Esta seção descreve como os endereços MAC STA do dispositivo (endereços MAC MLD e endereços MAC STA por link) são tratados.

Endereço MAC MLD

A estrutura Wi-Fi gerencia o endereço MAC MLD do dispositivo. O endereço MAC MLD é tratado da mesma forma que um dispositivo não MLD lida com seu próprio endereço MAC. O endereço MAC pode ser um endereço MAC aleatório ou um endereço MAC provisionado por hardware com base na escolha do usuário. O endereço MAC MLD é definido pela estrutura usando a API HAL IWifiStaIface#setMacAddress() .

O software do fornecedor gerencia endereços MAC STA de instância (para cada link). Quando um dispositivo se associa a um AP, o software do fornecedor atribui um endereço MAC de instância para cada link associado.

O software do fornecedor atribui endereços MAC por link com base em seu algoritmo. O algoritmo deve ser repetível e ser uma função do seguinte:

  • Endereço MAC STA-MLD definido pela estrutura Wi-Fi.
  • ID do link (recebido do AP)

Isso significa que se a estrutura reutilizar o mesmo endereço MAC MLD, o fornecedor deverá reutilizar os mesmos endereços MAC associados por instância e vice-versa. Isto garante que quando o endereço STA-MLD gerado pela estrutura for persistente para um SSID, os endereços MAC por STA também serão persistentes.

A seguir está um exemplo de algoritmo para atribuição de endereço MAC STA por link (os fornecedores podem implementar qualquer algoritmo que atenda aos critérios do algoritmo):

  • Octeto 0: Certifique-se de que o bit administrado localmente esteja definido
  • Octeto 1-4: Igual ao endereço MAC STA-MLD
  • Octeto 5: Por-STA = (STA-MLD + ID do link + 1) MOD (256)

O firmware do fornecedor pode realizar a comutação de links e gerenciar o estado de economia de energia dos links para ativação ou desativação sem entrada da estrutura Wi-Fi.

A estrutura Wi-Fi não espera uma notificação quando o estado do link for alterado.

Gerenciamento do estado de economia de energia

O estado de economia de energia é ativado por padrão na estrutura Wi-Fi. No estado de economia de energia, o firmware do fornecedor gerencia o estado de economia de energia de links individuais com base nos padrões de tráfego e nas decisões de ativação ou desativação do link.

No entanto, a estrutura Wi-Fi pode forçar a desativação do estado de economia de energia chamando a API HAL ISupplicantStaIface::setPowerSave(false) . Se o estado de economia de energia for desabilitado pela estrutura, o firmware do fornecedor deverá manter pelo menos um link ativo (economia de energia desabilitada). Neste estado, a implementação do firmware decide qual link será definido.

Caminho de dados

Isto descreve a implementação do firmware do fornecedor para lidar com o tráfego de uplink e download.

O firmware roteia o tráfego de uplink para um (ou mais) links com base em sua implementação interna. O firmware do fornecedor decide quando fazer balanceamento de carga, duplicação ou agregação de tráfego com base nos padrões de tráfego. Recomendamos o tráfego duplicado do firmware para vários links nos seguintes casos:

  • Quando o modo de baixa latência é definido por meio da API HAL IWifiChip#setLatencyMode() .
  • Quando há tráfego com prioridade de usuário 6 e 7.

O firmware deve substituir o endereço MAC por STA (destino) do cabeçalho MAC pelo MAC MLD-STA e o endereço MAC por AP (origem) do cabeçalho MAC pelo endereço MAC MLD-AP. O firmware deve executar essa substituição de endereço MAC antes de passar pelo filtro APF porque os comandos do filtro APF possuem filtros baseados em endereços MAC MLD. Existe um único filtro APF para todos os links de um AP-MLD.

Simultaneidade

Cenários de simultaneidade, onde um rádio é utilizado para uma nova interface, devem ter prioridade sobre a dedicação de múltiplos rádios para links da mesma interface. Os cenários de simultaneidade também devem ter prioridade sobre o MLO, independentemente do que ocorrer primeiro. Usar vários links para uma única interface é oportunista, o que significa que vários links são usados ​​apenas quando:

  • O MLO é necessário com base na decisão do firmware para balanceamento de carga, agregação ou duplicação.
  • MLO está disponível , o que significa que um rádio não é exigido por outra interface.

Para dispositivos com Android 14 ou superior, quando o AP Wi-Fi 7 anuncia uma desativação temporária de um dos links por meio de um elemento de mapeamento TID para link transmitido em beacon, resposta de sonda e quadros de resposta de associação, o Wi-Fi 7 A estação continua a conexão com o AP utilizando os links restantes configurados, sem realizar outra associação.

Para dispositivos com Android 13 ou inferior, a estrutura Wi-Fi não oferece suporte ao recebimento de notificações quando o estado do link é alterado devido ao mapeamento de TID para link, mesmo que o link associado não esteja vinculado a um TID.

O suplicante Wi-Fi notifica a estrutura Wi-Fi sobre alterações no mapeamento TID para link por meio das seguintes interfaces AIDL:

Os aplicativos podem obter informações sobre alterações de mapeamento de TID para link usando as seguintes APIs:

Para dispositivos que executam o Android 14 ou superior, as APIs a seguir estão disponíveis para obter os recursos de negociação de mapa TID para link para a estação e o AP.

Capacidade de chips

As interfaces a seguir suportam a capacidade do chip para negociação de mapeamento TID para link.

AIDL HAL

A interface AIDL para negociação de mapeamento TID para link está em FeatureSetMask em hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl . O recurso T2LM_NEGOTIATION = 1 << 8 indica que o chip suporta mapeamento TID para link. APIs

Capacidade de ponto de acesso

As interfaces a seguir suportam a capacidade do AP para negociação de mapeamento TID para link.

AIDL HAL

A estrutura consulta a capacidade do AP do suplicante junto com a capacidade de conexão atual.

APIs

As estatísticas da camada de link incluem detalhes específicos do link Wi-Fi, como RSSI, vários contadores de pacotes TX e RX e estatísticas de rádio. A estrutura Wi-Fi pesquisa periodicamente as estatísticas da camada de link e RSSI para selecionar a melhor rede ou para avaliar a qualidade da rede conectada. Para dispositivos com Android 14 ou superior, as estatísticas da camada de link incluem suporte para vários links. Para oferecer suporte ao Wi-Fi 7, o Android oferece suporte a MLO nas estatísticas da camada de link e na pesquisa de sinal.

As estatísticas específicas do link são encontradas nas seguintes interfaces AIDL da camada de link:

A API do sistema android.net.wifi.WifiManager#addOnWifiUsabilityStatsListener() escuta todas as estatísticas da camada de link. A estrutura invoca periodicamente esta API para atualizar as estatísticas de usabilidade do Wi-Fi.

As seguintes APIs específicas de link estão disponíveis em 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)

Para consultar IDs de link disponíveis, os aplicativos podem chamar o método android.net.wifi.WifiUsabilityStatsEntry#getLinkIds() .

APIs em android.net.wifi.WifiUsabilityStatsEntry para link único (não MLO) retornam as estatísticas agregadas para conexões MLO. A seguir estão os critérios de agregação:

  • As seguintes estatísticas agregadas de pacotes usam a soma das estatísticas por link:

    public long getTotalTxSuccess()
    public long getTotalTxRetries()
    public long getTotalTxBad()
    public long getTotalRxSuccess()
    public int getRxLinkSpeedMbps()
    
  • As estatísticas a seguir usam os dados do link com o RSSI mais alto:

    public int getRssi()
    public int getLinkSpeedMbps()
    public long getTotalBeaconRx()
    public int getTimeSliceDutyCycleInPercent()
    public ContentionTimeStats getContentionTimeStats(@WmeAccessCategory int ac)
    public List<RateStats> getRateStats()
    

Para dispositivos que executam o Android 13, as estatísticas da camada de link não levam em consideração o uso de vários links para uma única interface. Para oferecer suporte ao MLO, o software do fornecedor deve aplicar a seguinte lógica de agregação ao relatar LinkLayerStats por meio da API HAL IWifi# getLinkLayerStats_1_6() . O melhor link é aquele com o RSSI mais alto.

  • StaLinkLayerStats.iface.beaconRx : Relata a contagem de beacons para o melhor link usado para a interface.
  • StaLinkLayerStats.iface.avgRssiMgmt : Relatório avgRssiMgmt para obter o melhor link usado para a interface.
  • StaLinkLayerStats.iface.wmeXxPktStats (Xx = Vo, Vi, Be,Bk): Relata as estatísticas agregadas do pacote (total) nos links da interface.
  • StaLinkLayerStats.iface.wmeXxContentionTimeStats (Xx = Vo, Vi, Be,Bk): Relata as estatísticas de tempo de contenção para o melhor link usado na interface (estatísticas de tempo de contenção mais baixas).

Quando um dos links do ponto de acesso Wi-Fi 7 é reaproveitado, o AP pode anunciar a remoção do link por meio da reconfiguração do link MLO. As estações podem manter conectividade contínua com o AP sem reassociação nos links restantes.

A interface AIDL onMloLinksInfoChanged , localizada no suplicante Wi-Fi em ISupplicantStaIfaceCallback.aidl , suporta reconfiguração de link (remoção de AP do link).

Quando a estrutura Wi-Fi processa a remoção de um link, o estado do link é definido como MLO_LINK_STATE_UNASSOCIATED . A estrutura então aciona ConnectivityManager.NetworkCallback#onCapabilitiesChanged() para uma mudança de estado do link.

O método WifiInfo#getAffiliatedMloLinks retorna os links MLO afiliados. O método MloLink#getState retorna o estado do link. Se o link for removido, o estado do link retornado será MLO_LINK_STATE_UNASSOCIATED .

Estratégia de chip MLO

O MLO permite que os dispositivos enviem e recebam dados em vários links Wi-Fi ao mesmo tempo, o que pode melhorar o desempenho de aplicativos que possuem requisitos específicos, como baixa latência, alta largura de banda e baixo consumo de energia. Os fornecedores de chips podem desenvolver algoritmos sobre como usar os links disponíveis.

Aplicativos privilegiados podem modificar esses algoritmos usando o método setMloMode no Wifimanager e definir os seguintes modos:

  • MLO_MODE_DEFAULT = 0
  • MLO_MODE_LOW_LATENCY = 1
  • MLO_MODE_HIGH_THROUGHPUT = 2
  • MLO_MODE_LOW_POWER = 3

A estrutura usa setMloMode na interface IWifiChip AIDL para definir o modo MLO.