Wi-Fi 7

برای دستگاه‌های دارای Android 13 یا بالاتر، Android از استاندارد Wi-Fi 7 (IEEE 802.11be) پشتیبانی می‌کند. این صفحه ویژگی‌های Wi-Fi 7 در Android را توضیح می‌دهد، ازجمله عملکرد پایه و چندپیوندی (MLO).

ویژگی‌های پایه Wi-Fi 7

این بخش ویژگی‌های پایه Wi-Fi 7 را که در Android 13 و بالاتر گنجانده شده است شرح می‌دهد.

پشتیبانی از Wi-Fi 7 در دستگاه

چارچوب Android شامل WifiManager#isWifiStandardSupported(int standard) میانای برنامه‌سازی کاربردی است که برنامه‌ها می‌توانند با 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 در نقطه دسترسی اسکن‌شده

چارچوب Android شامل int ScanResult#getWifiStandard() میانای برنامه‌سازی کاربردی است که برنامه‌ها می‌توانند آن را فراخوانی کنند تا بررسی کنند نقطه دسترسی اسکن‌شده (AP) از Wi-Fi 7 پشتیبانی می‌کند یا نه. اگر نقطه دسترسی از Wi-FI 7 پشتیبانی کند، میانای برنامه‌سازی کاربردی ScanResults.WIFI_STANDARD_11BE را برمی‌گرداند. برای اینکه برنامه‌ها بتوانند از این میانای برنامه‌سازی کاربردی استفاده کنند، لازم نیست دستگاه از Wi-Fi 7 پشتیبانی کند.

وقتی این API فراخوانی می‌شود، واحد Wi-Fi بررسی می‌کند که آیا EHT Capability IE در نتایج برگشتی اسکن اتصال‌پذیری وجود دارد یا نه. اگر EHT Capability IE در نتایج اسکن وجود داشته باشد، نقطه دسترسی اسکن‌شده از Wi-Fi 7 پشتیبانی می‌کند. وقتی در حالت پرحرف اجرا می‌شود، کلاس WifiTracker در AOSP این اطلاعات پشتیبانی را در میانای کاربر نمایش می‌دهد.

حالت اتصال STA

چارچوب Android شامل int WifiInfo#getWifiStandard() API است که برنامه‌ها می‌توانند برای بررسی اینکه آیا حالت اتصال ایستگاه (STA) فعلی Wi-Fi 7 است یا نه، آن را فراخوانی کنند. وقتی هم دستگاه و هم نقطه دسترسی متصل‌شده از Wi-Fi 7 پشتیبانی کنند، حالت اتصال STA از نوع Wi-Fi 7 است. اگر حالت اتصال Wi-Fi 7 باشد، میانای برنامه‌سازی کاربردی ScanResults.WIFI_STANDARD_11BE را برمی‌گرداند.

وقتی getWifiStandard فراخوانی می‌شود، واحد Wi-Fi حالت را با فراخوانی ISupplicantStaIface#getConnectionCapabilities() HAL API تعیین می‌کند. پیاده‌سازی این API در HAL در لایه wpa_supplicant AIDL بررسی می‌کند که آیا EHT Capability IE درطول راه‌اندازی اتصال در AssocReq و AssocRsp وجود دارد یا نه.

انتخاب شبکه

در Android 13، انتخاب شبکه از چندین پارامتر برای تعیین اینکه به کدام نقطه دسترسی متصل شود استفاده می‌کند. یکی از پارامترها گذردهی تخمینی نقطه دسترسی است که بااستفاده از بلوک ThroughputPredictor تخمین زده می‌شود. بلوک ThroughputPredictor از پارامترهای PHY هم دستگاه و هم نقطه دسترسی اسکن‌شده استفاده می‌کند.

در Android 13، ThroughputPredictor از توانمندی‌های زیر AP در محاسبات خود استفاده می‌کند:

  • پشتیبانی از Wi-Fi 7 (802.11be)
  • پشتیبانی از پهنای کانال ۳۲۰ مگاهرتز

افزودن این قابلیت‌ها به منطق ThroughputPredictor احتمال انتخاب نقاط دسترسی سازگار با Wi-Fi 7 را افزایش می‌دهد، به‌شرطی که دستگاه بتواند از این ویژگی‌ها استفاده کند.

فاصله‌یابی براساس Wi-Fi RTT

‫Android از پیش‌درآمد EHT و پهنای کانال ۳۲۰ مگاهرتز برای Wi-Fi RTT پشتیبانی API ارائه می‌دهد. این تنظیم از قابلیت‌های مربوط به Wi-Fi 7 در محدوده RTT هر زمان که تراشه از آن پشتیبانی کند پشتیبانی می‌کند.

میاناهای برنامه‌سازی کاربردی HAL

میاناهای برنامه‌سازی کاربردی HAL زیر از قابلیت‌های Wi-Fi 7 برای محدوده مبتنی بر RTT پشتیبانی می‌کنند:

میاناهای برنامه‌سازی کاربردی

برنامه‌ها می‌توانند از میاناهای برنامه‌سازی کاربردی زیر برای فاصله‌یابی براساس Wi-Fi 7 RTT استفاده کنند:

نقطه دسترسی نرم‌افزاری

‫Android از Wi-Fi 7 در «نقطه دسترسی نرم‌افزاری» پشتیبانی می‌کند و ویژگی‌های زیر را ارائه می‌دهد.

شروع کردن «نقطه دسترسی نرم‌افزاری»

‫Android از شروع «نقطه دسترسی نرم‌افزاری» در حالت Wi-Fi 7 پشتیبانی می‌کند. این مورد تحت‌پوشش پیکربندی رونهاد config_wifiSoftapIeee80211beSupported است.

ماژول Wi-Fi از هم‌پوشانی config_wifiSoftapIeee80211beSupported برای تنظیم مقدار بولی HwModeParams#enable80211BE در فراخوانی میانای برنامه‌سازی کاربردی IHostApd#addAccessPoint() استفاده می‌کند. در لایه hostapd AIDL، از این مقدار برای تنظیم پارامترهای hostapd.conf استفاده می‌شود.

میاناهای برنامه‌سازی کاربردی HAL

مقدار enable80211BE بولی در HwModeParams در hostapd HAL از شروع «نقطه دسترسی نرم‌افزاری» در حالت Wi-Fi 7 پشتیبانی می‌کند.

گزارش کردن اطلاعات Soft AP

‫Android از API پشتیبانی می‌کند تا اطلاعات Wi-Fi 7 و پهنای باند کانال ۳۲۰ مگاهرتز را در اطلاعات «نقطه دسترسی نرم‌افزاری» گزارش‌شده بگنجاند.

میاناهای برنامه‌سازی کاربردی HAL

ثابت WIFI_STANDARD_11BE در میانای Generation.aidl AIDL در hostapd HAL، که در ApInfo گزارش‌شده در فراخوان برگشتی IHostapdCallback#onApInstanceInfoChanged() استفاده می‌شود، از گزارش کردن اطلاعات Soft AP پشتیبانی می‌کند.

میاناهای برنامه‌سازی کاربردی

برنامه‌ها می‌توانند از روش‌های زیر (میاناهای برنامه‌سازی کاربردی سیستم) در SoftApInfo برای گزارش اطلاعات «نقطه دسترسی نرم‌افزاری» استفاده کنند.

ویژگی‌های MLO Wi-Fi 7

عملکرد چندپیوندی (MLO) ویژگی اصلی در مشخصات Wi-Fi 7 (802.11be) است. MLO ویژگی اجباری برای دستگاه‌های چندپیوندی (MLD) است که در Wi-Fi 7 اجرا می‌شوند، چه به‌طور هم‌زمان یا غیرهم‌زمان.

نموداری که عملکرد چندپیوندی (MLO) را نشان می‌دهد که در آن هم AP-MLD (دستگاه چندپیوندی نقطه دسترسی) و هم STA-MLD (دستگاه چندپیوندی ایستگاه) چندین نمونه درحال اجرا در پیوندهای مختلف دارند، هرکدام با نشانی واد جداگانه، و نشانی واد MLD برای شناسایی دستگاه.

شکل ۱. نمودار MLO.

همان‌طور که در «شکل ۱» نشان داده شده است، هم AP-MLD و هم STA-MLD چندین نمونه AP یا STA دارند که روی هر پیوند اجرا می‌شوند. هر پیوند نشانی MAC جداگانه‌ای برای AP یا STA دارد. AP یا STA همچنین دارای یک آدرس MAC MLD برای شناسایی دستگاه است.

این android.net.wifi.MloLink کلاس نشان‌دهنده پیوند MLO است. این کلاس شامل پارامترهای زیر است:

  • int getLinkId(): شناسه پیوند همان‌گونه که توسط AP MLD تبلیغ می‌شود.
  • MacAddress getApMacAddress(): مک آدرس نقطه دسترسی. BSSID نمونه نقطه دسترسی برای آن پیوند.
  • MacAddress getStaMacAddress(): مک آدرس STA. مک آدرس اختصاص‌داده‌شده محلی برای نمونه STA در پیوند.
  • int getChannel(): پیوند دادن کانال. شماره کانال پیوند.
  • int getBand(): بند زنجیری. باند پیوند.
  • int getState(): وضعیت پیوند. می‌تواند یکی از حالت‌های زیر باشد:

    • MLO_LINK_STATE_INVALID: نامعتبر. برای مقداردهی اولیه و موارد خطا استفاده می‌شود.
    • MLO_LINK_STATE_UNASSOCIATED: نامرتبط. پیوند با نقطه دسترسی مرتبط نیست.
    • MLO_LINK_STATE_IDLE: بدون فعالیت. پیوند مرتبط است اما فعال نیست (هیچ شناسه ترافیکی (TID) به پیوند نگاشت نشده است).
    • MLO_LINK_STATE_ACTIVE: فعال. پیوند منسوب و فعال باشد (حداقل یک شناسه معامله به پیوند نگاشت شده باشد). پیوند فعال می‌تواند در حالت ذخیره انرژی باشد زیرا چارچوب وضعیت انرژی پیوند را پایش نمی‌کند.

اطلاعات اسکن‌شده Wi-Fi 7 AP MLO

وقتی واحد Wi-Fi شیء ScanResult را از AP-MLD دریافت می‌کند، برنامه‌ها می‌توانند پارامترهای MLO را برای AP MLD در Wi-Fi 7 دریافت کنند. AOSP WifiTracker پارامترهای MLO را هنگام اجرا در حالت پرجزئیات نمایش می‌دهد.

واحد Wi-Fi اطلاعات MLO را با انجام کارهای زیر جمع‌آوری می‌کند:

  • عنصر اطلاعاتی (IE) چندپیوندی موجود در فانوس یا پاسخ کاوشگر را تجزیه می‌کند تا نشانی MAC «دستگاه چندپیوندی نقطه دسترسی» و شناسه پیوند فعلی را بخواند.
  • IE گزارش همسایه کاهش‌یافته (RNR) موجود در پاسخ کاوشگر یا فانوس را تجزیه می‌کند تا فهرست اطلاعات پیوندهای وابسته را بخواند.

میاناهای برنامه‌سازی کاربردی

برای دریافت اطلاعات اسکن‌شده AP MLO، برنامه‌ها می‌توانند از میاناهای برنامه‌سازی کاربردی زیر استفاده کنند:

اطلاعات Wi-Fi 7 AP MLO متصل

وقتی دستگاهی به Wi-Fi 7 AP-MLD متصل می‌شود، چارچوب پارامترهای MLO اتصال را از شیء WifiInfo جمع‌آوری می‌کند. شیء AOSP WifiTracker این اطلاعات را هنگام اجرا در حالت پرجزئیات نمایش می‌دهد.

وقتی دستگاه به AP-MLD متصل می‌شود، واحد Wi-Fi اطلاعات MLO را از شیء ScanResult دریافتی از AP کپی می‌کند. سپس این واحد «میانای برنامه‌سازی سخت‌افزار» ISupplicantStaIface#getConnectionMloLinksInfo() را فرا می‌خواند تا نشانی‌های MAC هر پیوند را برای AP و STA بخواند و وضعیت پیوندهای مرتبط را به‌روز کند.

میاناهای برنامه‌سازی کاربردی

برای دریافت اطلاعات اتصال MLO، برنامه‌ها می‌توانند از میاناهای برنامه‌سازی کاربردی زیر استفاده کنند:

  • WifiInfo#getBSSID(): نشانی MAC نمونه AP را برمی‌گرداند (برای پیوندی که دستگاه در آن منسوب است).
  • MacAddress WifiInfo#getApMldMacAddress(): مک آدرس MLD نقطه دسترسی را برمی‌گرداند.
  • int WifiInfo#getApMloLinkId(): شناسه پیوند را برای پیوندی که STA با آن به نقطه دسترسی مرتبط شده است برمی‌گرداند.
  • List<MloLink> WifiInfo#getAffiliatedMloLinks(): فهرستی از MloLink شیء را برای همه پیوندهای تبلیغ‌شده توسط AP-MLD ازجمله پیوند مرتبط برمی‌گرداند. هر دو نشانی MAC مربوط به AP و STA را می‌توان در هر شیء MloLink پُرسمان کرد.

اسکن AP-MLD

نرم‌افزار فروشنده چارچوب Wi-Fi را با نتایج اسکن برای هر پیام راهنما یا پاسخ کاوش دریافتی ارائه می‌دهد. این یعنی چارچوب Wi-Fi:

  • ممکن است چندین شیء ScanResults از یک AP-MLD دریافت کنید زیرا نقطه دسترسی می‌تواند چندین پیوند پیام‌رسانی داشته باشد.
  • ممکن است فقط مجموعه جزئی از نتایج اسکن را برای پیوندهای AP مربوط به یک AP-MLD دریافت کنید زیرا ممکن است برخی‌از این نشان‌های پیوند توسط میان‌افزار دریافت نشوند.

نرم‌افزار فروشنده فقط نتایج اسکن دریافتی ازطریق هوا را گزارش می‌کند و نباید نتایج اسکن را براساس پیوندهای تبلیغ‌شده توسط AP-MLD ایجاد (به‌صورت مصنوعی ترکیب) کند.

نرم‌افزار فروشنده باید شامل چندپیوند گونه پایه و عناصر اطلاعاتی 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، الگوریتم انتخاب شبکه از قابلیت‌های MLO زیر از تراشه Wi-Fi استفاده می‌کند:

  • حداکثر تعداد پیوند STR
  • حداکثر تعداد پیوند انجمن
  • ترکیب‌های هم‌زمان باند

نموداری که فرایند انتخاب شبکه Wi-Fi MLO را نشان می‌دهد، که در آن دستگاه چندین پیوند Wi-Fi را در باندهای مختلف (۲٫۴ گیگاهرتز، ۵ گیگاهرتز، ۶ گیگاهرتز) برای اتصال بهینه براساس قابلیت‌های تراشه مانند حداکثر تعداد پیوند STR، حداکثر تعداد پیوند مرتبط، و ترکیب‌های باند هم‌زمان درنظر می‌گیرد.

شکل ۲. انتخاب شبکه MLO.

ارسال و دریافت هم‌زمان (STR) طرحی برای رقابت در رسانه Wi-Fi برای عملکرد چندپیوندی است. جداسازی سیگنال بین پیوندهای مختلف کافی است تا پیوندها بتوانند به‌طور مستقل عمل کنند و قادر به ارسال و دریافت هم‌زمان در پیوندهای مختلف باشند. STR با STA تک‌پیوندی (SL) قدیمی و STA هم‌زمان دو بانده (DBDC) قدیمی متفاوت است. STAهای وابسته به STA MLD دارای شماره ترتیب (SN) فرستنده مشترک و فضای مشترک برای انتقال داده هستند که درصورت داشتن دسته دسترسی (AC) یکسان برای انتقال چندپیوندی، به پیوندهای مختلف اختصاص داده می‌شود.

حداکثر تعداد پیوندهای STR مورداستفاده می‌تواند با حداکثر تعداد رادیوهای پشتیبانی‌شده توسط تراشه متفاوت باشد. در مثال «شکل ۲»، حداکثر تعداد پیوند STR برابر با ۲ است.

واسط‌های AIDL HAL زیر از حداکثر تعداد پیوند STR و حداکثر تعداد قابلیت‌های پیوند انجمن پشتیبانی می‌کنند:

چندین پیوند می‌توانند بااستفاده از طرح رقابتی، رادیو تکی چندپیوندی بهبودیافته (eMLSR)، در یک رادیو واحد کار کنند. دستگاه چندپیوندی درصورت دریافت قاب‌های کنترل پایه خاص و انجام ارزیابی کانال واضح (CCA) به‌طور هم‌زمان در مجموعه پیوندها، از eMLSR در مجموعه پیوندها استفاده می‌کند. بااین‌حال، MLD داده‌ها را در هر زمان فقط ازطریق یک پیوند (پیوندی که به‌طور پویا در هر دوره فرصت ارسال (TXOP) انتخاب می‌شود) ارسال یا دریافت می‌کند.

ایستگاه MLD می‌تواند تعداد پیوندهای ارتباطی را برای اطمینان‌پذیری بهتر، توان عملیاتی بهتر، و تأخیر کمتر (درمقایسه با ایستگاه قدیمی تک‌پیوندی) با عملکرد هم‌زمان در STR و eMLSR (درصورت پشتیبانی تراشه) به حداکثر برساند. در شکل ۲، حداکثر تعداد پیوند ارتباط ۳ است.

میاناهای AIDL HAL زیر از قابلیت حداکثر تعداد پیوند ارتباطی پشتیبانی می‌کنند:

ترکیب‌های باند هم‌زمان

چارچوب، تراشه را برای دریافت ترکیب‌های رادیویی مجاز (ازطریق میانای IWifiChip.aidl AIDL) که می‌توانند به‌طور هم‌زمان کار کنند، پُرسمان می‌کند. از این اطلاعات، چارچوب ترکیب‌های باند هم‌زمان ممکن را استخراج می‌کند. فهرست زیر نمونه‌ای از ترکیب‌های باند هم‌زمان (گیگاهرتز) است:

  • 2.4
  • 5
  • 6
  • ‫۲٫۴ × ۵
  • ‫۲٫۴ × ۶
  • ۵ × ۶

میانای AIDL HAL زیر از ترکیب‌های رادیویی هم‌زمان پشتیبانی می‌کند:

انتخاب شبکه

درطول انتخاب شبکه (MLO)، فهرست نامزدها براساس اعضایی که مک آدرس MLD یکسانی دارند گروه‌بندی می‌شود. حداکثر امتیاز توان عملیاتی چندپیوندی پیش‌بینی‌شده برای هر گروه براساس حداکثر تعداد پیوند STR و ترکیب‌های باند هم‌زمان پشتیبانی‌شده توسط تراشه محاسبه می‌شود. اگر نامزد قابلیت چندپیوندی داشته باشد و تراشه از STR پشتیبانی کند، امتیاز توان عملیاتی پیش‌بینی‌شده با امتیاز توان عملیاتی پیش‌بینی‌شده چندپیوندی جایگزین می‌شود. این کار باعث تقویت نامزدهای MLO درطول انتخاب شبکه می‌شود.

هنگام پیوستن به شبکه AP-MLD، چارچوب انتخاب SSID را براساس اطلاعات دریافتی در شیء ScanResults که توسط نرم‌افزار فروشنده گزارش شده است انجام می‌دهد. پس‌از انتخاب SSID توسط چارچوب، نرم‌افزار فروشنده مسئول انتخاب BSSID برای بهترین AP (یا پیوند AP) برای استفاده در قرارداد است.

مدیریت مک آدرس STA دستگاه

این بخش نحوه مدیریت نشانی‌های MAC دستگاه STA (نشانی‌های MAC MLD و نشانی‌های MAC STA پیوند) را توضیح می‌دهد.

مک آدرس MLD

چارچوب Wi-Fi مک آدرس MLD دستگاه را مدیریت می‌کند. با مک آدرس MLD به‌همان روشی که دستگاه غیرMLD با مک آدرس خود رفتار می‌کند رفتار می‌شود. مک آدرس می‌تواند مک آدرس تصادفی‌سازی‌شده یا مک آدرس آماده‌سازی سخت‌افزاری براساس انتخاب کاربر باشد. مک آدرس MLD توسط چارچوب بااستفاده از میانای برنامه‌سازی کاربردی IWifiStaIface#setMacAddress() HAL تنظیم می‌شود.

نرم‌افزار فروشنده نشانی‌های MAC ایستگاه STA نمونه (برای هر پیوند) را مدیریت می‌کند. وقتی دستگاهی با نقطه دسترسی مرتبط می‌شود، نرم‌افزار فروشنده برای هر پیوند مرتبط نشانی MAC نمونه‌ای اختصاص می‌دهد.

نرم‌افزار فروشنده براساس الگوریتم خود، مک آدرس‌های پیوند را اختصاص می‌دهد. الگوریتم باید تکرارپذیر باشد و تابعی از موارد زیر باشد:

  • مک آدرس STA-MLD که توسط چارچوب Wi-Fi تنظیم شده است.
  • شناسه پیوند (دریافت‌شده از AP)

این یعنی اگر چارچوب از همان نشانی MAC پروتکل MLD استفاده مجدد کند، فروشنده باید از همان نشانی‌های MAC منسوب به هر نمونه استفاده مجدد کند، و اگر فروشنده از نشانی‌های MAC منسوب به هر نمونه استفاده مجدد کند، چارچوب باید از همان نشانی MAC پروتکل MLD استفاده مجدد کند. این کار تأیید می‌کند که وقتی نشانی STA-MLD تولیدشده توسط چارچوب برای SSID ماندگار است، نشانی‌های MAC هر STA نیز ماندگار است.

در زیر نمونه‌ای از الگوریتم برای تخصیص نشانی MAC ایستگاه برای هر پیوند آورده شده است (فروشندگان می‌توانند هر الگوریتمی را که با معیارهای الگوریتم مطابقت داشته باشد پیاده‌سازی کنند):

  • بایت ۰: مطمئن شوید بیت مدیریت‌شده محلی تنظیم شده باشد
  • بایت ۱ تا ۴: همان مک آدرس STA-MLD
  • اکتت ۵: Per-STA = (STA-MLD + شناسه پیوند + ۱) MOD (۲۵۶)

سخت‌افزار فروشنده می‌تواند تعویض پیوند را انجام دهد و وضعیت صرفه‌جویی در مصرف برق پیوندها را برای فعال یا غیرفعال کردن بدون ورودی از چارچوب Wi-Fi مدیریت کند.

چارچوب Wi-Fi انتظار ندارد وقتی وضعیت پیوند تغییر می‌کند اعلانی دریافت کند.

مدیریت وضعیت ذخیره انرژی

حالت «ذخیره انرژی» به‌طور پیش‌فرض در چارچوب Wi-Fi فعال است. در حالت ذخیره انرژی، میان‌افزار فروشنده وضعیت ذخیره انرژی پیوندهای جداگانه را براساس الگوهای ترافیک و تصمیمات فعال یا غیرفعال کردن پیوند مدیریت می‌کند.

بااین‌حال، چارچوب Wi-Fi می‌تواند با فراخوانی میانای برنامه‌سازی کاربردی ISupplicantStaIface::setPowerSave(false) HAL، حالت «ذخیره انرژی» را به‌اجبار غیرفعال کند. اگر وضعیت صرفه‌جویی در مصرف انرژی توسط چارچوب غیرفعال شده باشد، میان‌افزار فروشنده باید حداقل یک پیوند فعال را حفظ کند (صرفه‌جویی در مصرف انرژی غیرفعال). در این حالت، پیاده‌سازی سفت‌افزار تصمیم می‌گیرد که کدام پیوند تنظیم شود.

مسیر داده‌ها

این بخش پیاده‌سازی سفت‌افزار فروشنده را برای مدیریت ترافیک سربالایی و بارگیری شرح می‌دهد.

میان‌افزار ترافیک بالادستی را براساس پیاده‌سازی داخلی خود به یک (یا چند) پیوند هدایت می‌کند. سخت‌افزار فروشنده براساس الگوهای ترافیک تصمیم می‌گیرد که چه زمانی تراز بار، تکرار، یا تجمیع ترافیک را انجام دهد. توصیه می‌کنیم در موارد زیر، میان‌افزار ترافیک را به چندین پیوند تکرار کند:

  • وقتی حالت تأخیر کم ازطریق IWifiChip#setLatencyMode() HAL API تنظیم شده باشد.
  • وقتی ترافیک با اولویت کاربر ۶ و ۷ وجود دارد.

میان‌افزار باید مک آدرس (مقصد) هر STA در سرصفحه MAC را با مک آدرس MLD-STA و مک آدرس (مبدأ) هر AP در سرصفحه MAC را با مک آدرس MLD-AP جایگزین کند. میان‌افزار باید این جایگزینی نشانی MAC را قبل‌از عبور از فیلتر APF انجام دهد زیرا دستورات فیلتر APF فیلترهایی براساس نشانی‌های MAC مربوط به MLD دارند. یک فیلتر APF برای همه پیوندهای AP-MLD وجود دارد.

هم‌زمانی

سناریوهای هم‌زمانی که در آن از رادیو برای میانای جدید استفاده می‌شود باید نسبت‌به اختصاص دادن چند رادیو برای پیوندهای یک میانا اولویت داشته باشد. سناریوهای هم‌زمانی نیز باید بر MLO اولویت داشته باشند، صرف‌نظر از اینکه کدام‌یک زودتر اتفاق افتاده است. استفاده از چندین پیوند برای یک میانای واحد فرصت‌طلبانه است، یعنی از چندین پیوند فقط در شرایط زیر استفاده می‌شود:

  • براساس تصمیم میان‌افزار برای توازن بار، تجمیع، یا تکرار، MLO الزامی است.
  • ‫MLO دردسترس است، یعنی میانای دیگری به رادیو نیاز ندارد.

برای دستگاه‌های دارای Android 14 یا بالاتر، وقتی «نقطه دسترسی Wi-Fi 7» ازطریق عنصر نگاشت TID-به-پیوند که در چارچوب‌های پاسخ کاوشگر، پاسخ چراغ راهنما، و پاسخ پیوند ارسال می‌شود، غیرفعال شدن موقت یکی از پیوندها را اعلام می‌کند، ایستگاه Wi-Fi 7 بدون انجام پیوند دیگری، اتصال با «نقطه دسترسی» را بااستفاده از پیوندهای راه‌اندازی‌شده باقی‌مانده ادامه می‌دهد.

برای دستگاه‌های دارای Android نسخه ۱۳ یا پایین‌تر، چارچوب Wi-Fi از دریافت اعلان‌ها برای زمانی که وضعیت پیوند به‌دلیل نگاشت TID به پیوند تغییر می‌کند پشتیبانی نمی‌کند، حتی اگر پیوند مرتبط به TID پیوند داده نشده باشد.

درخواست‌کننده Wi-Fi ازطریق میاناهای AIDL زیر، چارچوب Wi-Fi را از تغییرات نگاشت TID-به-پیوند مطلع می‌کند:

برنامه‌ها می‌توانند بااستفاده از میاناهای برنامه‌سازی کاربردی زیر، اطلاعات مربوط به تغییرات نگاشت شناسه موضوع به پیوند را دریافت کنند:

برای دستگاه‌های دارای Android 14 یا بالاتر، میاناهای برنامه‌سازی کاربردی زیر برای دریافت قابلیت‌های مذاکره نگاشت شناسه ترافیک به پیوند برای ایستگاه و نقطه دسترسی دردسترس است.

قابلیت تراشه

واسط‌های زیر از قابلیت تراشه برای مذاکره نگاشت TID به پیوند پشتیبانی می‌کنند.

AIDL HAL

میانای AIDL برای مذاکره نگاشت TID به پیوند در FeatureSetMask در hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl قرار دارد. قابلیت T2LM_NEGOTIATION = 1 << 8 نشان می‌دهد که تراشه از نگاشت TID به پیوند پشتیبانی می‌کند. میاناهای برنامه‌سازی کاربردی

قابلیت AP

واسط‌های زیر از قابلیت AP برای مذاکره نگاشت TID به پیوند پشتیبانی می‌کنند.

AIDL HAL

چارچوب، قابلیت AP را از درخواست‌کننده به‌همراه قابلیت اتصال فعلی جستجو می‌کند.

  • apTidToLinkMapNegotiationSupported: بررسی می‌کند که آیا نقطه دسترسی از قابلیت مذاکره نقشه TID به پیوند پشتیبانی می‌کند یا نه.

میاناهای برنامه‌سازی کاربردی

آمار لایه پیوند شامل جزئیات خاص پیوند Wi-Fi مانند RSSI، شمارنده‌های مختلف بسته TX و RX، و آمار رادیویی است. چارچوب Wi-Fi به‌طور دوره‌ای آمار لایه پیوند و RSSI را نظرسنجی می‌کند تا بهترین شبکه را انتخاب کند یا کیفیت شبکه متصل را ارزیابی کند. برای دستگاه‌های دارای Android نسخه ۱۴ یا بالاتر، آمار لایه پیوند شامل پشتیبانی چند پیوندی می‌شود. برای پشتیبانی از Wi-Fi 7،‏ Android از MLO در هر دو لایه پیوند آمار و نمونه‌گیری سیگنال پشتیبانی می‌کند.

آمار مختص پیوند در میاناهای AIDL لایه پیوند زیر یافت می‌شود:

android.net.wifi.WifiManager#addOnWifiUsabilityStatsListener() میانای برنامه‌سازی کاربردی سیستم به همه آمار لایه پیوند گوش می‌دهد. چارچوب به‌طور دوره‌ای این میانای برنامه‌سازی کاربردی را برای به‌روزرسانی آمار قابلیت استفاده Wi-Fi فراخوانی می‌کند.

میاناهای برنامه‌سازی کاربردی مختص پیوند زیر در 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() روش را فراخوانی کنند.

میاناهای برنامه‌سازی کاربردی در 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 نسخه ۱۳، آمار لایه پیوند استفاده از چند پیوند برای یک میانای واحد را درنظر نمی‌گیرد. برای پشتیبانی از 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 تغییر کاربری می‌دهد، نقطه دسترسی می‌تواند برداشتن پیوند را ازطریق پیکربندی مجدد پیوند MLO اعلام کند. ایستگاه‌ها می‌توانند اتصال یکپارچه با نقطه دسترسی را بدون ارتباط مجدد در پیوندهای باقی‌مانده حفظ کنند.

میانای 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 تراشه

«پیوند چندگانه» به دستگاه‌ها امکان می‌دهد داده‌ها را به‌طور هم‌زمان در چندین پیوند 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 استفاده می‌کند.