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

รองรับ 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

API

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

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

เมื่อเชื่อมโยงเรียบร้อยแล้ว โปรแกรมควบคุมจะรายงาน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 แบบ Single Link (SL) เดิม และ STA แบบดูอัลแบนด์ 2 คลื่นความถี่ (DBDC) แบบเดิม STA ที่เป็นพาร์ทเนอร์กับ STA MLD จะใช้หมายเลขลำดับเครื่องส่งสัญญาณ (SN) เดียวกัน และพื้นที่ทั่วไปสำหรับการส่งข้อมูลที่จัดสรรให้กับลิงก์ต่างๆ หากการส่งหลายรายการมีหมวดหมู่การเข้าถึง (AC) เหมือนกัน

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

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

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

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

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

การรวมสายนาฬิกาพร้อมกัน

เฟรมเวิร์กจะค้นหาชิปเพื่อรับชุดวิทยุที่อนุญาต (ผ่านอินเทอร์เฟซ AIDL ของ IWifiChip.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 มีตัวกรอง AAP ตัวเดียวสำหรับลิงก์ทั้งหมดของ 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