Wi-Fi 7

สำหรับอุปกรณ์ที่ใช้ 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 ซึ่งเรียกใช้คำสั่ง nl80211 NL80211_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

API

แอปสามารถใช้ API ต่อไปนี้สำหรับการวัดระยะทางตาม RTT ของ Wi-Fi 7

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

ฟีเจอร์ MLO Wi-Fi 7

การดำเนินการแบบหลายลิงก์ (MLO) เป็นฟีเจอร์หลักในข้อกำหนด Wi-Fi 7 (802.11be) MLO เป็นฟีเจอร์ที่ต้องใช้ในอุปกรณ์หลายลิงก์ (MLD) ที่ทำงานใน Wi-Fi 7 ไม่ว่าจะทำงานพร้อมกันหรือไม่ก็ตาม

แผนภาพ MLO

รูปที่ 1 แผนภาพ MLO

ดังที่แสดงในรูปที่ 1 ทั้ง AP-MLD และ STA-MLD มีอินสแตนซ์ AP หรือ STA หลายรายการที่ทำงานอยู่ในแต่ละลิงก์ ลิงก์แต่ละรายการมีที่อยู่ MAC ของ AP หรือ STA แยกกัน AP หรือ STA ยังมีที่อยู่ MAC ของ MLD เพื่อระบุอุปกรณ์ด้วย

คลาส 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: ไม่ได้เชื่อมโยง ลิงก์ไม่ได้เชื่อมโยงกับ AP
    • MLO_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 ของ AP
  • int ScanResult#getApMloLinkId(): แสดงผลรหัสลิงก์ของลิงก์ที่ได้รับ ScanResult
  • List<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 ของ AP
  • int WifiInfo#getApMloLinkId(): แสดงรหัสลิงก์ของลิงก์ที่ STA เชื่อมโยงกับ AP
  • List<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 สูงสุด
  • จำนวนลิงก์การเชื่อมโยงสูงสุด
  • การรวมวงดนตรีพร้อมกัน

การเลือกเครือข่าย MLO ของ Wi-Fi

รูปที่ 2 การเลือกเครือข่าย MLO

การส่งและรับพร้อมกัน (STR) คือรูปแบบการแย่งกันใช้สื่อ Wi-Fi สำหรับการดำเนินการแบบหลายลิงก์ การแยกสัญญาณระหว่างลิงก์ต่างๆ เพียงพอที่จะทำให้ลิงก์ทำงานได้อย่างอิสระและสามารถส่งและรับพร้อมกันในลิงก์ต่างๆ STR แตกต่างจาก STA แบบลิงก์เดียว (SL) รุ่นเดิมและ STA แบบ 2 ย่านความถี่พร้อมกัน (DBDC) รุ่นเดิม STA ที่เชื่อมโยงกับ MLD ของ STA จะใช้หมายเลขลำดับผู้ส่ง (SN) ร่วมกันและใช้พื้นที่ร่วมกันสำหรับการส่งข้อมูลซึ่งจัดสรรให้กับลิงก์ต่างๆ หากการส่งผ่านหลายลิงก์มีหมวดหมู่การเข้าถึง (AC) เดียวกัน

จำนวนลิงก์ STR สูงสุดที่ใช้อาจแตกต่างจากจำนวนวิทยุสูงสุดที่ชิปรองรับ ในตัวอย่างของรูปที่ 2 จำนวนลิงก์ STR สูงสุดคือ 2

อินเทอร์เฟซ AIDL HAL ต่อไปนี้รองรับจำนวนลิงก์ STR สูงสุดและจำนวนลิงก์การเชื่อมโยงสูงสุด

ลิงก์หลายรายการสามารถทำงานบนวิทยุเครื่องเดียวได้โดยใช้รูปแบบการแย่งกันใช้คลื่นวิทยุแบบวิทยุแบบหลายลิงก์ที่มีประสิทธิภาพมากขึ้น (eMLSR) อุปกรณ์แบบหลายลิงก์จะใช้ eMLSR ผ่านชุดลิงก์ได้หากรับเฟรมควบคุมพื้นฐานบางรายการและทำการทดสอบความชัดเจนของช่อง (CCA) พร้อมกันบนชุดลิงก์ได้ อย่างไรก็ตาม MLD จะส่งหรือรับข้อมูลในลิงก์เดียว (ลิงก์ที่เลือกแบบไดนามิกในแต่ละช่วงเวลาการส่ง (TXOP)) เท่านั้น

สถานี MLD สามารถเพิ่มจำนวนลิงก์การเชื่อมโยงให้มากที่สุดเพื่อให้มีความน่าเชื่อถือ อัตรารับส่งข้อมูล และเวลาในการตอบสนองที่ดีขึ้น (เมื่อเทียบกับสถานีเดิมที่มีลิงก์เดียว) โดยทำงานใน STR และ eMLSR พร้อมกันหากชิปรองรับ ในรูปที่ 2 จำนวนลิงก์การเชื่อมโยงสูงสุดคือ 3 รายการ

อินเทอร์เฟซ AIDL HAL ต่อไปนี้รองรับจำนวนลิงก์การเชื่อมโยงสูงสุด

การรวมวงดนตรีพร้อมกัน

เฟรมเวิร์กจะค้นหาชิปเพื่อดูชุดค่าผสมของวิทยุที่ได้รับอนุญาต (ผ่านIWifiChip.aidlอินเทอร์เฟซ AIDL) ที่ทำงานพร้อมกันได้ เฟรมเวิร์กจะหาชุดค่าผสมย่านความถี่ที่เป็นไปได้ซึ่งใช้พร้อมกันได้จากข้อมูลนี้ ต่อไปนี้เป็นตัวอย่างรายการของย่านความถี่ที่ทำงานร่วมกันได้ (GHz)

  • 2.4
  • 5
  • 6
  • 2.4 x 5
  • 2.4 x 6
  • 5 x 6

อินเทอร์เฟซ AIDL HAL ต่อไปนี้รองรับชุดค่าผสมของวิทยุพร้อมกัน

การเลือกเครือข่าย

ในระหว่างการเลือกเครือข่าย (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 อินสแตนซ์ (สำหรับแต่ละลิงก์) เมื่ออุปกรณ์เชื่อมโยงกับ 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 พร้อมใช้งาน ซึ่งหมายความว่าอินเทอร์เฟซอื่นไม่จำเป็นต้องใช้วิทยุ

สำหรับอุปกรณ์ที่ใช้ Android 14 ขึ้นไป เมื่อ AP Wi-Fi 7 ประกาศการปิดใช้ลิงก์ใดลิงก์หนึ่งชั่วคราวผ่านองค์ประกอบการแมป TID กับลิงก์ที่ส่งในเฟรมบีคอน การตอบกลับการสำรวจ และการตอบกลับการเชื่อมโยง สถานี Wi-Fi 7 จะเชื่อมต่อกับ AP ต่อไปโดยใช้ลิงก์ที่เหลือที่ตั้งค่าไว้ โดยไม่ต้องทำการเชื่อมโยงอีกครั้ง

สำหรับอุปกรณ์ที่ใช้ Android 13 หรือต่ำกว่า เฟรมเวิร์ก Wi-Fi ไม่รองรับการรับการแจ้งเตือนเมื่อสถานะลิงก์มีการเปลี่ยนแปลงเนื่องจากการแมป TID กับลิงก์ แม้ว่าลิงก์ที่เชื่อมโยงจะไม่ลิงก์กับ TID ก็ตาม

ผู้ขอใช้ Wi-Fi จะแจ้งให้เฟรมเวิร์ก Wi-Fi ทราบถึงการเปลี่ยนแปลงการแมป TID กับลิงก์ผ่านอินเทอร์เฟซ AIDL ต่อไปนี้

แอปสามารถรับข้อมูลเกี่ยวกับการเปลี่ยนแปลงการแมป TID กับลิงก์ได้โดยใช้ API ต่อไปนี้

สำหรับอุปกรณ์ที่ใช้ 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

ความสามารถของ AP

อินเทอร์เฟซต่อไปนี้รองรับความสามารถของ AP สำหรับการเจรจาต่อรองการแมป TID กับลิงก์

AIDL HAL

เฟรมเวิร์กจะค้นหาความสามารถของ AP จากอุปกรณ์ขอเชื่อมต่อพร้อมกับความสามารถของการเชื่อมต่อปัจจุบัน

  • apTidToLinkMapNegotiationSupported: ตรวจสอบว่า AP รองรับความสามารถในการเจรจาต่อรองแผนที่ TID-to-link หรือไม่

API

สถิติเลเยอร์ลิงก์ประกอบด้วยรายละเอียดเฉพาะของลิงก์ Wi-Fi เช่น RSSI, ตัวนับแพ็กเก็ต TX และ RX ต่างๆ รวมถึงสถิติวิทยุ เฟรมเวิร์ก Wi-Fi จะทำการสำรวจสถิติเลเยอร์ลิงก์และ RSSI เป็นระยะๆ เพื่อเลือกเครือข่ายที่ดีที่สุดหรือประเมินคุณภาพของเครือข่ายที่เชื่อมต่อ สำหรับอุปกรณ์ที่ใช้ Android 14 ขึ้นไป สถิติเลเยอร์ลิงก์จะรวมการรองรับหลายลิงก์ Android รองรับ MLO ทั้งในสถิติเลเยอร์ลิงก์และการสำรวจสัญญาณเพื่อรองรับ Wi-Fi 7

สถิติเฉพาะลิงก์จะอยู่ในอินเทอร์เฟซ 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 สถิติของเลเยอร์ลิงก์จะไม่พิจารณาการใช้ลิงก์หลายรายการสําหรับอินเทอร์เฟซเดียว หากต้องการรองรับ 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): รายงานสถิติเวลาแย่งกันใช้สำหรับลิงก์ที่ดีที่สุดที่ใช้ในอินเตอร์เฟซ (สถิติเวลาแย่งกันใช้ต่ำสุด)

เมื่อเปลี่ยนวัตถุประสงค์ของลิงก์ใดลิงก์หนึ่งของจุดเข้าใช้งาน 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