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 nl80211NL80211_CMD_GET_WIPHY
. Se o atributoNL80211_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:
-
EHT
: Constante emenum RttPreamble
eenum WifiRatePreamble
-
WIDTH_320
: Constante naenum WifiChannelWidthInMhz
-
BW_320MHz
: Constante noenum RttBw
APIs
Os aplicativos podem usar as seguintes APIs para alcance baseado em RTT do Wi-Fi 7:
-
ScanResult#PREAMBLE_EHT
-
ResponderConfig#PREAMBLE_EHT
(SystemApi)
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.
-
SoftApInfo#getWifiStandard()
: RetornaScanResults.WIFI_STANDARD_11BE
se o Soft AP for iniciado no modo Wi-Fi 7. -
SoftApInfo#getBandwidth()
: RetornaSoftApInfo#CHANNEL_WIDTH_320MHZ
se a largura do canal de 320 MHz for usada.
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.
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.
Representação de link MLO
A classe android.net.wifi.MloLink
representa o link MLO. Esta classe inclui os seguintes parâmetros:
-
int getLinkId()
: ID do link conforme anunciado pelo AP MLD. -
MacAddress getApMacAddress()
: endereço MAC do AP. O BSSID da instância do AP desse link. -
MacAddress getStaMacAddress()
: endereço MAC STA. O endereço MAC atribuído localmente para a instância STA no link. -
int getChannel()
: canal de link. O número do canal do link. -
int getBand()
: banda de link. A banda do link. int getState()
: estado do link. Pode ser um dos seguintes estados:-
MLO_LINK_STATE_INVALID
: Inválido. Usado para inicialização e casos de erro. -
MLO_LINK_STATE_UNASSOCIATED
: Não associado. O link não está associado a um AP. -
MLO_LINK_STATE_IDLE
: inativo. O link está associado, mas não ativo (nenhum identificador de tráfego (TID) está mapeado para o link). -
MLO_LINK_STATE_ACTIVE
: Ativo. O link está associado e ativo (pelo menos um TID está mapeado para o link). Um link ativo pode estar no modo de economia de energia porque a estrutura não monitora o estado de energia do link.
-
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:
-
ScanResult#BSSID
: O endereço MAC da instância do AP (para o link no qual o resultado da verificação é recebido) -
MacAddress ScanResult#getApMldMacAddress()
: Retorna o endereço MAC MLD do AP. -
int ScanResult#getApMloLinkId()
: Retorna o ID do link no qual o ScanResult foi recebido. -
List<MloLink> ScanResult#getAffiliatedMloLinks()
: Retorna uma lista de objetosMloLink
para todos os links anunciados pelo AP-MLD incluindo o link no qual o ScanResult foi recebido.
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:
-
WifiInfo#getBSSID()
: Retorna o endereço MAC da instância do AP (para o link ao qual o dispositivo está associado). -
MacAddress WifiInfo#getApMldMacAddress()
: Retorna o endereço MAC MLD do AP. -
int WifiInfo#getApMloLinkId()
: Retorna o ID do link ao qual o STA se associou ao AP. -
List<MloLink> WifiInfo#getAffiliatedMloLinks()
: Retorna uma lista de objetosMloLink
para todos os links anunciados pelo AP-MLD incluindo o link associado. Os endereços MAC AP e STA podem ser consultados em cada objetoMloLink
.
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
Figura 2. Seleção de rede MLO.
Contagem máxima de links STR
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:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/WifiChipCapabilities.aidl
Contagem máxima 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:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/WifiChipCapabilities.aidl
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:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
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()
.
Endereço MAC STA por link
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)
Manipulação de vários links
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.
Tráfego de uplink
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.
Tráfego de downlink
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.
Mapeamento TID para link
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.
AIDL HAL
O suplicante Wi-Fi notifica a estrutura Wi-Fi sobre alterações no mapeamento TID para link por meio das seguintes interfaces AIDL:
hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIfaceCallback.aidl
hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant/ISupplicantStaIface.aidl
hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant/MloLinksInfo.aidl
APIs
Os aplicativos podem obter informações sobre alterações de mapeamento de TID para link usando as seguintes APIs:
-
ConnectivityManager.NetworkCallback.onCapabilitiesChanged()
: retorno de chamada de rede acionado pela estrutura quando há uma alteração no mapeamento de TID para link. -
WifiInfo#getAssociatedMloLinks()
: Retorna os links MLO associados. -
MloLink#getState()
: Retorna o estado do link,MLO_LINK_STATE_ACTIVE
ouMLO_LINK_STATE_IDLE
.
Capacidades de negociação de mapeamento TID para link
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
-
WifiManager.isTidToLinkMappingNegotiationSupported()
: Retorna o chip que suporta a negociação de mapeamento TID para link.
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.
-
apTidToLinkMapNegotiationSupported
: verifica se um AP suporta a capacidade de negociação de mapa TID para link.
APIs
-
WifiInfo.isApTidToLinkMappingNegotiationSupported()
: Retorna se o AP suporta negociação de mapeamento TID para link.
Estatísticas da camada de link
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:
-
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceStats.aidl
-
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerLinkStats.aidl
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()
Estatísticas da camada de link no Android 13
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órioavgRssiMgmt
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).
Reconfiguração do link MLO
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.