Wi-Fi 7

W przypadku urządzeń z systemem Android 13 lub nowszym system Android obsługuje standard Wi-Fi 7 (IEEE 802.11be). Na tej stronie opisano funkcje Wi-Fi 7 systemu Android, w tym działanie podstawowe i obsługę wielu łączy (MLO).

Podstawowe funkcje Wi-Fi 7

W tej sekcji opisano podstawowe funkcje Wi-Fi 7 dostępne w systemie Android 13 i nowszych wersjach.

Obsługa Wi-Fi 7 urządzenia

Struktura systemu Android zawiera interfejs API WifiManager#isWifiStandardSupported(int standard) , który aplikacje mogą wywoływać za pomocą argumentu ScanResults.WIFI_STANDARD_11BE , aby sprawdzić, czy urządzenie obsługuje Wi-Fi 7.

Po wywołaniu tego interfejsu API moduł Wi-Fi sprawdza, czy nakładka konfiguracyjna config_wifi11beSupportOverride jest używana jako zastąpienie i wykonuje następujące czynności:

  • Jeśli nakładka jest ustawiona na true , zakłada się, że urządzenie obsługuje Wi-Fi 7 niezależnie od odpowiedzi z nl80211. To zastąpienie jest przydatne tylko w przypadku producentów urządzeń, którzy nie mają sterowników obsługujących Wi-Fi 7.
  • Jeżeli nakładka jest ustawiona na false (wartość domyślna), moduł Wi-Fi korzysta z informacji z nl80211. Moduł Wi-Fi żąda informacji od Wi-Ficond, który wywołuje polecenie nl80211 NL80211_CMD_GET_WIPHY . Jeżeli w odpowiedzi sterownika znajduje się atrybut NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY , przyjmuje się, że urządzenie obsługuje Wi-Fi 7.

Zeskanowana obsługa AP Wi-Fi 7

Struktura systemu Android zawiera interfejs API int ScanResult#getWifiStandard() , który aplikacje mogą wywołać, aby sprawdzić, czy zeskanowany punkt dostępu (AP) obsługuje Wi-Fi 7. Jeśli punkt dostępowy obsługuje Wi-FI 7, interfejs API zwraca ScanResults.WIFI_STANDARD_11BE . Aby aplikacje mogły korzystać z tego interfejsu API, urządzenie nie musi obsługiwać Wi-Fi 7.

Po wywołaniu tego interfejsu API moduł Wi-Fi sprawdza, czy w zwróconych wynikach skanowania połączenia znajduje się funkcja EHT Capability IE . Jeśli w wynikach skanowania znajduje się EHT Capability IE , zeskanowany punkt dostępowy obsługuje Wi-Fi 7. Klasa AOSP WifiTracker wyświetla te informacje w interfejsie użytkownika, gdy działa w trybie pełnym.

Tryb połączenia STA

Struktura systemu Android zawiera interfejs API int WifiInfo#getWifiStandard() , który aplikacje mogą wywołać, aby sprawdzić, czy bieżący tryb połączenia stacji (STA) to Wi-Fi 7. Tryb połączenia STA to Wi-Fi 7, gdy zarówno urządzenie, jak i podłączony AP obsługuje Wi-Fi 7. Jeśli tryb połączenia to Wi-Fi 7, interfejs API zwraca ScanResults.WIFI_STANDARD_11BE .

Po wywołaniu metody getWifiStandard moduł Wi-Fi określa tryb, wywołując funkcję API HAL ISupplicantStaIface#getConnectionCapabilities() . Implementacja tego interfejsu API HAL w warstwie AIDL wpa_supplicant sprawdza, czy podczas konfiguracji połączenia EHT Capability IE znajduje się zarówno w AssocReq , jak i AssocRsp .

Wybór sieci

W Androidzie 13 wybór sieci wykorzystuje kilka parametrów, aby określić, z którym punktem dostępowym się połączyć. Jednym z parametrów jest szacowana przepustowość punktu dostępowego, która jest szacowana za pomocą bloku ThroughputPredictor . Blok ThroughputPredictor wykorzystuje parametry PHY zarówno urządzenia, jak i przeskanowanego punktu dostępowego.

W systemie Android 13 ThroughputPredictor wykorzystuje w swoich obliczeniach następujące możliwości AP:

  • Obsługa Wi-Fi 7 (802.11be)
  • Obsługa szerokości kanału 320 MHz

Uwzględnienie tych funkcji w logice ThroughputPredictor zwiększa szanse na wybranie punktów dostępowych obsługujących Wi-Fi 7, gdy urządzenie będzie mogło korzystać z tych funkcji.

Zasięg oparty na Wi-Fi RTT

Android zapewnia obsługę API dla preambuły EHT i szerokości kanału 320 MHz dla Wi-Fi RTT . Umożliwia to obsługę funkcji związanych z Wi-Fi 7 w zakresie RTT, gdy jest to obsługiwane przez chip.

Interfejsy API HAL

Następujące interfejsy API HAL obsługują możliwości Wi-Fi 7 w zakresie ustalania zasięgu w oparciu o RTT:

Pszczoła

Aplikacje mogą korzystać z następujących interfejsów API do ustalania zasięgu w oparciu o Wi-Fi 7 RTT:

Miękkie AP

Android obsługuje Wi-Fi 7 w Soft AP i zapewnia następujące funkcje.

Uruchom miękki AP

Android obsługuje uruchamianie Soft AP w trybie Wi-Fi 7. Reguluje to konfiguracja nakładki config_wifiSoftapIeee80211beSupported .

Moduł Wi-Fi używa nakładki config_wifiSoftapIeee80211beSupported do ustawiania wartości logicznej HwModeParams#enable80211BE w wywołaniu API IHostApd#addAccessPoint() . W warstwie AIDL hostapd ta wartość służy do ustawiania parametrów hostapd.conf .

Interfejsy API HAL

Wartość logiczna enable80211BE w HwModeParams w hostapd HAL obsługuje uruchamianie Soft AP w trybie Wi-Fi 7.

Zgłoś informacje o miękkim AP

System Android obsługuje interfejsy API umożliwiające uwzględnienie informacji o szerokości kanału Wi-Fi 7 i 320 MHz w raportowanych informacjach o programie Soft AP.

Interfejsy API HAL

Stała WIFI_STANDARD_11BE w interfejsie Generation.aidl AIDL w hostapd HAL, która jest używana w ApInfo raportowanym w wywołaniu zwrotnym IHostapdCallback#onApInstanceInfoChanged() , obsługuje raportowanie informacji Soft AP.

Pszczoła

Aplikacje mogą używać następujących metod (systemowych interfejsów API) w SoftApInfo do raportowania informacji o miękkim AP.

Funkcje MLO Wi-Fi 7

Główną cechą specyfikacji Wi-Fi 7 (802.11be) jest obsługa wielu łączy (MLO). MLO to funkcja obowiązkowa w przypadku urządzeń typu multi-link (MLD) działających w sieci Wi-Fi 7, niezależnie od tego, czy działają one jednocześnie, czy nie.

Schemat MLO

Rysunek 1. Schemat MLO.

Jak pokazano na rysunku 1, zarówno AP-MLD, jak i STA-MLD mają wiele instancji AP lub STA działających na każdym łączu. Każde łącze ma oddzielny adres AP lub STA MAC. Punkt dostępowy lub STA ma także adres MAC MLD umożliwiający identyfikację urządzenia.

Klasa android.net.wifi.MloLink reprezentuje łącze MLO. Klasa ta zawiera następujące parametry:

  • int getLinkId() : Identyfikator łącza reklamowany przez AP MLD.
  • MacAddress getApMacAddress() : Adres MAC punktu dostępowego. Identyfikator BSSID instancji AP dla tego łącza.
  • MacAddress getStaMacAddress() : Adres MAC STA. Lokalnie przypisany adres MAC dla instancji STA na łączu.
  • int getChannel() : Link do kanału. Numer kanału łącza.
  • int getBand() : Pasmo łącza. Zespół łącza.
  • int getState() : Stan łącza. Może mieć jeden z następujących stanów:

    • MLO_LINK_STATE_INVALID : Nieprawidłowy. Używany do inicjalizacji i przypadków błędów.
    • MLO_LINK_STATE_UNASSOCIATED : Niepowiązane. Link nie jest powiązany z punktem dostępowym.
    • MLO_LINK_STATE_IDLE : Bezczynność. Łącze jest powiązane, ale nieaktywne (do łącza nie jest przypisany żaden identyfikator ruchu (TID).
    • MLO_LINK_STATE_ACTIVE : Aktywny. Łącze jest powiązane i aktywne (co najmniej jeden TID jest zmapowany na łącze). Aktywne łącze może znajdować się w trybie oszczędzania energii, ponieważ platforma nie monitoruje stanu zasilania łącza.

Zeskanowane informacje o Wi-Fi 7 AP MLO

Aplikacje mogą uzyskać parametry MLO dla MLD Wi-Fi 7 AP, gdy moduł Wi-Fi odbierze obiekt ScanResult z AP-MLD. AOSP WifiTracker wyświetla parametry MLO, gdy działa w trybie pełnym.

Moduł Wi-Fi zbiera informacje MLO, wykonując następujące czynności:

  • Analizuje element informacji o wielokrotnym łączu (IE) zawarty w sygnale nawigacyjnym lub odpowiedzi sondy w celu odczytania adresu MAC AP MLD i bieżącego identyfikatora łącza.
  • Analizuje zredukowany raport sąsiadów (RNR) IE zawarty w odpowiedzi na sygnał nawigacyjny lub sondę, aby odczytać listę informacji o powiązanych łączach.

Pszczoła

Aby uzyskać zeskanowane informacje AP MLO, aplikacje mogą korzystać z następujących interfejsów API:

Informacje o podłączonym Wi-Fi 7 AP MLO

Gdy urządzenie łączy się z punktem dostępowym Wi-Fi 7 AP-MLD, platforma zbiera parametry MLO połączenia z obiektu WifiInfo . Obiekt AOSP WifiTracker wyświetla te informacje, gdy działa w trybie pełnym.

Kiedy urządzenie łączy się z AP-MLD, moduł Wi-Fi kopiuje informacje MLO z obiektu ScanResult otrzymanego z punktu dostępowego. Następnie moduł wywołuje funkcję API ISupplicantStaIface#getConnectionMloLinksInfo() HAL w celu odczytania adresów MAC każdego łącza zarówno dla punktu dostępowego, jak i STA oraz w celu aktualizacji stanu powiązanych łączy.

Pszczoła

Aby uzyskać informacje o połączeniu MLO, aplikacje mogą korzystać z następujących interfejsów API:

Skanowanie AP-MLD

Oprogramowanie dostawcy zapewnia strukturę Wi-Fi z wynikami skanowania dla każdej otrzymanej odpowiedzi na sygnał nawigacyjny lub sondę. Oznacza to, że struktura Wi-Fi:

  • Może otrzymać wiele obiektów ScanResults z tego samego AP-MLD (ponieważ punkt dostępowy może mieć wiele łączy sygnalizacyjnych).
  • Może otrzymać tylko częściowy zestaw wyników skanowania łączy AP AP-MLD, ponieważ niektóre z tych sygnałów łącza mogą nie zostać odebrane przez oprogramowanie sprzętowe.

Oprogramowanie dostawcy raportuje jedynie wyniki skanowania otrzymane drogą bezprzewodową i nie może tworzyć (sztucznie syntetyzować) wyników skanowania w oparciu o łącza reklamowane przez AP-MLD.

Oprogramowanie dostawcy musi uwzględniać w raportowanych wynikach skanowania podstawowy wariant multi-link i RNR IE otrzymane z instancji AP. Jeśli w wynikach skanowania brakuje szczegółów powiązanego punktu dostępowego, oprogramowanie dostawcy może wysłać żądania sondy typu multi-link (ramka żądania sondy zawierająca element żądania sondy multi-link), aby uwzględnić pełny lub częściowy zestaw możliwości, parametrów i elementów operacyjnych punktu AP z docelowym AP-MLD w ramce odpowiedzi.

Oprogramowanie dostawcy może w razie potrzeby uruchomić sondowanie ML (przy użyciu wariantu zapotrzebowania sondy ML IE w ramce zapotrzebowania sondy).

Stowarzyszenie sieciowe AP-MLD

Kiedy urządzenie przyłącza się do sieci AP-MLD, oprogramowanie dostawcy wykorzystuje wybrane łącze AP (powiązane łącze) do sygnalizacji. Oprogramowanie dostawcy może powiązać się ze wszystkimi lub niektórymi łączami obsługiwanymi przez urządzenie.

Po pomyślnym skojarzeniu sterownik zgłasza ISupplicantStaIfaceCallback#onStateChanged() z identyfikatorem BSSID łącza dla AP-MLD. Następnie sterownik wybiera łącze AP-MLD, pod warunkiem, że wyniki skanowania zostały zgłoszone do struktury dla tego łącza.

Punktacja sieci

W przypadku urządzeń z systemem Android 14 lub nowszym funkcja Android Wi-Fi Network Selection obsługuje Wi-Fi 7 MLO. Oznacza to, że Android wybiera najlepszą sieć Wi-Fi dla urządzenia na podstawie liczby łączy dostępnych dla MLO.

Aby obsługiwać MLO, algorytm wyboru sieci wykorzystuje następujące możliwości MLO z chipa Wi-Fi:

  • Maksymalna liczba linków STR
  • Maksymalna liczba linków skojarzeniowych
  • Jednoczesne kombinacje pasm

Wybór sieci Wi-Fi MLO

Rysunek 2. Wybór sieci MLO.

Jednoczesne nadawanie i odbieranie (STR) to schemat rywalizacji o medium Wi-Fi do obsługi wielu łączy. Izolacja sygnału pomiędzy różnymi łączami jest wystarczająca, aby łącza mogły działać niezależnie i mogły jednocześnie nadawać i odbierać w różnych łączach. STR różni się od starszej wersji STA z pojedynczym łączem (SL) i starszej dwupasmowej, dwuzakresowej stacji STA (DBDC). Stacje STA powiązane z STA MLD mają wspólny numer sekwencyjny nadajnika (SN) i wspólną przestrzeń do transmisji danych przydzieloną do różnych łączy, jeśli transmisja wieloma łączami ma tę samą kategorię dostępu (AC).

Maksymalna liczba wykorzystanych łączy STR może różnić się od maksymalnej liczby radiotelefonów obsługiwanych przez chip. W przykładzie na rysunku 2 maksymalna liczba łączy STR wynosi 2.

Następujące interfejsy AIDL HAL obsługują maksymalną liczbę łączy STR i maksymalną liczbę łączy asocjacyjnych:

W jednym radiu może działać wiele łączy, korzystając ze schematu rywalizacji Enhanced Multi-Link Single Radio (eMLSR). Urządzenie obsługujące wiele łączy korzysta z eMLSR w zestawie łączy, jeśli może odbierać pewne podstawowe ramki kontrolne i jednocześnie wykonywać ocenę czystego kanału (CCA) w zestawie łączy. Jednakże MLD transmituje lub odbiera dane tylko w jednym łączu (łączu wybieranym dynamicznie w każdym okresie możliwości transmisji (TXOP)) w danym momencie.

Stacja MLD może zmaksymalizować liczbę łączy asocjacyjnych, zapewniając lepszą niezawodność, lepszą przepustowość i mniejsze opóźnienia (w porównaniu ze starszą stacją z pojedynczym łączem), działając jednocześnie w trybach STR i eMLSR, jeśli są obsługiwane przez chip. Na rysunku 2 maksymalna liczba łączy asocjacyjnych wynosi 3.

Następujące interfejsy AIDL HAL obsługują maksymalną liczbę łączy asocjacyjnych:

Jednoczesne kombinacje pasm

Struktura wysyła zapytanie do chipa, aby uzyskać dozwolone kombinacje radiowe (poprzez interfejs AIDL IWifiChip.aidl ), które mogą działać jednocześnie. Na podstawie tych informacji struktura wyznacza możliwe jednoczesne kombinacje pasm. Poniżej znajduje się przykładowa lista jednoczesnych kombinacji pasm (GHz):

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

Następujący interfejs AIDL HAL obsługuje jednoczesne kombinacje radiowe:

Wybór sieci

Podczas wyboru sieci (MLO) lista kandydatów jest grupowana według członków o tym samym adresie MAC MLD. Maksymalny przewidywany wynik przepustowości wielu łączy jest obliczany dla każdej grupy na podstawie maksymalnej liczby łączy STR i jednoczesnych kombinacji pasm obsługiwanych przez chip. Jeśli kandydat obsługuje wiele łączy, a chip obsługuje STR, przewidywany wynik przepustowości jest zastępowany przewidywanym wynikiem przepustowości wielu łączy. Daje to impuls kandydatom do MLO podczas wyboru sieci.

Podczas przyłączania się do sieci AP-MLD platforma dokonuje wyboru SSID na podstawie informacji otrzymanych w obiekcie ScanResults zgłoszonych przez oprogramowanie dostawcy. Po wybraniu identyfikatora SSID przez platformę oprogramowanie dostawcy jest odpowiedzialne za wybór identyfikatora BSSID dla najlepszego punktu dostępowego (lub łącza AP) do użycia w celu skojarzenia.

Obsługa adresów MAC urządzenia STA

W tej sekcji opisano, w jaki sposób obsługiwane są adresy MAC urządzenia STA (adresy MAC MLD i adresy MAC STA łącza).

Adres MAC MLD

Struktura Wi-Fi zarządza adresem MAC MLD urządzenia. Adres MAC MLD jest obsługiwany w ten sam sposób, w jaki urządzenie inne niż MLD obsługuje swój własny adres MAC. Adres MAC może być losowym adresem MAC lub adresem MAC przydzielonym sprzętowo, w zależności od wyboru użytkownika. Adres MAC MLD jest ustawiany przez platformę przy użyciu interfejsu API HAL IWifiStaIface#setMacAddress() .

Oprogramowanie dostawcy zarządza adresami MAC instancji STA (dla każdego łącza). Gdy urządzenie łączy się z punktem dostępowym, oprogramowanie dostawcy przypisuje adres MAC instancji dla każdego powiązanego łącza.

Oprogramowanie dostawcy przypisuje adresy MAC każdemu łączu w oparciu o swój algorytm. Algorytm musi być powtarzalny i być funkcją:

  • Adres MAC STA-MLD ustawiony przez strukturę Wi-Fi.
  • Identyfikator łącza (otrzymany od AP)

Oznacza to, że jeśli platforma ponownie wykorzystuje ten sam adres MAC MLD, sprzedawca musi ponownie wykorzystać te same powiązane adresy MAC dla poszczególnych instancji i odwrotnie. Gwarantuje to, że gdy wygenerowany przez platformę adres STA-MLD jest trwały dla identyfikatora SSID, adresy MAC przypadające na STA również są trwałe.

Poniżej znajduje się przykładowy algorytm przypisywania adresów MAC STA dla poszczególnych łączy (dostawcy mogą wdrożyć dowolny algorytm spełniający kryteria algorytmu):

  • Oktet 0: Upewnij się, że bit administrowany lokalnie jest ustawiony
  • Oktet 1-4: taki sam jak adres MAC STA-MLD
  • Oktet 5: Per-STA = (STA-MLD + identyfikator łącza + 1) MOD (256)

Oprogramowanie sprzętowe dostawcy może wykonywać przełączanie łączy i zarządzać stanem oszczędzania energii łączy w celu aktywacji lub dezaktywacji bez konieczności wprowadzania danych ze środowiska Wi-Fi.

Struktura Wi-Fi nie oczekuje powiadomienia w przypadku zmiany stanu łącza.

Zarządzanie stanem oszczędzania energii

Stan oszczędzania energii jest domyślnie włączony w środowisku Wi-Fi. W stanie oszczędzania energii oprogramowanie sprzętowe dostawcy zarządza stanem oszczędzania energii poszczególnych łączy w oparciu o wzorce ruchu i decyzje dotyczące aktywacji lub dezaktywacji łącza.

Jednak struktura Wi-Fi może wymusić wyłączenie stanu oszczędzania energii, wywołując interfejs API HAL ISupplicantStaIface::setPowerSave(false) . Jeśli stan oszczędzania energii jest wyłączony przez platformę, oprogramowanie sprzętowe dostawcy musi utrzymywać co najmniej jedno łącze aktywne (oszczędzanie energii wyłączone). W tym stanie implementacja oprogramowania sprzętowego decyduje, które łącze zostanie ustawione.

Ścieżka danych

Opisuje implementację oprogramowania sprzętowego dostawcy do obsługi ruchu wysyłającego i pobierającego.

Oprogramowanie sprzętowe kieruje ruch łącza zwrotnego do jednego (lub większej liczby) łączy w oparciu o swoją wewnętrzną implementację. Oprogramowanie sprzętowe dostawcy decyduje, kiedy należy wykonać równoważenie obciążenia, duplikację lub agregację ruchu w oparciu o wzorce ruchu. Zalecamy zduplikowanie ruchu oprogramowania sprzętowego do wielu łączy w następujących przypadkach:

  • Gdy tryb małego opóźnienia jest ustawiony za pomocą interfejsu API HAL IWifiChip#setLatencyMode() .
  • Gdy występuje ruch z priorytetem użytkownika 6 i 7.

Oprogramowanie sprzętowe musi zastąpić (docelowy) adres MAC nagłówka MAC nagłówka MAC na adres MAC MLD-STA i (źródłowy) adres MAC na punkt dostępowy nagłówka MAC na adres MAC MLD-AP. Oprogramowanie sprzętowe musi wykonać podstawienie adresu MAC przed przejściem przez filtr APF, ponieważ polecenia filtru APF mają filtry oparte na adresach MAC MLD. Istnieje jeden filtr APF dla wszystkich łączy AP-MLD.

Konkurencja

Scenariusze współbieżności, w których dla nowego interfejsu używane jest radio, muszą mieć pierwszeństwo przed przydzielaniem wielu radiotelefonów dla łączy tego samego interfejsu. Scenariusze współbieżności muszą również mieć pierwszeństwo przed MLO, niezależnie od tego, który z nich był pierwszy. Używanie wielu łączy dla jednego interfejsu jest oportunistyczne, co oznacza, że ​​wiele łączy jest używanych tylko wtedy, gdy:

  • MLO jest wymagane na podstawie decyzji oprogramowania sprzętowego w celu równoważenia obciążenia, agregacji lub duplikacji.
  • Dostępny jest MLO, co oznacza, że ​​inny interfejs nie wymaga radia.

W przypadku urządzeń z systemem Android 14 lub nowszym, gdy punkt dostępowy Wi-Fi 7 ogłosi tymczasowe wyłączenie jednego z łączy za pośrednictwem elementu mapującego TID-to-link przesyłanego w formie sygnału nawigacyjnego, odpowiedzi sondy i ramek odpowiedzi skojarzenia, Wi-Fi 7 stacja kontynuuje połączenie z punktem dostępowym korzystając z pozostałych skonfigurowanych łączy, bez wykonywania kolejnego skojarzenia.

W przypadku urządzeń z systemem Android 13 lub starszym struktura Wi-Fi nie obsługuje otrzymywania powiadomień w przypadku zmiany stanu łącza z powodu mapowania TID na łącze, nawet jeśli powiązane łącze nie jest połączone z TID.

Suplikant Wi-Fi powiadamia strukturę Wi-Fi o zmianach mapowania TID-to-link za pośrednictwem następujących interfejsów AIDL:

Aplikacje mogą uzyskiwać informacje o zmianach mapowania TID-to-link, korzystając z następujących interfejsów API:

W przypadku urządzeń z systemem Android 14 lub nowszym dostępne są następujące interfejsy API umożliwiające negocjowanie map TID-to-link dla stacji i punktu dostępowego.

Możliwość chipowania

Poniższe interfejsy obsługują funkcję chipa do negocjacji mapowania TID-to-link.

AIDL HAL

Interfejs AIDL do negocjacji mapowania TID-to-link znajduje się w FeatureSetMask w hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl . Możliwość T2LM_NEGOTIATION = 1 << 8 wskazuje, że chip obsługuje mapowanie TID-to-link. Pszczoła

Możliwości AP

Poniższe interfejsy obsługują funkcję AP w celu negocjacji mapowania TID-to-link.

AIDL HAL

Struktura wysyła zapytanie o możliwości punktu dostępowego od suplikanta wraz z bieżącymi możliwościami połączenia.

Pszczoła

Statystyki warstwy łącza obejmują szczegółowe informacje dotyczące łącza Wi-Fi, takie jak RSSI, różne liczniki pakietów TX i RX oraz statystyki radiowe. Struktura Wi-Fi okresowo odpytuje statystyki warstwy łącza i RSSI, aby wybrać najlepszą sieć lub ocenić jakość podłączonej sieci. W przypadku urządzeń z systemem Android 14 lub nowszym statystyki warstwy łącza obejmują obsługę wielu łączy. Aby obsługiwać Wi-Fi 7, Android obsługuje MLO zarówno w statystykach warstwy łącza, jak i odpytywaniu sygnału.

Statystyki specyficzne dla łącza znajdują się w następujących interfejsach AIDL warstwy łącza:

Funkcja API systemu android.net.wifi.WifiManager#addOnWifiUsabilityStatsListener() nasłuchuje wszystkich statystyk warstwy łącza. Struktura okresowo wywołuje ten interfejs API w celu aktualizacji statystyk użyteczności Wi-Fi.

Następujące interfejsy API specyficzne dla łącza są dostępne w 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)

Aby zapytać o dostępne identyfikatory linków, aplikacje mogą wywołać metodę android.net.wifi.WifiUsabilityStatsEntry#getLinkIds() .

Interfejsy API w android.net.wifi.WifiUsabilityStatsEntry dla pojedynczego łącza (nie MLO) zwracają zagregowane statystyki dla połączeń MLO. Poniżej znajdują się kryteria agregacji:

  • Poniższe zagregowane statystyki pakietów wykorzystują sumę statystyk na łącze:

    public long getTotalTxSuccess()
    public long getTotalTxRetries()
    public long getTotalTxBad()
    public long getTotalRxSuccess()
    public int getRxLinkSpeedMbps()
    
  • Poniższe statystyki wykorzystują dane z łącza o najwyższym RSSI:

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

W przypadku urządzeń z systemem Android 13 statystyki warstwy łączy nie uwzględniają użycia wielu łączy w jednym interfejsie. Aby obsługiwać MLO, oprogramowanie dostawcy musi stosować następującą logikę agregacji podczas raportowania LinkLayerStats za pośrednictwem interfejsu API IWifi# getLinkLayerStats_1_6() HAL. Najlepszym łączem jest łącze z najwyższym RSSI.

  • StaLinkLayerStats.iface.beaconRx : Zgłoś liczbę sygnałów nawigacyjnych dla najlepszego łącza używanego w interfejsie.
  • StaLinkLayerStats.iface.avgRssiMgmt : Zgłoś avgRssiMgmt , aby uzyskać najlepsze łącze używane w interfejsie.
  • StaLinkLayerStats.iface.wmeXxPktStats (Xx = Vo, Vi, Be, Bk): Raportuje zagregowane statystyki pakietów (ogółem) na łączach interfejsu.
  • StaLinkLayerStats.iface.wmeXxContentionTimeStats (Xx = Vo, Vi, Be, Bk): Podaj statystyki czasu rywalizacji dla najlepszego łącza używanego w interfejsie (statystyki czasu najniższej rywalizacji).

W przypadku zmiany przeznaczenia jednego z łączy punktu dostępowego Wi-Fi 7 punkt dostępowy może ogłosić usunięcie łącza poprzez rekonfigurację łącza MLO. Stacje mogą utrzymać bezproblemową łączność z punktem dostępowym bez konieczności ponownego łączenia pozostałych łączy.

Interfejs onMloLinksInfoChanged AIDL, znajdujący się w suplikacie Wi-Fi pod ISupplicantStaIfaceCallback.aidl , obsługuje rekonfigurację łącza (usunięcie łącza przez punkt dostępowy).

Gdy struktura Wi-Fi przetwarza usunięcie łącza, stan łącza jest ustawiany na MLO_LINK_STATE_UNASSOCIATED . Następnie platforma wyzwala ConnectivityManager.NetworkCallback#onCapabilitiesChanged() w celu zmiany stanu łącza.

Metoda WifiInfo#getAffiliatedMloLinks zwraca powiązane linki MLO. Metoda MloLink#getState zwraca stan łącza. Jeśli łącze zostanie usunięte, zwrócony stan łącza to MLO_LINK_STATE_UNASSOCIATED .

Strategia chipowa MLO

MLO umożliwia urządzeniom wysyłanie i odbieranie danych przez wiele łączy Wi-Fi w tym samym czasie, co może poprawić wydajność aplikacji o określonych wymaganiach, takich jak małe opóźnienia, duża przepustowość i niski pobór mocy. Dostawcy chipów mogą opracować algorytmy korzystania z dostępnych łączy.

Uprzywilejowane aplikacje mogą modyfikować te algorytmy za pomocą metody setMloMode w Wifimanager i ustawiać następujące tryby:

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

Struktura wykorzystuje setMloMode w interfejsie IWifiChip AIDL do ustawiania trybu MLO.