Wi-Fi 7

āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ ā§§ā§Š āĻŦāĻž āϤāĻžāϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ­āĻžāĻ°ā§āϏāύ āϚāĻžāϞāĻŋāϤ āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ, āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ ā§­ (āφāχāχāχāχ ā§Žā§Ļ⧍.ā§§ā§§āĻŦāĻŋ) āĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤ āĻāχ āĻĒ⧃āĻˇā§āĻ āĻžāϝāĻŧ āĻŦ⧇āϏāϞāĻžāχāύ āĻāĻŦāĻ‚ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ™ā§āĻ• āĻ…āĻĒāĻžāϰ⧇āĻļāύ (āĻāĻŽāĻāϞāĻ“) āϏāĻš āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ ā§­ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϗ⧁āϞāĻŋ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ⧇āϛ⧇āĨ¤

āĻŦ⧇āϏāϞāĻžāχāύ āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ ā§­ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ

āĻāχ āĻŦāĻŋāĻ­āĻžāĻ—āϟāĻŋ āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ ā§§ā§Š āĻāĻŦāĻ‚ āωāĻšā§āϚāϤāϰ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻŦ⧇āϏāϞāĻžāχāύ āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ ā§­ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϗ⧁āϞāĻŋ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰ⧇āĨ¤

āĻĄāĻŋāĻ­āĻžāχāϏ āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ ā§­ āϏāĻžāĻĒā§‹āĻ°ā§āϟ

āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ WifiManager#isWifiStandardSupported(int standard) API āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āϰāϝāĻŧ⧇āϛ⧇, āϝāĻž āĻ…ā§āϝāĻžāĻĒāϗ⧁āϞāĻŋ ScanResults.WIFI_STANDARD_11BE āφāĻ°ā§āϗ⧁āĻŽā§‡āĻ¨ā§āϟ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ•āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āϝāĻžāϤ⧇ āϕ⧋āύāĻ“ āĻĄāĻŋāĻ­āĻžāχāϏ Wi-Fi 7 āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āĻ•āĻŋāύāĻž āϤāĻž āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤

āϝāĻ–āύ āĻāχ API āĻ•āϞ āĻ•āϰāĻž āĻšāϝāĻŧ, āϤāĻ–āύ Wi-Fi āĻŽāĻĄāĻŋāωāϞ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āϝ⧇ config_wifi11beSupportOverride āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻ“āĻ­āĻžāϰāϞ⧇ āĻ“āĻ­āĻžāϰāϰāĻžāχāĻĄ āĻšāĻŋāϏ⧇āĻŦ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāĻšā§āϛ⧇ āĻ•āĻŋāύāĻž āĻāĻŦāĻ‚ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻžāϜāϗ⧁āϞāĻŋ āĻ•āϰ⧇:

  • āϝāĻĻāĻŋ āĻ“āĻ­āĻžāϰāϞ⧇āϟāĻŋ true āϏ⧇āϟ āĻ•āϰāĻž āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ nl80211 āĻĨ⧇āϕ⧇ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻž āύāĻŋāĻ°ā§āĻŦāĻŋāĻļ⧇āώ⧇ āĻĄāĻŋāĻ­āĻžāχāϏāϟāĻŋ Wi-Fi 7 āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āĻŦāϞ⧇ āϧāϰ⧇ āύ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧāĨ¤ āĻāχ āĻ“āĻ­āĻžāϰāϰāĻžāχāĻĄāϟāĻŋ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϏ⧇āχ āĻĄāĻŋāĻ­āĻžāχāϏ āύāĻŋāĻ°ā§āĻŽāĻžāϤāĻžāĻĻ⧇āϰ āϜāĻ¨ā§āϝ āĻ•āĻžāĻ°ā§āϝāĻ•āϰ āϝāĻžāĻĻ⧇āϰ Wi-Fi 7 āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āĻāĻŽāύ āĻĄā§āϰāĻžāχāĻ­āĻžāϰ āύ⧇āχāĨ¤
  • āϝāĻĻāĻŋ āĻ“āĻ­āĻžāϰāϞ⧇āϟāĻŋ false (āĻĄāĻŋāĻĢāĻ˛ā§āϟ āĻŽāĻžāύ) āϤ⧇ āϏ⧇āϟ āĻ•āϰāĻž āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ Wi-Fi āĻŽāĻĄāĻŋāωāϞ nl80211 āĻĨ⧇āϕ⧇ āϤāĻĨā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ Wi-Fi āĻŽāĻĄāĻŋāωāϞāϟāĻŋ wificond āĻĨ⧇āϕ⧇ āϤāĻĨā§āϝ⧇āϰ āϜāĻ¨ā§āϝ āĻ…āύ⧁āϰ⧋āϧ āĻ•āϰ⧇, āϝāĻž nl80211 āĻ•āĻŽāĻžāĻ¨ā§āĻĄ NL80211_CMD_GET_WIPHY āĻ•āϞ āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋ NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY āĻ…ā§āϝāĻžāĻŸā§āϰāĻŋāĻŦāĻŋāωāϟāϟāĻŋ āĻĄā§āϰāĻžāχāĻ­āĻžāϰ⧇āϰ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϝāĻŧ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āϧāϰ⧇ āύ⧇āĻ“āϝāĻŧāĻž āĻšāϝāĻŧ āϝ⧇ āĻĄāĻŋāĻ­āĻžāχāϏāϟāĻŋ Wi-Fi 7 āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤

āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻ•āϰāĻž AP Wi-Fi 7 āϏāĻžāĻĒā§‹āĻ°ā§āϟ

āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ int ScanResult#getWifiStandard() API āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āϰāϝāĻŧ⧇āϛ⧇, āϝ⧇āϟāĻŋ āĻ…ā§āϝāĻžāĻĒāϗ⧁āϞāĻŋ āĻ•āϞ āĻ•āϰ⧇ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āϝ⧇ āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻ•āϰāĻž āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ (AP) Wi-Fi 7 āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āĻ•āĻŋāύāĻžāĨ¤ āϝāĻĻāĻŋ AP Wi-FI 7 āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇, āϤāĻžāĻšāϞ⧇ API ScanResults.WIFI_STANDARD_11BE āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤ āĻāχ API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāĻĒāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āĻĄāĻŋāĻ­āĻžāχāϏāϟāĻŋāϤ⧇ Wi-Fi 7 āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰāĻžāϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āύ⧇āχāĨ¤

āϝāĻ–āύ āĻāχ API āĻ•āϞ āĻ•āϰāĻž āĻšāϝāĻŧ, āϤāĻ–āύ Wi-Fi āĻŽāĻĄāĻŋāωāϞāϟāĻŋ āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇ āϝ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ¸ā§āĻ•ā§āϝāĻžāύ⧇āϰ āĻĢāϞāĻžāĻĢāϞ⧇ EHT Capability IE āφāϛ⧇ āĻ•āĻŋāύāĻžāĨ¤ āϝāĻĻāĻŋ EHT Capability IE āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻĢāϞāĻžāĻĢāϞ⧇ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻ•āϰāĻž AP Wi-Fi 7 āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤ AOSP WifiTracker āĻ•ā§āϞāĻžāϏāϟāĻŋ āĻ­āĻžāĻ°ā§āĻŦā§‹āϏ āĻŽā§‹āĻĄā§‡ āϚāϞāĻžāĻ•āĻžāϞ⧀āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻāχ āϏāĻŽāĻ°ā§āĻĨāύ āϤāĻĨā§āϝ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰ⧇āĨ¤

STA āϏāĻ‚āϝ⧋āĻ— āĻŽā§‹āĻĄ

āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ int WifiInfo#getWifiStandard() API āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āϰāϝāĻŧ⧇āϛ⧇, āϝ⧇āϟāĻŋ āĻ…ā§āϝāĻžāĻĒāϗ⧁āϞāĻŋ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āĻ¸ā§āĻŸā§‡āĻļāύ (STA) āϏāĻ‚āϝ⧋āĻ— āĻŽā§‹āĻĄāϟāĻŋ Wi-Fi 7 āĻ•āĻŋāύāĻž āϤāĻž āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ•āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻĄāĻŋāĻ­āĻžāχāϏ āĻāĻŦāĻ‚ āϏāĻ‚āϝ⧁āĻ•ā§āϤ AP āωāĻ­āϝāĻŧāχ Wi-Fi 7 āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰāϞ⧇ STA āϏāĻ‚āϝ⧋āĻ— āĻŽā§‹āĻĄāϟāĻŋ Wi-Fi 7 āĻšāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āϏāĻ‚āϝ⧋āĻ— āĻŽā§‹āĻĄ Wi-Fi 7 āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ API ScanResults.WIFI_STANDARD_11BE āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤

āϝāĻ–āύ getWifiStandard āĻ•āϞ āĻ•āϰāĻž āĻšāϝāĻŧ, āϤāĻ–āύ Wi-Fi āĻŽāĻĄāĻŋāωāϞ ISupplicantStaIface#getConnectionCapabilities() HAL API āĻ•āϞ āĻ•āϰ⧇ āĻŽā§‹āĻĄ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇āĨ¤ wpa_supplicant AIDL āĻ¸ā§āϤāϰ⧇ āĻāχ HAL API āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āϏāĻ‚āϝ⧋āĻ— āϏ⧇āϟāφāĻĒ⧇āϰ āϏāĻŽāϝāĻŧ EHT Capability IE AssocReq āĻāĻŦāĻ‚ AssocRsp āωāĻ­āϝāĻŧ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇āχ āφāϛ⧇ āĻ•āĻŋāύāĻž āϤāĻž āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇āĨ¤

āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ

āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ ā§§ā§Š-āϤ⧇, āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āϕ⧋āύ AP-āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϤāĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰāϤ⧇ āĻŦ⧇āĻļ āĻ•āϝāĻŧ⧇āĻ•āϟāĻŋ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻšāϞ AP-āĻāϰ āφāύ⧁āĻŽāĻžāύāĻŋāĻ• āĻĨā§āϰ⧁āĻĒ⧁āϟ, āϝāĻž ThroughputPredictor āĻŦā§āϞāĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻ…āύ⧁āĻŽāĻžāύ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ ThroughputPredictor āĻŦā§āϞāĻ• āĻĄāĻŋāĻ­āĻžāχāϏ āĻāĻŦāĻ‚ āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻ•āϰāĻž AP āωāĻ­āϝāĻŧ⧇āϰ PHY āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤

āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ ā§§ā§Š-āϤ⧇, ThroughputPredictor āϤāĻžāϰ āĻ—āĻŖāύāĻžāϝāĻŧ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ AP āĻ•ā§āώāĻŽāϤāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇:

  • Wi-Fi 7 (802.11be) āĻāϰ āϏāĻžāĻĒā§‹āĻ°ā§āϟ
  • ā§Šā§¨ā§Ļ āĻŽā§‡āĻ—āĻžāĻšāĻžāĻ°ā§āϟāϜ āĻšā§āϝāĻžāύ⧇āϞ āĻĒā§āϰāĻ¸ā§āĻĨ⧇āϰ āϏāĻŽāĻ°ā§āĻĨāύ

ThroughputPredictor āϞāϜāĻŋāϕ⧇ āĻāχ āĻ•ā§āώāĻŽāϤāĻžāϗ⧁āϞāĻŋ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰāϞ⧇ āĻĄāĻŋāĻ­āĻžāχāϏāϟāĻŋ āϝāĻ–āύ āĻāχ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āϤāĻ–āύ Wi-Fi 7 āϏāĻ•ā§āώāĻŽ AP āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻžāϰ āϏāĻŽā§āĻ­āĻžāĻŦāύāĻž āĻŦ⧃āĻĻā§āϧāĻŋ āĻĒāĻžāϝāĻŧāĨ¤

āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ āφāϰāϟāĻŋāϟāĻŋ-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āϰ⧇āĻžā§āϜāĻŋāĻ‚

āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ EHT āĻĒā§āϰāĻŋāĻ…ā§āϝāĻžāĻŽā§āĻŦāϞ⧇āϰ āϜāĻ¨ā§āϝ API āϏāĻŽāĻ°ā§āĻĨāύ āĻāĻŦāĻ‚ Wi-Fi RTT-āĻāϰ āϜāĻ¨ā§āϝ 320 MHz āĻšā§āϝāĻžāύ⧇āϞ āĻĒā§āϰāĻ¸ā§āĻĨ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ āϚāĻŋāĻĒ āĻĻā§āĻŦāĻžāϰāĻž āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ āĻšāϞ⧇ RTT-āϤ⧇ Wi-Fi 7 āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āĻ•ā§āώāĻŽāϤāĻžāϰ āϏāĻŽāĻ°ā§āĻĨāύ āϏāĻ•ā§āώāĻŽ āĻ•āϰ⧇āĨ¤

HAL API āϗ⧁āϞāĻŋ

āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ HAL API āϗ⧁āϞāĻŋ RTT-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āϰ⧇āĻžā§āϜāĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ Wi-Fi 7 āĻ•ā§āώāĻŽāϤāĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇:

āĻāĻĒāĻŋāφāχ

āĻ…ā§āϝāĻžāĻĒāϗ⧁āϞāĻŋ Wi-Fi 7 RTT-āĻ­āĻŋāĻ¤ā§āϤāĻŋāĻ• āϰ⧇āĻžā§āϜāĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ API āϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇:

āϏāĻĢāϟ āĻāĻĒāĻŋ

āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ āϏāĻĢāϟ āĻāĻĒāĻŋāϤ⧇ āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ ā§­ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āĻāĻŦāĻ‚ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝāϗ⧁āϞāĻŋ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤

āϏāĻĢāϟ āĻāĻĒāĻŋ āĻļ⧁āϰ⧁ āĻ•āϰ⧁āύ

āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ ā§­ āĻŽā§‹āĻĄā§‡ āϏāĻĢāϟ āĻāĻĒāĻŋ āϚāĻžāϞ⧁ āĻ•āϰāĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤ āĻāϟāĻŋ config_wifiSoftapIeee80211beSupported āĻ“āĻ­āĻžāϰāϞ⧇ āĻ•āύāĻĢāĻŋāĻ—āĻžāϰ⧇āĻļāύ āĻĻā§āĻŦāĻžāϰāĻž āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŋāϤ āĻšāϝāĻŧāĨ¤

Wi-Fi āĻŽāĻĄāĻŋāωāϞāϟāĻŋ IHostApd#addAccessPoint() API āĻ•āϞ⧇ āĻŦ⧁āϞāĻŋāϝāĻŧāĻžāύ HwModeParams#enable80211BE āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻ“āĻ­āĻžāϰāϞ⧇ config_wifiSoftapIeee80211beSupported āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ hostapd AIDL āĻ¸ā§āϤāϰ⧇, hostapd.conf āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻāχ āĻŽāĻžāύāϟāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

HAL API āϗ⧁āϞāĻŋ

hostapd HAL-āĻāϰ HwModeParams āĻ enable80211BE āĻŦ⧁āϞāĻŋāϝāĻŧāĻžāύ Wi-Fi 7 āĻŽā§‹āĻĄā§‡ Soft AP āĻļ⧁āϰ⧁ āĻ•āϰāϤ⧇ āϏāĻšāĻžāϝāĻŧāϤāĻž āĻ•āϰ⧇āĨ¤

āϏāĻĢāϟ āĻāĻĒāĻŋ āϤāĻĨā§āϝ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧁āύ

āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻž āϏāĻĢāϟ āĻāĻĒāĻŋ āϤāĻĨā§āϝ⧇ āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ ā§­ āĻāĻŦāĻ‚ ā§Šā§¨ā§Ļ āĻŽā§‡āĻ—āĻžāĻšāĻžāĻ°ā§āϟāϜ āĻšā§āϝāĻžāύ⧇āϞ āĻĒā§āϰāĻ¸ā§āĻĨ⧇āϰ āϤāĻĨā§āϝ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄā§‡ API āϏāĻŽāĻ°ā§āĻĨāύ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āϰāϝāĻŧ⧇āϛ⧇āĨ¤

HAL API āϗ⧁āϞāĻŋ

hostapd HAL-āĻāϰ Generation.aidl AIDL āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ WIFI_STANDARD_11BE āĻ§ā§āϰ⧁āĻŦāĻ•, āϝāĻž IHostapdCallback#onApInstanceInfoChanged() āĻ•āϞāĻŦā§āϝāĻžāϕ⧇ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻž ApInfo āϤ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤ āĻšāϝāĻŧ, Soft AP āϤāĻĨā§āϝ āϰāĻŋāĻĒā§‹āĻ°ā§āϟāĻŋāĻ‚ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤

āĻāĻĒāĻŋāφāχ

āϏāĻĢāϟ āĻāĻĒāĻŋ āϤāĻĨā§āϝ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻ…ā§āϝāĻžāĻĒāϗ⧁āϞāĻŋ SoftApInfo āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻĒāĻĻā§āϧāϤāĻŋāϗ⧁āϞāĻŋ (āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻāĻĒāĻŋāφāχ) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

  • SoftApInfo#getWifiStandard() : Wi-Fi 7 āĻŽā§‹āĻĄā§‡ āϏāĻĢāϟ āĻāĻĒāĻŋ āϚāĻžāϞ⧁ āĻĨāĻžāĻ•āϞ⧇ ScanResults.WIFI_STANDARD_11BE āĻĢ⧇āϰāϤ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤
  • SoftApInfo#getBandwidth() : ā§Šā§¨ā§Ļ MHz āĻšā§āϝāĻžāύ⧇āϞ⧇āϰ āĻĒā§āϰāĻ¸ā§āĻĨ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϞ⧇ SoftApInfo#CHANNEL_WIDTH_320MHZ āϰāĻŋāϟāĻžāĻ°ā§āύ āĻ•āϰ⧇āĨ¤

MLO Wi-Fi 7 āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ

Wi-Fi 7 (802.11be) āĻ¸ā§āĻĒ⧇āϏāĻŋāĻĢāĻŋāϕ⧇āĻļāύ⧇āϰ āĻĒā§āϰāϧāĻžāύ āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ āĻšāϞ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ‚āĻ• āĻ…āĻĒāĻžāϰ⧇āĻļāύ (MLO)āĨ¤ Wi-Fi 7-āĻ āϚāϞāĻŽāĻžāύ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ‚āĻ• āĻĄāĻŋāĻ­āĻžāχāϏ (MLD) āĻāϰ āϜāĻ¨ā§āϝ MLO āĻāĻ•āϟāĻŋ āĻŦāĻžāĻ§ā§āϝāϤāĻžāĻŽā§‚āϞāĻ• āĻŦ⧈āĻļāĻŋāĻˇā§āĻŸā§āϝ, āϤāĻž āϏ⧇ āĻāĻ•āχ āϏāĻžāĻĨ⧇ āĻšā§‹āĻ• āĻŦāĻž āύāĻž āĻšā§‹āĻ•āĨ¤

āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ‚āĻ• āĻ…āĻĒāĻžāϰ⧇āĻļāύ (MLO) āϚāĻŋāĻ¤ā§āϰāĻŋāϤ āĻ•āϰ⧇ āĻāĻŽāύ āϚāĻŋāĻ¤ā§āϰ āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ AP-MLD (āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻĒāϝāĻŧ⧇āĻ¨ā§āϟ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ‚āĻ• āĻĄāĻŋāĻ­āĻžāχāϏ) āĻāĻŦāĻ‚ āĻāĻ•āϟāĻŋ STA-MLD (āĻ¸ā§āĻŸā§‡āĻļāύ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ‚āĻ• āĻĄāĻŋāĻ­āĻžāχāϏ) āωāĻ­āϝāĻŧ⧇āϰāχ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϞāĻŋāĻ™ā§āϕ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ āϚāϞāϛ⧇, āĻĒā§āϰāϤāĻŋāϟāĻŋāϰ āĻāĻ•āϟāĻŋ āĻĒ⧃āĻĨāĻ• MAC āĻ āĻŋāĻ•āĻžāύāĻž āĻāĻŦāĻ‚ āĻĄāĻŋāĻ­āĻžāχāϏ āϏāύāĻžāĻ•ā§āϤāĻ•āϰāϪ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ MLD MAC āĻ āĻŋāĻ•āĻžāύāĻž āϰāϝāĻŧ⧇āϛ⧇āĨ¤

āϚāĻŋāĻ¤ā§āϰ ā§§. āĻāĻŽāĻāϞāĻ“ āĻĄāĻžāϝāĻŧāĻžāĻ—ā§āϰāĻžāĻŽāĨ¤

āϚāĻŋāĻ¤ā§āϰ ā§§-āĻ āĻĻ⧇āĻ–āĻžāύ⧋ āĻšāϝāĻŧ⧇āϛ⧇, AP-MLD āĻāĻŦāĻ‚ STA-MLD āωāĻ­āϝāĻŧ⧇āϰāχ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϞāĻŋāĻ™ā§āϕ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• AP āĻŦāĻž STA āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ āϚāϞāϛ⧇āĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϞāĻŋāĻ™ā§āϕ⧇āϰ āĻāĻ•āϟāĻŋ āĻĒ⧃āĻĨāĻ• AP āĻŦāĻž STA MAC āĻ āĻŋāĻ•āĻžāύāĻž āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āĻĄāĻŋāĻ­āĻžāχāϏāϟāĻŋ āϏāύāĻžāĻ•ā§āϤ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ AP āĻŦāĻž STA-āĻāϰ āĻāĻ•āϟāĻŋ MLD MAC āĻ āĻŋāĻ•āĻžāύāĻžāĻ“ āϰāϝāĻŧ⧇āϛ⧇āĨ¤

android.net.wifi.MloLink āĻ•ā§āϞāĻžāϏāϟāĻŋ MLO āϞāĻŋāĻ™ā§āĻ•āϕ⧇ āĻĒā§āϰāϤāĻŋāύāĻŋāϧāĻŋāĻ¤ā§āĻŦ āĻ•āϰ⧇āĨ¤ āĻāχ āĻ•ā§āϞāĻžāϏ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāϗ⧁āϞāĻŋ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āϰāϝāĻŧ⧇āϛ⧇:

  • int getLinkId() : AP MLD āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻŋāĻœā§āĻžāĻžāĻĒāύāĻŋāϤ āϞāĻŋāĻ™ā§āĻ• āφāχāĻĄāĻŋāĨ¤
  • MacAddress getApMacAddress() : AP MAC āĻ āĻŋāĻ•āĻžāύāĻžāĨ¤ āϏ⧇āχ āϞāĻŋāĻ™ā§āϕ⧇āϰ āϜāĻ¨ā§āϝ AP āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ⧇āϰ BSSIDāĨ¤
  • MacAddress getStaMacAddress() : STA MAC āĻ āĻŋāĻ•āĻžāύāĻžāĨ¤ āϞāĻŋāĻ™ā§āϕ⧇ STA āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧāĻ­āĻžāĻŦ⧇ āύāĻŋāĻ°ā§āϧāĻžāϰāĻŋāϤ MAC āĻ āĻŋāĻ•āĻžāύāĻžāĨ¤
  • int getChannel() : āϞāĻŋāĻ™ā§āĻ• āĻšā§āϝāĻžāύ⧇āϞāĨ¤ āϞāĻŋāĻ™ā§āϕ⧇āϰ āĻšā§āϝāĻžāύ⧇āϞ āύāĻŽā§āĻŦāϰāĨ¤
  • int getBand() : āϞāĻŋāĻ™ā§āĻ• āĻŦā§āϝāĻžāĻ¨ā§āĻĄāĨ¤ āϞāĻŋāĻ™ā§āϕ⧇āϰ āĻŦā§āϝāĻžāĻ¨ā§āĻĄāĨ¤
  • int getState() : āϞāĻŋāĻ™ā§āĻ• āĻ…āĻŦāĻ¸ā§āĻĨāĻžāĨ¤ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāϗ⧁āϞāĻŋāϰ āĻŽāĻ§ā§āϝ⧇ āĻāĻ•āϟāĻŋ āĻšāϤ⧇ āĻĒāĻžāϰ⧇:

    • MLO_LINK_STATE_INVALID : āĻ…āĻŦ⧈āϧāĨ¤ āφāϰāĻŽā§āĻ­āĻ•āϰāĻŖ āĻāĻŦāĻ‚ āĻ¤ā§āϰ⧁āϟāĻŋāϰ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻŦā§āϝāĻŦāĻšā§ƒāϤāĨ¤
    • MLO_LINK_STATE_UNASSOCIATED : āĻ…āϏāĻ‚āϝ⧁āĻ•ā§āϤāĨ¤ āϞāĻŋāĻ™ā§āĻ•āϟāĻŋ āϕ⧋āύāĻ“ AP-āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āύāϝāĻŧāĨ¤
    • MLO_LINK_STATE_IDLE : āύāĻŋāĻˇā§āĻ•ā§āϰāĻŋāϝāĻŧāĨ¤ āϞāĻŋāĻ™ā§āĻ•āϟāĻŋ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āύāϝāĻŧ (āϞāĻŋāĻ™ā§āĻ•āϟāĻŋāϤ⧇ āϕ⧋āύāĻ“ āĻŸā§āĻ°ā§āϝāĻžāĻĢāĻŋāĻ• āĻļāύāĻžāĻ•ā§āϤāĻ•āĻžāϰ⧀ (TID) āĻŽā§āϝāĻžāĻĒ āĻ•āϰāĻž āύ⧇āχ)āĨ¤
    • MLO_LINK_STATE_ACTIVE : āϏāĻ•ā§āϰāĻŋāϝāĻŧāĨ¤ āϞāĻŋāĻ™ā§āĻ•āϟāĻŋ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻāĻŦāĻ‚ āϏāĻ•ā§āϰāĻŋāϝāĻŧ (āĻ…āĻ¨ā§āϤāϤ āĻāĻ•āϟāĻŋ TID āϞāĻŋāĻ™ā§āĻ•āϟāĻŋāϤ⧇ āĻŽā§āϝāĻžāĻĒ āĻ•āϰāĻž āφāϛ⧇)āĨ¤ āĻāĻ•āϟāĻŋ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āϞāĻŋāĻ™ā§āĻ• āĻĒāĻžāĻ“āϝāĻŧāĻžāϰ āϏ⧇āĻ­ āĻŽā§‹āĻĄā§‡ āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇ āĻ•āĻžāϰāĻŖ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āϞāĻŋāĻ™ā§āĻ•āϟāĻŋāϰ āĻĒāĻžāĻ“āϝāĻŧāĻžāϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĒāĻ°ā§āϝāĻŦ⧇āĻ•ā§āώāĻŖ āĻ•āϰ⧇ āύāĻžāĨ¤

āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻ•āϰāĻž Wi-Fi 7 AP MLO āϤāĻĨā§āϝ

āϝāĻ–āύ Wi-Fi āĻŽāĻĄāĻŋāωāϞāϟāĻŋ AP-MLD āĻĨ⧇āϕ⧇ āĻāĻ•āϟāĻŋ ScanResult āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇, āϤāĻ–āύ āĻ…ā§āϝāĻžāĻĒāϗ⧁āϞāĻŋ Wi-Fi 7 AP MLD-āĻāϰ āϜāĻ¨ā§āϝ MLO āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāϗ⧁āϞāĻŋ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ AOSP WifiTracker āĻ­āĻžāĻ°ā§āĻŦā§‹āϏ āĻŽā§‹āĻĄā§‡ āϚāϞāĻžāĻ•āĻžāϞ⧀āύ MLO āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰāϗ⧁āϞāĻŋ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰ⧇āĨ¤

āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ āĻŽāĻĄāĻŋāωāϞ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•āĻžāϜ āĻ•āϰ⧇ MLO āϤāĻĨā§āϝ āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰ⧇:

  • AP MLD MAC āĻ āĻŋāĻ•āĻžāύāĻž āĻāĻŦāĻ‚ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āϞāĻŋāĻ™ā§āĻ• āφāχāĻĄāĻŋ āĻĒāĻĄāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āĻŦā§€āĻ•āύ āĻŦāĻž āĻĒā§āϰ⧋āĻŦ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϝāĻŧ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ™ā§āĻ• āϤāĻĨā§āϝ āωāĻĒāĻžāĻĻāĻžāύ (IE) āĻĒāĻžāĻ°ā§āϏ āĻ•āϰ⧇āĨ¤
  • āĻ…ā§āϝāĻžāĻĢāĻŋāϞāĻŋāϝāĻŧ⧇āϟ āϞāĻŋāĻ™ā§āϕ⧇āϰ āϤāĻĨā§āϝ⧇āϰ āϤāĻžāϞāĻŋāĻ•āĻž āĻĒāĻĄāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āĻŦā§€āĻ•āύ āĻŦāĻž āĻĒā§āϰ⧋āĻŦ āϰ⧇āϏāĻĒāĻ¨ā§āϏ⧇ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āϰāĻŋāĻĄāĻŋāωāϏāĻĄ āύ⧇āĻŦāĻžāϰ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ (RNR) IE āĻĒāĻžāĻ°ā§āϏ āĻ•āϰ⧇āĨ¤

āĻāĻĒāĻŋāφāχ

āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻ•āϰāĻž AP MLO āϤāĻĨā§āϝ āĻĒ⧇āϤ⧇, āĻ…ā§āϝāĻžāĻĒāϗ⧁āϞāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ API āϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇:

  • ScanResult#BSSID : AP āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ MAC āĻ āĻŋāĻ•āĻžāύāĻž (āϝ⧇ āϞāĻŋāĻ™ā§āϕ⧇ āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻĢāϞāĻžāĻĢāϞ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāϝāĻŧ)
  • MacAddress ScanResult#getApMldMacAddress() : AP āĻāϰ MLD MAC āĻ āĻŋāĻ•āĻžāύāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤
  • int ScanResult#getApMloLinkId() : āϝ⧇ āϞāĻŋāĻ™ā§āϕ⧇ ScanResult āĻĒā§āϰāĻžāĻĒā§āϤ āĻšāϝāĻŧ⧇āĻ›āĻŋāϞ āϤāĻžāϰ āϞāĻŋāĻ™ā§āĻ• āφāχāĻĄāĻŋ āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤
  • List<MloLink> ScanResult#getAffiliatedMloLinks() : AP-MLD āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻŋāĻœā§āĻžāĻžāĻĒāĻŋāϤ āϏāĻŽāĻ¸ā§āϤ āϞāĻŋāĻ™ā§āϕ⧇āϰ āϜāĻ¨ā§āϝ MloLink āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āϰ āĻāĻ•āϟāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ ScanResult āĻĒā§āϰāĻžāĻĒā§āϤ āϞāĻŋāĻ™ā§āĻ•āϟāĻŋāĻ“ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤāĨ¤

āϏāĻ‚āϝ⧁āĻ•ā§āϤ Wi-Fi 7 AP MLO āϤāĻĨā§āϝ

āϝāĻ–āύ āĻāĻ•āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ āĻāĻ•āϟāĻŋ Wi-Fi 7 AP-MLD āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧋āĻ— āĻ•āϰ⧇, āϤāĻ–āύ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āϟāĻŋ WifiInfo āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻĨ⧇āϕ⧇ āϏāĻ‚āϝ⧋āϗ⧇āϰ MLO āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āϏāĻ‚āĻ—ā§āϰāĻš āĻ•āϰ⧇āĨ¤ AOSP WifiTracker āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻ­āĻžāĻ°ā§āĻŦā§‹āϏ āĻŽā§‹āĻĄā§‡ āϚāϞāĻžāϰ āϏāĻŽāϝāĻŧ āĻāχ āϤāĻĨā§āϝ āĻĒā§āϰāĻĻāĻ°ā§āĻļāύ āĻ•āϰ⧇āĨ¤

āϝāĻ–āύ āĻĄāĻŋāĻ­āĻžāχāϏāϟāĻŋ AP-MLD āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻšāϝāĻŧ, āϤāĻ–āύ Wi-Fi āĻŽāĻĄāĻŋāωāϞāϟāĻŋ AP āĻĨ⧇āϕ⧇ āĻĒā§āϰāĻžāĻĒā§āϤ ScanResult āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻĨ⧇āϕ⧇ MLO āϤāĻĨā§āϝ āĻ…āύ⧁āϞāĻŋāĻĒāĻŋ āĻ•āϰ⧇āĨ¤ āĻāϰāĻĒāϰ āĻŽāĻĄāĻŋāωāϞāϟāĻŋ ISupplicantStaIface#getConnectionMloLinksInfo() HAL API āϕ⧇ āĻ•āϞ āĻ•āϰ⧇ AP āĻāĻŦāĻ‚ STA āωāĻ­āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āĻĒā§āϰāϤāĻŋāϟāĻŋ āϞāĻŋāĻ™ā§āϕ⧇āϰ MAC āĻ āĻŋāĻ•āĻžāύāĻž āĻĒāĻĄāĻŧāϤ⧇ āĻāĻŦāĻ‚ āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ āϞāĻŋāĻ™ā§āĻ•āϗ⧁āϞāĻŋāϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āφāĻĒāĻĄā§‡āϟ āĻ•āϰāϤ⧇āĨ¤

āĻāĻĒāĻŋāφāχ

MLO āϏāĻ‚āϝ⧋āϗ⧇āϰ āϤāĻĨā§āϝ āĻĒ⧇āϤ⧇, āĻ…ā§āϝāĻžāĻĒāϗ⧁āϞāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ API āϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇:

  • WifiInfo#getBSSID() : AP āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ MAC āĻ āĻŋāĻ•āĻžāύāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇ (āϝ⧇ āϞāĻŋāĻ™ā§āϕ⧇āϰ āϏāĻžāĻĨ⧇ āĻĄāĻŋāĻ­āĻžāχāϏāϟāĻŋ āϝ⧁āĻ•ā§āϤ)āĨ¤
  • MacAddress WifiInfo#getApMldMacAddress() : AP āĻāϰ MLD MAC āĻ āĻŋāĻ•āĻžāύāĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤
  • int WifiInfo#getApMloLinkId() : STA āϝ⧇ āϞāĻŋāĻ™ā§āĻ•āϟāĻŋāϕ⧇ AP-āĻāϰ āϏāĻžāĻĨ⧇ āϝ⧁āĻ•ā§āϤ āĻ•āϰ⧇āϛ⧇ āϤāĻžāϰ āϞāĻŋāĻ™ā§āĻ• āφāχāĻĄāĻŋ āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇āĨ¤
  • List<MloLink> WifiInfo#getAffiliatedMloLinks() : AP-MLD āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻŋāĻœā§āĻžāĻžāĻĒāĻŋāϤ āϏāĻŽāĻ¸ā§āϤ āϞāĻŋāĻ™ā§āϕ⧇āϰ āϜāĻ¨ā§āϝ MloLink āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡āϰ āĻāĻ•āϟāĻŋ āϤāĻžāϞāĻŋāĻ•āĻž āĻĒā§āϰāĻĻāĻžāύ āĻ•āϰ⧇, āϝāĻžāϰ āĻŽāĻ§ā§āϝ⧇ āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ āϞāĻŋāĻ™ā§āĻ•āĻ“ āϰāϝāĻŧ⧇āϛ⧇āĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ MloLink āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡ AP āĻāĻŦāĻ‚ STA MAC āĻ āĻŋāĻ•āĻžāύāĻž āωāĻ­āϝāĻŧāχ āϜāĻŋāĻœā§āĻžāĻžāϏāĻž āĻ•āϰāĻž āϝ⧇āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

AP-MLD āĻ¸ā§āĻ•ā§āϝāĻžāύāĻŋāĻ‚

āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰāϟāĻŋ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŦā§€āĻ•āύ āĻŦāĻž āĻĒā§āϰ⧋āĻŦ āĻĒā§āϰāϤāĻŋāĻ•ā§āϰāĻŋāϝāĻŧāĻžāϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻĢāϞāĻžāĻĢāϞ āϏāĻš Wi-Fi āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āϏāϰāĻŦāϰāĻžāĻš āĻ•āϰ⧇āĨ¤ āĻāϰ āĻ…āĻ°ā§āĻĨ āĻšāϞ Wi-Fi āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•:

  • āĻāĻ•āχ AP-MLD āĻĨ⧇āϕ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• ScanResults āĻ…āĻŦāĻœā§‡āĻ•ā§āϟ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āĻ•āĻžāϰāĻŖ AP-āϤ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻŦā§€āĻ•āύāĻŋāĻ‚ āϞāĻŋāĻ™ā§āĻ• āĻĨāĻžāĻ•āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤
  • AP-MLD-āĻāϰ AP āϞāĻŋāĻ™ā§āĻ•āϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻĢāϞāĻžāĻĢāϞ⧇āϰ āĻāĻ•āϟāĻŋ āφāĻ‚āĻļāĻŋāĻ• āϏ⧇āϟāχ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰ⧇ āĻ•āĻžāϰāĻŖ āĻāχ āϞāĻŋāĻ™ā§āĻ• āϏāĻ‚āϕ⧇āϤāϗ⧁āϞāĻŋāϰ āĻ•āĻŋāϛ⧁ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āĻ—ā§āϰāĻšāĻŖ āύāĻžāĻ“ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āφāĻ•āĻžāĻļāĻĒāĻĨ⧇ āĻĒā§āϰāĻžāĻĒā§āϤ āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻĢāϞāĻžāĻĢāϞ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇ āĻāĻŦāĻ‚ AP-MLD āĻĻā§āĻŦāĻžāϰāĻž āĻŦāĻŋāĻœā§āĻžāĻžāĻĒāĻŋāϤ āϞāĻŋāĻ™ā§āϕ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻĢāϞāĻžāĻĢāϞ āϤ⧈āϰāĻŋ (āĻ•ā§ƒāĻ¤ā§āϰāĻŋāĻŽāĻ­āĻžāĻŦ⧇ āϏāĻ‚āĻļā§āϞ⧇āώāĻŋāϤ) āĻ•āϰāĻž āωāϚāĻŋāϤ āύāϝāĻŧāĨ¤

āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰāϕ⧇ āĻ…āĻŦāĻļā§āϝāχ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻž āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻĢāϞāĻžāĻĢāϞ⧇ AP āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ āĻĨ⧇āϕ⧇ āĻĒā§āϰāĻžāĻĒā§āϤ āĻŽā§ŒāϞāĻŋāĻ• āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻ¨ā§āϟ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ‚āĻ• āĻāĻŦāĻ‚ RNR IE āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āϝāĻĻāĻŋ āĻ¸ā§āĻ•ā§āϝāĻžāύ āĻĢāϞāĻžāĻĢāϞ⧇ āĻ…ā§āϝāĻžāĻĢāĻŋāϞāĻŋāϝāĻŧ⧇āϟ AP āĻŦāĻŋāĻŦāϰāĻŖ āĻ…āύ⧁āĻĒāĻ¸ā§āĻĨāĻŋāϤ āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ‚āĻ• āĻĒā§āϰ⧋āĻŦ āĻ…āύ⧁āϰ⧋āϧ (āĻĒā§āϰ⧋āĻŦ āĻ…āύ⧁āϰ⧋āϧ āĻĢā§āϰ⧇āĻŽ āϝāĻžāϤ⧇ āĻāĻ•āϟāĻŋ āĻĒā§āϰ⧋āĻŦ āĻ…āύ⧁āϰ⧋āϧ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ‚āĻ• āωāĻĒāĻžāĻĻāĻžāύ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻĨāĻžāϕ⧇) āĻĒāĻžāĻ āĻžāϤ⧇ āĻĒāĻžāϰ⧇ āϝāĻžāϤ⧇ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻĢā§āϰ⧇āĻŽā§‡ āϞāĻ•ā§āĻˇā§āϝāϝ⧁āĻ•ā§āϤ AP-MLD āϏāĻš AP-āĻāϰ āϏāĻŽā§āĻĒā§‚āĻ°ā§āĻŖ āĻŦāĻž āφāĻ‚āĻļāĻŋāĻ• āĻ•ā§āώāĻŽāϤāĻž, āĻĒāϰāĻžāĻŽāĻŋāϤāĻŋ āĻāĻŦāĻ‚ āĻ…āĻĒāĻžāϰ⧇āĻļāύ āωāĻĒāĻžāĻĻāĻžāύ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰāĻž āϝāĻžāϝāĻŧāĨ¤

āĻĒā§āĻ°ā§Ÿā§‹āϜāύ⧇ āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰāϟāĻŋ ML-āĻĒā§āϰ⧋āĻŦāĻŋāĻ‚ (āĻĒā§āϰ⧋āĻŦ āϰāĻŋāĻ• āĻĢā§āϰ⧇āĻŽā§‡ āĻĒā§āϰ⧋āĻŦ āϰāĻŋāĻ• āϭ⧇āϰāĻŋāϝāĻŧ⧇āĻ¨ā§āϟ ML IE āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇) āĻŸā§āϰāĻŋāĻ—āĻžāϰ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻāĻĒāĻŋ-āĻāĻŽāĻāϞāĻĄāĻŋ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻ…ā§āϝāĻžāϏ⧋āϏāĻŋāϝāĻŧ⧇āĻļāύ

āϝāĻ–āύ āĻāĻ•āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ āĻāĻ•āϟāĻŋ AP-MLD āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ āϝ⧋āĻ—āĻĻāĻžāύ āĻ•āϰ⧇, āϤāĻ–āύ āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰāϟāĻŋ āϏāĻŋāĻ—āĻ¨ā§āϝāĻžāϞāĻŋāĻ‚āϝāĻŧ⧇āϰ āϜāĻ¨ā§āϝ āύāĻŋāĻ°ā§āĻŦāĻžāϚāĻŋāϤ AP āϞāĻŋāĻ™ā§āĻ• (āϏāĻŽā§āĻĒāĻ°ā§āĻ•āĻŋāϤ āϞāĻŋāĻ™ā§āĻ•) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰāϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ āĻĻā§āĻŦāĻžāϰāĻž āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ āϏāĻŽāĻ¸ā§āϤ āĻŦāĻž āĻ•āĻŋāϛ⧁ āϞāĻŋāĻ™ā§āϕ⧇āϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āϏāĻĢāϞāĻ­āĻžāĻŦ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻšāĻ“āϝāĻŧāĻžāϰ āĻĒāϰ, āĻĄā§āϰāĻžāχāĻ­āĻžāϰ ISupplicantStaIfaceCallback#onStateChanged() AP-MLD āĻāϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϞāĻŋāĻ™ā§āϕ⧇āϰ BSSID āĻĻāĻŋāϝāĻŧ⧇ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰ⧇āĨ¤ āϤāĻžāϰāĻĒāϰ āĻĄā§āϰāĻžāχāĻ­āĻžāϰ AP-MLD āĻāϰ āĻāĻ•āϟāĻŋ āϞāĻŋāĻ™ā§āĻ• āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧇ āϝāĻĻāĻŋ āĻ¸ā§āĻ•ā§āϝāĻžāύ⧇āϰ āĻĢāϞāĻžāĻĢāϞ āϏ⧇āχ āϞāĻŋāĻ™ā§āϕ⧇āϰ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻ¸ā§āϕ⧋āϰāĻŋāĻ‚

āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ ā§§ā§Ē āĻŦāĻž āϤāĻžāϰ āĻĒāϰāĻŦāĻ°ā§āϤ⧀ āĻ­āĻžāĻ°ā§āϏāύ āϚāĻžāϞāĻŋāϤ āĻĄāĻŋāĻ­āĻžāχāϏ⧇āϰ āϜāĻ¨ā§āϝ, āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āϏāĻŋāϞ⧇āĻ•āĻļāύ āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ ā§­ āĻāĻŽāĻāϞāĻ“ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤ āĻāϰ āĻ…āĻ°ā§āĻĨ āĻšāϞ āĻāĻŽāĻāϞāĻ“-āĻāϰ āϜāĻ¨ā§āϝ āωāĻĒāϞāĻŦā§āϧ āϞāĻŋāĻ™ā§āϕ⧇āϰ āϏāĻ‚āĻ–ā§āϝāĻžāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ āĻĄāĻŋāĻ­āĻžāχāϏ⧇āϰ āϜāĻ¨ā§āϝ āϏ⧇āϰāĻž āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧇āĨ¤

MLO āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ Wi-Fi āϚāĻŋāĻĒ āĻĨ⧇āϕ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ MLO āĻ•ā§āώāĻŽāϤāĻž āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇:

  • āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• STR āϞāĻŋāĻ™ā§āĻ• āϏāĻ‚āĻ–ā§āϝāĻž
  • āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• āĻ…ā§āϝāĻžāϏ⧋āϏāĻŋāϝāĻŧ⧇āĻļāύ āϞāĻŋāĻ™ā§āĻ• āϏāĻ‚āĻ–ā§āϝāĻž
  • āϝ⧁āĻ—āĻĒāϤ āĻŦā§āϝāĻžāĻ¨ā§āĻĄ āϏāĻŽāĻ¨ā§āĻŦāϝāĻŧ

āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ āĻāĻŽāĻāϞāĻ“ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻĻ⧇āĻ–āĻžāύ⧋ āϚāĻŋāĻ¤ā§āϰ, āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āĻĄāĻŋāĻ­āĻžāχāϏ āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• STR āϞāĻŋāĻ™ā§āĻ• āĻ—āĻŖāύāĻž, āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• āĻ…ā§āϝāĻžāϏ⧋āϏāĻŋāϝāĻŧ⧇āĻļāύ āϞāĻŋāĻ™ā§āĻ• āĻ—āĻŖāύāĻž āĻāĻŦāĻ‚ āĻāĻ•āϝ⧋āϗ⧇ āĻŦā§āϝāĻžāĻ¨ā§āĻĄ āϏāĻ‚āĻŽāĻŋāĻļā§āϰāϪ⧇āϰ āĻŽāϤ⧋ āϚāĻŋāĻĒ āĻ•ā§āώāĻŽāϤāĻžāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āϏāĻ°ā§āĻŦā§‹āĻ¤ā§āϤāĻŽ āϏāĻ‚āϝ⧋āϗ⧇āϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āĻŦā§āϝāĻžāĻ¨ā§āĻĄ (2.4 GHz, 5 GHz, 6 GHz) āϜ⧁āĻĄāĻŧ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ āϞāĻŋāĻ™ā§āĻ• āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰ⧇āĨ¤

āϚāĻŋāĻ¤ā§āϰ ⧍āĨ¤ MLO āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āύāĻŋāĻ°ā§āĻŦāĻžāϚāύāĨ¤

āĻāĻ•āϝ⧋āϗ⧇ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻŽāĻŋāϟ āĻāĻŦāĻ‚ āϰāĻŋāϏāĻŋāĻ­ (STR) āĻšāϞ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ‚āĻ• āĻ…āĻĒāĻžāϰ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ āĻŽāĻŋāĻĄāĻŋāϝāĻŧāĻžāĻŽ āĻ•āύāĻŸā§‡āύāĻļāύ āĻ¸ā§āĻ•āĻŋāĻŽāĨ¤ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϞāĻŋāĻ™ā§āϕ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āϏāĻŋāĻ—āĻ¨ā§āϝāĻžāϞ āφāχāϏ⧋āϞ⧇āĻļāύ āϝāĻĨ⧇āĻˇā§āϟ āϝāĻžāϤ⧇ āϞāĻŋāĻ™ā§āĻ•āϗ⧁āϞāĻŋ āĻ¸ā§āĻŦāĻžāϧ⧀āύāĻ­āĻžāĻŦ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϞāĻŋāĻ™ā§āϕ⧇ āĻāĻ•āχ āϏāĻžāĻĨ⧇ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻŽāĻŋāϟ āĻāĻŦāĻ‚ āϰāĻŋāϏāĻŋāĻ­ āĻ•āϰāϤ⧇ āϏāĻ•ā§āώāĻŽ āĻšāϝāĻŧāĨ¤ STR āϞāĻŋāĻ—ā§āϝāĻžāϏāĻŋ āϏāĻŋāĻ™ā§āϗ⧇āϞ āϞāĻŋāĻ™ā§āĻ• (SL) STA āĻāĻŦāĻ‚ āϞāĻŋāĻ—ā§āϝāĻžāϏāĻŋ āĻĄā§āϝāĻŧāĻžāϞ āĻŦā§āϝāĻžāĻ¨ā§āĻĄ āĻĄā§āϝāĻŧāĻžāϞ āĻ•āύāĻ•āĻŽāĻžāĻ°ā§āϟ (DBDC) STA āĻĨ⧇āϕ⧇ āφāϞāĻžāĻĻāĻžāĨ¤ STA MLD āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧁āĻ•ā§āϤ STA āϗ⧁āϞāĻŋ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻŽāĻŋāϟāĻžāϰ āϏāĻŋāϕ⧋āϝāĻŧ⧇āĻ¨ā§āϏ āύāĻŽā§āĻŦāϰ (SN) āĻāĻŦāĻ‚ āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ āϞāĻŋāĻ™ā§āϕ⧇ āĻŦāϰāĻžāĻĻā§āĻĻ āĻ•āϰāĻž āĻĄā§‡āϟāĻž āĻŸā§āϰāĻžāĻ¨ā§āϏāĻŽāĻŋāĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āϏāĻžāϧāĻžāϰāĻŖ āĻ¸ā§āĻĨāĻžāύ āĻ­āĻžāĻ— āĻ•āϰ⧇ āύ⧇āϝāĻŧ āϝāĻĻāĻŋ āĻāĻ•āĻžāϧāĻŋāĻ• āϞāĻŋāĻ™ā§āĻ• āĻŸā§āϰāĻžāĻ¨ā§āϏāĻŽāĻŋāĻļāύ⧇āϰ āĻ…ā§āϝāĻžāĻ•ā§āϏ⧇āϏ āĻ•ā§āϝāĻžāϟāĻžāĻ—āϰāĻŋ (AC) āĻāĻ•āχ āĻĨāĻžāϕ⧇āĨ¤

āĻŦā§āϝāĻŦāĻšā§ƒāϤ āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• āϏāĻ‚āĻ–ā§āϝāĻ• STR āϞāĻŋāĻ™ā§āĻ• āϚāĻŋāĻĒ āĻĻā§āĻŦāĻžāϰāĻž āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• āϏāĻ‚āĻ–ā§āϝāĻ• āϰ⧇āĻĄāĻŋāĻ“ āĻĨ⧇āϕ⧇ āĻ­āĻŋāĻ¨ā§āύ āĻšāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϚāĻŋāĻ¤ā§āϰ 2-āĻāϰ āωāĻĻāĻžāĻšāϰāϪ⧇, āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• STR āϞāĻŋāĻ™ā§āĻ• āϏāĻ‚āĻ–ā§āϝāĻž 2āĨ¤

āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ AIDL HAL āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏāϗ⧁āϞāĻŋ āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• STR āϞāĻŋāĻ™ā§āĻ• āĻ—āĻŖāύāĻž āĻāĻŦāĻ‚ āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• āϏāĻ‚āĻ–ā§āϝāĻ• āĻ…ā§āϝāĻžāϏ⧋āϏāĻŋāϝāĻŧ⧇āĻļāύ āϞāĻŋāĻ™ā§āĻ• āĻ—āĻŖāύāĻž āĻ•ā§āώāĻŽāϤāĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇:

āĻāĻ•āĻžāϧāĻŋāĻ• āϞāĻŋāĻ™ā§āĻ• āĻ•āύāĻŸā§‡āύāĻļāύ āĻ¸ā§āĻ•āĻŋāĻŽ, āĻāύāĻšā§āϝāĻžāĻ¨ā§āϏāĻĄ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ‚āĻ• āϏāĻŋāĻ™ā§āϗ⧇āϞ āϰ⧇āĻĄāĻŋāĻ“ (eMLSR) āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• āϰ⧇āĻĄāĻŋāĻ“āϤ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāĻ•āϟāĻŋ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ‚āĻ• āĻĄāĻŋāĻ­āĻžāχāϏ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻ•āĻŋāϛ⧁ āĻŽā§ŒāϞāĻŋāĻ• āύāĻŋāϝāĻŧāĻ¨ā§āĻ¤ā§āϰāĻŖ āĻĢā§āϰ⧇āĻŽ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āϞāĻŋāĻ™ā§āĻ•āϗ⧁āϞāĻŋāϰ āϏ⧇āĻŸā§‡ āĻāĻ•āχ āϏāĻžāĻĨ⧇ āĻ¸ā§āĻĒāĻˇā§āϟ āĻšā§āϝāĻžāύ⧇āϞ āĻŽā§‚āĻ˛ā§āϝāĻžāϝāĻŧāύ (CCA) āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇, āϤāĻžāĻšāϞ⧇ āĻāϟāĻŋ āϞāĻŋāĻ™ā§āĻ•āϗ⧁āϞāĻŋāϰ āĻāĻ•āϟāĻŋ āϏ⧇āĻŸā§‡āϰ āωāĻĒāϰ eMLSR āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤ āϝāĻžāχāĻšā§‹āĻ•, MLD āĻāĻ•āĻŦāĻžāϰ⧇ āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āϞāĻŋāĻ™ā§āϕ⧇āϰ (āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻŸā§āϰāĻžāĻ¨ā§āϏāĻŽāĻŋāϟ āϏ⧁āϝ⧋āĻ— (TXOP) āϏāĻŽāϝāĻŧāĻ•āĻžāϞ⧇ āĻ—āϤāĻŋāĻļā§€āϞāĻ­āĻžāĻŦ⧇ āύāĻŋāĻ°ā§āĻŦāĻžāϚāĻŋāϤ āϞāĻŋāĻ™ā§āĻ•) āĻĄā§‡āϟāĻž āĻĒā§āϰ⧇āϰāĻŖ āĻŦāĻž āĻ—ā§āϰāĻšāĻŖ āĻ•āϰ⧇āĨ¤

āĻāĻ•āϟāĻŋ MLD āĻ¸ā§āĻŸā§‡āĻļāύ āϚāĻŋāĻĒ āĻĻā§āĻŦāĻžāϰāĻž āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ āĻšāϞ⧇ STR āĻāĻŦāĻ‚ eMLSR-āĻ āĻāĻ•āχ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰ⧇ āφāϰāĻ“ āĻ­āĻžāϞ⧋ āύāĻŋāĻ°ā§āĻ­āϰāϝ⧋āĻ—ā§āϝāϤāĻž, āĻ­āĻžāϞ⧋ āĻĨā§āϰ⧁āĻĒ⧁āϟ āĻāĻŦāĻ‚ āĻ•āĻŽ āĻ˛ā§āϝāĻžāĻŸā§‡āĻ¨ā§āϏāĻŋāϰ āϜāĻ¨ā§āϝ (āĻāĻ•āĻ• āϞāĻŋāĻ™ā§āĻ• āϞāĻŋāĻ—ā§āϝāĻžāϏāĻŋ āĻ¸ā§āĻŸā§‡āĻļāύ⧇āϰ āϤ⧁āϞāύāĻžāϝāĻŧ) āĻ…ā§āϝāĻžāϏ⧋āϏāĻŋāϝāĻŧ⧇āĻļāύ āϞāĻŋāĻ™ā§āϕ⧇āϰ āϏāĻ‚āĻ–ā§āϝāĻž āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϚāĻŋāĻ¤ā§āϰ 2-āĻ, āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• āĻ…ā§āϝāĻžāϏ⧋āϏāĻŋāϝāĻŧ⧇āĻļāύ āϞāĻŋāĻ™ā§āϕ⧇āϰ āϏāĻ‚āĻ–ā§āϝāĻž 3āĨ¤

āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ AIDL HAL āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏāϗ⧁āϞāĻŋ āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• āĻ…ā§āϝāĻžāϏ⧋āϏāĻŋāϝāĻŧ⧇āĻļāύ āϞāĻŋāĻ™ā§āĻ• āĻ—āĻŖāύāĻž āĻ•ā§āώāĻŽāϤāĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇:

āϝ⧁āĻ—āĻĒāϤ āĻŦā§āϝāĻžāĻ¨ā§āĻĄ āϏāĻŽāĻ¨ā§āĻŦāϝāĻŧ

āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āϟāĻŋ āϚāĻŋāĻĒāϟāĻŋāϕ⧇ āϜāĻŋāĻœā§āĻžāĻžāϏāĻž āĻ•āϰ⧇ ( IWifiChip.aidl AIDL āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡) āĻ…āύ⧁āĻŽā§‹āĻĻāĻŋāϤ āϰ⧇āĻĄāĻŋāĻ“ āϏāĻ‚āĻŽāĻŋāĻļā§āϰāĻŖāϗ⧁āϞāĻŋ āĻĒ⧇āϤ⧇ āϝāĻž āĻāĻ•āχ āϏāĻžāĻĨ⧇ āĻ•āĻžāϜ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āĻāχ āϤāĻĨā§āϝ āĻĨ⧇āϕ⧇, āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āϟāĻŋ āϏāĻŽā§āĻ­āĻžāĻŦā§āϝ āĻāĻ•āχ āϏāĻžāĻĨ⧇ āĻŦā§āϝāĻžāĻ¨ā§āĻĄ āϏāĻ‚āĻŽāĻŋāĻļā§āϰāĻŖāϗ⧁āϞāĻŋ āĻŦ⧇āϰ āĻ•āϰ⧇āĨ¤ āύ⧀āĻšā§‡ āĻāĻ•āχ āϏāĻžāĻĨ⧇ āĻŦā§āϝāĻžāĻ¨ā§āĻĄ āϏāĻ‚āĻŽāĻŋāĻļā§āϰāϪ⧇āϰ (GHz) āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āϤāĻžāϞāĻŋāĻ•āĻž āĻĻ⧇āĻ“āϝāĻŧāĻž āĻšāϞ:

  • ⧍.ā§Ē
  • ā§Ģ
  • ā§Ŧ
  • ⧍.ā§Ē x ā§Ģ
  • ⧍.ā§Ē x ā§Ŧ
  • ā§Ģ x ā§Ŧ

āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ AIDL HAL āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏāϟāĻŋ āϝ⧁āĻ—āĻĒāϤ āϰ⧇āĻĄāĻŋāĻ“ āϏāĻ‚āĻŽāĻŋāĻļā§āϰāĻŖ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇:

āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ

āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ⧇āϰ (MLO) āϏāĻŽāϝāĻŧ, āĻĒā§āϰāĻžāĻ°ā§āĻĨā§€ āϤāĻžāϞāĻŋāĻ•āĻž āĻāĻ•āχ MLD MAC āĻ āĻŋāĻ•āĻžāύāĻž āϏāĻš āϏāĻĻāĻ¸ā§āϝāĻĻ⧇āϰ āĻĻā§āĻŦāĻžāϰāĻž āĻ—ā§‹āĻˇā§āĻ ā§€āϭ⧁āĻ•ā§āϤ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻĒā§āϰāϤāĻŋāϟāĻŋ āĻ—ā§āϰ⧁āĻĒ⧇āϰ āϜāĻ¨ā§āϝ āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• āĻĒā§‚āĻ°ā§āĻŦāĻžāĻ­āĻžāϏāĻŋāϤ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ‚āĻ• āĻĨā§āϰ⧁āĻĒ⧁āϟ āĻ¸ā§āϕ⧋āϰ āĻ—āĻŖāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧ, āϚāĻŋāĻĒ āĻĻā§āĻŦāĻžāϰāĻž āϏāĻŽāĻ°ā§āĻĨāĻŋāϤ āϏāĻ°ā§āĻŦāĻžāϧāĻŋāĻ• STR āϞāĻŋāĻ™ā§āĻ• āĻ—āĻŖāύāĻž āĻāĻŦāĻ‚ āĻāĻ•āϝ⧋āϗ⧇ āĻŦā§āϝāĻžāĻ¨ā§āĻĄ āϏāĻ‚āĻŽāĻŋāĻļā§āϰāϪ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇āĨ¤ āϝāĻĻāĻŋ āĻĒā§āϰāĻžāĻ°ā§āĻĨā§€ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ‚āĻ• āϏāĻ•ā§āώāĻŽ āĻšāϝāĻŧ āĻāĻŦāĻ‚ āϚāĻŋāĻĒ STR āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇, āϤāĻžāĻšāϞ⧇ āĻĒā§‚āĻ°ā§āĻŦāĻžāĻ­āĻžāϏāĻŋāϤ āĻĨā§āϰ⧁āĻĒ⧁āϟ āĻ¸ā§āϕ⧋āϰāϟāĻŋ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ‚āĻ• āĻĒā§āϰāĻŋāĻĄāĻŋāϕ⧇āĻŸā§‡āĻĄ āĻĨā§āϰ⧁āĻĒ⧁āϟ āĻ¸ā§āϕ⧋āϰ⧇āϰ āϏāĻžāĻĨ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāϤ āĻšāϝāĻŧāĨ¤ āĻāϟāĻŋ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ⧇āϰ āϏāĻŽāϝāĻŧ MLO āĻĒā§āϰāĻžāĻ°ā§āĻĨā§€āĻĻ⧇āϰ āĻ‰ā§ŽāϏāĻžāĻš āĻĻ⧇āϝāĻŧāĨ¤

āĻāĻ•āϟāĻŋ AP-MLD āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ āϝ⧋āĻ—āĻĻāĻžāύ⧇āϰ āϏāĻŽāϝāĻŧ, āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āϟāĻŋ āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰ āĻĻā§āĻŦāĻžāϰāĻž āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻž ScanResults āĻ…āĻŦāĻœā§‡āĻ•ā§āĻŸā§‡ āĻĒā§āϰāĻžāĻĒā§āϤ āϤāĻĨā§āϝ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ SSID āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰ⧇āĨ¤ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĻā§āĻŦāĻžāϰāĻž SSID āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ⧇āϰ āĻĒāϰ⧇, āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰāϟāĻŋ āĻ…ā§āϝāĻžāϏ⧋āϏāĻŋāϝāĻŧ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āϏ⧇āϰāĻž AP (āĻ…āĻĨāĻŦāĻž AP āϞāĻŋāĻ™ā§āĻ•) āĻāϰ āϜāĻ¨ā§āϝ BSSID āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻĻāĻžāϝāĻŧā§€āĨ¤

āĻĄāĻŋāĻ­āĻžāχāϏ STA MAC āĻ āĻŋāĻ•āĻžāύāĻž āĻĒāϰāĻŋāϚāĻžāϞāύāĻž

āĻāχ āĻŦāĻŋāĻ­āĻžāĻ—āϟāĻŋ āĻŦāĻ°ā§āĻŖāύāĻž āĻ•āϰ⧇ āϝ⧇ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻĄāĻŋāĻ­āĻžāχāϏ⧇āϰ STA MAC āĻ āĻŋāĻ•āĻžāύāĻžāϗ⧁āϞāĻŋ (MLD MAC āĻ āĻŋāĻ•āĻžāύāĻž āĻāĻŦāĻ‚ āĻĒā§āϰāϤāĻŋ-āϞāĻŋāĻ™ā§āĻ• STA MAC āĻ āĻŋāĻ•āĻžāύāĻž) āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤

MLD MAC āĻ āĻŋāĻ•āĻžāύāĻž

āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĄāĻŋāĻ­āĻžāχāϏ⧇āϰ 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 āĻ āĻŋāĻ•āĻžāύāĻžāĨ¤
  • āϞāĻŋāĻ™ā§āĻ• āφāχāĻĄāĻŋ (āĻāĻĒāĻŋ āĻĨ⧇āϕ⧇ āĻĒā§āϰāĻžāĻĒā§āϤ)

āĻāϰ āĻŽāĻžāύ⧇ āĻšāϞ āϝāĻĻāĻŋ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āϟāĻŋ āĻāĻ•āχ MLD MAC āĻ āĻŋāĻ•āĻžāύāĻž āĻĒ⧁āύāσāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āϤāĻžāĻšāϞ⧇ āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻžāϕ⧇ āĻāĻ•āχ āϏāĻ‚āϝ⧁āĻ•ā§āϤ āĻĒā§āϰāϤāĻŋ-āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ MAC āĻ āĻŋāĻ•āĻžāύāĻž āĻĒ⧁āύāσāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇, āĻāĻŦāĻ‚ āϝāĻĻāĻŋ āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āĻĒā§āϰāϤāĻŋ-āχāύāĻ¸ā§āĻŸā§āϝāĻžāĻ¨ā§āϏ MAC āĻ āĻŋāĻ•āĻžāύāĻž āĻĒ⧁āύāσāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇, āϤāĻžāĻšāϞ⧇ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āϟāĻŋāϕ⧇ āĻāĻ•āχ MLD MAC āĻ āĻŋāĻ•āĻžāύāĻž āĻĒ⧁āύāσāĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻāϟāĻŋ āϝāĻžāϚāĻžāχ āĻ•āϰ⧇ āϝ⧇ āϝāĻ–āύ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•-āĻœā§‡āύāĻžāϰ⧇āĻŸā§‡āĻĄ STA-MLD āĻ āĻŋāĻ•āĻžāύāĻžāϟāĻŋ āĻāĻ•āϟāĻŋ SSID-āĻāϰ āϜāĻ¨ā§āϝ āĻ¸ā§āĻĨāĻžāϝāĻŧā§€ āĻĨāĻžāϕ⧇, āϤāĻ–āύ āĻĒā§āϰāϤāĻŋ-STA MAC āĻ āĻŋāĻ•āĻžāύāĻžāϗ⧁āϞāĻŋāĻ“ āĻ¸ā§āĻĨāĻžāϝāĻŧā§€ āĻĨāĻžāϕ⧇āĨ¤

āĻĒā§āϰāϤāĻŋ-āϞāĻŋāĻ™ā§āĻ• STA MAC āĻ āĻŋāĻ•āĻžāύāĻž āĻ…ā§āϝāĻžāϏāĻžāχāύāĻŽā§‡āĻ¨ā§āĻŸā§‡āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āωāĻĻāĻžāĻšāϰāĻŖ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āύāĻŋāĻšā§‡ āĻĻ⧇āĻ“ā§ŸāĻž āĻšāϞ (āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻžāϰāĻž āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽā§‡āϰ āĻŽāĻžāύāĻĻāĻŖā§āĻĄ āĻĒā§‚āϰāĻŖ āĻ•āϰ⧇ āĻāĻŽāύ āϝ⧇āϕ⧋āύ⧋ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āύ):

  • āĻ…āĻ•ā§āĻŸā§‹āĻŦāϰ ā§Ļ: āύāĻŋāĻļā§āϚāĻŋāϤ āĻ•āϰ⧁āύ āϝ⧇ āĻ¸ā§āĻĨāĻžāύ⧀āϝāĻŧāĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāϚāĻžāϞāĻŋāϤ āĻŦāĻŋāϟ āϏ⧇āϟ āĻ•āϰāĻž āφāϛ⧇
  • āĻ…āĻ•ā§āĻŸā§‹āĻŦāϰ ā§§-ā§Ē: STA-MLD MAC āĻ āĻŋāĻ•āĻžāύāĻžāϰ āĻŽāϤ⧋āχ
  • āĻ…āĻ•ā§āĻŸā§‡āϟ 5: āĻĒā§āϰāϤāĻŋ-STA = (STA-MLD + āϞāĻŋāĻ™ā§āĻ• āφāχāĻĄāĻŋ + 1) MOD (256)

āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰāϟāĻŋ Wi-Fi āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĨ⧇āϕ⧇ āχāύāĻĒ⧁āϟ āĻ›āĻžāĻĄāĻŧāĻžāχ āϞāĻŋāĻ™ā§āĻ• āĻ¸ā§āϝ⧁āχāϚāĻŋāĻ‚ āϏāĻŽā§āĻĒāĻžāĻĻāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āϏāĻ•ā§āϰāĻŋāϝāĻŧāĻ•āϰāĻŖ āĻŦāĻž āύāĻŋāĻˇā§āĻ•ā§āϰāĻŋāϝāĻŧāĻ•āϰāϪ⧇āϰ āϜāĻ¨ā§āϝ āϞāĻŋāĻ™ā§āĻ•āϗ⧁āϞāĻŋāϰ āĻĒāĻžāĻ“āϝāĻŧāĻžāϰ āϏāĻžāĻļā§āϰāϝāĻŧ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āϞāĻŋāĻ™ā§āϕ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāϞ⧇ Wi-Fi āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āϕ⧋āύāĻ“ āĻŦāĻŋāĻœā§āĻžāĻĒā§āϤāĻŋ āφāĻļāĻž āĻ•āϰ⧇ āύāĻžāĨ¤

āĻŦāĻŋāĻĻā§āĻ¯ā§ā§Ž āϏāĻžāĻļā§āϰāϝāĻŧā§€ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāϰ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻžāĻĒāύāĻž

āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇ āĻĄāĻŋāĻĢāĻ˛ā§āϟāϰ⧂āĻĒ⧇ āĻĒāĻžāĻ“āϝāĻŧāĻžāϰ āϏ⧇āĻ­ āĻ¸ā§āĻŸā§‡āϟ āϏāĻ•ā§āϰāĻŋāϝāĻŧ āĻĨāĻžāϕ⧇āĨ¤ āĻĒāĻžāĻ“āϝāĻŧāĻžāϰ āϏ⧇āĻ­ āĻ¸ā§āĻŸā§‡āĻŸā§‡, āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āĻŸā§āĻ°ā§āϝāĻžāĻĢāĻŋāĻ• āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ āĻāĻŦāĻ‚ āϞāĻŋāĻ™ā§āĻ• āĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāϭ⧇āĻļāύ āĻŦāĻž āĻĄāĻŋāĻ…ā§āϝāĻžāĻ•ā§āϟāĻŋāϭ⧇āĻļāύ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻĒ⧃āĻĨāĻ• āϞāĻŋāĻ™ā§āĻ•āϗ⧁āϞāĻŋāϰ āĻĒāĻžāĻ“āϝāĻŧāĻžāϰ āϏ⧇āĻ­ āĻ¸ā§āĻŸā§‡āϟ āĻĒāϰāĻŋāϚāĻžāϞāύāĻž āĻ•āϰ⧇āĨ¤

āϤāĻŦ⧇, Wi-Fi āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• ISupplicantStaIface::setPowerSave(false) HAL API āĻ•āϞ āĻ•āϰ⧇ āĻĒāĻžāĻ“āϝāĻŧāĻžāϰ āϏ⧇āĻ­ āĻ¸ā§āĻŸā§‡āϟāϕ⧇ āĻ…āĻ•ā§āώāĻŽ āĻ•āϰāϤ⧇ āĻŦāĻžāĻ§ā§āϝ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϝāĻĻāĻŋ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĻā§āĻŦāĻžāϰāĻž āĻĒāĻžāĻ“āϝāĻŧāĻžāϰ āϏ⧇āĻ­ āĻ¸ā§āĻŸā§‡āϟāϟāĻŋ āĻ…āĻ•ā§āώāĻŽ āĻ•āϰāĻž āĻĨāĻžāϕ⧇, āϤāĻžāĻšāϞ⧇ āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰāϕ⧇ āĻ•āĻŽāĻĒāĻ•ā§āώ⧇ āĻāĻ•āϟāĻŋ āϞāĻŋāĻ™ā§āĻ• āϏāĻ•ā§āϰāĻŋāϝāĻŧ āϰāĻžāĻ–āϤ⧇ āĻšāĻŦ⧇ (āĻĒāĻžāĻ“āϝāĻŧāĻžāϰ āϏ⧇āĻ­ āĻ…āĻ•ā§āώāĻŽ)āĨ¤ āĻāχ āĻ…āĻŦāĻ¸ā§āĻĨāĻžāϝāĻŧ, āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ āϕ⧋āύ āϞāĻŋāĻ™ā§āĻ•āϟāĻŋ āϏ⧇āϟ āĻ•āϰāĻž āĻšāĻŦ⧇ āϤāĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇āĨ¤

āĻĄā§‡āϟāĻž āĻĒāĻžāĻĨ

āĻāϟāĻŋ āφāĻĒāϞāĻŋāĻ‚āĻ• āĻāĻŦāĻ‚ āĻĄāĻžāωāύāϞ⧋āĻĄ āĻŸā§āĻ°ā§āϝāĻžāĻĢāĻŋāĻ• āĻĒāϰāĻŋāϚāĻžāϞāύāĻžāϰ āϜāĻ¨ā§āϝ āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ⧇āϰ āĻŦāĻ°ā§āĻŖāύāĻž āĻĻ⧇āϝāĻŧāĨ¤

āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰāϟāĻŋ āϤāĻžāϰ āĻ…āĻ­ā§āϝāĻ¨ā§āϤāϰ⧀āĻŖ āĻŦāĻžāĻ¸ā§āϤāĻŦāĻžāϝāĻŧāύ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻāĻ• (āĻŦāĻž āĻāĻ•āĻžāϧāĻŋāĻ•) āϞāĻŋāĻ™ā§āϕ⧇ āĻŸā§āĻ°ā§āϝāĻžāĻĢāĻŋāĻ• āφāĻĒāϞāĻŋāĻ™ā§āĻ• āĻ•āϰ⧇āĨ¤ āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ āĻŸā§āĻ°ā§āϝāĻžāĻĢāĻŋāĻ• āĻĒā§āϝāĻžāϟāĻžāĻ°ā§āύ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āϞ⧋āĻĄ āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻŋāĻ‚, āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āĻļāύ āĻŦāĻž āĻŸā§āĻ°ā§āϝāĻžāĻĢāĻŋāϕ⧇āϰ āĻāĻ•āĻ¤ā§āϰāĻŋāϤāĻ•āϰāĻŖ āĻ•āĻ–āύ āĻ•āϰāĻŦ⧇ āϤāĻž āύāĻŋāĻ°ā§āϧāĻžāϰāĻŖ āĻ•āϰ⧇āĨ¤ āφāĻŽāϰāĻž āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰāϕ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• āϞāĻŋāĻ™ā§āϕ⧇ āĻŸā§āĻ°ā§āϝāĻžāĻĢāĻŋāĻ• āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āϟ āĻ•āϰāĻžāϰ āĻĒāϰāĻžāĻŽāĻ°ā§āĻļ āĻĻāĻŋāχ:

  • āϝāĻ–āύ IWifiChip#setLatencyMode() HAL API āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻ•āĻŽ-āĻŦāĻŋāϞāĻŽā§āĻŦāĻŋāϤ āĻŽā§‹āĻĄ āϏ⧇āϟ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤
  • āϝāĻ–āύ āĻŦā§āϝāĻŦāĻšāĻžāϰāĻ•āĻžāϰ⧀āϰ āĻ…āĻ—ā§āϰāĻžāϧāĻŋāĻ•āĻžāϰ ā§Ŧ āĻāĻŦāĻ‚ ā§­ āϏāĻš āĻŸā§āĻ°ā§āϝāĻžāĻĢāĻŋāĻ• āĻĨāĻžāϕ⧇āĨ¤

āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰāϕ⧇ MAC āĻšā§‡āĻĄāĻžāϰ⧇āϰ (āĻ—āĻ¨ā§āϤāĻŦā§āϝ) āĻĒā§āϰāϤāĻŋ-STA MAC āĻ āĻŋāĻ•āĻžāύāĻž MLD-STA MAC āĻĻāĻŋāϝāĻŧ⧇ āĻāĻŦāĻ‚ MAC āĻšā§‡āĻĄāĻžāϰ⧇āϰ (āĻ‰ā§ŽāϏ) āĻĒā§āϰāϤāĻŋ-AP MAC āĻ āĻŋāĻ•āĻžāύāĻž MLD-AP MAC āĻ āĻŋāĻ•āĻžāύāĻž āĻĻāĻŋāϝāĻŧ⧇ āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ APF āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ⧇āϰ āĻŽāĻ§ā§āϝ āĻĻāĻŋāϝāĻŧ⧇ āϝāĻžāĻ“āϝāĻŧāĻžāϰ āφāϗ⧇ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰāϕ⧇ āĻāχ MAC āĻ āĻŋāĻ•āĻžāύāĻž āĻĒā§āϰāϤāĻŋāĻ¸ā§āĻĨāĻžāĻĒāύ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āĻ•āĻžāϰāĻŖ APF āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āĻ•āĻŽāĻžāĻ¨ā§āĻĄāϗ⧁āϞāĻŋāϤ⧇ MLD MAC āĻ āĻŋāĻ•āĻžāύāĻžāϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āĻĨāĻžāϕ⧇āĨ¤ āĻāĻ•āϟāĻŋ AP-MLD āĻāϰ āϏāĻŽāĻ¸ā§āϤ āϞāĻŋāĻ™ā§āϕ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• APF āĻĢāĻŋāĻ˛ā§āϟāĻžāϰ āϰāϝāĻŧ⧇āϛ⧇āĨ¤

āϏāĻŽāĻžāĻ¨ā§āϤāϰāĻžāϞāϤāĻž

āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϏāĻŋ āϏāĻŋāύāĻžāϰāĻŋāĻ“, āϝ⧇āĻ–āĻžāύ⧇ āĻāĻ•āϟāĻŋ āϰ⧇āĻĄāĻŋāĻ“ āĻāĻ•āϟāĻŋ āύāϤ⧁āύ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ, āĻāĻ•āχ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇āϰ āϞāĻŋāĻ™ā§āϕ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āĻžāϧāĻŋāĻ• āϰ⧇āĻĄāĻŋāĻ“ āĻ‰ā§ŽāϏāĻ°ā§āĻ— āĻ•āϰāĻžāϰ āĻšā§‡āϝāĻŧ⧇ āĻ…āĻ—ā§āϰāĻžāϧāĻŋāĻ•āĻžāϰ āĻĒ⧇āϤ⧇ āĻšāĻŦ⧇āĨ¤ āĻ•āύāĻ•āĻžāϰ⧇āĻ¨ā§āϏāĻŋ āϏāĻŋāύāĻžāϰāĻŋāĻ“āϗ⧁āϞāĻŋāϕ⧇ MLO-āĻāϰ āĻšā§‡āϝāĻŧ⧇āĻ“ āĻ…āĻ—ā§āϰāĻžāϧāĻŋāĻ•āĻžāϰ āĻĻāĻŋāϤ⧇ āĻšāĻŦ⧇, āϕ⧋āύāϟāĻŋ āĻĒā§āϰāĻĨāĻŽā§‡ āĻāϏ⧇āϛ⧇ āϤāĻž āĻŦāĻŋāĻŦ⧇āϚāύāĻž āύāĻž āĻ•āϰ⧇āĨ¤ āĻāĻ•āϟāĻŋ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āĻžāϧāĻŋāĻ• āϞāĻŋāĻ™ā§āĻ• āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āϏ⧁āĻŦāĻŋāϧāĻžāĻŦāĻžāĻĻā§€, āϝāĻžāϰ āĻ…āĻ°ā§āĻĨ āĻšāϞ āĻāĻ•āĻžāϧāĻŋāĻ• āϞāĻŋāĻ™ā§āĻ• āĻļ⧁āϧ⧁āĻŽāĻžāĻ¤ā§āϰ āϤāĻ–āύāχ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻž āĻšāϝāĻŧ āϝāĻ–āύ:

  • āϞ⧋āĻĄ āĻŦā§āϝāĻžāϞ⧇āĻ¨ā§āϏāĻŋāĻ‚, āĻ…ā§āϝāĻžāĻ—ā§āϰāĻŋāϗ⧇āĻļāύ, āĻŦāĻž āĻĄā§āĻĒā§āϞāĻŋāϕ⧇āĻļāύ⧇āϰ āϜāĻ¨ā§āϝ āĻĢāĻžāĻ°ā§āĻŽāĻ“āϝāĻŧā§āϝāĻžāϰ⧇āϰ āϏāĻŋāĻĻā§āϧāĻžāĻ¨ā§āϤ⧇āϰ āωāĻĒāϰ āĻ­āĻŋāĻ¤ā§āϤāĻŋ āĻ•āϰ⧇ MLO āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĨ¤
  • MLO āωāĻĒāϞāĻŦā§āϧ , āĻ…āĻ°ā§āĻĨāĻžā§Ž āĻ…āĻ¨ā§āϝ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ āϰ⧇āĻĄāĻŋāĻ“āϰ āĻĒā§āϰāϝāĻŧā§‹āϜāύ āĻšāϝāĻŧ āύāĻžāĨ¤

āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ ā§§ā§Ē āĻŦāĻž āϤāĻžāϰ āωāĻšā§āϚāϤāϰ āĻ­āĻžāĻ°ā§āϏāύ āϚāĻžāϞāĻŋāϤ āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ, āϝāĻ–āύ Wi-Fi 7 AP āĻŦā§€āĻ•āύ, āĻĒā§āϰ⧋āĻŦ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻāĻŦāĻ‚ āĻ…ā§āϝāĻžāϏ⧋āϏāĻŋāϝāĻŧ⧇āĻļāύ āϰ⧇āϏāĻĒāĻ¨ā§āϏ āĻĢā§āϰ⧇āĻŽā§‡ āĻĒā§āϰ⧇āϰāĻŋāϤ TID-āϟ⧁-āϞāĻŋāĻ™ā§āĻ• āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āωāĻĒāĻžāĻĻāĻžāύ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ āĻāĻ•āϟāĻŋ āϞāĻŋāĻ™ā§āϕ⧇āϰ āϏāĻžāĻŽāϝāĻŧāĻŋāĻ• āύāĻŋāĻˇā§āĻ•ā§āϰāĻŋāϝāĻŧāϤāĻžāϰ āĻ˜ā§‹āώāĻŖāĻž āĻĻ⧇āϝāĻŧ, āϤāĻ–āύ Wi-Fi 7 āĻ¸ā§āĻŸā§‡āĻļāύāϟāĻŋ āĻ…āĻ¨ā§āϝ āϕ⧋āύāĻ“ āĻ…ā§āϝāĻžāϏ⧋āϏāĻŋāϝāĻŧ⧇āĻļāύ āύāĻž āĻ•āϰ⧇āχ āϏ⧇āϟ āφāĻĒ āĻ•āϰāĻž āĻ…āĻŦāĻļāĻŋāĻˇā§āϟ āϞāĻŋāĻ™ā§āĻ•āϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ AP āĻāϰ āϏāĻžāĻĨ⧇ āϏāĻ‚āϝ⧋āĻ— āϚāĻžāϞāĻŋāϝāĻŧ⧇ āϝāĻžāϝāĻŧāĨ¤

āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ ā§§ā§Š āĻŦāĻž āϤāĻžāϰ āφāϗ⧇āϰ āĻ­āĻžāĻ°ā§āϏāύ⧇ āϚāϞāĻŽāĻžāύ āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ, āϟāĻŋāφāχāĻĄāĻŋ-āϟ⧁-āϞāĻŋāĻ™ā§āĻ• āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚āϝāĻŧ⧇āϰ āĻ•āĻžāϰāϪ⧇ āϞāĻŋāĻ™ā§āϕ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāϞ⧇ āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻŦāĻŋāĻœā§āĻžāĻĒā§āϤāĻŋ āĻ—ā§āϰāĻšāĻŖ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āύāĻž, āĻāĻŽāύāĻ•āĻŋ āϝāĻĻāĻŋ āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ āϞāĻŋāĻ™ā§āĻ•āϟāĻŋ āϟāĻŋāφāχāĻĄāĻŋ-āϰ āϏāĻžāĻĨ⧇ āϞāĻŋāĻ™ā§āĻ• āύāĻžāĻ“ āĻĨāĻžāϕ⧇āĨ¤

āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ āφāĻŦ⧇āĻĻāύāĻ•āĻžāϰ⧀ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ AIDL āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇āϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ TID-āϟ⧁-āϞāĻŋāĻ™ā§āĻ• āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āĻ“āϝāĻŧāĻžāχ-āĻĢāĻžāχ āĻ•āĻžāĻ āĻžāĻŽā§‹ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ…āĻŦāĻšāĻŋāϤ āĻ•āϰ⧇:

āĻ…ā§āϝāĻžāĻĒāϗ⧁āϞāĻŋ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ API āϗ⧁āϞāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ TID-āϟ⧁-āϞāĻŋāĻ™ā§āĻ• āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϤāĻĨā§āϝ āĻĒ⧇āϤ⧇ āĻĒāĻžāϰ⧇:

  • ConnectivityManager.NetworkCallback.onCapabilitiesChanged() : TID-āϟ⧁-āϞāĻŋāĻ™ā§āĻ• āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻšāϞ⧇ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĻā§āĻŦāĻžāϰāĻž āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻ•āϞāĻŦā§āϝāĻžāĻ• āĻŸā§āϰāĻŋāĻ—āĻžāϰ āĻšāϝāĻŧāĨ¤
  • WifiInfo#getAssociatedMloLinks() : āϏāĻ‚āĻļā§āϞāĻŋāĻˇā§āϟ MLO āϞāĻŋāĻ™ā§āĻ•āϗ⧁āϞāĻŋ āĻĢ⧇āϰāϤ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤
  • MloLink#getState() : āϞāĻŋāĻ™ā§āϕ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž, MLO_LINK_STATE_ACTIVE āĻ…āĻĨāĻŦāĻž MLO_LINK_STATE_IDLE āĻĢ⧇āϰāϤ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤

āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ ā§§ā§Ē āĻŦāĻž āϤāĻžāϰ āωāĻšā§āϚāϤāϰ āĻ­āĻžāĻ°ā§āϏāύ āϚāĻžāϞāĻŋāϤ āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ, āĻ¸ā§āĻŸā§‡āĻļāύ āĻāĻŦāĻ‚ āĻāĻĒāĻŋ-āϰ āϜāĻ¨ā§āϝ āϟāĻŋāφāχāĻĄāĻŋ-āϟ⧁-āϞāĻŋāĻ™ā§āĻ• āĻŽā§āϝāĻžāĻĒ āφāϞ⧋āϚāύāĻžāϰ āĻ•ā§āώāĻŽāϤāĻž āĻĒ⧇āϤ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ API āϗ⧁āϞāĻŋ āωāĻĒāϞāĻŦā§āϧāĨ¤

āϚāĻŋāĻĒ āĻ•ā§āώāĻŽāϤāĻž

āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏāϗ⧁āϞāĻŋ TID-āϟ⧁-āϞāĻŋāĻ™ā§āĻ• āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āφāϞ⧋āϚāύāĻžāϰ āϜāĻ¨ā§āϝ āϚāĻŋāĻĒ āĻ•ā§āώāĻŽāϤāĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤

AIDL HAL āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇

TID-āϟ⧁-āϞāĻŋāĻ‚āĻ• āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āφāϞ⧋āϚāύāĻžāϰ āϜāĻ¨ā§āϝ AIDL āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏāϟāĻŋ hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl FeatureSetMask āĻ āϰāϝāĻŧ⧇āϛ⧇āĨ¤ T2LM_NEGOTIATION = 1 << 8 āĻ•ā§āώāĻŽāϤāĻž āύāĻŋāĻ°ā§āĻĻ⧇āĻļ āĻ•āϰ⧇ āϝ⧇ āϚāĻŋāĻĒāϟāĻŋ TID-āϟ⧁-āϞāĻŋāĻ‚āĻ• āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤ API āϗ⧁āϞāĻŋ

  • WifiManager.isTidToLinkMappingNegotiationSupported() : TID-āϟ⧁-āϞāĻŋāĻ™ā§āĻ• āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āφāϞ⧋āϚāύāĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āĻāĻŽāύ āϚāĻŋāĻĒāϟāĻŋ āĻĢ⧇āϰāϤ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤

āĻāĻĒāĻŋ āĻ•ā§āώāĻŽāϤāĻž

āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏāϗ⧁āϞāĻŋ TID-āϟ⧁-āϞāĻŋāĻ™ā§āĻ• āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āφāϞ⧋āϚāύāĻžāϰ āϜāĻ¨ā§āϝ AP āĻ•ā§āώāĻŽāϤāĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤

AIDL HAL āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇

āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āϟāĻŋ āĻŦāĻ°ā§āϤāĻŽāĻžāύ āϏāĻ‚āϝ⧋āĻ— āĻ•ā§āώāĻŽāϤāĻžāϰ āϏāĻžāĻĨ⧇ āφāĻŦ⧇āĻĻāύāĻ•āĻžāϰ⧀āϰ AP āĻ•ā§āώāĻŽāϤāĻž āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āϜāĻŋāĻœā§āĻžāĻžāϏāĻž āĻ•āϰ⧇āĨ¤

  • apTidToLinkMapNegotiationSupported : āĻāĻ•āϟāĻŋ AP TID-āϟ⧁-āϞāĻŋāĻ™ā§āĻ• āĻŽāĻžāύāϚāĻŋāĻ¤ā§āϰ āφāϞ⧋āϚāύāĻžāϰ āĻ•ā§āώāĻŽāϤāĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āĻ•āĻŋāύāĻž āϤāĻž āĻĒāϰ⧀āĻ•ā§āώāĻž āĻ•āϰ⧇āĨ¤

āĻāĻĒāĻŋāφāχ

  • WifiInfo.isApTidToLinkMappingNegotiationSupported() : AP TID-āϟ⧁-āϞāĻŋāĻ™ā§āĻ• āĻŽā§āϝāĻžāĻĒāĻŋāĻ‚ āφāϞ⧋āϚāύāĻž āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇ āĻ•āĻŋāύāĻž āϤāĻž āĻĢ⧇āϰāϤ āĻĻ⧇āϝāĻŧāĨ¤

āϞāĻŋāĻ™ā§āĻ• āϞ⧇āϝāĻŧāĻžāϰ āĻĒāϰāĻŋāϏāĻ‚āĻ–ā§āϝāĻžāύ⧇āϰ āĻŽāĻ§ā§āϝ⧇ āϰāϝāĻŧ⧇āϛ⧇ Wi-Fi āϞāĻŋāĻ™ā§āĻ•-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻŦāĻŋāĻŦāϰāĻŖ āϝ⧇āĻŽāύ RSSI, āĻŦāĻŋāĻ­āĻŋāĻ¨ā§āύ TX āĻāĻŦāĻ‚ RX āĻĒā§āϝāĻžāϕ⧇āϟ āĻ•āĻžāωāĻ¨ā§āϟāĻžāϰ āĻāĻŦāĻ‚ āϰ⧇āĻĄāĻŋāĻ“ āĻĒāϰāĻŋāϏāĻ‚āĻ–ā§āϝāĻžāύāĨ¤ Wi-Fi āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āĻĒāĻ°ā§āϝāĻžāϝāĻŧāĻ•ā§āϰāĻŽā§‡ āϏ⧇āϰāĻž āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āύāĻŋāĻ°ā§āĻŦāĻžāϚāύ āĻ•āϰāϤ⧇ āĻŦāĻž āϏāĻ‚āϝ⧁āĻ•ā§āϤ āύ⧇āϟāĻ“āϝāĻŧāĻžāĻ°ā§āϕ⧇āϰ āϗ⧁āĻŖāĻŽāĻžāύ āĻŽā§‚āĻ˛ā§āϝāĻžāϝāĻŧāύ āĻ•āϰāϤ⧇ āϞāĻŋāĻ™ā§āĻ• āϞ⧇āϝāĻŧāĻžāϰ āĻĒāϰāĻŋāϏāĻ‚āĻ–ā§āϝāĻžāύ āĻāĻŦāĻ‚ RSSI āĻĒā§‹āϞ āĻ•āϰ⧇āĨ¤ Android 14 āĻŦāĻž āωāĻšā§āϚāϤāϰ āϏāĻ‚āĻ¸ā§āĻ•āϰāϪ⧇ āϚāϞāĻŽāĻžāύ āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ, āϞāĻŋāĻ™ā§āĻ• āϞ⧇āϝāĻŧāĻžāϰ āĻĒāϰāĻŋāϏāĻ‚āĻ–ā§āϝāĻžāύ āĻŽāĻžāĻ˛ā§āϟāĻŋ-āϞāĻŋāĻ™ā§āĻ• āϏāĻŽāĻ°ā§āĻĨāύ āĻ…āĻ¨ā§āϤāĻ°ā§āϭ⧁āĻ•ā§āϤ āĻ•āϰ⧇āĨ¤ Wi-Fi 7 āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, Android āϞāĻŋāĻ™ā§āĻ• āϞ⧇āϝāĻŧāĻžāϰ āĻĒāϰāĻŋāϏāĻ‚āĻ–ā§āϝāĻžāύ āĻāĻŦāĻ‚ āϏāĻŋāĻ—āĻ¨ā§āϝāĻžāϞ āĻĒā§‹āϞāĻŋāĻ‚ āωāĻ­āϝāĻŧ āĻ•ā§āώ⧇āĻ¤ā§āϰ⧇āχ MLO āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤

āϞāĻŋāĻ™ā§āĻ•-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĒāϰāĻŋāϏāĻ‚āĻ–ā§āϝāĻžāύ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āϞāĻŋāĻ™ā§āĻ• āĻ¸ā§āϤāϰ AIDL āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ āĻĒāĻžāĻ“āϝāĻŧāĻž āϝāĻžāϝāĻŧ:

android.net.wifi.WifiManager#addOnWifiUsabilityStatsListener() āϏāĻŋāĻ¸ā§āĻŸā§‡āĻŽ API āϏāĻŽāĻ¸ā§āϤ āϞāĻŋāĻ™ā§āĻ• āĻ¸ā§āϤāϰ āĻĒāϰāĻŋāϏāĻ‚āĻ–ā§āϝāĻžāύ āĻļā§‹āύ⧇āĨ¤ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āϟāĻŋ āĻĒāĻ°ā§āϝāĻžāϝāĻŧāĻ•ā§āϰāĻŽā§‡ Wi-Fi āĻŦā§āϝāĻŦāĻšāĻžāϰāϝ⧋āĻ—ā§āϝāϤāĻžāϰ āĻĒāϰāĻŋāϏāĻ‚āĻ–ā§āϝāĻžāύ āφāĻĒāĻĄā§‡āϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ āĻāχ API āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤

āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āϞāĻŋāĻ™ā§āĻ•-āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ 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)

āωāĻĒāϞāĻŦā§āϧ āϞāĻŋāĻ™ā§āĻ• āφāχāĻĄāĻŋāϗ⧁āϞāĻŋ āĻ…āύ⧁āϏāĻ¨ā§āϧāĻžāύ āĻ•āϰāϤ⧇, āĻ…ā§āϝāĻžāĻĒāϗ⧁āϞāĻŋ android.net.wifi.WifiUsabilityStatsEntry#getLinkIds() āĻĒāĻĻā§āϧāϤāĻŋāϤ⧇ āĻ•āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻāĻ•āĻ• āϞāĻŋāĻ™ā§āϕ⧇āϰ āϜāĻ¨ā§āϝ android.net.wifi.WifiUsabilityStatsEntry āĻāϰ API āϗ⧁āϞāĻŋ (MLO āύāϝāĻŧ) 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()
    

āĻ…ā§āϝāĻžāĻ¨ā§āĻĄā§āϰāϝāĻŧ⧇āĻĄ ā§§ā§Š āϚāĻžāϞāĻŋāϤ āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋāϰ āϜāĻ¨ā§āϝ, āϞāĻŋāĻ™ā§āĻ• āϞ⧇āϝāĻŧāĻžāϰ āĻĒāϰāĻŋāϏāĻ‚āĻ–ā§āϝāĻžāύ āĻāĻ•āϟāĻŋ āĻāĻ•āĻ• āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇āϰ āϜāĻ¨ā§āϝ āĻāĻ•āĻžāϧāĻŋāĻ• āϞāĻŋāĻ™ā§āϕ⧇āϰ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻŦāĻŋāĻŦ⧇āϚāύāĻž āĻ•āϰ⧇ āύāĻžāĨ¤ MLO āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ, IWifi# getLinkLayerStats_1_6() HAL API āĻāϰ āĻŽāĻžāĻ§ā§āϝāĻŽā§‡ LinkLayerStats āϰāĻŋāĻĒā§‹āĻ°ā§āϟ āĻ•āϰāĻžāϰ āϏāĻŽāϝāĻŧ āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻž āϏāĻĢā§āϟāĻ“āϝāĻŧā§āϝāĻžāϰāϕ⧇ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āϏāĻŽāĻˇā§āϟāĻŋāĻ—āϤ āϝ⧁āĻ•ā§āϤāĻŋ āĻĒā§āϰāϝāĻŧā§‹āĻ— āĻ•āϰāϤ⧇ āĻšāĻŦ⧇āĨ¤ āϏ⧇āϰāĻž āϞāĻŋāĻ™ā§āĻ• āĻšāϞ āϏāĻ°ā§āĻŦā§‹āĻšā§āϚ 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 āĻāϰ āϏāĻžāĻĨ⧇ āύāĻŋāĻ°ā§āĻŦāĻŋāĻ˜ā§āύ āϏāĻ‚āϝ⧋āĻ— āĻŦāϜāĻžāϝāĻŧ āϰāĻžāĻ–āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

ISupplicantStaIfaceCallback.aidl āĻāϰ Wi-Fi āϏāϰāĻŦāϰāĻžāĻšāĻ•āĻžāϰ⧀āϤ⧇ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāϤ onMloLinksInfoChanged AIDL āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏāϟāĻŋ āϞāĻŋāĻ™ā§āĻ• āĻĒ⧁āύāĻ°ā§āĻ—āĻ āύ (āϞāĻŋāĻ™ā§āϕ⧇āϰ AP āĻ…āĻĒāϏāĻžāϰāĻŖ) āϏāĻŽāĻ°ā§āĻĨāύ āĻ•āϰ⧇āĨ¤

āϝāĻ–āύ Wi-Fi āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ• āϕ⧋āύāĻ“ āϞāĻŋāĻ™ā§āĻ• āĻ…āĻĒāϏāĻžāϰāĻŖ āĻĒā§āϰāĻ•ā§āϰāĻŋāϝāĻŧāĻž āĻ•āϰ⧇, āϤāĻ–āύ āϞāĻŋāĻ™ā§āϕ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž MLO_LINK_STATE_UNASSOCIATED āĻ āϏ⧇āϟ āĻ•āϰāĻž āĻšāϝāĻŧāĨ¤ āĻāϰāĻĒāϰ āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āϟāĻŋ āϞāĻŋāĻ™ā§āϕ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ⧇āϰ āϜāĻ¨ā§āϝ ConnectivityManager.NetworkCallback#onCapabilitiesChanged() āĻŸā§āϰāĻŋāĻ—āĻžāϰ āĻ•āϰ⧇āĨ¤

WifiInfo#getAffiliatedMloLinks āĻĒāĻĻā§āϧāϤāĻŋāϟāĻŋ āĻ…ā§āϝāĻžāĻĢāĻŋāϞāĻŋāϝāĻŧ⧇āϟ MLO āϞāĻŋāĻ™ā§āĻ•āϗ⧁āϞāĻŋ āĻĢ⧇āϰāϤ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤ MloLink#getState āĻĒāĻĻā§āϧāϤāĻŋāϟāĻŋ āϞāĻŋāĻ™ā§āϕ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻĢ⧇āϰāϤ āĻĒāĻžāĻ āĻžāϝāĻŧāĨ¤ āϝāĻĻāĻŋ āϞāĻŋāĻ™ā§āĻ•āϟāĻŋ āϏāϰāĻžāύ⧋ āĻšāϝāĻŧ, āϤāĻžāĻšāϞ⧇ āĻĢāĻŋāϰ⧇ āφāϏāĻž āϞāĻŋāĻ™ā§āϕ⧇āϰ āĻ…āĻŦāĻ¸ā§āĻĨāĻž āĻšāϞ MLO_LINK_STATE_UNASSOCIATED āĨ¤

āϚāĻŋāĻĒ āĻāĻŽāĻāϞāĻ“ āĻ•ā§ŒāĻļāϞ

MLO āĻĄāĻŋāĻ­āĻžāχāϏāϗ⧁āϞāĻŋāϕ⧇ āĻāĻ•āχ āϏāĻŽāϝāĻŧ⧇ āĻāĻ•āĻžāϧāĻŋāĻ• Wi-Fi āϞāĻŋāĻ™ā§āϕ⧇ āĻĄā§‡āϟāĻž āĻĒā§āϰ⧇āϰāĻŖ āĻāĻŦāĻ‚ āĻ—ā§āϰāĻšāĻŖ āĻ•āϰāĻžāϰ āĻ…āύ⧁āĻŽāϤāĻŋ āĻĻ⧇āϝāĻŧ, āϝāĻž āĻ•āĻŽ āĻ˛ā§āϝāĻžāĻŸā§‡āĻ¨ā§āϏāĻŋ, āωāĻšā§āϚ āĻŦā§āϝāĻžāĻ¨ā§āĻĄāωāχāĻĨ āĻāĻŦāĻ‚ āĻ•āĻŽ āĻĒāĻžāĻ“āϝāĻŧāĻžāϰ⧇āϰ āĻŽāϤ⧋ āύāĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āϟ āĻĒā§āϰāϝāĻŧā§‹āϜāύ⧀āϝāĻŧāϤāĻž āϏāĻŽā§āĻĒāĻ¨ā§āύ āĻ…ā§āϝāĻžāĻĒāϗ⧁āϞāĻŋāϰ āĻ•āĻ°ā§āĻŽāĻ•ā§āώāĻŽāϤāĻž āωāĻ¨ā§āύāϤ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϚāĻŋāĻĒ āĻŦāĻŋāĻ•ā§āϰ⧇āϤāĻžāϰāĻž āωāĻĒāϞāĻŦā§āϧ āϞāĻŋāĻ™ā§āĻ•āϗ⧁āϞāĻŋ āϕ⧀āĻ­āĻžāĻŦ⧇ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦ⧇āύ āϏ⧇ āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽ āϤ⧈āϰāĻŋ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇āĨ¤

āĻŦāĻŋāĻļ⧇āώāĻžāϧāĻŋāĻ•āĻžāϰāĻĒā§āϰāĻžāĻĒā§āϤ āĻ…ā§āϝāĻžāĻĒāϗ⧁āϞāĻŋ Wifimanager āĻ setMloMode āĻĒāĻĻā§āϧāϤāĻŋ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇ āĻāχ āĻ…ā§āϝāĻžāϞāĻ—āϰāĻŋāĻĻāĻŽāϗ⧁āϞāĻŋ āĻĒāϰāĻŋāĻŦāĻ°ā§āϤāύ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇ āĻāĻŦāĻ‚ āύāĻŋāĻŽā§āύāϞāĻŋāĻ–āĻŋāϤ āĻŽā§‹āĻĄāϗ⧁āϞāĻŋ āϏ⧇āϟ āĻ•āϰāϤ⧇ āĻĒāĻžāϰ⧇:

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

āĻĢā§āϰ⧇āĻŽāĻ“āϝāĻŧāĻžāĻ°ā§āĻ•āϟāĻŋ MLO āĻŽā§‹āĻĄ āϏ⧇āϟ āĻ•āϰāĻžāϰ āϜāĻ¨ā§āϝ IWifiChip AIDL āχāĻ¨ā§āϟāĻžāϰāĻĢ⧇āϏ⧇ setMloMode āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰ⧇āĨ¤