สำหรับอุปกรณ์ที่ใช้ Android 13 ขึ้นไป Android จะรองรับมาตรฐาน Wi-Fi 7 (IEEE 802.11be) หน้านี้อธิบายฟีเจอร์ Android Wi-Fi 7 ซึ่งรวมถึงการดำเนินการตามเส้นฐานและการดำเนินการแบบหลายลิงก์ (MLO)
ฟีเจอร์พื้นฐานของ Wi-Fi 7
ส่วนนี้อธิบายฟีเจอร์ 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 จะขอข้อมูลจาก wificond ซึ่งเรียกใช้คำสั่ง nl80211NL80211_CMD_GET_WIPHY
หากแอตทริบิวต์NL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY
อยู่ในคำตอบจากไดรเวอร์ ระบบจะถือว่าอุปกรณ์รองรับ Wi-Fi 7
รองรับ AP Wi-Fi 7 ที่สแกน
เฟรมเวิร์ก Android มี int ScanResult#getWifiStandard()
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
คลาส WifiTracker
ของ AOSP จะแสดงข้อมูลการสนับสนุนนี้ในอินเทอร์เฟซผู้ใช้เมื่อทำงานในโหมดแสดงรายละเอียด
โหมดการเชื่อมต่อ 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 นี้ในเลเยอร์ wpa_supplicant
AIDL จะตรวจสอบว่า 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 ได้ทุกเมื่อที่ชิปรองรับ
API แบบ HAL
HAL API ต่อไปนี้รองรับความสามารถของ 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)
AP แบบนุ่มนวล
Android รองรับ Wi-Fi 7 ใน Soft AP และมีฟีเจอร์ต่อไปนี้
เริ่ม Soft AP
Android รองรับการเริ่ม Soft AP ในโหมด Wi-Fi 7
ซึ่งจะควบคุมโดยการกำหนดค่าconfig_wifiSoftapIeee80211beSupported
Overlay
โมดูล Wi-Fi ใช้การวางซ้อน config_wifiSoftapIeee80211beSupported
เพื่อตั้งค่าบูลีน HwModeParams#enable80211BE
ในIHostApd#addAccessPoint()
การเรียก API ในเลเยอร์ AIDL ของ hostapd ระบบจะใช้ค่านี้เพื่อตั้งค่าพารามิเตอร์ hostapd.conf
HAL API
บูลีน enable80211BE
ใน HwModeParams
ใน HAL ของ hostapd รองรับการเริ่ม Soft AP ในโหมด Wi-Fi 7
รายงานข้อมูล Soft AP
Android มีการรองรับ API เพื่อรวมข้อมูลความกว้างของช่องสัญญาณ Wi-Fi 7 และ 320 MHz ในข้อมูล Soft AP ที่รายงาน
HAL API
ค่าคงที่ 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()
: รหัสลิงก์ตามที่ MLD ของ AP โฆษณาไว้MacAddress getApMacAddress()
: ที่อยู่ AP MAC 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 รายการที่แมปกับลิงก์) ลิงก์ที่ใช้งานอยู่อาจอยู่ในโหมดประหยัดพลังงานได้เนื่องจากเฟรมเวิร์กไม่ได้ตรวจสอบสถานะพลังงานของลิงก์
ข้อมูล Wi-Fi 7 AP MLO ที่สแกน
แอปรับพารามิเตอร์ MLO สำหรับ Wi-Fi 7 AP MLD ได้เมื่อโมดูล Wi-Fi ได้รับออบเจ็กต์ ScanResult
จาก AP-MLD AOSP WifiTracker
จะแสดงพารามิเตอร์ MLO เมื่อทำงานในโหมดแสดงรายละเอียด
โมดูล Wi-Fi จะรวบรวมข้อมูล MLO โดยทําดังนี้
- แยกวิเคราะห์องค์ประกอบข้อมูลหลายลิงก์ (IE) ที่รวมอยู่ในการตอบกลับของบีคอนหรืออุปกรณ์ตรวจสอบเพื่ออ่านที่อยู่ MAC ของ MLD ของ AP และรหัสลิงก์ปัจจุบัน
- แยกวิเคราะห์ IE รายงานเพื่อนบ้านแบบลดขนาด (RNR) ที่รวมอยู่ในบีคอนหรือการตอบกลับของอุปกรณ์ตรวจสอบเพื่ออ่านรายการข้อมูลลิงก์ที่เกี่ยวข้อง
API
หากต้องการรับข้อมูล MLO ของ AP ที่สแกน แอปสามารถใช้ 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 ที่เชื่อมต่อ
เมื่ออุปกรณ์เชื่อมต่อกับ Wi-Fi 7 AP-MLD เฟรมเวิร์กจะรวบรวมพารามิเตอร์ 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
ซอฟต์แวร์ของผู้ให้บริการต้องมี IEs แบบหลายลิงก์และ RNR ของตัวแปรพื้นฐานที่ได้รับจากอินสแตนซ์ AP ในผลการสแกนที่ได้รับ หากไม่มีรายละเอียด AP ที่เชื่อมโยงในผลการสแกน ซอฟต์แวร์ของผู้ให้บริการจะส่งคำขอตรวจสอบแบบหลายลิงก์ (เฟรมคำขอตรวจสอบที่มีองค์ประกอบคำขอตรวจสอบแบบหลายลิงก์) เพื่อรวมชุดความสามารถ พารามิเตอร์ และองค์ประกอบการทํางานของ AP ทั้งหมดหรือบางส่วนที่มี AP-MLD เป้าหมายในเฟรมการตอบกลับ
ซอฟต์แวร์ของผู้ให้บริการสามารถทริกเกอร์การสแกน ML (โดยใช้ ML IE ของคำขอการทดสอบในเฟรมคำขอการทดสอบ) หากจำเป็น
การเชื่อมโยงเครือข่าย AP-MLD
เมื่ออุปกรณ์เข้าร่วมเครือข่าย AP-MLD ซอฟต์แวร์ของผู้ให้บริการจะใช้ AP ที่ได้เลือกไว้เพื่อส่งสัญญาณ ซอฟต์แวร์ของผู้ให้บริการจะเชื่อมโยงกับลิงก์ทั้งหมดหรือบางส่วนที่อุปกรณ์รองรับ
เมื่อเชื่อมโยงเรียบร้อยแล้ว โปรแกรมควบคุมจะรายงานISupplicantStaIfaceCallback#onStateChanged()
พร้อม BSSID ของลิงก์สำหรับ AP-MLD จากนั้นไดรเวอร์จะเลือกลิงก์ของ AP-MLD ในกรณีที่มีการรายงานผลลัพธ์การสแกนไปยังเฟรมเวิร์กสำหรับลิงก์นั้น
การให้คะแนนเครือข่าย
สำหรับอุปกรณ์ที่ใช้ Android 14 ขึ้นไป การเลือกเครือข่าย Wi-Fi สำหรับ Android รองรับ Wi-Fi 7 MLO ซึ่งหมายความว่า Android จะเลือกเครือข่าย Wi-Fi ที่ดีที่สุดสำหรับอุปกรณ์ตามจำนวนลิงก์ที่มีให้สำหรับ MLO
อัลกอริทึมการเลือกเครือข่ายจะใช้ความสามารถ MLO ต่อไปนี้จากชิป Wi-Fi เพื่อรองรับ MLO
- จำนวนลิงก์ STR สูงสุด
- จำนวนลิงก์การเชื่อมโยงสูงสุด
- การรวมวงดนตรีพร้อมกัน
รูปที่ 2 การเลือกเครือข่าย MLO
จำนวนลิงก์ STR สูงสุด
การรับส่งแบบพร้อมกัน (STR) คือรูปแบบการช่วงชิงกลางผ่าน Wi-Fi สำหรับการดำเนินการแบบมัลติลิงก์ การแยกสัญญาณระหว่างลิงก์ที่ต่างกันก็เพียงพอแล้วเพื่อให้ลิงก์ทำงานอย่างอิสระและส่งและรับพร้อมๆ กันได้ในลิงก์ที่แตกต่างกัน STR จะแตกต่างจาก STA แบบ Single Link (SL) เดิม และ STA แบบดูอัลแบนด์ 2 คลื่นความถี่ (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
จำนวนลิงก์การเชื่อมโยงสูงสุด
ลิงก์หลายรายการสามารถทำงานบนวิทยุเครื่องเดียวได้โดยใช้รูปแบบการแย่งกันใช้คลื่นวิทยุแบบวิทยุแบบหลายลิงก์ที่มีประสิทธิภาพมากขึ้น (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
การรวมสายนาฬิกาพร้อมกัน
เฟรมเวิร์กจะค้นหาชิปเพื่อรับชุดวิทยุที่อนุญาต (ผ่านอินเทอร์เฟซ AIDL ของ IWifiChip.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 ต่อลิงก์ (ผู้ให้บริการสามารถใช้อัลกอริทึมใดก็ได้ที่ตรงตามเกณฑ์อัลกอริทึม)
- อ็อกเต็ต 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 รายการทำงานอยู่ (ปิดใช้การประหยัดพลังงาน) ในสถานะนี้ การติดตั้งใช้งานเฟิร์มแวร์จะเป็นผู้กำหนดว่าจะใช้ลิงก์ใด
เส้นทางของข้อมูล
ข้อมูลนี้อธิบายการใช้งานเฟิร์มแวร์ของผู้ให้บริการเพื่อจัดการการรับส่งข้อมูลทาง uplink และ download
การรับส่งข้อมูลขาขึ้น
เฟิร์มแวร์จะกำหนดเส้นทางการรับส่งข้อมูลขาขึ้นไปยังลิงก์อย่างน้อย 1 ลิงก์ตามการใช้งานภายใน เฟิร์มแวร์ของผู้ให้บริการจะเป็นผู้ตัดสินใจว่าควรทำการจัดสรรภาระงาน การคัดลอก หรือการเก็บรวบรวมการรับส่งข้อมูลเมื่อใดโดยอิงตามรูปแบบการรับส่งข้อมูล เราขอแนะนำให้เฟิร์มแวร์ทำซ้ำการเข้าชมไปยังหลายลิงก์ในกรณีต่อไปนี้
- เมื่อตั้งค่าโหมดเวลาในการตอบสนองต่ำผ่าน
IWifiChip#setLatencyMode()
HAL API - เมื่อมีการเข้าชมที่มีลําดับความสําคัญของผู้ใช้ 6 และ 7
การรับส่งข้อมูลลง
เฟิร์มแวร์ต้องแทนที่ที่อยู่ MAC (ปลายทาง) ต่อ STA ของส่วนหัว MAC ด้วยที่อยู่ MAC ของ MLD-STA และที่อยู่ MAC (ต้นทาง) ต่อ AP ของส่วนหัว MAC ด้วยที่อยู่ MAC ของ MLD-AP เฟิร์มแวร์ต้องทำการแทนที่ที่อยู่ MAC นี้ก่อนที่จะส่งผ่านตัวกรอง APF เนื่องจากคำสั่งตัวกรอง APF มีตัวกรองตามที่อยู่ MAC ของ MLD มีตัวกรอง AAP ตัวเดียวสำหรับลิงก์ทั้งหมดของ 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
ผู้สมัคร 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()
: callbacks ของเครือข่ายที่เฟรมเวิร์กเรียกให้แสดงเมื่อมีการเปลี่ยนแปลงการแมป TID กับลิงก์WifiInfo#getAssociatedMloLinks()
: แสดงลิงก์ MLO ที่เชื่อมโยงMloLink#getState()
: แสดงสถานะของลิงก์MLO_LINK_STATE_ACTIVE
หรือMLO_LINK_STATE_IDLE
ความสามารถในการเจรจาต่อรอง TID-to-link การแมป
สำหรับอุปกรณ์ที่ใช้ Android 14 ขึ้นไป API ต่อไปนี้จะพร้อมใช้งานเพื่อรับความสามารถในการเจรจาต่อรองแผนที่ TID-to-link สำหรับสถานีและ 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 จากอุปกรณ์ขอเชื่อมต่อพร้อมกับความสามารถของการเชื่อมต่อปัจจุบัน
apTidToLinkMapNegotiationSupported
: ตรวจสอบว่า AP รองรับความสามารถในการเจรจาต่อรองแผนที่ TID-to-link หรือไม่
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 ได้อย่างราบรื่นโดยไม่ต้องเชื่อมโยงใหม่ในลิงก์ที่เหลือ
อินเทอร์เฟซ AIDL ที่onMloLinksInfoChanged
อยู่ในโปรแกรมขอสิทธิ์ 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
ในอินเทอร์เฟซ IWifiChip
AIDL เพื่อตั้งค่าโหมด MLO