สำหรับอุปกรณ์ที่ใช้ 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
การรองรับ Wi-Fi 7 ของ AP ที่สแกน
เฟรมเวิร์ก 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 ได้ทุกเมื่อที่ชิปรองรับ
HAL API
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)
Soft 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()
: ที่อยู่ 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 สำหรับ MLD ของ AP Wi-Fi 7 ได้เมื่อโมดูล 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 ที่เชื่อมต่อ
เมื่ออุปกรณ์เชื่อมต่อกับ 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
ซอฟต์แวร์ของผู้ให้บริการต้องมี IEs แบบหลายลิงก์และ RNR ของตัวแปรพื้นฐานที่ได้รับจากอินสแตนซ์ AP ในผลการสแกนที่ได้รับ หากไม่มีรายละเอียด AP ที่เชื่อมโยงในผลการสแกน ซอฟต์แวร์ของผู้ให้บริการจะส่งคำขอตรวจสอบแบบหลายลิงก์ (เฟรมคำขอตรวจสอบที่มีองค์ประกอบคำขอตรวจสอบแบบหลายลิงก์) เพื่อรวมชุดความสามารถ พารามิเตอร์ และองค์ประกอบการทํางานของ AP ทั้งหมดหรือบางส่วนที่มี AP-MLD เป้าหมายในเฟรมการตอบกลับ
ซอฟต์แวร์ของผู้ให้บริการสามารถทริกเกอร์การสแกนหา ML (โดยใช้ ML IE ของคำขอการทดสอบในเฟรมคำขอการทดสอบ) หากจำเป็น
การเชื่อมโยงเครือข่าย AP-MLD
เมื่ออุปกรณ์เข้าร่วมเครือข่าย AP-MLD ซอฟต์แวร์ของผู้ให้บริการจะใช้ AP link (ลิงก์ที่เชื่อมโยง) ที่เลือกไว้เพื่อส่งสัญญาณ ซอฟต์แวร์ของผู้ให้บริการจะเชื่อมโยงกับลิงก์ทั้งหมดหรือบางส่วนที่อุปกรณ์รองรับ
เมื่อเชื่อมโยงเรียบร้อยแล้ว โปรแกรมควบคุมจะรายงาน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 แบบลิงก์เดียว (SL) รุ่นเดิมและ STA แบบ 2 ย่านความถี่พร้อมกัน (DBDC) รุ่นเดิม STA ที่เชื่อมโยงกับ MLD ของ STA จะใช้หมายเลขลำดับผู้ส่ง (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
การรวมวงดนตรีพร้อมกัน
เฟรมเวิร์กจะค้นหาชิปเพื่อดูชุดค่าผสมของวิทยุที่ได้รับอนุญาต (ผ่าน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 ต่อลิงก์ (ผู้ให้บริการสามารถใช้อัลกอริทึมใดก็ได้ที่ตรงตามเกณฑ์อัลกอริทึม)
- อ็อกเต็ต 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 มีตัวกรอง 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
ผู้ขอใช้ 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-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