WLAN-Modus mit niedriger Latenz

Android 10 erweitert die Wi-Fi Lock API um können Sie WLAN-Verbindungen für latenzempfindliche Apps niedrige Latenz Modus an. Der Modus mit niedriger Latenz wird gestartet, wenn alle der folgenden Bedingungen erfüllt sind:

  • WLAN ist aktiviert und das Gerät hat Internetzugang.
  • Die App hat eine WLAN-Sperre erstellt und erworben und wird in der im Vordergrund.
  • Das Display ist an.

Um den Modus mit niedriger Latenz auf Geräten zu unterstützen, müssen Gerätehersteller die WLAN-Treiber und Anbieter HAL. Im Modus mit niedriger Latenzzeit sparen Sie Stromsparmodus im IEEE 802.11-Standard) wird durch das Framework explizit deaktiviert. Die Scan- und Roaming-Parameter in den Treiber- und Firmware-Ebenen können optimiert, um die WLAN-Latenz weiter zu verringern. Die genauen Optimierungen implementierungsspezifisch sind.

Android hat eine Hochleistungs-WLAN-Sperrmodus (eingeführt in API-Ebene 12), die vom Modus mit niedriger Latenz getrennt ist.

Implementierung

Um den WLAN-Modus mit niedriger Latenz zu unterstützen, stellen Sie Implementierungen für die folgenden IWifiChip-Funktionen.

Führen Sie im AIDL HAL folgende Schritte aus:

  • int getFeatureSet()
  • void setLatencyMode(in LatencyMode mode)

Im HIDL HAL (1.3 oder höher):

  • getCapabilities_1_3() generates (WifiStatus status, bitfield<ChipCapabilityMask> capabilities)
  • setLatencyMode(LatencyMode mode) generates (WifiStatus status)

Eine Referenzimplementierung findest du in wifi_legacy_hal.cpp mit den folgenden Funktionen:

  • wifi_error wifi_get_supported_feature_set(wifi_interface_handle iface, feature_set *set)
  • wifi_error wifi_set_latency_mode(wifi_interface_handle handle, wifi_latency_mode mode)

Im Modus mit niedriger Latenz wird der Energiesparmodus explizit durch WifiLockManager im Android-Framework entwickelt. Dazu muss der WLAN-Treiber den Befehl NL80211 unterstützen, NL80211_CMD_SET_POWER_SAVE, um den Energiesparmodus zu aktivieren oder zu deaktivieren. Wenn WLAN-Verbindung Speichern deaktiviert ist, muss das WLAN-System im Wachzustand bleiben und bereit sein, Pakete mit minimaler Verzögerung senden oder empfangen.

Funktion deaktivieren

Aktualisieren Sie zum Deaktivieren der Funktion für den niedrigen Latenzmodus den zugrunde liegenden Code des getFeatureSet() für AIDL HAL oder getCapabilities_1_3() für HIDL HAL, Dabei gilt: capabilities & SET_LATENCY_MODE = 0, wobei SET_LATENCY_MODE ist in der AIDL- oder HIDL-Definition für IWifiChip definiert. Wenn diese Funktion deaktiviert ist, deaktiviert das Framework den Energiesparmodus nur, wenn der Modus mit niedriger Latenz aktiviert ist.

Zertifizierungsstufe

Führen Sie den folgenden automatisierten und manuelle Ping-Latenztests.

Automatisierte Tests

Führen Sie die folgenden VTS- und CTS-Tests aus:

Manuelle Tests

Erforderliche Testausrüstung und -umgebung

Für manuelle Tests ist die folgende Einrichtung erforderlich:

  • Wi-Fi Access Point (AP)
  • Smartphone und Testcomputer

    • Der DUT muss über WLAN mit dem Zugangspunkt verbunden sein.
    • Der Testcomputer muss über WLAN oder Ethernet
    • Der Testcomputer muss über USB mit dem DUT verbunden sein.
  1. Modus für geringe Latenzzeit aktivieren

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. Prüfe, ob dein Computer über ADB mit dem Smartphone verbunden ist. Von Über die ADB-Shell: Pingen Sie das Gateway kontinuierlich 3 Stunden lang in 1 Sekunde an. Intervalle.

  3. Speichern Sie die Testausgabe in einer Textdatei und verwenden Sie eine Tabellenkalkulation oder eine Python-Datei Skript zum Erstellen eines Histogramms der Ergebnisse des Ping-Latenztests.

  4. Wiederholen Sie die Schritte 1 bis 3 bei deaktiviertem Latenzmodus.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. Vergleichen Sie die Testergebnisse, um sicherzustellen, dass der durchschnittliche Wert für die Ping-Latenz gleich im Modus für geringe Latenzzeit reduziert.

  1. Modus für geringe Latenzzeit aktivieren

    adb root
    adb shell cmd wifi force-low-latency-mode enabled
    
  2. Pingen Sie über die Befehlszeile des Testcomputers die IP-Adresse des Telefons an. die Adresse 3 Stunden lang im Intervall von jeweils einer Sekunde.

  3. Speichern Sie die Testausgabe in einer Textdatei und verwenden Sie eine Tabellenkalkulation oder eine Python-Datei Skript zum Erstellen eines Histogramms der Ergebnisse des Ping-Latenztests.

  4. Wiederholen Sie die Schritte 1 bis 3 bei deaktiviertem Latenzmodus.

    adb root
    adb shell cmd wifi force-low-latency-mode disabled
    
  5. Vergleichen Sie die Testergebnisse, um sicherzustellen, dass der durchschnittliche Wert für die Ping-Latenz gleich im Modus für geringe Latenzzeit reduziert.

Andere Tests

Wiederholen Sie die oben genannten Tests in verschiedenen Umgebungen. Beispiel: ob zu Hause oder im Büro.