Wi-Fi 7

搭載 Android 13 以上版本的裝置:Android 支援 Wi-Fi 7 (IEEE 802.11be) 標準本頁說明 Android Wi-Fi 7 功能,包括基準和多連結作業 (MLO)。

基準 Wi-Fi 7 功能

本節將說明 Android 13 以上版本。

裝置 Wi-Fi 7 支援

Android 架構包含 WifiManager#isWifiStandardSupported(int standard)敬上 API,應用程式可以透過 ScanResults.WIFI_STANDARD_11BE 引數,檢查裝置是否支援 Wi-Fi 7。

呼叫這個 API 時, Wi-Fi 模組 檢查 config_wifi11beSupportOverride 設定疊加層是否為 做為覆寫值,並執行下列操作:

  • 如果將疊加畫面設為 true,系統會假設裝置支援 Wi-Fi 7 無論 nl80211 的回應這項覆寫功能僅適用於 未搭載支援 Wi-Fi 7 的驅動程式的裝置製造商。
  • 如果疊加層設為 false (預設值), Wi-Fi 模組會使用 nl80211 提供的資訊 Wi-Fi 模組會要求 Wi-Fi 提供資訊,這類資訊會呼叫 nl80211 指令 NL80211_CMD_GET_WIPHY。如果 NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY 屬性位於 系統會假設裝置支援 Wi-Fi 7。

掃描的 AP Wi-Fi 7 支援

Android 架構包含 int ScanResult#getWifiStandard()敬上 API,應用程式可以呼叫這個 API 來檢查已掃描的存取點 (AP) 支援 Wi-Fi 7如果 AP 支援 Wi-Fi 7,則 API 會傳回 ScanResults.WIFI_STANDARD_11BE。 裝置不必支援 Wi-Fi 7,才能使用這個 API。

在呼叫這個 API 時,Wi-Fi 模組會檢查 EHT Capability IE 是否 所傳回的結果中。如果 EHT Capability IE 位於 掃描結果,掃描的 AP 支援 Wi-Fi 7。 Android 開放原始碼計畫 WifiTracker 類別會向使用者顯示這項支援資訊 介面。

STA 連線模式

Android 架構包含 int WifiInfo#getWifiStandard()敬上 API,可呼叫哪些應用程式來檢查目前的車站 (STA) 連線 模式為 Wi-Fi 7裝置和 STA 連線模式均會啟用 Wi-Fi 7, 連線的 AP 支援 Wi-Fi 7。如果連線模式為 Wi-Fi 7 return ScanResults.WIFI_STANDARD_11BE

呼叫 getWifiStandard 時,Wi-Fi 模組會根據 呼叫 ISupplicantStaIface#getConnectionCapabilities() HAL API。 已在 wpa_supplicant AIDL 層中實作這個 HAL API EHT Capability IE在以下期間同時位於AssocReqAssocRsp 連線設定。

聯播網選項

在 Android 13 中,網路選擇功能會使用多種 參數,決定要連線至哪個 AP。其中一項參數是 預估 AP 的處理量,是根據 ThroughputPredictor 區塊。 ThroughputPredictor 區塊會同時使用裝置和 。

在 Android 13 中,ThroughputPredictor 會使用 計算的 AP 功能如下:

  • 支援 Wi-Fi 7 (802.11be)
  • 支援 320 MHz 頻道寬度

ThroughputPredictor 邏輯中加入這些功能,可提升 使用者有機會在裝置可使用 Wi-Fi 7 的 AP 功能時,選擇這類應用程式 接著介紹網際網路通訊層 包括兩項主要的安全防護功能

Wi-Fi RTT 範圍

Android 為 EHT 前置碼和 320 MHz 通道寬度提供 API 支援 Wi-Fi RTT。這樣一來, 無論是 RTT 或 RTT 等 方塊。

HAL API

下列 HAL API 支援 Wi-Fi 7 功能,以 RTT 為準:

API

應用程式可使用下列 API 進行 Wi-Fi 7 RTT 式測距:

軟 AP

Android 支援 Soft AP 中的 Wi-Fi 7 和下列功能: 接著介紹網際網路通訊層 包括兩項主要的安全防護功能

啟動 Soft AP

Android 支援在 Wi-Fi 7 模式下啟動 Soft AP。 受 config_wifiSoftapIeee80211beSupported 疊加層規範 此外還會從 0 自動調整資源配置 您完全不必調整資源調度設定

Wi-Fi 模組會使用疊加層 config_wifiSoftapIeee80211beSupported 進行設定 傳回布林值 HwModeParams#enable80211BE IHostApd#addAccessPoint() API 呼叫。在 hostapd AIDL 層中,這個值是 用來設定 hostapd.conf 參數。

HAL API

enable80211BE敬上 hostapd HAL 中 HwModeParams 內的布林值支援 在 Wi-Fi 7 模式下啟動 Soft AP。

回報 Soft AP 資訊

Android 支援包括 Wi-Fi 7 和 320 MHz 通道寬度 所回報的 Soft AP 資訊。

HAL API

回應中的 WIFI_STANDARD_11BE 常數 Generation.aidl 使用 hostapd HAL 中的 AIDL 介面 在IHostapdCallback#onApInstanceInfoChanged()回報的ApInfo 回呼,支援回報 Soft AP 資訊。

API

應用程式可在以下位置使用方法 (系統 API) SoftApInfo敬上 回報 Soft AP 資訊。

MLO Wi-Fi 7 功能

多連結作業 (MLO) 是 Wi-Fi 7 (802.11be) 的主要功能 規格。MLO 是多連結裝置 (MLD) 的必要功能 支援 Wi-Fi 7 環境 (無論是並行或不並行執行)。

MLO 圖表

圖 1. MLO 圖表。

如圖 1 所示,AP-MLD 和 STA-MLD 都有多個 AP 或 STA 可在各個連結上執行的執行個體。每個連結都有不同的 AP 或 STA MAC 位址。 AP 或 STA 也具有 MLD MAC 位址,用於識別裝置。

android.net.wifi.MloLink敬上 代表 MLO 連結這個類別包含下列參數:

掃描的 Wi-Fi 7 AP MLO 資訊

應用程式可在 Wi-Fi 模組時,取得 Wi-Fi 7 AP MLD 的 MLO 參數 收到 ScanResult敬上 物件Android 開放原始碼計畫 WifiTracker 會在下列情況顯示 MLO 參數: 會以詳細模式執行

Wi-Fi 模組會透過以下方式收集 MLO 資訊:

  • 這個外掛程式能剖析信標內含的多連結資訊元素 (IE), 探測器的回應,以便讀取 AP MLD MAC 位址和目前的連結 ID。
  • 剖析信標或探測器中包含的減少鄰居報告 (RNR) IE 回覆,讀取聯盟連結資訊清單。

API

如要取得掃描的 AP MLO 資訊,應用程式可使用下列 API:

連線 Wi-Fi 7 AP MLO 資訊

裝置連上 Wi-Fi 7 AP-MLD 時,架構會收集 WifiInfo 物件中連線的 MLO 參數。Android 開放原始碼計畫 在詳細模式中執行時,WifiTracker 物件會顯示這項資訊。

當裝置與 AP-MLD 連線時,Wi-Fi 模組會複製 MLO。 接收來自 AP 的 ScanResult 物件資訊。接著 呼叫 ISupplicantStaIface#getConnectionMloLinksInfo() HAL API 讀取 AP 和 STA 每個連結的 MAC 位址,並更新 相關連結的狀態

API

如要取得 MLO 連線資訊,應用程式可使用下列 API:

AP-MLD 掃描

供應商軟體提供 Wi-Fi 架構,其中含有 。也就是說 架構:

  • 可能收到來自同一個 AP-MLD 的多個 ScanResults 物件 (因為 AP 可以有多個信標連結)。
  • 可能只會收到一部分的 AP 連結掃描結果 可能使 AP-MLD 沒有收到部分連結信號 韌體。

供應商軟體回報只會掃描透過無線方式接收的結果,且必須 不得根據 AP-MLD

供應商軟體必須包含基本的多重連結和 RNR IE 。如有關聯 AP 掃描結果中缺少詳細資料,廠商軟體可以傳送多重連結。 探測要求 (包含探測要求的多重連結) 元素) 中納入完整或部分的功能、參數和 含有目標 AP-MLD 的 AP 作業元素 回應影格

供應商軟體 可以觸發機器學習探測 (在探測要求影格中使用 probe req 變化版本 ML IE) 可以視需要使用

AP-MLD 網路關聯

當裝置加入 AP-MLD 網路時,供應商軟體會使用所選 AP 連結 (相關連結) 以便發出信號。供應商軟體 與裝置支援的所有或部分連結建立關聯。

成功建立關聯後,司機回報 將 ISupplicantStaIfaceCallback#onStateChanged() 替換為 AP-MLD接著,驅動程式會選取 AP-MLD 的連結 已將掃描結果回報至該連結的架構。

網路評分

搭載 Android 14 以上版本的裝置: 選取 Android Wi-Fi 網路 支援 Wi-Fi 7 MLO。因此 Android 會選擇 裝置的 Wi-Fi 網路,以 MLO 可用的連結數量為準。

為了支援 MLO,網路選擇演算法會使用下列 MLO Wi-Fi 晶片的功能:

  • STR 連結數量上限
  • 連結連結數量上限
  • 同時錶帶組合

Wi-Fi MLO 網路選項

圖 2. 選取 MLO 網路。

同步傳輸和接收 (STR) 是一種 Wi-Fi 中等爭論機制, 多重連結作業。透過不同連結之間的信號隔離就足夠了 這樣連結才能獨立運作,而且能夠 同時接收不同連結的通知STR 與舊版單曲不同 連結 (SL) STA 與傳統雙頻並行 (DBDC) STA。與 STA 相關的內容 與 STA MLD 共用一個通用傳送器序號 (SN),以及 多個連結分配到不同連結的資料傳輸空間 傳輸元件具有相同的存取類別 (AC)。

使用的 STR 連結數量上限可能與最大數量不同 晶片支援的無線電圖 2 中的 STR 上限 連結計數為 2。

下列 AIDL HAL 介面支援的 STR 連結數量上限 以及連結連結數量數量上限:

同一個電台可藉由爭用情境,在單一電台上運作多個連結 強化多連結單一無線電 (eMLSR)。多連結裝置透過 eMLSR 可以接收特定基本控制框架並執行明確的 進行頻道評估 (CCA),不過,MLD 只會對一個連結 (也就是 逐一動態追蹤。

MLD 電台可盡可能增加關聯連結的數量, 可靠性、處理量更高,延遲時間也較短 (相較於單一連結) 而在 STR 和 eMLSR 中並行運作,但前提是 方塊。圖 2 中的連結數量上限為 3 個。

下列 AIDL HAL 介面支援的連結連結數量上限 能力:

同時錶帶組合

架構會查詢方塊,取得允許的無線電組合 (透過 IWifiChip.aidl AIDL 介面),可同時運作。從此 資訊架構會衍生出可能同時使用的頻帶組合。 下列為同時的頻帶組合 (GHz) 範例:

  • 2.4
  • 5
  • 6
  • 2.4 x 5
  • 2.4 x 6
  • 5 x 6 吋

下列 AIDL HAL 介面可同時支援多個無線電組合:

聯播網選項

網路選擇 (MLO) 期間,候選人清單會按照 相同的 MLD MAC 位址。預測的多連結處理量最高分數為 計算依據為 STR 連結數量上限以及同時 晶片支援的頻帶組合。如果候選廣告有多重連結功能 方塊支援 STR,則預測的處理量分數會替換為 多連結設有的處理量分數這提升了 MLO 候選人 選取網路時

加入 AP-MLD 網路時,架構會根據 SSID 選項執行選取作業 瞭解供應商回報在 ScanResults 物件中收到的資訊 軟體架構選擇 SSID 時,供應商軟體 負責為最佳 AP (或 AP 連結) 選取 BSSID 。

裝置 STA MAC 位址處理

本節說明裝置 STA MAC 位址 (MLD MAC 位址) 的方式 和個別連結的 STA MAC 位址) 都是由 Google 代管

MLD MAC 位址

Wi-Fi 架構會管理裝置的 MLD MAC 位址。MLD MAC 位址的處理方式,與非 MLD 裝置本身 MAC 位址的處理方式相同。 MAC 位址可以是隨機的 MAC 位址,或硬體佈建的 MAC 根據使用者選擇提供適當的地址MLD MAC 位址是由架構設定 使用 IWifiStaIface#setMacAddress() HAL API

供應商軟體會管理每個連結的執行個體 STA MAC 位址。如果 裝置與 AP 建立關聯,供應商軟體會指派執行個體 MAC 每個相關聯的連結位址。

供應商軟體會根據演算法指派每個連結的 MAC 位址。 演算法必須可重複,並包含下列函數:

  • 由 Wi-Fi 架構設定的 STA-MLD MAC 位址。
  • 連結 ID (從 AP 收到)

換句話說,如果架構重複使用相同的 MLD MAC 位址,供應商 必須重複使用相同的個別執行個體 MAC 位址,反之亦然。這個 確保架構產生的 STA-MLD 位址持續存在 SSID,每個 STA MAC 位址也是永久連線。

以下是每個連結 STA MAC 位址指派作業的演算法範例 (廠商可以導入任何符合演算法條件的演算法):

  • 八位元 0:確認已設定本機管理的位元
  • 10 月 1 日至 4 日:與 STA-MLD MAC 位址相同
  • 10 月 5 日:每個 STA = (STA-MLD + 連結 ID + 1) MOD (256)

供應商韌體可執行連結切換,並管理省電狀態 即可啟用/停用連結 (不需從 Wi-Fi 輸入來源) 這個架構的重點在於

Wi-Fi 架構不會在連結狀態發生時發出通知 已變更。

省電狀態管理

Wi-Fi 架構預設會啟用省電功能狀態。在 省電模式時,廠商韌體會管理節約耗電量模式 根據流量模式與連結啟用狀況決定個別連結的狀態 以及停用決定

然而,Wi-Fi 架構可能會強制在 呼叫 ISupplicantStaIface::setPowerSave(false) HAL API如果 該架構已停用省電模式,供應商韌體必須 至少一個有效連結 (已停用省電功能)。在這個狀態下 系統會決定要設定哪個連結。

資料路徑

這說明瞭處理上行連結和 下載流量

韌體會依據內部 IP 位址,將流量上連結轉送至一或多個連結 。供應商韌體會決定何時 執行負載平衡 根據流量模式的重複或匯總流量。建議做法 在下列情況中,韌體會重複流量至多個連結:

  • 透過 IWifiChip#setLatencyMode() 設定低延遲模式時 HAL API。
  • 出現使用者優先順序 6 和 7 的流量時。

韌體必須替換 MAC 中每個 STA MAC 位址的 (目的地) 標頭,以及 MLD-STA MAC 和 (來源) per-AP MAC 輸入含有 MLD-AP MAC 位址的 MAC 標頭位址。韌體必須執行 會先替換這個 MAC 位址,然後再通過 APF 篩選器 APF 篩選器指令有根據 MLD MAC 位址套用篩選器。這個平台提供 這個 APF 篩選器,篩選 AP-MLD 的所有連結。

並行

並行情境 (使用無線電來設計新介面) 必須符合下列條件: 優先順序高於同一介面連結的多個無線電。 無論發生什麼情況,並行情境也應優先採用 MLO 首先。在單一介面使用多個連結是隨機的做法, 只有在下列情況中,才能使用多個連結:

  • 依據負載平衡的韌體決策,必須採用 MLO。 匯總或複製
  • MLO 可以使用,這表示其他介面不需要無線電。

若是搭載 Android 14 以上版本的裝置, Wi-Fi 7 AP 宣布暫時停用其中一個連結, 信標、探測回應與 Wi-Fi 7 監測站繼續與 使用先前設定的其餘連結,且無需執行其他連結 。

搭載 Android 13 以下版本的裝置:使用 Wi-Fi 架構不支援在連結狀態發生時接收通知 因 TID 與連結對應而變更 (即使相關連結未連結至) 也就是 TID。

Wi-Fi 配置會通知 TID 連結對應的 Wi-Fi 架構 會透過下列 AIDL 介面進行變更:

應用程式可以使用 並納入下列 API:

搭載 Android 14 以上版本的裝置: 該公司可透過 API 取得 TID 連結地圖協商功能, 以及 AP

方塊功能

下列介面支援用於將 TID 連結對應的方塊功能 協商。

AIDL HAL

TID 與連結對應協商的 AIDL 介面位於 FeatureSetMask 位置:hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidlT2LM_NEGOTIATION = 1 << 8 功能表示方塊支援 TID 連結對應。 API

AP 功能

下列介面支援將 AP 功能對應至 TID 連結 協商。

AIDL HAL

架構會同時向供應者查詢 AP 功能和 以及目前連線能力

API

連結層統計資料包括 Wi-Fi 連結的專屬詳細資料,例如 RSSI、各種 TX 以及 RX 封包計數器和無線電統計資料Wi-Fi 架構會定期輪詢 連結層統計資料和 RSSI,以選取最佳網路或評估品質 保持連線狀態搭載 Android 的裝置 14 或以上,連結層統計資料包括 多連結支援為支援 Wi-Fi 7,Android 同時支援兩個連結層中的 MLO 包括統計資料和訊號輪詢

您可以在下列連結層 AIDL 介面找到連結專屬的統計資料:

android.net.wifi.WifiManager#addOnWifiUsabilityStatsListener()敬上 系統 API 會監聽所有連結層統計資料。這個架構會定期叫用 這個 API 即可更新 Wi-Fi 可用性統計資料。

連結專屬 API 適用於 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)

如要查詢可用的連結 ID,應用程式可以呼叫 android.net.wifi.WifiUsabilityStatsEntry#getLinkIds()敬上 方法。

用於管理 API android.net.wifi.WifiUsabilityStatsEntry敬上 則會傳回 MLO 連線的匯總統計資料。 以下是匯總條件:

  • 下列匯總封包統計資料使用個別連結統計資料的總和:

    public long getTotalTxSuccess()
    public long getTotalTxRetries()
    public long getTotalTxBad()
    public long getTotalRxSuccess()
    public int getRxLinkSpeedMbps()
    
  • 下列統計資料使用來自 RSSI 最高連結的資料:

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

針對搭載 Android 13 的裝置,連結圖層統計資料 可以不要考量 在單一介面中使用多個連結。為支援 MLO (供應商軟體) 回報 LinkLayerStats 時必須套用下列匯總邏輯 透過 IWifi# getLinkLayerStats_1_6() HAL API最好的連結就是 連結至最高的 RSSI

  • StaLinkLayerStats.iface.beaconRx:回報信標數量,以求最佳結果 介面所用的連結。
  • StaLinkLayerStats.iface.avgRssiMgmt:檢舉「avgRssiMgmt」: 最適合介面的連結
  • StaLinkLayerStats.iface.wmeXxPktStats (Xx = Vo、Vi、Be,Bk):報表 介面連結的匯總封包統計資料 (總計)。
  • StaLinkLayerStats.iface.wmeXxContentionTimeStats (Xx = Vo、Vi, Be,Bk):回報爭用時間統計資料,表示網站上 介面 (最爭用時間統計資料)。

重複使用 Wi-Fi 7 存取點的連結後,AP ,可透過 MLO 連結重新設定,宣布移除連結。站點 維持與 AP 之間的順暢連線,而不需重新連結 其他剩餘連結。

onMloLinksInfoChanged敬上 AIDL 介面,位於 Wi-Fi 路由器 ISupplicantStaIfaceCallback.aidl、 支援重新設定連結 (移除連結的 AP)。

Wi-Fi 架構處理移除連結時,系統會設定連結狀態 到 MLO_LINK_STATE_UNASSOCIATED。 接著,架構會 ConnectivityManager.NetworkCallback#onCapabilitiesChanged()敬上 連結狀態變更

WifiInfo#getAffiliatedMloLinks敬上 方法會傳回關聯的 MLO 連結。 MloLink#getState敬上 方法會傳回連結狀態。如果連結遭到移除,則傳回的連結 狀態為 MLO_LINK_STATE_UNASSOCIATED

Chip MLO 策略

MLO 可讓裝置透過多個 Wi-Fi 連結,以相同的方式傳送及接收資料 這樣就能針對有特定需求的應用程式提升效能 例如低延遲、高頻寬和低功耗晶片供應商可以開發 演算法。

具有特殊權限的應用程式可以使用 setMloMode敬上 Wifimanager 中的方法,然後設定 下列模式:

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

架構會使用 setMloMode敬上 位於 IWifiChip AIDL 介面 設定 MLO 模式