สำหรับอุปกรณ์ที่ใช้ 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 คลาส 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 นี้ในเลเยอร์ 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 เมื่ออุปกรณ์สามารถใช้คุณสมบัติเหล่านี้ได้
ช่วงที่ใช้ Wi-Fi RTT
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 ต่อไปนี้สำหรับช่วงที่ใช้ Wi-Fi 7 RTT:
-
ScanResult#PREAMBLE_EHT
-
ResponderConfig#PREAMBLE_EHT
(SystemApi)
เอพี ซอฟท์
Android รองรับ Wi-Fi 7 ใน Soft AP และมีคุณสมบัติดังต่อไปนี้
เริ่มซอฟท์ AP
Android รองรับการเริ่ม Soft AP ในโหมด Wi-Fi 7 ซึ่งควบคุมโดยการกำหนดค่าโอเวอร์เลย์ config_wifiSoftapIeee80211beSupported
โมดูล Wi-Fi ใช้การซ้อนทับ config_wifiSoftapIeee80211beSupported
เพื่อตั้งค่าบูลีน HwModeParams#enable80211BE
ในการเรียก IHostApd#addAccessPoint()
API ในเลเยอร์ hostapd AIDL ค่านี้ใช้เพื่อตั้งค่าพารามิเตอร์ hostapd.conf
HAL API
บูลีน enable80211BE
ใน HwModeParams
ใน hostapd HAL รองรับการเริ่มต้น Soft AP ในโหมด Wi-Fi 7
รายงานข้อมูล Soft AP
Android มีการรองรับ API เพื่อรวมข้อมูลความกว้างของช่องสัญญาณ Wi-Fi 7 และ 320 MHz ไว้ในข้อมูล Soft AP ที่รายงาน
HAL API
ค่าคงที่ WIFI_STANDARD_11BE
ในอินเทอร์เฟซ Generation.aidl
AIDL ใน hostapd HAL ซึ่งใช้ใน ApInfo
ที่รายงานในการเรียกกลับ IHostapdCallback#onApInstanceInfoChanged()
รองรับการรายงานข้อมูล Soft AP
API
แอพสามารถใช้วิธีการต่อไปนี้ (API ระบบ) ใน SoftApInfo
เพื่อรายงานข้อมูล Soft AP
-
SoftApInfo#getWifiStandard()
: ส่งคืนScanResults.WIFI_STANDARD_11BE
หาก Soft AP เริ่มต้นในโหมด Wi-Fi 7 -
SoftApInfo#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 หลายรายการที่ทำงานอยู่บนแต่ละลิงก์ แต่ละลิงก์มีที่อยู่ AP หรือ STA MAC แยกต่างหาก AP หรือ STA ยังมีที่อยู่ MLD MAC เพื่อระบุอุปกรณ์อีกด้วย
การแสดงลิงค์ MLO
คลาส android.net.wifi.MloLink
แสดงถึงลิงก์ MLO คลาสนี้ประกอบด้วยพารามิเตอร์ต่อไปนี้:
-
int getLinkId()
: Link ID ตามที่โฆษณาโดย AP MLD -
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
: ไม่เชื่อมโยง ลิงก์ไม่เกี่ยวข้องกับ AP -
MLO_LINK_STATE_IDLE
: ไม่ได้ใช้งาน ลิงก์เชื่อมโยงกันแต่ไม่ทำงาน (ไม่มีการแมปตัวระบุการรับส่งข้อมูล (TID) กับลิงก์) -
MLO_LINK_STATE_ACTIVE
: ใช้งานอยู่ ลิงก์มีความเกี่ยวข้องและใช้งานอยู่ (อย่างน้อยหนึ่ง TID ถูกแมปกับลิงก์) ลิงก์ที่ใช้งานอยู่สามารถอยู่ในโหมดประหยัดพลังงานได้เนื่องจากเฟรมเวิร์กไม่ได้ตรวจสอบสถานะพลังงานของลิงก์
-
สแกนข้อมูล Wi-Fi 7 AP MLO
แอพสามารถรับพารามิเตอร์ MLO สำหรับ Wi-Fi 7 AP MLD เมื่อโมดูล Wi-Fi ได้รับออบเจ็กต์ ScanResult
จาก AP-MLD AOSP WifiTracker
จะแสดงพารามิเตอร์ MLO เมื่อทำงานในโหมดรายละเอียด
โมดูล Wi-Fi รวบรวมข้อมูล MLO โดยดำเนินการดังต่อไปนี้:
- แยกวิเคราะห์องค์ประกอบข้อมูลมัลติลิงก์ (IE) ที่รวมอยู่ในบีคอนหรือการตอบสนองของโพรบเพื่ออ่านที่อยู่ MAC ของ AP MLD และ ID ลิงก์ปัจจุบัน
- แยกวิเคราะห์รายงานเพื่อนบ้านที่ลดลง (RNR) IE ที่รวมอยู่ในบีคอนหรือการตอบสนองของโพรบเพื่ออ่านรายการข้อมูลลิงก์ในเครือ
API
หากต้องการรับข้อมูล AP MLO ที่สแกน แอปสามารถใช้ API ต่อไปนี้:
-
ScanResult#BSSID
: ที่อยู่ MAC ของอินสแตนซ์ AP (สำหรับลิงก์ที่ได้รับผลการสแกน) -
MacAddress ScanResult#getApMldMacAddress()
: ส่งคืนที่อยู่ MLD MAC ของ AP -
int ScanResult#getApMloLinkId()
: ส่งคืน ID ลิงก์สำหรับลิงก์ที่ได้รับ ScanResult -
List<MloLink> ScanResult#getAffiliatedMloLinks()
: ส่งคืนรายการออบเจ็กต์MloLink
สำหรับลิงก์ทั้งหมดที่โฆษณาโดย AP-MLD รวมถึงลิงก์ที่ได้รับ ScanResult
เชื่อมต่อข้อมูล Wi-Fi 7 AP MLO
เมื่ออุปกรณ์เชื่อมต่อกับ 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()
: ส่งคืนที่อยู่ MLD MAC ของ AP -
int WifiInfo#getApMloLinkId()
: ส่งคืน ID ลิงก์สำหรับลิงก์ที่ STA เชื่อมโยงกับ AP -
List<MloLink> WifiInfo#getAffiliatedMloLinks()
: ส่งคืนรายการออบเจ็กต์MloLink
สำหรับลิงก์ทั้งหมดที่โฆษณาโดย AP-MLD รวมถึงลิงก์ที่เกี่ยวข้อง สามารถสอบถามทั้งที่อยู่ AP และ STA MAC ได้ในวัตถุMloLink
แต่ละรายการ
การสแกน AP-MLD
ซอฟต์แวร์ของผู้จำหน่ายจัดเตรียมเฟรมเวิร์ก Wi-Fi พร้อมผลการสแกนสำหรับบีคอนหรือการตอบสนองโพรบแต่ละรายการที่ได้รับ ซึ่งหมายความว่ากรอบงาน Wi-Fi:
- อาจได้รับออบเจ็กต์
ScanResults
หลายรายการจาก AP-MLD เดียวกัน (เนื่องจาก AP สามารถมีลิงก์บีคอนได้หลายลิงก์) - อาจได้รับผลการสแกนเพียงบางส่วนสำหรับลิงก์ AP ของ AP-MLD เนื่องจากเฟิร์มแวร์อาจไม่ได้รับสัญญาณลิงก์เหล่านี้บางส่วน
ซอฟต์แวร์ของผู้จำหน่ายรายงานเฉพาะผลการสแกนที่ได้รับทางอากาศ และต้องไม่สร้างผลการสแกน (สังเคราะห์เทียม) ตามลิงก์ที่โฆษณาโดย AP-MLD
ซอฟต์แวร์ของผู้จำหน่ายจะต้องมีมัลติลิงค์รูปแบบพื้นฐานและ RNR IE ที่ได้รับจากอินสแตนซ์ AP ในผลการสแกนที่รายงาน หากไม่มีรายละเอียด AP ที่เกี่ยวข้องในผลการสแกน ซอฟต์แวร์ของผู้จำหน่ายสามารถส่งคำขอโพรบแบบมัลติลิงก์ได้ (เฟรมคำขอของโพรบที่มีองค์ประกอบมัลติลิงก์ของคำขอโพรบ) เพื่อรวมชุดความสามารถ พารามิเตอร์ และองค์ประกอบการทำงานทั้งหมดหรือบางส่วน ของ AP พร้อมด้วย AP-MLD เป้าหมายในเฟรมการตอบสนอง
ซอฟต์แวร์ของผู้จำหน่ายสามารถทริกเกอร์ ML-probing ได้ (โดยใช้ตัวแปรคำขอโพรบ 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 อัลกอริธึมการเลือกเครือข่ายจะใช้ความสามารถ MLO ต่อไปนี้จากชิป Wi-Fi:
- จำนวนลิงก์ STR สูงสุด
- จำนวนลิงก์การเชื่อมโยงสูงสุด
- การรวมวงดนตรีพร้อมกัน
รูปที่ 2. การเลือกเครือข่าย MLO
จำนวนลิงก์ STR สูงสุด
การส่งและรับพร้อมกัน (STR) เป็นรูปแบบการโต้แย้งสื่อ Wi-Fi สำหรับการดำเนินการหลายลิงก์ การแยกสัญญาณระหว่างลิงก์ต่างๆ นั้นเพียงพอแล้วเพื่อให้ลิงก์สามารถทำงานได้อย่างอิสระและสามารถส่งและรับพร้อมกันในลิงก์ต่างๆ STR แตกต่างจาก single link (SL) STA แบบเดิมและ dual band dual concurrent (DBDC) STA แบบเดิม 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.4x5
- 2.4x6
- 5x6
อินเทอร์เฟซ AIDL HAL ต่อไปนี้รองรับการรวมสัญญาณวิทยุพร้อมกัน:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
การเลือกเครือข่าย
ในระหว่างการเลือกเครือข่าย (MLO) รายชื่อผู้สมัครจะถูกจัดกลุ่มตามสมาชิกที่มีที่อยู่ MLD MAC เดียวกัน คะแนนทรูพุตมัลติลิงก์ที่คาดการณ์ไว้สูงสุดจะถูกคำนวณสำหรับแต่ละกลุ่ม โดยอิงตามจำนวนลิงก์ STR สูงสุดและการรวมแบนด์พร้อมกันที่ชิปรองรับ หากตัวเลือกมีความสามารถแบบมัลติลิงก์และชิปรองรับ STR คะแนนทรูพุตที่คาดการณ์ไว้จะถูกแทนที่ด้วยคะแนนทรูพุตที่กำหนดแบบมัลติลิงก์ สิ่งนี้จะช่วยส่งเสริมผู้สมัคร MLO ในระหว่างการเลือกเครือข่าย
เมื่อเข้าร่วมเครือข่าย AP-MLD เฟรมเวิร์กจะทำการเลือก SSID ตามข้อมูลที่ได้รับในออบเจ็กต์ ScanResults
ตามที่รายงานโดยซอฟต์แวร์ของผู้จำหน่าย เมื่อเลือก SSID ตามเฟรมเวิร์ก ซอฟต์แวร์ของผู้จำหน่ายจะรับผิดชอบในการเลือก BSSID สำหรับ AP ที่ดีที่สุด (หรือลิงก์ AP) เพื่อใช้สำหรับการเชื่อมโยง
การจัดการที่อยู่ MAC ของอุปกรณ์ STA
ส่วนนี้อธิบายวิธีจัดการที่อยู่ MAC ของอุปกรณ์ STA (ที่อยู่ MLD MAC และที่อยู่ MAC STA ต่อลิงก์)
ที่อยู่ MAC ของ MLD
กรอบงาน Wi-Fi จัดการที่อยู่ MLD MAC ของอุปกรณ์ ที่อยู่ MAC ของ MLD ได้รับการจัดการในลักษณะเดียวกับที่อุปกรณ์ที่ไม่ใช่ MLD จัดการที่อยู่ MAC ของตัวเอง ที่อยู่ MAC อาจเป็นที่อยู่ MAC แบบสุ่มหรือที่อยู่ MAC ที่จัดเตรียมด้วยฮาร์ดแวร์ ขึ้นอยู่กับตัวเลือกของผู้ใช้ ที่อยู่ MLD MAC ถูกกำหนดโดยเฟรมเวิร์กโดยใช้ IWifiStaIface#setMacAddress()
HAL API
ที่อยู่ MAC ของ STA ต่อลิงก์
ซอฟต์แวร์ของผู้จำหน่ายจัดการที่อยู่ MAC ของอินสแตนซ์ STA (สำหรับแต่ละลิงก์) เมื่ออุปกรณ์เชื่อมโยงกับ AP ซอฟต์แวร์ของผู้จำหน่ายจะกำหนดที่อยู่ MAC ของอินสแตนซ์สำหรับแต่ละลิงก์ที่เกี่ยวข้อง
ซอฟต์แวร์ของผู้จำหน่ายกำหนดที่อยู่ MAC ต่อลิงก์ตามอัลกอริทึม อัลกอริทึมจะต้องทำซ้ำได้และเป็นฟังก์ชันดังต่อไปนี้:
- ที่อยู่ MAC ของ STA-MLD ที่กำหนดโดยกรอบงาน Wi-Fi
- Link ID (ได้รับจาก AP)
ซึ่งหมายความว่าหากเฟรมเวิร์กนำที่อยู่ MLD MAC เดิมมาใช้ใหม่ ผู้จำหน่ายจะต้องใช้ที่อยู่ 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 หากสถานะประหยัดพลังงานถูกปิดใช้งานโดยเฟรมเวิร์ก เฟิร์มแวร์ของผู้จำหน่ายจะต้องคงลิงก์ที่ใช้งานอยู่อย่างน้อยหนึ่งลิงก์ (ปิดใช้งานการประหยัดพลังงาน) ในสถานะนี้ การใช้เฟิร์มแวร์จะตัดสินใจว่าลิงก์ใดถูกตั้งค่า
เส้นทางข้อมูล
ข้อมูลนี้อธิบายการใช้งานเฟิร์มแวร์ของผู้จำหน่ายสำหรับการจัดการอัปลิงค์และดาวน์โหลดทราฟฟิก
อัปลิงค์ทราฟฟิก
เฟิร์มแวร์จะกำหนดเส้นทางการรับส่งข้อมูลอัปลิงก์ไปยังลิงก์หนึ่งลิงก์ (หรือมากกว่า) ตามการใช้งานภายใน เฟิร์มแวร์ของผู้จำหน่ายจะตัดสินใจว่าเมื่อใดควรทำโหลดบาลานซ์ การทำซ้ำ หรือการรวมการรับส่งข้อมูลตามรูปแบบการรับส่งข้อมูล เราขอแนะนำให้เฟิร์มแวร์ทำซ้ำการรับส่งข้อมูลไปยังหลายลิงก์ในกรณีต่อไปนี้:
- เมื่อตั้งค่าโหมดเวลาแฝงต่ำผ่าน
IWifiChip#setLatencyMode()
HAL API - เมื่อมีการจราจรที่มีลำดับความสำคัญผู้ใช้ 6 และ 7
การรับส่งข้อมูลดาวน์ลิงก์
เฟิร์มแวร์จะต้องแทนที่ (ปลายทาง) ที่อยู่ MAC ต่อ-STA ของส่วนหัว MAC ด้วย MLD-STA MAC และที่อยู่ MAC (ต้นทาง) ต่อ AP ของส่วนหัว MAC ด้วยที่อยู่ MAC MLD-AP เฟิร์มแวร์จะต้องดำเนินการทดแทนที่อยู่ MAC นี้ก่อนที่จะผ่านตัวกรอง APF เนื่องจากคำสั่งตัวกรอง APF มีตัวกรองตามที่อยู่ MLD MAC มีตัวกรอง APF ตัวเดียวสำหรับลิงก์ทั้งหมดของ AP-MLD
เห็นพ้องต้องกัน
สถานการณ์ที่เกิดขึ้นพร้อมกัน ซึ่งวิทยุถูกใช้สำหรับอินเทอร์เฟซใหม่ จะต้องมีลำดับความสำคัญมากกว่าการใช้วิทยุหลายตัวโดยเฉพาะสำหรับลิงก์ของอินเทอร์เฟซเดียวกัน สถานการณ์ที่เกิดขึ้นพร้อมกันจะต้องมีความสำคัญมากกว่า MLO ไม่ว่าจะเกิดเหตุการณ์ใดก่อนก็ตาม การใช้หลายลิงก์สำหรับอินเทอร์เฟซเดียวนั้นเป็นการฉวยโอกาส ซึ่งหมายความว่าหลายลิงก์จะใช้เฉพาะเมื่อ:
- ต้องใช้ MLO โดยอิงตามการตัดสินใจของเฟิร์มแวร์สำหรับการทำโหลดบาลานซ์ การรวมกลุ่ม หรือการทำซ้ำ
- มี MLO ซึ่ง หมายความว่าอินเทอร์เฟซอื่นไม่จำเป็นต้องใช้วิทยุ
การทำแผนที่ TID-to-link
สำหรับอุปกรณ์ที่ใช้ Android 14 หรือสูงกว่า เมื่อ Wi-Fi 7 AP ประกาศปิดการใช้งานชั่วคราวของลิงก์ใดลิงก์หนึ่งผ่านองค์ประกอบการแมป TID-to-link ที่ส่งในบีคอน การตอบสนองของโพรบ และเฟรมการตอบสนองของการเชื่อมโยง Wi-Fi 7 สถานียังคงเชื่อมต่อกับ AP โดยใช้ลิงก์ที่เหลือที่ตั้งค่าไว้ โดยไม่ต้องดำเนินการเชื่อมโยงอื่น
สำหรับอุปกรณ์ที่ใช้ Android 13 หรือต่ำกว่า เฟรมเวิร์ก Wi-Fi ไม่รองรับการรับการแจ้งเตือนเมื่อสถานะลิงก์เปลี่ยนไปเนื่องจากการแมป TID-to-Link แม้ว่าลิงก์ที่เกี่ยวข้องจะไม่ได้ลิงก์กับ TID ก็ตาม
เอดส์ ฮัล
ผู้ร้องขอ Wi-Fi แจ้งกรอบงาน Wi-Fi ของการเปลี่ยนแปลงการแมป TID-to-link ผ่านอินเทอร์เฟซ 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-to-link ได้โดยใช้ API ต่อไปนี้:
-
ConnectivityManager.NetworkCallback.onCapabilitiesChanged()
: การเรียกกลับเครือข่ายที่ถูกทริกเกอร์โดยเฟรมเวิร์กเมื่อมีการเปลี่ยนแปลงการแมป TID-to-link -
WifiInfo#getAssociatedMloLinks()
: ส่งคืนลิงก์ MLO ที่เกี่ยวข้อง -
MloLink#getState()
: ส่งกลับสถานะของลิงก์MLO_LINK_STATE_ACTIVE
หรือMLO_LINK_STATE_IDLE
ความสามารถในการเจรจาการแมป TID-to-link
สำหรับอุปกรณ์ที่ใช้ Android 14 ขึ้นไป API ต่อไปนี้พร้อมให้ใช้งานเพื่อรับความสามารถในการเจรจาแผนที่ TID-to-link สำหรับสถานีและ AP
ความสามารถของชิป
อินเทอร์เฟซต่อไปนี้สนับสนุนความสามารถของชิปสำหรับการเจรจาการแมป TID-to-link
เอดส์ ฮัล
อินเทอร์เฟซ AIDL สำหรับการเจรจาการแมป TID-to-link อยู่ใน FeatureSetMask
ใน hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
ความสามารถ T2LM_NEGOTIATION = 1 << 8
บ่งชี้ว่าชิปรองรับการแมป TID-to-link API
-
WifiManager.isTidToLinkMappingNegotiationSupported()
: ส่งคืนชิปที่รองรับการเจรจาการแมป TID-to-link
ความสามารถของเอพี
อินเทอร์เฟซต่อไปนี้สนับสนุนความสามารถ AP สำหรับการเจรจาการแมป TID-to-link
เอดส์ ฮัล
กรอบงานสอบถามความสามารถ AP จากผู้ร้องขอพร้อมกับความสามารถในการเชื่อมต่อปัจจุบัน
-
apTidToLinkMapNegotiationSupported
: ตรวจสอบว่า AP รองรับความสามารถในการเจรจาแผนที่ TID-to-link หรือไม่
API
-
WifiInfo.isApTidToLinkMappingNegotiationSupported()
: ส่งคืนว่า AP รองรับการเจรจาการแมป TID-to-link หรือไม่
สถิติเลเยอร์ลิงก์
สถิติเลเยอร์ลิงก์ประกอบด้วยรายละเอียดเฉพาะลิงก์ Wi-Fi เช่น RSSI ตัวนับแพ็กเก็ต TX และ RX ต่างๆ และสถิติวิทยุ กรอบงาน Wi-Fi จะสำรวจสถิติเลเยอร์ลิงก์และ RSSI เป็นระยะๆ เพื่อเลือกเครือข่ายที่ดีที่สุดหรือเพื่อประเมินคุณภาพของเครือข่ายที่เชื่อมต่อ สำหรับอุปกรณ์ที่ใช้ Android 14 ขึ้นไป สถิติเลเยอร์ลิงก์จะรวมการรองรับมัลติลิงก์ด้วย เพื่อรองรับ Wi-Fi 7 นั้น Android รองรับ MLO ทั้งในสถิติเลเยอร์ลิงก์และการสำรวจสัญญาณ
สถิติเฉพาะลิงก์จะพบได้ในอินเทอร์เฟซ 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)
หากต้องการค้นหา ID ลิงก์ที่มีอยู่ แอปสามารถเรียกใช้เมธอด 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 ซึ่งอยู่ในผู้ร้องขอ 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