สำหรับอุปกรณ์ที่ใช้ Android 13 ขึ้นไป Android จะรองรับมาตรฐาน Wi-Fi 7 (IEEE 802.11be) หน้านี้อธิบายฟีเจอร์ Wi-Fi 7 ของ Android รวมถึงการทำงานพื้นฐานและการทำงานแบบหลายลิงก์ (MLO)
ฟีเจอร์ Wi-Fi 7 พื้นฐาน
ส่วนนี้จะอธิบายฟีเจอร์ Wi-Fi 7 พื้นฐานที่รวมอยู่ใน Android 13 ขึ้นไป
การรองรับ Wi-Fi 7 ของอุปกรณ์
เฟรมเวิร์ก Android มี API
WifiManager#isWifiStandardSupported(int standard)
ซึ่งแอปสามารถเรียกใช้ด้วยอาร์กิวเมนต์
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 จะขอข้อมูลจาก wificond ซึ่งเรียกใช้คำสั่ง nl80211NL80211_CMD_GET_WIPHY
หากแอตทริบิวต์NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY
อยู่ในการตอบสนองจาก ไดรเวอร์ ระบบจะถือว่าอุปกรณ์รองรับ Wi-Fi 7
รองรับ Wi-Fi 7 ของ AP ที่สแกน
เฟรมเวิร์ก Android มี API
int ScanResult#getWifiStandard()
ซึ่งแอปสามารถเรียกใช้เพื่อตรวจสอบว่าจุดเข้าใช้งาน (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
คลาส AOSP WifiTracker
จะแสดงข้อมูลการสนับสนุนนี้ในอินเทอร์เฟซผู้ใช้เมื่อทำงานในโหมดละเอียด
โหมดการเชื่อมต่อ STA
เฟรมเวิร์ก Android มี
int WifiInfo#getWifiStandard()
API ซึ่งแอปสามารถเรียกใช้เพื่อตรวจสอบว่าโหมดการเชื่อมต่อสถานี (STA) ปัจจุบันเป็น Wi-Fi 7 หรือไม่ โหมดการเชื่อมต่อ STA คือ Wi-Fi 7 เมื่อทั้งอุปกรณ์และ
AP ที่เชื่อมต่อรองรับ Wi-Fi 7 หากโหมดการเชื่อมต่อเป็น Wi-Fi 7 API จะ
แสดงผล
ScanResults.WIFI_STANDARD_11BE
เมื่อมีการเรียกใช้ getWifiStandard
โมดูล Wi-Fi จะกำหนดโหมดโดยการเรียกใช้
ISupplicantStaIface#getConnectionCapabilities()
HAL API การ
ใช้งาน HAL API นี้ในเลเยอร์ AIDL ของ wpa_supplicant
จะตรวจสอบว่า
EHT Capability IE
อยู่ในทั้ง AssocReq
และ AssocRsp
หรือไม่ในระหว่าง
การตั้งค่าการเชื่อมต่อ
การเลือกเครือข่าย
ใน Android 13 การเลือกเครือข่ายจะใช้พารามิเตอร์หลายรายการ
เพื่อพิจารณาว่าจะเชื่อมต่อกับ AP ใด พารามิเตอร์อย่างหนึ่งคือ
ปริมาณงานโดยประมาณของ AP ซึ่งประมาณโดยใช้บล็อก
ThroughputPredictor
บล็อก
ThroughputPredictor
ใช้พารามิเตอร์ PHY ของทั้งอุปกรณ์และ
AP ที่สแกน
ใน Android 13 ThroughputPredictor
จะใช้ความสามารถของ AP ต่อไปนี้ในการคำนวณ
- รองรับ Wi-Fi 7 (802.11be)
- รองรับแบนด์วิดท์ช่อง 320 MHz
การรวมความสามารถเหล่านี้ไว้ในตรรกะ ThroughputPredictor
จะช่วยเพิ่มโอกาสในการเลือก AP ที่รองรับ Wi-Fi 7 เมื่ออุปกรณ์ใช้ฟีเจอร์เหล่านี้ได้
การวัดระยะทางตาม RTT ของ Wi-Fi
Android รองรับ API สำหรับคำนำหน้า EHT และแบนด์วิดท์ช่อง 320 MHz สำหรับ Wi-Fi RTT ซึ่งจะช่วยให้รองรับความสามารถที่เกี่ยวข้องกับ Wi-Fi 7 ในการวัดระยะ RTT ได้ทุกเมื่อที่ชิปรองรับ
HAL APIs
API ของ HAL ต่อไปนี้รองรับความสามารถของ Wi-Fi 7 สำหรับการวัดระยะทางที่อิงตาม RTT
EHT
: ค่าคงที่ในenum RttPreamble
และenum WifiRatePreamble
WIDTH_320
: ค่าคงที่ในenum WifiChannelWidthInMhz
BW_320MHz
: ค่าคงที่ในenum RttBw
API
แอปสามารถใช้ API ต่อไปนี้สำหรับการวัดระยะตาม RTT ของ Wi-Fi 7
ScanResult#PREAMBLE_EHT
ResponderConfig#PREAMBLE_EHT
(SystemApi)
Soft AP
Android รองรับ Wi-Fi 7 ใน Soft AP และมีฟีเจอร์ต่อไปนี้
เริ่ม Soft AP
Android รองรับการเริ่มต้น Soft AP ในโหมด Wi-Fi 7
ซึ่งควบคุมโดยการกำหนดค่าเลเยอร์ซ้อนทับ config_wifiSoftapIeee80211beSupported
โมดูล Wi-Fi ใช้การวางซ้อน config_wifiSoftapIeee80211beSupported
เพื่อตั้งค่า
บูลีน HwModeParams#enable80211BE
ใน
การเรียก API IHostApd#addAccessPoint()
ในเลเยอร์ AIDL ของ hostapd ค่านี้จะใช้เพื่อตั้งค่าพารามิเตอร์ hostapd.conf
HAL APIs
enable80211BE
บูลีนใน HwModeParams
ใน hostapd HAL รองรับ
การเริ่มต้น Soft AP ในโหมด Wi-Fi 7
รายงานข้อมูล Soft AP
Android มีการรองรับ API เพื่อรวมข้อมูล Wi-Fi 7 และความกว้างของช่อง 320 MHz ไว้ในข้อมูล Soft AP ที่รายงาน
HAL APIs
ค่าคงที่ WIFI_STANDARD_11BE
ในอินเทอร์เฟซ
Generation.aidl
AIDL ใน HAL ของ hostapd ซึ่งใช้
ใน ApInfo
ที่รายงานในแฮนเดิล IHostapdCallback#onApInstanceInfoChanged()
callback รองรับการรายงานข้อมูล Soft AP
API
แอปสามารถใช้วิธีการต่อไปนี้ (API ของระบบ) ใน
SoftApInfo
เพื่อรายงานข้อมูล Soft AP
SoftApInfo#getWifiStandard()
: ส่งคืนScanResults.WIFI_STANDARD_11BE
หากเริ่ม Soft AP ในโหมด Wi-Fi 7SoftApInfo#getBandwidth()
: ส่งคืนSoftApInfo#CHANNEL_WIDTH_320MHZ
หากใช้แบนด์วิดท์ช่อง 320 MHz
ฟีเจอร์ MLO Wi-Fi 7
การทำงานแบบหลายลิงก์ (MLO) เป็นฟีเจอร์หลักในข้อกำหนด Wi-Fi 7 (802.11be) MLO เป็นฟีเจอร์ที่จำเป็นสำหรับอุปกรณ์แบบหลายลิงก์ (MLD) ที่ทำงานใน Wi-Fi 7 ไม่ว่าจะทำงานพร้อมกันหรือไม่ก็ตาม
รูปที่ 1 ไดอะแกรม MLO
ดังที่แสดงในรูปที่ 1 ทั้ง AP-MLD และ STA-MLD มีอินสแตนซ์ AP หรือ STA หลายรายการที่ทำงานในแต่ละลิงก์ แต่ละลิงก์จะมีที่อยู่ MAC ของ AP หรือ STA แยกกัน นอกจากนี้ AP หรือ STA ยังมีที่อยู่ MAC ของ MLD เพื่อระบุอุปกรณ์ด้วย
การแสดงลิงก์ MLO
คลาส
android.net.wifi.MloLink
แสดงถึงลิงก์ MLO คลาสนี้มีพารามิเตอร์ต่อไปนี้
int getLinkId()
: รหัสลิงก์ตามที่ AP MLD โฆษณาMacAddress getApMacAddress()
: ที่อยู่ MAC ของ AP BSSID ของอินสแตนซ์ AP สำหรับลิงก์นั้นMacAddress getStaMacAddress()
: ที่อยู่ MAC ของ STA ที่อยู่ MAC ที่กำหนดในระบบสำหรับอินสแตนซ์ STA ใน ลิงก์int getChannel()
ลิงก์ช่อง หมายเลขช่องของลิงก์int getBand()
: ลิงก์วงดนตรี แบนด์ของลิงก์int getState()
: สถานะของลิงก์ อาจมีสถานะใดสถานะหนึ่งต่อไปนี้MLO_LINK_STATE_INVALID
: ไม่ถูกต้อง ใช้สําหรับกรณีการเริ่มต้นและข้อผิดพลาดMLO_LINK_STATE_UNASSOCIATED
: ไม่ได้เชื่อมโยง ลิงก์ไม่ได้เชื่อมโยงกับ APMLO_LINK_STATE_IDLE
: ไม่ได้ใช้งาน ลิงก์เชื่อมโยงอยู่แต่ไม่ได้ใช้งาน (ไม่มีการแมปรหัสการเข้าชม (TID) กับลิงก์)MLO_LINK_STATE_ACTIVE
: ใช้งานอยู่ ลิงก์เชื่อมโยงและใช้งานได้ (มีการแมป TID อย่างน้อย 1 รายการกับลิงก์) ลิงก์ที่ใช้งานอยู่อาจอยู่ในโหมดประหยัดพลังงานเนื่องจากเฟรมเวิร์กไม่ได้ตรวจสอบสถานะพลังงานของลิงก์
ข้อมูล MLO ของ AP Wi-Fi 7 ที่สแกน
แอปจะรับพารามิเตอร์ MLO สำหรับ AP MLD ของ Wi-Fi 7 ได้เมื่อโมดูล Wi-Fi
ได้รับออบเจ็กต์
ScanResult
จาก AP-MLD AOSP WifiTracker
จะแสดงพารามิเตอร์ MLO เมื่อ
ทำงานในโหมด Verbose
โมดูล Wi-Fi จะรวบรวมข้อมูล MLO โดยทำดังนี้
- แยกวิเคราะห์องค์ประกอบข้อมูล (IE) แบบหลายลิงก์ที่รวมอยู่ในบีคอนหรือการตอบกลับการตรวจสอบเพื่ออ่านที่อยู่ MAC ของ MLD ของ AP และรหัสลิงก์ปัจจุบัน
- แยกวิเคราะห์ IE รายงานเพื่อนบ้านที่ลดลง (RNR) ที่รวมอยู่ในบีคอนหรือการตอบกลับการตรวจสอบ เพื่ออ่านรายการข้อมูลลิงก์ในเครือ
API
หากต้องการรับข้อมูล AP MLO ที่สแกนแล้ว แอปสามารถใช้ API ต่อไปนี้
ScanResult#BSSID
: ที่อยู่ MAC ของอินสแตนซ์ AP (สำหรับลิงก์ที่ได้รับผลการสแกน)MacAddress ScanResult#getApMldMacAddress()
: แสดงผลที่อยู่ MAC ของ MLD ของ APint ScanResult#getApMloLinkId()
: แสดงรหัสลิงก์สำหรับลิงก์ที่ได้รับ ScanResultList<MloLink> ScanResult#getAffiliatedMloLinks()
: แสดงรายการออบเจ็กต์MloLink
สำหรับลิงก์ทั้งหมดที่โฆษณาโดย AP-MLD รวมถึงลิงก์ที่ได้รับ ScanResult
ข้อมูล MLO ของ AP Wi-Fi 7 ที่เชื่อมต่อ
เมื่ออุปกรณ์เชื่อมต่อกับ AP-MLD ของ Wi-Fi 7 เฟรมเวิร์กจะรวบรวม
พารามิเตอร์ MLO ของการเชื่อมต่อจากออบเจ็กต์ WifiInfo
ออบเจ็กต์ AOSP
WifiTracker
จะแสดงข้อมูลนี้เมื่อเรียกใช้ในโหมดละเอียด
เมื่ออุปกรณ์เชื่อมต่อกับ AP-MLD โมดูล Wi-Fi จะคัดลอกข้อมูล MLO
จากออบเจ็กต์ ScanResult
ที่ได้รับจาก AP จากนั้นโมดูลจะเรียกใช้ ISupplicantStaIface#getConnectionMloLinksInfo()
HAL API
เพื่ออ่านที่อยู่ MAC ของแต่ละลิงก์สำหรับทั้ง AP และ STA รวมถึงอัปเดต
สถานะของลิงก์ที่เชื่อมโยง
API
หากต้องการรับข้อมูลการเชื่อมต่อ MLO แอปสามารถใช้ API ต่อไปนี้
WifiInfo#getBSSID()
: แสดงที่อยู่ MAC ของอินสแตนซ์ AP (สำหรับลิงก์ที่อุปกรณ์เชื่อมโยงอยู่)MacAddress WifiInfo#getApMldMacAddress()
: แสดงผลที่อยู่ MAC ของ MLD ของ APint WifiInfo#getApMloLinkId()
: แสดงรหัสลิงก์สำหรับลิงก์ที่ STA เชื่อมโยงกับ APList<MloLink> WifiInfo#getAffiliatedMloLinks()
: แสดงผลรายการออบเจ็กต์MloLink
สำหรับลิงก์ทั้งหมดที่โฆษณาโดย AP-MLD รวมถึงลิงก์ที่เกี่ยวข้อง คุณสามารถค้นหาที่อยู่ MAC ของทั้ง AP และ STA ได้ในออบเจ็กต์MloLink
แต่ละรายการ
การสแกน AP-MLD
ซอฟต์แวร์ของผู้ให้บริการจะให้เฟรมเวิร์ก Wi-Fi พร้อมผลการสแกนสำหรับ แต่ละสัญญาณบีคอนหรือการตอบกลับการตรวจสอบที่ได้รับ ซึ่งหมายความว่าเฟรมเวิร์ก Wi-Fi มีลักษณะดังนี้
- อาจได้รับออบเจ็กต์
ScanResults
หลายรายการจาก AP-MLD เดียวกัน (เนื่องจาก AP อาจมีลิงก์การส่งสัญญาณหลายลิงก์) - อาจได้รับผลการสแกนสำหรับลิงก์ AP ของ AP-MLD เพียงบางส่วน เนื่องจากเฟิร์มแวร์อาจไม่ได้รับสัญญาณลิงก์บางรายการ
ซอฟต์แวร์ของผู้ให้บริการจะรายงานเฉพาะผลการสแกนที่ได้รับแบบไร้สาย และต้องไม่สร้าง (สังเคราะห์โดยเทียม) ผลการสแกนตามลิงก์ที่โฆษณาโดย AP-MLD
ซอฟต์แวร์ของผู้ให้บริการต้องมีลิงก์หลายรายการของตัวแปรพื้นฐานและ IE ของ RNR ที่ได้รับจากอินสแตนซ์ AP ในผลการสแกนที่รายงาน หากไม่มีรายละเอียด AP ที่เชื่อมโยงในผลการสแกน ซอฟต์แวร์ของผู้ให้บริการจะส่งคำขอ Probe แบบหลายลิงก์ (เฟรมคำขอ Probe ที่มีองค์ประกอบคำขอ Probe แบบหลายลิงก์) เพื่อรวมชุดความสามารถ พารามิเตอร์ และองค์ประกอบการทำงานของ AP ที่สมบูรณ์หรือบางส่วนกับ AP-MLD เป้าหมายในเฟรมการตอบกลับ
ซอฟต์แวร์ของผู้ให้บริการ สามารถทริกเกอร์การตรวจสอบ ML (ใช้ ML IE ที่เป็นตัวแปรของคำขอ Probe ในเฟรมคำขอ Probe) หากจำเป็น
การเชื่อมโยงเครือข่าย AP-MLD
เมื่ออุปกรณ์เข้าร่วมเครือข่าย AP-MLD ซอฟต์แวร์ของผู้ให้บริการจะใช้ AP link (ลิงก์ที่เชื่อมโยง) ที่เลือกสำหรับการส่งสัญญาณ ซอฟต์แวร์ของผู้ให้บริการสามารถ เชื่อมโยงกับลิงก์ทั้งหมดหรือบางลิงก์ที่อุปกรณ์รองรับ
เมื่อเชื่อมโยงสำเร็จ ไดรเวอร์จะรายงาน
ISupplicantStaIfaceCallback#onStateChanged()
พร้อม BSSID ของลิงก์สำหรับ
AP-MLD จากนั้นไดรเวอร์จะเลือกลิงก์ของ AP-MLD โดยมีเงื่อนไขว่า
มีการรายงานผลการสแกนไปยังเฟรมเวิร์กสำหรับลิงก์นั้น
การให้คะแนนเครือข่าย
สำหรับอุปกรณ์ที่ใช้ Android 14 ขึ้นไป การเลือกเครือข่าย Wi-Fi ของ Android รองรับ MLO ของ Wi-Fi 7 ซึ่งหมายความว่า Android จะเลือกเครือข่าย Wi-Fi ที่ดีที่สุดสำหรับอุปกรณ์โดยอิงตามจำนวนลิงก์ที่พร้อมใช้งานสำหรับ MLO
อัลกอริทึมการเลือกเครือข่ายจะใช้ความสามารถ MLO ต่อไปนี้จากชิป Wi-Fi เพื่อรองรับ MLO
- จำนวนลิงก์ STR สูงสุด
- จำนวนลิงก์การเชื่อมโยงสูงสุด
- การรวมแบนด์พร้อมกัน
รูปที่ 2 การเลือกเครือข่าย MLO
จำนวนลิงก์ STR สูงสุด
การส่งและรับพร้อมกัน (STR) เป็นรูปแบบการแย่งชิงสื่อ Wi-Fi สำหรับ การทำงานแบบหลายลิงก์ การแยกสัญญาณระหว่างลิงก์ต่างๆ มีเพียงพอ เพื่อให้ลิงก์ทำงานได้อย่างอิสระและสามารถส่งและ รับพร้อมกันในลิงก์ต่างๆ STR แตกต่างจาก STA แบบลิงก์เดียว (SL) รุ่นเดิมและ STA แบบดูอัลแบนด์ดูอัลคอนเคอเรนต์ (DBDC) รุ่นเดิม STA ที่เชื่อมโยงกับ STA MLD จะใช้หมายเลขลำดับ (SN) ของเครื่องส่งสัญญาณร่วมกันและพื้นที่ร่วมกันสำหรับการส่งข้อมูลที่จัดสรรให้กับลิงก์ต่างๆ หากการส่งลิงก์หลายรายการมีหมวดหมู่การเข้าถึง (AC) เดียวกัน
จำนวนลิงก์ STR สูงสุดที่ใช้ได้อาจแตกต่างจากจำนวนสูงสุด ของคลื่นวิทยุที่ชิปรองรับ ในตัวอย่างในรูปที่ 2 จำนวนลิงก์ STR สูงสุดคือ 2
อินเทอร์เฟซ AIDL HAL ต่อไปนี้รองรับจำนวนลิงก์ STR สูงสุด และความสามารถด้านจำนวนลิงก์การเชื่อมโยงสูงสุด
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/WifiChipCapabilities.aidl
จำนวนลิงก์การเชื่อมโยงสูงสุด
ลิงก์หลายรายการสามารถทำงานบนคลื่นวิทยุเดียวได้โดยใช้รูปแบบการแย่งชิง Enhanced Multi-Link Single Radio (eMLSR) อุปกรณ์แบบหลายลิงก์จะใช้ eMLSR ผ่านชุดลิงก์หากรับเฟรมควบคุมพื้นฐานบางอย่างและทำการประเมินช่องสัญญาณที่ชัดเจน (CCA) พร้อมกันในชุดลิงก์ได้ อย่างไรก็ตาม MLD จะส่งหรือรับข้อมูลในลิงก์เดียวเท่านั้น (ลิงก์ที่เลือก แบบไดนามิกในแต่ละช่วงโอกาสในการส่ง (TXOP)) ในแต่ละครั้ง
สถานี MLD สามารถเพิ่มจำนวนลิงก์การเชื่อมโยงเพื่อความน่าเชื่อถือ อัตราการส่งข้อมูล และเวลาในการตอบสนองที่ดียิ่งขึ้น (เมื่อเทียบกับสถานีเดิมที่มีลิงก์เดียว) โดยการทำงานพร้อมกันใน STR และ eMLSR หากชิปรองรับ ในรูปที่ 2 จำนวนลิงก์การเชื่อมโยงสูงสุดคือ 3
อินเทอร์เฟซ AIDL HAL ต่อไปนี้รองรับความสามารถในการเชื่อมโยงสูงสุด
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/WifiChipCapabilities.aidl
การรวมแบนด์พร้อมกัน
เฟรมเวิร์กจะค้นหาชิปเพื่อรับชุดค่าผสมของคลื่นวิทยุที่อนุญาต (ผ่านIWifiChip.aidl
อินเทอร์เฟซ AIDL) ซึ่งทำงานพร้อมกันได้ จากข้อมูลนี้ เฟรมเวิร์กจะอนุมานชุดค่าผสมของแบนด์ที่อาจเกิดขึ้นพร้อมกัน
ต่อไปนี้คือตัวอย่างรายการการผสมย่านความถี่พร้อมกัน (GHz)
- 2.4
- 5
- 6
- 2.4 x 5
- 2.4 x 6
- 5 x 6
อินเทอร์เฟซ AIDL HAL ต่อไปนี้รองรับการผสมผสานวิทยุพร้อมกัน
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
การเลือกเครือข่าย
ในระหว่างการเลือกเครือข่าย (MLO) ระบบจะจัดกลุ่มรายการเครือข่ายที่ใช้ได้ตามสมาชิกที่มี ที่อยู่ MAC ของ MLD เดียวกัน คะแนนอัตราการส่งข้อมูลแบบหลายลิงก์ที่คาดการณ์สูงสุดจะคำนวณสำหรับแต่ละกลุ่มโดยอิงตามจำนวนลิงก์ STR สูงสุดและการผสมผสานแบนด์พร้อมกันที่ชิปรองรับ หากอุปกรณ์ที่ใช้ทดสอบรองรับการเชื่อมต่อแบบหลายลิงก์ และชิปรองรับ STR ระบบจะแทนที่คะแนนปริมาณงานที่คาดการณ์ไว้ด้วย คะแนนปริมาณงานที่คาดการณ์ไว้แบบหลายลิงก์ ซึ่งจะช่วยเพิ่มโอกาสให้ผู้สมัคร MLO ในระหว่างการเลือกเครือข่าย
เมื่อเข้าร่วมเครือข่าย AP-MLD เฟรมเวิร์กจะเลือก SSID ตาม
ข้อมูลที่ได้รับในออบเจ็กต์ ScanResults
ตามที่ซอฟต์แวร์ของผู้ให้บริการรายงาน
เมื่อเฟรมเวิร์กเลือก SSID แล้ว ซอฟต์แวร์ของผู้ให้บริการจะต้อง
รับผิดชอบในการเลือก BSSID สำหรับ AP (หรือลิงก์ AP) ที่ดีที่สุดเพื่อใช้ในการ
เชื่อมโยง
การจัดการที่อยู่ MAC ของ STA ของอุปกรณ์
ส่วนนี้จะอธิบายวิธีจัดการที่อยู่ MAC ของ STA ของอุปกรณ์ (ที่อยู่ MAC ของ MLD และที่อยู่ MAC ของ STA ต่อลิงก์)
ที่อยู่ MAC ของ MLD
เฟรมเวิร์ก Wi-Fi จะจัดการที่อยู่ MAC ของ MLD ของอุปกรณ์ ระบบจะจัดการที่อยู่ MAC ของ MLD
ในลักษณะเดียวกับที่อุปกรณ์ที่ไม่ใช่ MLD จัดการที่อยู่ MAC ของตัวเอง
ที่อยู่ MAC อาจเป็นที่อยู่ MAC แบบสุ่มหรือที่อยู่ MAC ที่จัดสรรฮาร์ดแวร์
ตามตัวเลือกของผู้ใช้ เฟรมเวิร์กจะตั้งค่าที่อยู่ MAC ของ MLD
โดยใช้ IWifiStaIface#setMacAddress()
HAL API
ที่อยู่ MAC ของ STA ต่อลิงก์
ซอฟต์แวร์ของผู้ให้บริการจะจัดการที่อยู่ MAC ของ STA ของอินสแตนซ์ (สำหรับแต่ละลิงก์) เมื่ออุปกรณ์เชื่อมโยงกับ AP ซอฟต์แวร์ของผู้ให้บริการจะกำหนดที่อยู่ MAC ของอินสแตนซ์ สำหรับลิงก์ที่เชื่อมโยงแต่ละลิงก์
ซอฟต์แวร์ของผู้ให้บริการจะกำหนดที่อยู่ MAC ต่อลิงก์ตามอัลกอริทึมของซอฟต์แวร์ อัลกอริทึมต้องทำซ้ำได้และเป็นฟังก์ชันของสิ่งต่อไปนี้
- ชุดที่อยู่ MAC ของ STA-MLD ที่กำหนดโดยเฟรมเวิร์ก Wi-Fi
- รหัสลิงก์ (ได้รับจาก AP)
ซึ่งหมายความว่าหากเฟรมเวิร์กใช้ที่อยู่ MAC ของ MLD เดียวกันซ้ำ ผู้ให้บริการ ต้องใช้ที่อยู่ MAC ต่ออินสแตนซ์ที่เชื่อมโยงเดียวกันซ้ำ และในทางกลับกัน ซึ่งจะรับประกันว่าเมื่อที่อยู่ STA-MLD ที่เฟรมเวิร์กสร้างขึ้นยังคงอยู่สำหรับ SSID ที่อยู่ MAC ต่อ STA ก็จะยังคงอยู่ด้วย
ต่อไปนี้คือตัวอย่างอัลกอริทึมสำหรับการกำหนดที่อยู่ MAC ของ STA ต่อลิงก์ (ผู้ให้บริการสามารถใช้อัลกอริทึมใดก็ได้ที่ตรงตามเกณฑ์ของอัลกอริทึม)
- Octet 0: ตรวจสอบว่าได้ตั้งค่าบิตที่ดูแลจัดการในเครื่องแล้ว
- อ็อกเท็ต 1-4: เหมือนกับที่อยู่ MAC ของ STA-MLD
- ไบต์ที่ 5: ต่อ STA = (STA-MLD + รหัสลิงก์ + 1) MOD (256)
การจัดการลิงก์หลายรายการ
เฟิร์มแวร์ของผู้ให้บริการสามารถทำการสลับลิงก์และจัดการสถานะประหยัดพลังงาน ของลิงก์สำหรับการเปิดใช้งานหรือปิดใช้งานได้โดยไม่ต้องป้อนข้อมูลจากเฟรมเวิร์ก Wi-Fi
เฟรมเวิร์ก Wi-Fi ไม่คาดหวังการแจ้งเตือนเมื่อมีการเปลี่ยนสถานะลิงก์
การจัดการสถานะประหยัดพลังงาน
สถานะประหยัดพลังงานจะเปิดใช้โดยค่าเริ่มต้นในเฟรมเวิร์ก Wi-Fi ใน สถานะประหยัดพลังงาน เฟิร์มแวร์ของผู้ให้บริการจะจัดการสถานะประหยัดพลังงาน ของลิงก์แต่ละรายการตามรูปแบบการรับส่งข้อมูลและการตัดสินใจเปิดใช้งานหรือ ปิดใช้งานลิงก์
อย่างไรก็ตาม เฟรมเวิร์ก Wi-Fi สามารถบังคับให้ปิดใช้สถานะประหยัดพลังงานได้โดย
การเรียกใช้ ISupplicantStaIface::setPowerSave(false)
HAL API หากเฟรมเวิร์กปิดใช้สถานะประหยัดพลังงาน เฟิร์มแวร์ของผู้ให้บริการต้องเปิดลิงก์อย่างน้อย 1 ลิงก์ไว้ (ปิดใช้การประหยัดพลังงาน) ในสถานะนี้ การติดตั้งเฟิร์มแวร์
จะเป็นตัวกำหนดว่าจะตั้งค่าลิงก์ใด
เส้นทางของข้อมูล
ซึ่งอธิบายการติดตั้งใช้งานเฟิร์มแวร์ของผู้ให้บริการสำหรับการจัดการการรับส่งข้อมูลขาขึ้นและขาลง
การรับส่งข้อมูลขาขึ้น
เฟิร์มแวร์จะกำหนดเส้นทางการรับส่งข้อมูลขาขึ้นไปยังลิงก์อย่างน้อย 1 ลิงก์ตามการติดตั้งใช้งานภายใน เฟิร์มแวร์ของผู้ให้บริการจะตัดสินใจว่าจะทำ Load Balancing การทำซ้ำ หรือการรวบรวมการเข้าชมเมื่อใดโดยอิงตามรูปแบบการเข้าชม เราขอแนะนำให้เฟิร์มแวร์ทำซ้ำการรับส่งข้อมูลไปยังหลายลิงก์ในกรณีต่อไปนี้
- เมื่อตั้งค่าโหมดค่าความหน่วงต่ำผ่าน
IWifiChip#setLatencyMode()
HAL API - เมื่อมีการเข้าชมที่มีลำดับความสำคัญของผู้ใช้เป็น 6 และ 7
การรับส่งข้อมูลขาลง
เฟิร์มแวร์ต้องแทนที่ที่อยู่ MAC ต่อ STA (ปลายทาง) ของส่วนหัว MAC ด้วย MAC ของ MLD-STA และแทนที่ที่อยู่ MAC ต่อ AP (แหล่งที่มา) ของส่วนหัว MAC ด้วยที่อยู่ MAC ของ MLD-AP เฟิร์มแวร์ต้องแทนที่ที่อยู่ MAC นี้ก่อนที่จะส่งผ่านตัวกรอง APF เนื่องจากคำสั่งตัวกรอง APF มีตัวกรองที่อิงตามที่อยู่ MAC ของ MLD มีตัวกรอง APF เดียวสำหรับลิงก์ทั้งหมดของ AP-MLD
การเกิดขึ้นพร้อมกัน
สถานการณ์พร้อมกันซึ่งใช้วิทยุสำหรับอินเทอร์เฟซใหม่ต้องมี ลำดับความสำคัญเหนือกว่าการใช้วิทยุหลายเครื่องสำหรับลิงก์ของอินเทอร์เฟซเดียวกัน นอกจากนี้ สถานการณ์พร้อมกันยังต้องมีความสำคัญมากกว่า MLO ไม่ว่าสถานการณ์ใดจะเกิดขึ้นก่อนก็ตาม การใช้ลิงก์หลายรายการสำหรับอินเทอร์เฟซเดียวเป็นแบบฉวยโอกาส ซึ่งหมายความว่าระบบจะใช้ลิงก์หลายรายการในกรณีต่อไปนี้เท่านั้น
- MLO จำเป็นตามการตัดสินใจของเฟิร์มแวร์สำหรับการจัดสรรภาระงาน การรวม หรือการทำซ้ำ
- MLO พร้อมใช้งาน ซึ่งหมายความว่าอินเทอร์เฟซอื่นไม่จำเป็นต้องใช้วิทยุ
การแมป TID กับลิงก์
สำหรับอุปกรณ์ที่ใช้ Android 14 ขึ้นไป เมื่อ AP ของ Wi-Fi 7 ประกาศการปิดลิงก์ชั่วคราวผ่าน องค์ประกอบการแมป TID กับลิงก์ที่ส่งในเฟรมบีคอน การตอบกลับการตรวจสอบ และ การตอบกลับการเชื่อมโยง สถานี Wi-Fi 7 จะเชื่อมต่อกับ AP ต่อไปโดยใช้ลิงก์ที่เหลือที่ตั้งค่าไว้โดยไม่ต้องทำการเชื่อมโยงอื่น
สำหรับอุปกรณ์ที่ใช้ Android 13 หรือต่ำกว่า เฟรมเวิร์ก Wi-Fi ไม่รองรับการรับการแจ้งเตือนเมื่อมีการเปลี่ยนสถานะลิงก์ เนื่องจากการแมป TID กับลิงก์ แม้ว่าลิงก์ที่เชื่อมโยงจะไม่ได้ลิงก์กับ TID ก็ตาม
AIDL HAL
Supplicant ของ Wi-Fi จะแจ้งให้เฟรมเวิร์ก Wi-Fi ทราบเกี่ยวกับการเปลี่ยนแปลงการแมป TID กับลิงก์ ผ่านอินเทอร์เฟซ AIDL ต่อไปนี้
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
API
แอปสามารถรับข้อมูลเกี่ยวกับการเปลี่ยนแปลงการแมป TID กับลิงก์ได้โดยใช้ API ต่อไปนี้
ConnectivityManager.NetworkCallback.onCapabilitiesChanged()
: การเรียกกลับของเครือข่ายที่เฟรมเวิร์กทริกเกอร์เมื่อมีการเปลี่ยนแปลงการแมป TID กับลิงก์WifiInfo#getAssociatedMloLinks()
: แสดงผลลิงก์ MLO ที่เชื่อมโยงMloLink#getState()
: แสดงผลสถานะของลิงก์MLO_LINK_STATE_ACTIVE
หรือMLO_LINK_STATE_IDLE
ความสามารถในการเจรจาการแมป TID กับลิงก์
สำหรับอุปกรณ์ที่ใช้ Android 14 ขึ้นไป จะมี API ต่อไปนี้ให้ใช้งานเพื่อรับความสามารถในการเจรจาต่อรองการเชื่อมโยง TID สำหรับสถานีและ AP
ความสามารถของชิป
อินเทอร์เฟซต่อไปนี้รองรับความสามารถของชิปสำหรับการเจรจาการแมป TID กับลิงก์
AIDL HAL
อินเทอร์เฟซ AIDL สำหรับการเจรจาการแมป TID กับลิงก์อยู่ใน FeatureSetMask
ใน hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
ความสามารถ
T2LM_NEGOTIATION = 1 << 8
แสดงว่าชิปรองรับ
การแมป TID กับลิงก์
API
WifiManager.isTidToLinkMappingNegotiationSupported()
: แสดงชิปที่รองรับการเจรจาการแมป TID กับลิงก์
ความสามารถของ AP
อินเทอร์เฟซต่อไปนี้รองรับความสามารถของ AP สำหรับการเจรจาการเชื่อมโยง TID กับลิงก์
AIDL HAL
เฟรมเวิร์กจะค้นหาความสามารถของ AP จาก Supplicant พร้อมกับ ความสามารถในการเชื่อมต่อปัจจุบัน
apTidToLinkMapNegotiationSupported
: ตรวจสอบว่า AP รองรับความสามารถในการเจรจาการแมป TID กับลิงก์หรือไม่
API
WifiInfo.isApTidToLinkMappingNegotiationSupported()
: แสดงว่า AP รองรับการเจรจาการเชื่อมโยง TID หรือไม่
สถิติเลเยอร์ลิงก์
สถิติเลเยอร์ลิงก์ประกอบด้วยรายละเอียดเฉพาะลิงก์ Wi-Fi เช่น RSSI, ตัวนับแพ็กเก็ต TX และ RX ต่างๆ รวมถึงสถิติวิทยุ เฟรมเวิร์ก Wi-Fi จะสำรวจสถิติเลเยอร์ลิงก์และ RSSI เป็นระยะๆ เพื่อเลือกเครือข่ายที่ดีที่สุดหรือประเมินคุณภาพ ของเครือข่ายที่เชื่อมต่อ สำหรับอุปกรณ์ที่ใช้ Android 14 ขึ้นไป สถิติเลเยอร์ลิงก์จะรวมถึง การรองรับแบบหลายลิงก์ Android รองรับ MLO ทั้งในสถิติเลเยอร์ลิงก์และในการสำรวจสัญญาณเพื่อรองรับ Wi-Fi 7
สถิติเฉพาะลิงก์จะอยู่ในอินเทอร์เฟซ AIDL ของเลเยอร์ลิงก์ต่อไปนี้
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceStats.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerLinkStats.aidl
API ของระบบ
android.net.wifi.WifiManager#addOnWifiUsabilityStatsListener()
จะรับฟังสถิติเลเยอร์ลิงก์ทั้งหมด เฟรมเวิร์กจะเรียกใช้ 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)
หากต้องการค้นหารหัสลิงก์ที่ใช้ได้ แอปสามารถเรียกใช้เมธอด
android.net.wifi.WifiUsabilityStatsEntry#getLinkIds()
API ใน
android.net.wifi.WifiUsabilityStatsEntry
สำหรับลิงก์เดียว (ไม่ใช่ 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()
สถิติเลเยอร์ลิงก์ใน Android 13
สำหรับอุปกรณ์ที่ใช้ 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): รายงานสถิติเวลาการแย่งชิงสำหรับลิงก์ที่ดีที่สุดที่ใช้ใน อินเทอร์เฟซ (สถิติเวลาการแย่งชิงต่ำสุด)
การกำหนดค่าลิงก์ MLO ใหม่
เมื่อมีการนำลิงก์ใดลิงก์หนึ่งของจุดเข้าใช้งาน Wi-Fi 7 ไปใช้ใหม่ AP จะประกาศการนำลิงก์ออกผ่านการกำหนดค่าลิงก์ MLO ใหม่ได้ สถานี สามารถรักษาการเชื่อมต่อกับ AP ได้อย่างราบรื่นโดยไม่ต้องเชื่อมโยงใหม่ในลิงก์ที่เหลือ
อินเทอร์เฟซ
onMloLinksInfoChanged
AIDL ซึ่งอยู่ใน Supplicant ของ Wi-Fi ที่
ISupplicantStaIfaceCallback.aidl
รองรับการกำหนดค่าลิงก์ใหม่ (การนำ AP ของลิงก์ออก)
เมื่อเฟรมเวิร์ก Wi-Fi ประมวลผลการนำลิงก์ออก ระบบจะตั้งค่าสถานะลิงก์เป็น
MLO_LINK_STATE_UNASSOCIATED
จากนั้นเฟรมเวิร์กจะทริกเกอร์
ConnectivityManager.NetworkCallback#onCapabilitiesChanged()
เมื่อมีการเปลี่ยนแปลงสถานะลิงก์
เมธอด
WifiInfo#getAffiliatedMloLinks
จะแสดงผลลิงก์ MLO ที่เป็นพันธมิตร เมธอด
MloLink#getState
จะแสดงสถานะของลิงก์ หากมีการนำลิงก์ออก สถานะลิงก์ที่แสดงจะเป็น
MLO_LINK_STATE_UNASSOCIATED
กลยุทธ์ 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
ในอินเทอร์เฟซ AIDL ของ IWifiChip
เพื่อตั้งค่าโหมด MLO