Wi-Fi 7

Na urządzeniach z Androidem 13 lub nowszym Android obsługuje standard Wi-Fi 7 (IEEE 802.11be). Na tej stronie opisujemy funkcje Wi-Fi 7 na Androidzie, w tym działanie podstawowe i wielokanałowe (MLO).

Podstawowe funkcje Wi-Fi 7

W tej sekcji opisujemy podstawowe funkcje Wi-Fi 7 dostępne w Androidzie 13 i nowszych wersjach.

Obsługa Wi-Fi 7 na urządzeniu

Platforma Androida zawiera interfejs API WifiManager#isWifiStandardSupported(int standard), który aplikacje mogą wywoływać z argumentem ScanResults.WIFI_STANDARD_11BE, aby sprawdzić, czy urządzenie obsługuje Wi-Fi 7.

Gdy ten interfejs API zostanie wywołany, moduł Wi-Fi sprawdzi, czy config_wifi11beSupportOverride nakładka konfiguracji jest używana jako zastąpienie, i wykona te czynności:

  • Jeśli nakładka ma wartość true, zakłada się, że urządzenie obsługuje Wi-Fi 7, niezależnie od odpowiedzi z nl80211. To zastąpienie jest przydatne tylko dla producentów urządzeń, którzy nie mają sterowników zwracających obsługę Wi-Fi 7.
  • Jeśli nakładka jest ustawiona na false (wartość domyślna), moduł Wi-Fi korzysta z informacji z nl80211. Moduł Wi-Fi wysyła żądanie informacji do usługi wificond, która wywołuje polecenie nl80211NL80211_CMD_GET_WIPHY. Jeśli atrybut NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY znajduje się w odpowiedzi sterownika, zakłada się, że urządzenie obsługuje Wi-Fi 7.

Obsługa skanowanych punktów dostępu Wi-Fi 7

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

Gdy ten interfejs API jest wywoływany, moduł Wi-Fi sprawdza, czy EHT Capability IE znajduje się w wynikach skanowania łączności. Jeśli w wynikach skanowania znajduje się EHT Capability IE, oznacza to, że skanowany punkt dostępu obsługuje Wi-Fi 7. Klasa AOSPWifiTracker wyświetla te informacje w interfejsie użytkownika, gdy działa w trybie szczegółowym.

Tryb połączenia STA

Platforma Androida zawiera interfejs API int WifiInfo#getWifiStandard(), z którego aplikacje mogą korzystać, 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 połączony punkt dostępu obsługują Wi-Fi 7. Jeśli tryb połączenia to Wi-Fi 7, interfejs API zwraca ScanResults.WIFI_STANDARD_11BE.

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

Wybór sieci

W Androidzie 13 wybór sieci opiera się na kilku parametrach, które określają, z którym punktem dostępu należy się połączyć. Jednym z parametrów jest szacunkowa przepustowość punktu dostępu, która jest szacowana za pomocą bloku ThroughputPredictor. Blok ThroughputPredictor korzysta z parametrów PHY urządzenia i zeskanowanego punktu dostępu.

W Androidzie 13 funkcja ThroughputPredictor do obliczeń wykorzystuje te możliwości interfejsu API:

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

Uwzględnienie tych możliwości w ThroughputPredictor logice zwiększa szanse na wybór punktów dostępu obsługujących Wi-Fi 7, gdy urządzenie może korzystać z tych funkcji.

Określanie odległości na podstawie Wi-Fi RTT

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

Interfejsy API HAL

Te interfejsy API HAL obsługują funkcje Wi-Fi 7 w zakresie pomiarów odległości opartych na RTT:

Interfejsy API

Aplikacje mogą używać tych interfejsów API do określania odległości na podstawie RTT w Wi-Fi 7:

Programowy punkt dostępu

Android obsługuje Wi-Fi 7 w trybie Soft AP i zapewnia te funkcje:

Uruchomienie punktu dostępu

Android obsługuje uruchamianie punktu dostępu w trybie Wi-Fi 7. Jest to regulowane przez konfigurację nakładki config_wifiSoftapIeee80211beSupported.

Moduł Wi-Fi używa nakładki config_wifiSoftapIeee80211beSupported, aby ustawić wartość logiczną HwModeParams#enable80211BE w wywołaniu interfejsu API IHostApd#addAccessPoint(). W warstwie AIDL hostapd ta wartość jest używana do ustawiania parametrów hostapd.conf.

Interfejsy API HAL

Wartość logiczna enable80211BEHwModeParams w hostapd HAL obsługuje uruchamianie punktu dostępu w trybie Wi-Fi 7.

Raportowanie informacji o miękkim punkcie dostępu

Android obsługuje interfejs API, który umożliwia uwzględnianie w raportowanych informacjach o programowym punkcie dostępu informacji o Wi-Fi 7 i szerokości kanału 320 MHz.

Interfejsy API HAL

Stała WIFI_STANDARD_11BE w interfejsie AIDL Generation.aidl w hostapd HAL, która jest używana w ApInfo zgłaszanym w wywołaniu zwrotnym IHostapdCallback#onApInstanceInfoChanged(), obsługuje raportowanie informacji o programowym punkcie dostępu.

Interfejsy API

Aplikacje mogą używać tych metod (interfejsów API systemu) w SoftApInfo do raportowania informacji o programowym punkcie dostępu.

Funkcje MLO Wi-Fi 7

Działanie w wielu pasmach (MLO) to główna funkcja specyfikacji Wi-Fi 7 (802.11be). MLO to obowiązkowa funkcja w przypadku urządzeń wielolinkowych (MLD) działających w standardzie Wi-Fi 7, zarówno w trybie współbieżnym, jak i niewspółbieżnym.

Diagram ilustrujący działanie wielołącza (MLO), w którym zarówno AP-MLD (punkt dostępu z wieloma łączami), jak i STA-MLD (stacja z wieloma łączami) mają wiele instancji działających na różnych łączach, z których każda ma osobny adres MAC, oraz adres MAC MLD do identyfikacji urządzenia.

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 połączeniu. Każde połączenie ma osobny adres MAC punktu dostępu lub stacji. Punkt dostępu lub stacja STA ma też adres MAC MLD, który identyfikuje urządzenie.

Klasa android.net.wifi.MloLink reprezentuje link MLO. Ta klasa zawiera te parametry:

  • int getLinkId(): identyfikator linku reklamowany przez AP MLD.
  • MacAddress getApMacAddress(): Adres MAC punktu dostępu. Identyfikator BSSID instancji punktu dostępu dla tego linku.
  • MacAddress getStaMacAddress(): Adres MAC stacji. Lokalnie przypisany adres MAC instancji STA w połączeniu.
  • int getChannel(): połącz kanał. Numer kanału linku.
  • int getBand(): bransoleta z ogniw. Pasmo linku.
  • int getState(): stan połączenia. Może mieć jeden z tych stanów:

    • MLO_LINK_STATE_INVALID: nieprawidłowy. Używany w przypadku inicjowania i błędów.
    • MLO_LINK_STATE_UNASSOCIATED: niepowiązane. Link nie jest powiązany z punktem dostępu.
    • MLO_LINK_STATE_IDLE: bezczynny. Link jest powiązany, ale nieaktywny (nie jest do niego przypisany identyfikator ruchu (TID)).
    • MLO_LINK_STATE_ACTIVE: aktywny. Link jest powiązany i aktywny (co najmniej 1 identyfikator TID jest przypisany do linku). Aktywne połączenie może być w trybie oszczędzania energii, ponieważ platforma nie monitoruje stanu zasilania połączenia.

Zeskanowane informacje o MLO punktu dostępu Wi-Fi 7

Aplikacje mogą pobierać parametry MLO dla urządzenia MLD z punktem dostępu Wi-Fi 7, gdy moduł Wi-Fi odbierze obiekt ScanResult z urządzenia AP-MLD. AOSP WifiTracker wyświetla parametry MLO, gdy działa w trybie szczegółowym.

Moduł Wi-Fi zbiera informacje o MLO w ten sposób:

  • Analizuje element informacyjny (IE) z wieloma linkami zawarty w sygnałach beacon lub odpowiedziach na sondowanie, aby odczytać adres MAC MLD punktu dostępu i bieżący identyfikator linku.
  • Analizuje element informacyjny (IE) skróconego raportu o sąsiadach (RNR) zawarty w sygnałach beacon lub odpowiedziach na sondowanie, aby odczytać listę informacji o powiązanych linkach.

Interfejsy API

Aby uzyskać informacje o zeskanowanych punktach dostępu MLO, aplikacje mogą korzystać z tych interfejsów API:

Informacje o połączonym punkcie dostępu Wi-Fi 7 z MLO

Gdy urządzenie połączy się z punktem dostępu Wi-Fi 7 MLD, platforma zbierze parametry MLO połączenia z obiektu WifiInfo. Obiekt AOSP WifiTracker wyświetla te informacje w trybie szczegółowym.

Gdy urządzenie połączy się z punktem dostępu MLD, moduł Wi-Fi skopiuje informacje MLO z obiektu ScanResult otrzymanego z punktu dostępu. Moduł wywołuje następnie ISupplicantStaIface#getConnectionMloLinksInfo()interfejs API HALISupplicantStaIface#getConnectionMloLinksInfo(), aby odczytać adresy MAC każdego łącza dla punktu dostępu i stacji oraz zaktualizować stan powiązanych łączy.

Interfejsy API

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

Skanowanie AP-MLD

Oprogramowanie dostawcy przekazuje do platformy Wi-Fi wyniki skanowania każdego sygnału beacon lub odpowiedzi na sondę, które otrzymuje. Oznacza to, że platforma Wi-Fi:

  • Może otrzymywać wiele obiektów ScanResults z tego samego AP-MLD, ponieważ punkt dostępu może mieć wiele linków sygnalizacyjnych.
  • Może otrzymać tylko częściowy zestaw wyników skanowania linków punktu dostępu w przypadku punktu dostępu MLD, ponieważ niektóre z tych sygnałów linków mogą nie być odbierane przez oprogramowanie sprzętowe.

Oprogramowanie dostawcy raportuje tylko wyniki skanowania otrzymane drogą radiową i nie może tworzyć (sztucznie syntetyzować) wyników skanowania na podstawie reklamowanych linków przez AP-MLD.

Oprogramowanie dostawcy musi zawierać podstawowe informacje o wielu połączeniach wariantowych i elementy informacyjne RNR otrzymane z instancji AP w zgłoszonych wynikach skanowania. Jeśli w wynikach skanowania brakuje szczegółów dotyczących powiązanego punktu dostępu, oprogramowanie dostawcy może wysyłać żądania sondowania z wieloma połączeniami (ramka żądania sondowania zawierająca element żądania sondowania z wieloma połączeniami), aby w ramce odpowiedzi uwzględnić pełny lub częściowy zestaw funkcji, parametrów i elementów operacyjnych punktu dostępu z docelowym punktem dostępu MLD.

Oprogramowanie dostawcy może w razie potrzeby wywoływać sondowanie ML (za pomocą wariantu żądania sondy ML IE w ramce żądania sondy).

Powiązanie sieci AP-MLD

Gdy urządzenie dołączy do sieci AP-MLD, oprogramowanie dostawcy używa wybranego połączenia AP (połączonego połączenia) do sygnalizacji. Oprogramowanie dostawcy może być powiązane ze wszystkimi lub niektórymi linkami obsługiwanymi przez urządzenie.

Po udanym powiązaniu sterownik zgłasza ISupplicantStaIfaceCallback#onStateChanged() z identyfikatorem BSSID połączenia dla punktu dostępu MLD. Kierowca wybiera link do dokumentu AP-MLD, pod warunkiem że wyniki skanowania zostały zgłoszone do platformy.

Ocena sieci

W przypadku urządzeń z Androidem 14 lub nowszym wybór sieci Wi-Fi na Androidzie obsługuje Wi-Fi 7 MLO. Oznacza to, że Android wybiera najlepszą sieć Wi-Fi dla urządzenia na podstawie liczby połączeń dostępnych dla MLO.

Aby obsługiwać MLO, algorytm wyboru sieci korzysta z tych funkcji MLO z układu Wi-Fi:

  • Maksymalna liczba linków do STR
  • Maksymalna liczba linków do powiązania
  • Jednoczesne kombinacje pasm

Diagram przedstawiający proces wyboru sieci Wi-Fi MLO, w którym urządzenie bierze pod uwagę wiele połączeń Wi-Fi w różnych pasmach (2,4 GHz, 5 GHz, 6 GHz), aby uzyskać optymalne połączenie na podstawie możliwości układu, takich jak maksymalna liczba połączeń STR, maksymalna liczba połączeń stowarzyszonych i jednoczesne kombinacje pasm.

Rysunek 2. Wybór sieci MLO.

Jednoczesna transmisja i odbiór (STR) to schemat rywalizacji o medium Wi-Fi w przypadku działania w wielu połączeniach. Izolacja sygnału między różnymi połączeniami jest wystarczająca, aby połączenia mogły działać niezależnie i umożliwiać jednoczesne przesyłanie i odbieranie danych w różnych połączeniach. STR różni się od starszych STA z pojedynczym połączeniem (SL) i starszych STA z dwupasmowym jednoczesnym połączeniem (DBDC). STA powiązane z STA MLD mają wspólny numer sekwencji nadajnika (SN) i wspólną przestrzeń do transmisji danych przydzieloną do różnych połączeń, jeśli transmisja wielu połączeń ma tę samą kategorię dostępu (AC).

Maksymalna liczba używanych połączeń STR może być inna niż maksymalna liczba radiowych interfejsów obsługiwanych przez układ. W przykładzie na rysunku 2 maksymalna liczba linków STR wynosi 2.

Te interfejsy AIDL HAL obsługują maksymalną liczbę połączeń STR i maksymalną liczbę połączeń asocjacyjnych:

W przypadku jednego radia może działać wiele połączeń, które korzystają ze schematu rywalizacji, czyli ulepszonego połączenia wielolinkowego z jednym radiem (eMLSR). Urządzenie z wieloma połączeniami używa eMLSR w przypadku zestawu połączeń, jeśli może odbierać określone podstawowe ramki sterujące i jednocześnie przeprowadzać ocenę czystości kanału (CCA) w tym zestawie połączeń. Jednak urządzenie MLD przesyła lub odbiera dane tylko na jednym połączeniu (wybranym dynamicznie w każdym okresie możliwości transmisji (TXOP)) naraz.

Stacja MLD może zmaksymalizować liczbę połączeń w celu zwiększenia niezawodności, przepustowości i zmniejszenia opóźnień (w porównaniu ze stacją starszego typu z jednym połączeniem) przez jednoczesne działanie w trybach STR i eMLSR, jeśli jest to obsługiwane przez układ. Na ilustracji 2 maksymalna liczba linków do powiązania wynosi 3.

Maksymalną liczbę połączeń obsługują te interfejsy AIDL HAL:

Jednoczesne kombinacje pasm

Framework wysyła do układu zapytanie o dozwolone kombinacje radiowe (za pomocą interfejsu AIDL IWifiChip.aidl), które mogą działać jednocześnie. Na podstawie tych informacji platforma określa możliwe kombinacje pasm działających jednocześnie. Poniżej znajdziesz przykładową listę kombinacji pasm (GHz) działających jednocześnie:

  • 2.4
  • 5
  • 6
  • 2,4 x 5
  • 2,4 x 6
  • 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 połączeń jest obliczany dla każdej grupy na podstawie maksymalnej liczby połączeń STR i jednoczesnych kombinacji pasm obsługiwanych przez układ. Jeśli kandydat obsługuje wiele połączeń, a chip obsługuje STR, przewidywany wynik przepustowości jest zastępowany przewidywanym wynikiem przepustowości dla wielu połączeń. Zwiększa to szanse kandydatów na MLO podczas wyboru sieci.

Podczas dołączania do sieci AP-MLD platforma wybiera identyfikator 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 najlepszego punktu dostępu (lub łącza punktu dostępu) do użycia w celu połączenia.

Obsługa adresu MAC urządzenia STA

W tej sekcji opisano sposób obsługi adresów MAC stacji urządzenia (adresów MAC MLD i adresów MAC stacji dla każdego połączenia).

Adres MAC MLD

Platforma Wi-Fi zarządza adresem MAC MLD urządzenia. Adres MAC MLD jest obsługiwany w taki sam sposób, jak adres MAC urządzenia bez MLD. W zależności od wyboru użytkownika może to być randomizowany adres MAC lub adres MAC przypisany do sprzętu. Adres MAC MLD jest ustawiany przez platformę za pomocą interfejsu IWifiStaIface#setMacAddress() HAL API.

Oprogramowanie dostawcy zarządza adresami MAC stacji STA (w przypadku każdego połączenia). Gdy urządzenie połączy się z punktem dostępu, oprogramowanie dostawcy przypisuje adres MAC instancji do każdego połączonego łącza.

Oprogramowanie dostawcy przypisuje adresy MAC do poszczególnych połączeń na podstawie swojego algorytmu. Algorytm musi być powtarzalny i zależny od tych czynników:

  • Adres MAC STA-MLD ustawiony przez platformę Wi-Fi.
  • Identyfikator linku (otrzymany z punktu dostępu)

Oznacza to, że jeśli platforma ponownie używa tego samego adresu MAC MLD, dostawca musi ponownie użyć tych samych powiązanych adresów MAC dla poszczególnych instancji, a jeśli dostawca ponownie używa adresów MAC dla poszczególnych instancji, platforma musi ponownie użyć tego samego adresu MAC MLD. Sprawdza to, czy gdy adres STA-MLD wygenerowany przez platformę jest trwały w przypadku identyfikatora SSID, adresy MAC poszczególnych stacji STA również są trwałe.

Poniżej znajduje się przykładowy algorytm przypisywania adresu MAC STA do każdego połączenia (dostawcy mogą wdrożyć dowolny algorytm, który spełnia kryteria algorytmu):

  • Oktet 0: sprawdź, czy ustawiony jest bit lokalnie administrowany
  • Oktawy 1–4: takie same jak adres MAC STA-MLD
  • Bajt 5: Per-STA = (STA-MLD + identyfikator łącza + 1) MOD (256)

Oprogramowanie układowe dostawcy może przełączać połączenia i zarządzać stanem oszczędzania energii połączeń w celu ich aktywowania lub dezaktywowania bez danych wejściowych ze strony platformy Wi-Fi.

Platforma Wi-Fi nie oczekuje powiadomienia, gdy stan połączenia ulegnie zmianie.

Zarządzanie stanem oszczędzania energii

Stan oszczędzania energii jest domyślnie włączony w ramach Wi-Fi. W stanie oszczędzania energii oprogramowanie sprzętowe dostawcy zarządza stanem oszczędzania energii poszczególnych połączeń na podstawie wzorców ruchu i decyzji o aktywacji lub dezaktywacji połączeń.

Platforma Wi-Fi może jednak wymusić wyłączenie trybu oszczędzania energii, wywołując interfejs API ISupplicantStaIface::setPowerSave(false) HAL. Jeśli stan oszczędzania energii zostanie wyłączony przez platformę, oprogramowanie sprzętowe dostawcy musi utrzymywać co najmniej jedno aktywne połączenie (oszczędzanie energii wyłączone). W tym stanie o tym, który link zostanie ustawiony, decyduje implementacja oprogramowania sprzętowego.

Ścieżka danych

Opisuje implementację oprogramowania sprzętowego dostawcy do obsługi ruchu wychodzącego i przychodzącego.

Oprogramowanie sprzętowe kieruje ruch wychodzący do co najmniej jednego łącza na podstawie wewnętrznej implementacji. Oprogramowanie sprzętowe dostawcy decyduje, kiedy przeprowadzić równoważenie obciążenia, duplikację lub agregację ruchu na podstawie wzorców ruchu. Zalecamy kierowanie duplikatów ruchu z oprogramowania sprzętowego do wielu połączeń w tych przypadkach:

  • Gdy tryb niskiego opóźnienia jest ustawiony za pomocą interfejsu IWifiChip#setLatencyMode()HAL API.
  • Gdy występuje ruch o priorytecie użytkownika 6 i 7.

Oprogramowanie musi zastąpić (docelowy) adres MAC per-STA w nagłówku MAC adresem MAC MLD-STA, a (źródłowy) adres MAC per-AP w nagłówku MAC adresem MAC MLD-AP. Oprogramowanie musi wykonać tę zamianę adresu MAC przed przekazaniem go przez filtr APF, ponieważ polecenia filtra APF mają filtry oparte na adresach MAC MLD. W przypadku wszystkich linków AP-MLD obowiązuje jeden filtr APF.

Równoczesność

Scenariusze współbieżności, w których radio jest używane w nowym interfejsie, muszą mieć priorytet przed używaniem wielu radiotelefonów do łączy tego samego interfejsu. Scenariusze współbieżności muszą mieć wyższy priorytet niż MLO, niezależnie od tego, który z nich pojawił się jako pierwszy. Korzystanie z wielu linków w przypadku jednego interfejsu jest oportunistyczne, co oznacza, że wiele linków jest używanych tylko wtedy, gdy:

  • MLO jest wymagane na podstawie decyzji oprogramowania sprzętowego dotyczącej równoważenia obciążenia, agregacji lub duplikacji.
  • MLO jest dostępny, co oznacza, że radio nie jest wymagane przez inny interfejs.

W przypadku urządzeń z Androidem 14 lub nowszym, gdy punkt dostępu Wi-Fi 7 ogłasza tymczasowe wyłączenie jednego z połączeń za pomocą elementu mapowania TID na połączenie przesyłanego w ramkach sygnału beacon, odpowiedzi na sondowanie i odpowiedzi na powiązanie, stacja Wi-Fi 7 kontynuuje połączenie z punktem dostępu za pomocą pozostałych skonfigurowanych połączeń bez wykonywania kolejnego powiązania.

W przypadku urządzeń z Androidem 13 lub starszym platforma Wi-Fi nie obsługuje otrzymywania powiadomień o zmianie stanu połączenia z powodu mapowania identyfikatora TID na połączenie, nawet jeśli powiązane połączenie nie jest połączone z identyfikatorem TID.

Moduł Wi-Fi supplicant powiadamia platformę Wi-Fi o zmianach w mapowaniu identyfikatora TID na link za pomocą tych interfejsów AIDL:

Aplikacje mogą uzyskiwać informacje o zmianach w mapowaniu identyfikatora TID na linki za pomocą tych interfejsów API:

Na urządzeniach z Androidem 14 lub nowszym dostępne są te interfejsy API, które umożliwiają uzyskanie możliwości negocjacji mapy TID-to-link dla stacji i punktu dostępu.

Możliwości chipa

Funkcja chipa jest obsługiwana w tych interfejsach w przypadku negocjacji mapowania identyfikatora TID na link:

AIDL HAL

Interfejs AIDL do negocjacji mapowania identyfikatora TID na link znajduje się w FeatureSetMaskhardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl. Funkcja T2LM_NEGOTIATION = 1 << 8 wskazuje, że chip obsługuje mapowanie TID na link. Interfejsy API

Możliwości AP

Te interfejsy obsługują funkcję AP w przypadku negocjacji mapowania identyfikatora TID na link:

AIDL HAL

Framework wysyła do klienta żądanie dotyczące możliwości punktu dostępu wraz z możliwościami bieżącego połączenia.

Interfejsy API

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

Statystyki dotyczące linków znajdują się w tych interfejsach AIDL warstwy linku:

Interfejs API systemu android.net.wifi.WifiManager#addOnWifiUsabilityStatsListener() nasłuchuje wszystkich statystyk warstwy łącza. Platforma okresowo wywołuje ten interfejs API, aby aktualizować statystyki użyteczności Wi-Fi.

android.net.wifi.WifiUsabilityStatsEntry dostępne są te interfejsy API dotyczące linków:

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 wysyłać zapytania o dostępne identyfikatory linków, aplikacje mogą wywoływać metodę android.net.wifi.WifiUsabilityStatsEntry#getLinkIds().

Interfejsy API w android.net.wifi.WifiUsabilityStatsEntry w przypadku pojedynczego linku (nie MLO) zwracają zagregowane statystyki połączeń MLO. Oto kryteria agregacji:

  • Te zagregowane statystyki pakietów wykorzystują sumę statystyk poszczególnych połączeń:

    public long getTotalTxSuccess()
    public long getTotalTxRetries()
    public long getTotalTxBad()
    public long getTotalRxSuccess()
    public int getRxLinkSpeedMbps()
    
  • Te statystyki korzystają z danych z połączenia o najwyższym wskaźniku 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 Androidem 13 statystyki warstwy łącza nie uwzględniają używania wielu połączeń w przypadku jednego interfejsu. Aby obsługiwać MLO, oprogramowanie dostawcy musi stosować tę logikę agregacji podczas raportowania LinkLayerStats za pomocą interfejsu IWifi# getLinkLayerStats_1_6() HAL API. Najlepszy link to link o najwyższym wskaźniku RSSI.

  • StaLinkLayerStats.iface.beaconRx: podaj liczbę sygnałów dla najlepszego linku używanego w interfejsie.
  • StaLinkLayerStats.iface.avgRssiMgmt: Zgłoś avgRssiMgmt najlepszy link używany w interfejsie.
  • StaLinkLayerStats.iface.wmeXxPktStats (Xx = Vo, Vi, Be,Bk): Report the aggregated packet stats (total) over the links of the interface.
  • StaLinkLayerStats.iface.wmeXxContentionTimeStats (Xx = Vo, Vi, Be,Bk): raportuje statystyki czasu rywalizacji dla najlepszego łącza używanego na interfejsie (najniższe statystyki czasu rywalizacji).

Gdy jeden z linków punktu dostępowego Wi-Fi 7 zostanie ponownie wykorzystany, punkt dostępowy może ogłosić usunięcie linku za pomocą rekonfiguracji linku MLO. Stacje mogą utrzymywać bezproblemową łączność z punktem dostępu bez ponownego łączenia na pozostałych połączeniach.

Interfejs AIDL, znajdujący się w programie żądającym Wi-Fi w ISupplicantStaIfaceCallback.aidl,onMloLinksInfoChanged obsługuje ponowną konfigurację połączenia (usunięcie połączenia przez punkt dostępu).

Gdy platforma Wi-Fi przetworzy usunięcie połączenia, jego stan zostanie ustawiony na MLO_LINK_STATE_UNASSOCIATED. Framework wywołuje wtedy ConnectivityManager.NetworkCallback#onCapabilitiesChanged() w przypadku zmiany stanu linku.

Metoda WifiInfo#getAffiliatedMloLinks zwraca powiązane linki MLO. Metoda MloLink#getState zwraca stan linku. Jeśli link zostanie usunięty, zwrócony stan linku to MLO_LINK_STATE_UNASSOCIATED.

Strategia Chip MLO

MLO umożliwia urządzeniom wysyłanie i odbieranie danych na wielu połączeniach Wi-Fi w tym samym czasie, co może zwiększyć wydajność aplikacji o specyficznych wymaganiach, takich jak niskie opóźnienia, duża przepustowość i niskie zużycie energii. Producenci układów scalonych mogą opracowywać algorytmy określające sposób korzystania z dostępnych połączeń.

Aplikacje z uprawnieniami mogą modyfikować te algorytmy za pomocą metody setMloModeWifimanager i ustawiać te tryby:

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

Platforma używa setMloModeIWifiChip interfejsie AIDL do ustawiania trybu MLO.