Auf Geräten mit Android 13 oder höher unterstützt Android den Wi‑Fi 7-Standard (IEEE 802.11be). Auf dieser Seite werden die Funktionen von Android Wi-Fi 7 beschrieben, einschließlich Baseline- und Multi-Link-Betrieb (Multi-Link Operation, MLO).
Baseline Wi-Fi 7-Funktionen
In diesem Abschnitt werden die grundlegenden Wi-Fi 7-Funktionen in Android 13 und höher beschrieben.
Wi‑Fi 7-Unterstützung des Geräts
Das Android-Framework enthält die WifiManager#isWifiStandardSupported(int standard)
API, die Apps mit dem Argument ScanResults.WIFI_STANDARD_11BE
aufrufen können, um zu prüfen, ob ein Gerät Wi‑Fi 7 unterstützt.
Wenn diese API aufgerufen wird, prüft das WLAN-Modul, ob das Konfigurations-Overlay config_wifi11beSupportOverride
als Überschreibung verwendet wird, und führt Folgendes aus:
- Wenn das Overlay auf
true
gesetzt ist, wird davon ausgegangen, dass das Gerät unabhängig von der Antwort von nl80211 Wi‑Fi 7 unterstützt. Diese Überschreibung ist nur für Gerätehersteller nützlich, die keine Treiber haben, die die Unterstützung von Wi‑Fi 7 zurückgeben. - Wenn das Overlay auf
false
(Standardwert) gesetzt ist, verwendet das WLAN-Modul die Informationen von nl80211. Das WLAN-Modul fordert die Informationen von wificond an, das den Befehl nl80211NL80211_CMD_GET_WIPHY
aufruft. Wenn das AttributNL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY
in der Antwort des Treibers enthalten ist, wird davon ausgegangen, dass das Gerät Wi‑Fi 7 unterstützt.
Gescannter ZP mit Wi‑Fi 7-Unterstützung
Das Android-Framework enthält die int ScanResult#getWifiStandard()
API, die Apps aufrufen können, um zu prüfen, ob ein gescannter Zugangspunkt (AP) Wi‑Fi 7 unterstützt. Wenn der ZP Wi‑Fi 7 unterstützt, gibt die API ScanResults.WIFI_STANDARD_11BE
zurück.
Das Gerät muss nicht WLAN 7 unterstützen, damit Apps diese API verwenden können.
Wenn diese API aufgerufen wird, prüft das WLAN-Modul, ob EHT Capability IE
in den zurückgegebenen Ergebnissen des Konnektivitätsscans enthalten ist. Wenn EHT Capability IE
in den Scanergebnissen enthalten ist, unterstützt der gescannte AP Wi-Fi 7.
Die AOSP-WifiTracker
-Klasse zeigt diese Supportinformationen in der Benutzeroberfläche an, wenn sie im ausführlichen Modus ausgeführt wird.
STA-Verbindungsmodus
Das Android-Framework enthält die int WifiInfo#getWifiStandard()
API, die Apps aufrufen können, um zu prüfen, ob der aktuelle Verbindungsmodus der Station (STA) Wi‑Fi 7 ist. Der STA-Verbindungsmodus ist Wi‑Fi 7, wenn sowohl das Gerät als auch der verbundene ZP Wi‑Fi 7 unterstützen. Wenn der Verbindungsmodus Wi-Fi 7 ist, gibt die API ScanResults.WIFI_STANDARD_11BE
zurück.
Wenn getWifiStandard
aufgerufen wird, bestimmt das WLAN-Modul den Modus durch Aufrufen der HAL-API ISupplicantStaIface#getConnectionCapabilities()
. Die Implementierung dieser HAL API auf der AIDL-Ebene wpa_supplicant
prüft beim Einrichten der Verbindung, ob EHT Capability IE
sowohl in AssocReq
als auch in AssocRsp
enthalten ist.
Netzwerkauswahl
In Android 13 werden bei der Netzwerkauswahl mehrere Parameter verwendet, um zu bestimmen, mit welchem ZP eine Verbindung hergestellt werden soll. Einer der Parameter ist der geschätzte Durchsatz des ZP, der mit dem Block ThroughputPredictor
geschätzt wird. Der ThroughputPredictor
-Block verwendet die PHY-Parameter sowohl des Geräts als auch des gescannten ZPs.
In Android 13 verwendet ThroughputPredictor
bei der Berechnung die folgenden AP-Funktionen:
- Unterstützung von Wi‑Fi 7 (802.11be)
- Unterstützung einer Kanalbreite von 320 MHz
Wenn Sie diese Funktionen in die ThroughputPredictor
-Logik einbeziehen, erhöht sich die Wahrscheinlichkeit, dass WLAN 7-kompatible ZP ausgewählt werden, wenn das Gerät diese Funktionen nutzen kann.
RTT-basierte WLAN-Messung
Android bietet API-Unterstützung für EHT-Präambel und 320 MHz Kanalbreite für Wi‑Fi RTT. Dies ermöglicht die Unterstützung von Wi-Fi 7-bezogenen Funktionen in der RTT-Bereichsauswahl, wenn dies vom Chip unterstützt wird.
HAL APIs
Die folgenden HAL-APIs unterstützen die Wi‑Fi 7-Funktionen für die RTT-basierte Entfernungsmessung:
EHT
: Konstant inenum RttPreamble
undenum WifiRatePreamble
WIDTH_320
: Konstante inenum WifiChannelWidthInMhz
BW_320MHz
: Konstante inenum RttBw
APIs
Apps können die folgenden APIs für die RTT-basierte Entfernungsmessung von Wi‑Fi 7 verwenden:
ScanResult#PREAMBLE_EHT
ResponderConfig#PREAMBLE_EHT
(SystemApi)
Soft-AP
Android unterstützt Wi-Fi 7 in Soft AP und bietet die folgenden Funktionen.
Soft-AP starten
Android unterstützt das Starten von Soft-APs im WLAN 7-Modus.
Dies wird durch die config_wifiSoftapIeee80211beSupported
-Overlay-Konfiguration gesteuert.
Das WLAN-Modul verwendet das Overlay config_wifiSoftapIeee80211beSupported
, um den booleschen Wert HwModeParams#enable80211BE
im IHostApd#addAccessPoint()
API-Aufruf festzulegen. In der hostapd-AIDL-Ebene wird dieser Wert verwendet, um die hostapd.conf
-Parameter festzulegen.
HAL-APIs
Der boolesche Wert enable80211BE
in HwModeParams
in der hostapd HAL unterstützt das Starten des Soft-AP im Wi‑Fi 7-Modus.
Soft AP-Informationen melden
Android unterstützt die API, um Informationen zu Wi‑Fi 7 und zur Kanalbreite von 320 MHz in die gemeldeten Soft-AP-Informationen aufzunehmen.
HAL APIs
Die Konstante WIFI_STANDARD_11BE
in der Generation.aidl
-AIDL-Schnittstelle in der hostapd HAL, die in der ApInfo
verwendet wird, die im IHostapdCallback#onApInstanceInfoChanged()
-Callback gemeldet wird, unterstützt das Melden von Soft-AP-Informationen.
APIs
Apps können die folgenden Methoden (System-APIs) in SoftApInfo
verwenden, um SoftAP-Informationen zu melden.
SoftApInfo#getWifiStandard()
: GibtScanResults.WIFI_STANDARD_11BE
zurück, wenn das Soft-AP im Wi‑Fi 7-Modus gestartet wird.SoftApInfo#getBandwidth()
: WirdSoftApInfo#CHANNEL_WIDTH_320MHZ
zurückgegeben, wenn die Kanalbreite 320 MHz beträgt.
MLO Wi-Fi 7-Funktionen
Der Multi-Link-Betrieb (MLO) ist die Hauptfunktion der Wi‑Fi 7-Spezifikation (802.11be). MLO ist eine obligatorische Funktion für Multi-Link-Geräte (MLD), die unter Wi‑Fi 7 ausgeführt werden, unabhängig davon, ob sie gleichzeitig oder nicht gleichzeitig ausgeführt werden.
Abbildung 1: MLO-Diagramm.
Wie in Abbildung 1 dargestellt, haben sowohl die AP-MLD als auch die STA-MLD mehrere AP- oder STA-Instanzen, die auf jedem Link ausgeführt werden. Jeder Link hat eine separate MAC-Adresse für ZP oder STA. Der ZP oder STA hat auch eine MLD-MAC-Adresse, um das Gerät zu identifizieren.
MLO-Linkdarstellung
Die Klasse android.net.wifi.MloLink
stellt den MLO-Link dar. Diese Klasse umfasst die folgenden Parameter:
int getLinkId()
: Link-ID, wie vom AP-MLD angegeben.MacAddress getApMacAddress()
: AP-MAC-Adresse Die BSSID der ZP-Instanz für diesen Link.MacAddress getStaMacAddress()
: MAC-Adresse des Standardanbieters Die lokal zugewiesene MAC-Adresse für die STA-Instanz auf dem Link.int getChannel()
: Linkkanal. Die Kanalnummer des Links.int getBand()
: Kettenarmband. Der Bogen des Glieds.int getState()
: Linkstatus. Kann einen der folgenden Status haben:MLO_LINK_STATE_INVALID
: Ungültig. Wird für Initialisierungs- und Fehlerfälle verwendet.MLO_LINK_STATE_UNASSOCIATED
: Nicht verknüpft. Der Link ist mit keinem Zugangspunkt verknüpft.MLO_LINK_STATE_IDLE
: inaktiv. Der Link ist verknüpft, aber nicht aktiv (dem Link ist keine Traffic-ID zugewiesen).MLO_LINK_STATE_ACTIVE
: Aktiv. Der Link ist verknüpft und aktiv (dem Link ist mindestens eine TID zugewiesen). Eine aktive Verbindung kann sich im Energiesparmodus befinden, da das Framework den Stromversorgungsstatus der Verbindung nicht überwacht.
Gescannte MLO-Informationen für WLAN 7-Zugangspunkte
Apps können die MLO-Parameter für einen Wi‑Fi 7-AP-MLD abrufen, wenn das WLAN-Modul ein ScanResult
-Objekt vom AP-MLD empfängt. Die AOSP-WifiTracker
zeigt die MLO-Parameter an, wenn sie im ausführlichen Modus ausgeführt wird.
Das WLAN-Modul erfasst die MLO-Daten auf folgende Weise:
- Hier wird das Multi-Link-Informationselement (IE) geparst, das im Beacon oder in der Antwort auf die Probe enthalten ist, um die MAC-Adresse des MLP des ZP und die aktuelle Link-ID zu lesen.
- Hier wird das IE „Reduced Neighbor Report“ (RNR) geparst, das in der Beacon- oder Probeantwort enthalten ist, um die Liste der Informationen zu den verknüpften Links zu lesen.
APIs
Zum Abrufen gescannter AP-MLO-Informationen können Apps die folgenden APIs verwenden:
ScanResult#BSSID
: MAC-Adresse der AP-Instanz (für die Verbindung, über die das Scanergebnis empfangen wird)MacAddress ScanResult#getApMldMacAddress()
: Gibt die MLD-MAC-Adresse des ZP zurück.int ScanResult#getApMloLinkId()
: Die Link-ID für den Link, über den das Scanergebnis empfangen wurde.List<MloLink> ScanResult#getAffiliatedMloLinks()
: Gibt eine Liste vonMloLink
-Objekten für alle vom AP-MLD beworbenen Links zurück, einschließlich des Links, über den der ScanResult empfangen wurde.
Verbundenes WLAN 7 AP MLO-Informationen
Wenn ein Gerät eine Verbindung zu einem Wi‑Fi 7-AP-MLD herstellt, erfasst das Framework die MLO-Parameter der Verbindung aus dem WifiInfo
-Objekt. Das AOSP-WifiTracker
-Objekt zeigt diese Informationen im ausführlichen Modus an.
Wenn das Gerät eine Verbindung zum AP-MLD herstellt, kopiert das WLAN-Modul die MLO-Informationen vom ScanResult
-Objekt, das vom AP empfangen wurde. Das Modul ruft dann die ISupplicantStaIface#getConnectionMloLinksInfo()
HAL API auf, um die MAC-Adressen der einzelnen Links sowohl für den ZP als auch für den STA zu lesen und den Status der zugehörigen Links zu aktualisieren.
APIs
Um MLO-Verbindungsinformationen abzurufen, können Apps die folgenden APIs verwenden:
WifiInfo#getBSSID()
: MAC-Adresse der ZP-Instanz (für den Link, mit dem das Gerät verknüpft ist).MacAddress WifiInfo#getApMldMacAddress()
: Gibt die MLD-MAC-Adresse des ZP zurück.int WifiInfo#getApMloLinkId()
: Gibt die Verknüpfungs-ID der Verknüpfung zurück, die die STA mit dem Zugangspunkt verknüpft hat.List<MloLink> WifiInfo#getAffiliatedMloLinks()
: Gibt eine Liste vonMloLink
-Objekten für alle von AP-MLD beworbenen Links einschließlich des zugehörigen Links zurück. Sowohl die AP- als auch die STA-MAC-Adresse können für jedesMloLink
-Objekt abgefragt werden.
AP-MLD-Scan
Die Anbietersoftware stellt dem Wi‑Fi-Framework die Scanergebnisse für jedes empfangene Beacon oder jede empfangene Probeantwort zur Verfügung. Das bedeutet, dass das Wi-Fi-Framework
- Es können mehrere
ScanResults
-Objekte von derselben AP-MLD empfangen werden, da der Zugangspunkt mehrere Beaconing-Links haben kann. - Möglicherweise erhält nur ein Teil der Scanergebnisse für die AP-Links eines AP-MLD, da einige dieser Linksignale von der Firmware möglicherweise nicht empfangen werden.
Die Anbietersoftware darf nur Scanergebnisse melden, die per Funk empfangen wurden. Sie darf keine Scanergebnisse auf der Grundlage von von der AP-MLD beworbenen Links erstellen (künstlich synthetisieren).
Die Anbietersoftware muss die grundlegenden Varianten der Multi-Link- und RNR-IEs enthalten, die von den AP-Instanzen in den gemeldeten Scanergebnissen empfangen wurden. Wenn in den Scanergebnissen keine Details zu verbundenen ZP fehlen, kann die Anbietersoftware Multi-Link-Sondenanfragen senden (Sondenanfrage-Frame mit einem Multi-Link-Element für die Sondenanfrage), um die vollständigen oder teilweisen Funktionen, Parameter und Betriebselemente des ZP mit der Ziel-ZP-MLD in den Antwortframe aufzunehmen.
Die Anbietersoftware kann bei Bedarf ML-Prüfungen auslösen (mithilfe der Probe-Req-Variante „ML IE“ im Probe-Req-Frame).
AP-MLD-Netzwerkverknüpfung
Wenn ein Gerät einem AP-MLD-Netzwerk beitritt, verwendet die Anbietersoftware den ausgewählten AP-Link (verknüpften Link) für die Signalisierung. Die Anbietersoftware kann allen oder einigen der vom Gerät unterstützten Links zugeordnet werden.
Nach erfolgreicher Verknüpfung meldet der Treiber ISupplicantStaIfaceCallback#onStateChanged()
mit der BSSID eines Links für die AP-MLD. Der Treiber wählt dann einen Link der AP-MLD aus, sofern die Scanergebnisse für diese Verbindung an das Framework gemeldet wurden.
Netzwerkbewertung
Auf Geräten mit Android 14 oder höher wird Wi‑Fi 7 MLO von der Android-WLAN-Netzwerkauswahl unterstützt. Das bedeutet, dass Android das beste WLAN für das Gerät basierend auf der Anzahl der für MLO verfügbaren Links auswählt.
Zur Unterstützung von MLO verwendet der Netzwerkauswahlalgorithmus die folgenden MLO-Funktionen des WLAN-Chips:
- Maximale Anzahl von STR-Links
- Maximale Anzahl von Verknüpfungslinks
- Gleichzeitige Kombinationen von Bändern
Abbildung 2. MLO-Netzwerkauswahl
Maximale Anzahl von STR-Links
Simultaneous Transmit and Receive (STR) ist ein Wi‑Fi-Medium-Konfliktverfahren für den Multi-Link-Betrieb. Die Signalisolierung zwischen den verschiedenen Verbindungen ist ausreichend, damit die Verbindungen unabhängig voneinander arbeiten und gleichzeitig in verschiedenen Verbindungen senden und empfangen können. Die STR unterscheidet sich von Legacy-Single-Link-STA und Legacy-Dual-Band-Dual-Band-STA (Dual-Band-Dual-Band-STA), die mit STA MLD verknüpft ist. Sie haben eine gemeinsame Sendersequenznummer (SN) und einen gemeinsamen Raum für die Datenübertragung, der verschiedenen Links zugewiesen ist, wenn mehrere Links die gleiche Zugriffskategorie haben.
Die maximale Anzahl der verwendeten STR-Links kann von der maximalen Anzahl der vom Chip unterstützten Funkschnittstellen abweichen. Im Beispiel in Abbildung 2 beträgt die maximale Anzahl von STR-Links 2.
Die folgenden AIDL HAL-Schnittstellen unterstützen die maximale Anzahl von STR-Links und die maximale Anzahl von Funktionen zum Zählen von Verknüpfungslinks:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/WifiChipCapabilities.aidl
Maximale Anzahl von Verknüpfungslinks
Mehrere Links können mit dem CSMA/CA-Verfahren (Carrier Sense Multiple Access/Collision Avoidance) „Enhanced Multi-Link Single Radio“ (eMLSR) über ein einziges Funkgerät betrieben werden. Ein Mehrfachverbindungsgerät verwendet eMLSR über eine Reihe von Links, wenn es bestimmte grundlegende Kontrollframes empfangen und gleichzeitig die Clear Channel Assess (CCA) für diese Verbindungen durchführen kann. Das MLD überträgt oder empfängt jedoch Daten immer nur über eine Verbindung (die Verbindung, die dynamisch in jeder Übertragungsmöglichkeit (TXOP) ausgewählt wird) gleichzeitig.
Eine MLD-Station kann die Anzahl der Verknüpfungslinks maximieren, um eine bessere Zuverlässigkeit, einen besseren Durchsatz und eine geringere Latenz zu erzielen (im Vergleich zu einer Legacy-Station mit einem einzelnen Link). Dazu muss sie gleichzeitig in STR und eMLSR betrieben werden, sofern dies vom Chip unterstützt wird. In Abbildung 2 ist die maximale Anzahl der Verknüpfungslinks 3.
Die folgenden AIDL HAL-Schnittstellen unterstützen die Funktion zur maximalen Anzahl von Verknüpfungslinks:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/WifiChipCapabilities.aidl
Gleichzeitige Kombinationen von Bändern
Das Framework fragt den Chip ab, um die zulässigen Funkkombinationen (über die IWifiChip.aidl
AIDL-Schnittstelle) zu erhalten, die gleichzeitig betrieben werden können. Anhand dieser Informationen leitet das Framework mögliche gleichzeitige Bandkombinationen ab. Im Folgenden finden Sie eine Beispielliste mit gleichzeitigen Bandkombinationen (GHz):
- 2.4
- 5
- 6
- 2,4 × 5
- 2,4 x 6
- 5 x 6
Die folgende AIDL HAL-Schnittstelle unterstützt gleichzeitige Funkschnittstellenkombinationen:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
Netzwerkauswahl
Bei der Netzwerkauswahl (MLO) wird die Kandidatenliste nach Mitgliedern mit derselben MLD-MAC-Adresse gruppiert. Der maximale prognostizierte Multi-Link-Durchsatz wird für jede Gruppe basierend auf der maximalen STR-Link-Anzahl und den vom Chip unterstützten gleichzeitigen Bandkombinationen berechnet. Wenn der Kandidat für mehrere Verbindungen geeignet ist und der Chip STR unterstützt, wird der vorhergesagte Durchsatzwert durch den vorhergesagten Durchsatzwert für mehrere Verbindungen ersetzt. Das gibt MLO-Kandidaten bei der Auswahl des Netzwerks einen Vorteil.
Wenn ein AP-MLD-Netzwerk beigetreten wird, führt das Framework die SSID-Auswahl anhand der Informationen aus, die im ScanResults
-Objekt von der Anbietersoftware empfangen wurden. Nach der Auswahl der SSID durch das Framework ist die Anbietersoftware für die Auswahl der BSSID für den besten ZP (oder ZP-Link) verantwortlich, der für die Verknüpfung verwendet werden soll.
MAC-Adressen-Verwaltung der STAs von Geräten
In diesem Abschnitt wird beschrieben, wie STA-MAC-Adressen von Geräten (MLD-MAC-Adressen und STA-MAC-Adressen pro Link) verarbeitet werden.
MLD-MAC-Adresse
Das WLAN-Framework verwaltet die MLD-MAC-Adresse des Geräts. Die MLD-MAC-Adresse wird auf die gleiche Weise behandelt wie die MAC-Adresse eines Nicht-MLD-Geräts.
Die MAC-Adresse kann eine zufällige MAC-Adresse oder eine von der Hardware bereitgestellte MAC-Adresse sein, je nach Auswahl des Nutzers. Die MLD-MAC-Adresse wird vom Framework mithilfe der IWifiStaIface#setMacAddress()
HAL API festgelegt.
Per-Link-STA-MAC-Adresse
Die Anbietersoftware verwaltet die MAC-Adressen der Instanz-STAs (für jeden Link). Bei der Verknüpfung eines Geräts mit einem ZP weist die Anbietersoftware jeder zugehörigen Verbindung eine MAC-Adresse der Instanz zu.
Die Anbietersoftware weist MAC-Adressen pro Link basierend auf ihrem Algorithmus zu. Der Algorithmus muss reproduzierbar sein und eine Funktion der folgenden Faktoren sein:
- STA-MLD-MAC-Adresse, die vom WLAN-Framework festgelegt wird.
- Link-ID (vom ZP empfangen)
Wenn das Framework also dieselbe MLD-MAC-Adresse wiederverwendet, muss der Anbieter dieselben instanzspezifischen MAC-Adressen wiederverwenden und umgekehrt. So wird sichergestellt, dass die vom Framework generierte STA-MLD-Adresse für eine SSID persistent ist und dass auch die MAC-Adressen pro STA persistent sind.
Im Folgenden finden Sie einen Beispielalgorithmus für die MAC-Adresszuweisung von STAs pro Link. Anbieter können jeden Algorithmus implementieren, der die Algorithmuskriterien erfüllt:
- Oktett 0: Prüfen, ob das Bit für die lokale Verwaltung gesetzt ist
- 1.–4. Okt.: Wie STA-MLD-MAC-Adresse
- 5. Okt.: Pro-STA = (STA-MLD + Link-ID + 1) MOD (256)
Mehrere Links
Die Firmware des Anbieters kann die Link-Umschaltung ausführen und den Energiesparstatus der Links für die Aktivierung oder Deaktivierung verwalten, ohne dass Eingaben vom WLAN-Framework erforderlich sind.
Das WLAN-Framework erwartet keine Benachrichtigung, wenn sich der Linkstatus ändert.
Energiesparmodus verwalten
Der Energiesparmodus ist im WLAN-Framework standardmäßig aktiviert. Im Energiesparmodus verwaltet die Anbieterfirmware den Energiesparmodus einzelner Verbindungen anhand von Traffic-Mustern und Entscheidungen zur Aktivierung oder Deaktivierung.
Das WLAN-Framework kann jedoch erzwingen, dass der Energiesparmodus deaktiviert wird, indem die ISupplicantStaIface::setPowerSave(false)
HAL API aufgerufen wird. Wenn der Energiesparmodus vom Framework deaktiviert wird, muss die Anbieterfirmware mindestens eine Verbindung aktiv lassen (Energiesparmodus deaktiviert). In diesem Status entscheidet die Firmwareimplementierung, welcher Link festgelegt wird.
Datenpfad
Hier wird die Firmwareimplementierung des Anbieters für die Verarbeitung von Uplink- und Download-Traffic beschrieben.
Uplink-Traffic
Die Firmware leitet Uplink-Traffic basierend auf ihrer internen Implementierung an einen (oder mehrere) Links weiter. Die Firmware des Anbieters entscheidet anhand von Traffic-Mustern, wann Load Balancing, Duplizierung oder Aggregation von Traffic durchgeführt werden soll. Wir empfehlen, den Traffic in den folgenden Fällen mit der Firmware auf mehrere Links zu duplizieren:
- Wenn der Modus für geringe Latenzzeit über die
IWifiChip#setLatencyMode()
HAL API festgelegt wird. - Bei Traffic mit Nutzerpriorität 6 und 7
Downlink-Traffic
Die Firmware muss die MAC-Adresse (Ziel) pro STA des MAC-Headers durch die MLD-STA-MAC-Adresse und die MAC-Adresse (Quelle) pro AP des MAC-Headers durch die MLD-AP-MAC-Adresse ersetzen. Die Firmware muss diese MAC-Adresssubstitution ausführen, bevor sie den APF-Filter passiert, da die APF-Filterbefehle auf MLD-MAC-Adressen basieren. Es gibt einen einzigen APNF-Filter für alle Links einer AP-MLD.
Gleichzeitigkeit
Nebenläufigkeitsszenarien, bei denen ein Funkschnittstelle für eine neue Oberfläche verwendet wird, müssen Vorrang vor der Zuweisung mehrerer Funkschnittstellen für Verbindungen derselben Schnittstelle haben. Parallelitätsszenarien müssen auch Vorrang vor MLO haben, unabhängig davon, welches zuerst eintritt. Die Verwendung mehrerer Links für eine einzelne Schnittstelle ist opportunistisch. Das bedeutet, dass mehrere Links nur in folgenden Fällen verwendet werden:
- MLO ist erforderlich, basierend auf der Firmwareentscheidung für Load Balancing, Aggregation oder Duplizierung.
- MLO ist verfügbar, d. h., ein Funkschnittstellenmodul wird von keiner anderen Schnittstelle benötigt.
TID-zu-Link-Zuordnung
Wenn der Wi-Fi 7 AP bei Geräten mit Android 14 oder höher die vorübergehende Deaktivierung einer der Verbindungen über ein TID-zu-Link-Zuordnungselement ankündigt, das in Beacon-, Sondereaktions- und Zuordnungsantwortframes übertragen wird, hält die Wi-Fi 7-Station die Verbindung mit dem AP mithilfe der verbleibenden Verbindungen, die eingerichtet sind, ohne eine weitere Verknüpfung fort.
Auf Geräten mit Android 13 oder niedriger wird vom WLAN-Framework nicht unterstützt, Benachrichtigungen zu erhalten, wenn sich der Linkstatus aufgrund der Zuordnung von TIDs zu Verbindungen ändert, auch wenn die zugehörige Verbindung nicht mit einer TID verknüpft ist.
AIDL HAL
Der WLAN-Supplicant benachrichtigt das WLAN-Framework über Änderungen bei der Zuordnung von TIDs zu Verbindungen über die folgenden AIDL-Schnittstellen:
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
Mit den folgenden APIs können Apps Informationen zu Änderungen bei der Zuordnung von TIDs zu Verbindungen abrufen:
ConnectivityManager.NetworkCallback.onCapabilitiesChanged()
: Netzwerk-Callback, der vom Framework ausgelöst wird, wenn sich die Zuordnung von TIDs zu Verbindungen ändert.WifiInfo#getAssociatedMloLinks()
: Gibt die zugehörigen MLO-Links zurück.MloLink#getState()
: Gibt den Status des Links zurück,MLO_LINK_STATE_ACTIVE
oderMLO_LINK_STATE_IDLE
.
Verhandlungsfunktionen für die Zuordnung zwischen TID und Link
Auf Geräten mit Android 14 oder höher sind die folgenden APIs verfügbar, um die Verhandlungsfunktionen der TID-zu-Link-Karte für die Station und den Zugangspunkt zu erhalten.
Chipfunktion
Die folgenden Oberflächen unterstützen die Chipfunktion für die Verhandlung zwischen TID und Link.
AIDL HAL
Die AIDL-Schnittstelle für die Verhandlung der Zuordnung von TIDs zu Verbindungen befindet sich in FeatureSetMask
in hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
. Die Funktion T2LM_NEGOTIATION = 1 << 8
gibt an, dass der Chip die Zuordnung von TIDs zu Verbindungen unterstützt.
APIs
WifiManager.isTidToLinkMappingNegotiationSupported()
: Gibt den Chip zurück, der die TID-zu-Link-Zuordnung unterstützt.
ZP-Funktion
Die folgenden Schnittstellen unterstützen die AP-Funktion für die Verhandlung der Zuordnung von TIDs zu Verbindungen.
AIDL HAL
Das Framework fragt die ZP-Funktion des Supplicant zusammen mit der aktuellen Verbindungsfunktion ab.
apTidToLinkMapNegotiationSupported
: Prüft, ob ein ZP die TID-zu-Link-Zuordnungsfunktion unterstützt.
APIs
WifiInfo.isApTidToLinkMappingNegotiationSupported()
: Gibt an, ob der Zugangspunkt die Verhandlung der Zuordnung von TIDs zu Verbindungen unterstützt.
Statistiken der Linkebene
Die Statistiken der Sicherungsschicht umfassen WLAN-spezifische Details wie RSSI, verschiedene TX- und RX-Paketzähler sowie Funkstatistiken. Das WLAN-Framework führt regelmäßig Umfragen zu Statistiken der Sicherungsschicht und zum RSSI durch, um das beste Netzwerk auszuwählen oder die Qualität des verbundenen Netzwerks zu bewerten. Bei Geräten mit Android 14 oder höher umfassen die Statistiken der Sicherungsschicht die Unterstützung mehrerer Verbindungen. Zur Unterstützung von Wi‑Fi 7 unterstützt Android MLO sowohl bei Statistiken der Sicherungsschicht als auch bei der Signalabfrage.
Linkspezifische Statistiken finden Sie in den folgenden AIDL-Schnittstellen der Linkebene:
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceStats.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerLinkStats.aidl
Die android.net.wifi.WifiManager#addOnWifiUsabilityStatsListener()
-System-API überwacht alle Statistiken der Sicherungsschicht. Das Framework ruft diese API regelmäßig auf, um Statistiken zur WLAN-Nutzung zu aktualisieren.
Die folgenden linkspezifischen APIs sind in android.net.wifi.WifiUsabilityStatsEntry
verfügbar.
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)
Um verfügbare Link-IDs abzufragen, können Apps die Methode android.net.wifi.WifiUsabilityStatsEntry#getLinkIds()
aufrufen.
APIs in android.net.wifi.WifiUsabilityStatsEntry
für einen einzelnen Link (nicht MLO) geben die zusammengefassten Statistiken für MLO-Verbindungen zurück. Folgende Aggregationskriterien sind verfügbar:
Für die folgenden zusammengefassten Paketstatistiken wird die Summe der Statistiken pro Link verwendet:
public long getTotalTxSuccess() public long getTotalTxRetries() public long getTotalTxBad() public long getTotalRxSuccess() public int getRxLinkSpeedMbps()
Für die folgenden Statistiken werden die Daten des Links mit dem höchsten RSSI verwendet:
public int getRssi() public int getLinkSpeedMbps() public long getTotalBeaconRx() public int getTimeSliceDutyCycleInPercent() public ContentionTimeStats getContentionTimeStats(@WmeAccessCategory int ac) public List<RateStats> getRateStats()
Statistiken zur Sicherungsschicht in Android 13
Bei Geräten mit Android 13 wird bei den Statistiken der Linkebene nicht die Nutzung mehrerer Links für eine einzelne Schnittstelle berücksichtigt. Zur Unterstützung von MLO muss die Anbietersoftware die folgende Aggregationslogik anwenden, wenn LinkLayerStats
über die IWifi# getLinkLayerStats_1_6()
HAL API gemeldet wird. Der beste Link ist der Link
mit dem höchsten RSSI.
StaLinkLayerStats.iface.beaconRx
: Die Anzahl der Beacons für die beste Verbindung, die für die Benutzeroberfläche verwendet wird.StaLinkLayerStats.iface.avgRssiMgmt
: Geben SieavgRssiMgmt
für die beste Verbindung an, die für die Schnittstelle verwendet wird.StaLinkLayerStats.iface.wmeXxPktStats
(Xx = Vo, Vi, Be,Bk): Die aggregierten Paketstatistiken (insgesamt) werden über die Links der Schnittstelle gemeldet.StaLinkLayerStats.iface.wmeXxContentionTimeStats
(Xx = Vo, Vi, Be, Bk): Hier werden die Statistiken zur Beanspruchungszeit für den besten Link erfasst, der auf der Schnittstelle verwendet wird (niedrigste Statistiken zur Beanspruchungszeit).
Neukonfiguration des MLO-Links
Wenn einer der Verbindungen des Wi-Fi 7-Zugangspunkts wiederverwendet wird, kann der AP die Entfernung der Verbindung durch Neukonfiguration der MLO-Verbindung ankündigen. Stationen können eine nahtlose Verbindung zum ZP aufrechterhalten, ohne dass eine erneute Verknüpfung der verbleibenden Links erforderlich ist.
Die AIDL-Schnittstelle onMloLinksInfoChanged
im WLAN-Supplicant unter ISupplicantStaIfaceCallback.aidl
unterstützt die Link-Neukonfiguration (Entfernen des Links durch den Zugangspunkt).
Wenn das WLAN-Framework das Entfernen eines Links verarbeitet, wird der Linkstatus auf MLO_LINK_STATE_UNASSOCIATED
gesetzt.
Das Framework löst dann einen Linkstatuswechsel für ConnectivityManager.NetworkCallback#onCapabilitiesChanged()
aus.
Die Methode WifiInfo#getAffiliatedMloLinks
gibt die zugehörigen MLO-Links zurück. Die Methode MloLink#getState
gibt den Status der Verknüpfung zurück. Wenn der Link entfernt wurde, ist der zurückgegebene Linkstatus MLO_LINK_STATE_UNASSOCIATED
.
Chip-MLO-Strategie
Mit MLO können Geräte gleichzeitig Daten über mehrere WLAN-Links senden und empfangen. Dies kann die Leistung für Apps mit bestimmten Anforderungen wie geringer Latenz, hoher Bandbreite und geringem Energieverbrauch verbessern. Chipanbieter können Algorithmen zur Verwendung der verfügbaren Verbindungen entwickeln.
Berechtigte Apps können diese Algorithmen mit der Methode setMloMode
in Wifimanager
ändern und die folgenden Modi festlegen:
MLO_MODE_DEFAULT = 0
MLO_MODE_LOW_LATENCY = 1
MLO_MODE_HIGH_THROUGHPUT = 2
MLO_MODE_LOW_POWER = 3
Das Framework verwendet setMloMode
in der IWifiChip
-AIDL-Schnittstelle, um den MLO-Modus festzulegen.