بالنسبة إلى الأجهزة التي تعمل بالإصدار 13 من نظام التشغيل Android أو إصدار أحدث، يتوافق 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)
التي يمكن للتطبيقات الاتصال بها باستخدام المَعلمة
ScanResults.WIFI_STANDARD_11BE
للتحقّق مما إذا كان الجهاز متوافقًا مع Wi-Fi 7.
عند استدعاء واجهة برمجة التطبيقات هذه، تتحقّق وحدة 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 في نقاط الوصول التي يتم فحصها
يتضمّن إطار عمل Android واجهة برمجة التطبيقات
int ScanResult#getWifiStandard()
التي يمكن للتطبيقات الاتصال بها للتحقّق مما إذا كانت نقطة الوصول (AP) التي تم فحصها
تتوافق مع Wi-Fi 7. إذا كان نقطة الوصول متوافقة مع Wi-Fi 7، ستُرجع واجهة برمجة التطبيقات ScanResults.WIFI_STANDARD_11BE
.
لا يُشترط أن يكون الجهاز متوافقًا مع Wi-Fi 7 لكي تستخدم التطبيقات واجهة برمجة التطبيقات هذه.
عند طلب بيانات من واجهة برمجة التطبيقات هذه، تتحقّق وحدة Wi-Fi ممّا إذا كان EHT Capability IE
مضمّنًا في النتائج المعروضة من عملية فحص الاتصال. إذا كان EHT Capability IE
معروضًا في
نتائج البحث، يعني ذلك أنّ نقطة الوصول التي تم فحصها متوافقة مع Wi-Fi 7.
تعرض فئة AOSP WifiTracker
معلومات الدعم هذه في واجهة المستخدم عند التشغيل في وضع التسجيل المطوَّل.
وضع اتصال محطة العمل
يتضمّن إطار عمل Android واجهة برمجة التطبيقات
int WifiInfo#getWifiStandard()
، التي يمكن للتطبيقات الاتصال بها للتحقّق مما إذا كان وضع اتصال المحطة الحالية (STA) هو
Wi-Fi 7. يكون وضع اتصال STA هو Wi-Fi 7 عندما يتيح كل من الجهاز ونقطة الوصول (AP) المتصلة شبكة Wi-Fi 7. وإذا كان وضع الاتصال هو Wi-Fi 7، ستعرض واجهة برمجة التطبيقات
ScanResults.WIFI_STANDARD_11BE
.
عند استدعاء getWifiStandard
، تحدّد وحدة Wi-Fi الوضع من خلال استدعاء ISupplicantStaIface#getConnectionCapabilities()
HAL API. يتحقق
تنفيذ واجهة برمجة التطبيقات HAL API هذه في طبقة wpa_supplicant
AIDL من ما إذا كان
EHT Capability IE
في كل من AssocReq
وAssocRsp
أثناء
إعداد الاتصال.
اختيار الشبكة
في Android 13، يستخدم اختيار الشبكة عدة
مَعلمات لتحديد نقطة الوصول التي سيتم الاتصال بها. إحدى المَعلمات هي
معدل نقل البيانات المقدَّر لنقطة الوصول، والذي يتم تقديره باستخدام العنصر
ThroughputPredictor
. تستخدم مجموعة
ThroughputPredictor
مَعلمات PHY لكل من الجهاز ونقطة الوصول التي تم فحصها.
في Android 13، يستخدم ThroughputPredictor
إمكانات AP التالية في عملية الحساب:
- توافق مع Wi-Fi 7 (802.11be)
- دعم عرض القناة بتردد 320 ميغاهرتز
يؤدي تضمين هذه الإمكانات في منطق ThroughputPredictor
إلى زيادة
فرص اختيار نقاط الوصول المتوافقة مع Wi-Fi 7 عندما يمكن للجهاز الاستفادة من
هذه الميزات.
قياس المسافة بالاستناد إلى وقت استجابة Wi-Fi
يوفّر Android واجهة برمجة تطبيقات لبادئة EHT وعرض قناة 320 MHz من أجل قياس وقت الاستجابة (RTT) في Wi-Fi. يتيح ذلك إتاحة الإمكانات ذات الصلة بتقنية Wi-Fi 7 في النطاق الزمني لقياس مدة استجابة شبكة RTT كلما كانت chip متوافقة مع ذلك.
واجهات برمجة تطبيقات HAL
تتوافق واجهات برمجة التطبيقات HAL التالية مع إمكانات Wi-Fi 7 لقياس المسافة بالاستناد إلى تقنية RTT:
EHT
: ثابت فيenum RttPreamble
وenum WifiRatePreamble
WIDTH_320
: ثابت فيenum WifiChannelWidthInMhz
BW_320MHz
: ثابت فيenum RttBw
واجهات برمجة التطبيقات
يمكن للتطبيقات استخدام واجهات برمجة التطبيقات التالية لقياس المسافة بالاستناد إلى وقت استرداد الإرسال (RTT) في Wi-Fi 7:
ScanResult#PREAMBLE_EHT
ResponderConfig#PREAMBLE_EHT
(SystemApi)
نقطة اتصال لاسلكية
يتوافق نظام Android مع Wi-Fi 7 في نقطة اتصال البرامج ويقدّم الخصائص التالية:
بدء نقطة اتصال لاسلكية
يتيح Android بدء نقطة اتصال Soft AP في وضع Wi-Fi 7.
يخضع ذلك لإعدادات تراكب config_wifiSoftapIeee80211beSupported
.
تستخدم وحدة Wi-Fi التراكب config_wifiSoftapIeee80211beSupported
لضبط القيمة المنطقية HwModeParams#enable80211BE
في طلب IHostApd#addAccessPoint()
لواجهة برمجة التطبيقات. في طبقة hostapd AIDL، يتم
استخدام هذه القيمة لضبط مَعلمات hostapd.conf
.
واجهات برمجة تطبيقات HAL
يتيح العنصر الثنائي enable80211BE
في HwModeParams
في hostapd HAL
بدء Soft AP في وضع Wi-Fi 7.
الإبلاغ عن معلومات نقطة اتصال Wi-Fi اللاسلكية
يتيح نظام التشغيل Android استخدام واجهة برمجة التطبيقات لتضمين معلومات عن عرض القناة بتردد 7 و320 ميغاهرتز في معلومات نقطة الوصول الثابتة التي تم الإبلاغ عنها.
واجهات برمجة تطبيقات HAL
يتوافق ثابت WIFI_STANDARD_11BE
في
Generation.aidl
واجهة AIDL في hostapd HAL، والذي يتم استخدامه
في ApInfo
الذي تم الإبلاغ عنه في IHostapdCallback#onApInstanceInfoChanged()
callback، مع الإبلاغ عن معلومات نقطة الاتصال اللاسلكية (Soft AP).
واجهات برمجة التطبيقات
يمكن للتطبيقات استخدام الطرق التالية (واجهات برمجة تطبيقات النظام) في
SoftApInfo
للإبلاغ عن معلومات نقطة الاتصال اللاسلكية الافتراضية.
SoftApInfo#getWifiStandard()
: تعودScanResults.WIFI_STANDARD_11BE
إذا تم تشغيل Soft AP في وضع Wi-Fi 7.SoftApInfo#getBandwidth()
: تعودSoftApInfo#CHANNEL_WIDTH_320MHZ
في حال استخدام عرض القناة الذي يبلغ 320 ميغاهرتز.
ميزات 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 منفصل. يحتوي نقطة الوصول أو محطة الشبكة الجوّالة أيضًا على عنوان MAC لبروتوكول MLD لتحديد الجهاز.
تمثيل رابط MLO
يمثّل الترتيب
android.net.wifi.MloLink
رابط MLO. تتضمّن هذه الفئة المَعلمات التالية:
int getLinkId()
: رقم تعريف الرابط كما هو مُعلَن عنه في ملف بيانات المحتوى البديل للملف الشخصي.MacAddress getApMacAddress()
: عنوان MAC لنقطة الوصول معرِّف مجموعة الخدمات الأساسية (BSSID) لمثيل AP لهذا الرابط.MacAddress getStaMacAddress()
: عنوان MAC لنقطة الاتصال عنوان MAC الذي تمّ تعيينه محليًا لوحدة STA على الرابط.int getChannel()
: ربط القناة رقم القناة التي ينقل إليها الرابطint getBand()
: ربط المجموعة رابط الربطint getState()
: حالة الربط يمكن أن تكون إحدى الحالات التالية:MLO_LINK_STATE_INVALID
: غير صالح. تُستخدَم لحالات الإعداد والأخطاء.MLO_LINK_STATE_UNASSOCIATED
: غير مرتبط. الرابط غير مرتبط بنقطة وصول.MLO_LINK_STATE_IDLE
: غير نشِط لفترة قصيرة الرابط مرتبط ولكنّه غير نشط (لم يتم ربط معرّف الزيارات (TID) بالرابط).MLO_LINK_STATE_ACTIVE
: نشط. الرابط مرتبط ونشط (تم ربط معرّف TID واحد على الأقل بالرابط). يمكن أن يكون الرابط النشط في وضع توفير الطاقة لأن إطار العمل لا يراقب حالة الطاقة للرابط.
معلومات MLO لنقطة اتصال Wi-Fi 7 التي تم مسحها ضوئيًا
يمكن للتطبيقات الحصول على معلَمات MLO لمعيار Wi-Fi 7 AP MLD عندما تتلقّى وحدة Wi-Fi عنصر
ScanResult
من AP-MLD. يعرض AOSP WifiTracker
مَعلمات MLO عند
التشغيل في وضع التفاصيل.
تجمع وحدة Wi-Fi معلومات MLO من خلال القيام بما يلي:
- لتحليل عنصر معلومات الروابط المتعدّدة (IE) المضمّن في إشارة الاستكشاف أو استجابة الاستكشاف من أجل قراءة عنوان MAC لبروتوكول MLD لنقطة الوصول ومعرّف الرابط الحالي
- لتحليل عنصر المعلومات المُعدَّل عن الجيران (RNR) المُدرَج في إشارة الاستكشاف أو الاستفسار للقراءة من قائمة معلومات الروابط التابعة.
واجهات برمجة التطبيقات
للحصول على معلومات مسح ضوئي لملف AP MLO، يمكن للتطبيقات استخدام واجهات برمجة التطبيقات التالية:
ScanResult#BSSID
: عنوان MAC لوحدة نقطة الوصول (للرابط الذي يتم تلقّي نتيجة الفحص عليه)MacAddress ScanResult#getApMldMacAddress()
: تعرض عنوان MLD MAC الخاص بنقطة الوصول (AP).int ScanResult#getApMloLinkId()
: تعرض رقم تعريف الرابط الخاص بالرابط الذي تم استلام نتيجة ScanResult عليه.-
List<MloLink> ScanResult#getAffiliatedMloLinks()
: يعرض قائمة بعناصرMloLink
لجميع الروابط التي يُعلِن عنها AP-MLD، بما في ذلك الرابط الذي تم استلام ScanResult عليه.
معلومات MLO لنقطة اتصال Wi-Fi 7 المتصلة
عندما يتصل جهاز بنقطة اتصال Wi-Fi 7 AP-MLD، يجمع إطار العمل مَعلمات
MLO للاتصال من عنصر WifiInfo
. يعرض عنصر AOSP
WifiTracker
هذه المعلومات عند التشغيل في الوضع التفصيلي.
عندما يتصل الجهاز بوحدة MLD في نقطة الوصول، تنسخ وحدة Wi-Fi معلومات MLO
من عنصر ScanResult
الذي تم تلقّيه من نقطة الوصول. بعد ذلك، تُستخدَم الوحدة لطلب ISupplicantStaIface#getConnectionMloLinksInfo()
HAL API
لقراءة عناوين MAC لكل رابط لكل من نقطة الوصول ووحدة التحكّم في حدود الجلسة، ولتعديل
حالة الروابط المرتبطة.
واجهات برمجة التطبيقات
للحصول على معلومات اتصال MLO، يمكن للتطبيقات استخدام واجهات برمجة التطبيقات التالية:
-
WifiInfo#getBSSID()
: يعرض عنوان MAC الخاص بمثيل نقطة الوصول (للرابط الذي تم ربط الجهاز به). -
MacAddress WifiInfo#getApMldMacAddress()
: تعرِض هذه السمة عنوان MAC لبروتوكول MLD الخاص بنقطة الوصول. -
int WifiInfo#getApMloLinkId()
: يعرض رقم تعريف الرابط الذي تم ربط STA به في AP. -
List<MloLink> WifiInfo#getAffiliatedMloLinks()
: يعرض قائمة بكائناتMloLink
لجميع الروابط التي يُعلِن عنها AP-MLD، بما في ذلك الرابط المرتبط. يمكن البحث عن عنوانَي MAC الخاصَّين بنقطة الاتصال ووحدة التحكّم في المحطة في كل عنصرMloLink
.
البحث عن نقاط الوصول باستخدام تقنية MLD
يقدّم برنامج المورّد لإطار عمل Wi-Fi نتائج البحث عن كل إشارات أو استجابات طلبات الاستكشاف التي يتلقّاها. وهذا يعني أنّ إطار عمل Wi-Fi:
- قد تتلقّى عناصر
ScanResults
متعددة من AP-MLD نفسه (لأنه يمكن أن يتضمّن AP روابط إشارات متعددة). - قد لا تتلقّى سوى مجموعة جزئية من نتائج البحث عن روابط AP لشدَّة AP-MLD لأنّه قد لا يتلقّى البرامج الثابتة بعض إشارات الربط هذه.
لا يُبلغ برنامج المورّد إلا عن نتائج المسح التي يتم تلقيها عبر الهواء، ويجب ألا ينشئ (يُجمِّع بشكل اصطناعي) نتائج المسح استنادًا إلى الروابط المعلَن عنها من قِبل AP-MLD.
يجب أن تتضمّن برامج المورّد الإصدارات الأساسية من عناصر التحكّم في معدل نقل البيانات (Ie) لرابط متعدد الأنواع وعناصر التحكّم في معدل نقل البيانات (RNR) المستلَمة من نُسخ خادم نقطة الوصول في نتائج الفحص التي يتم الإبلاغ عنها. إذا كانت تفاصيل AP المرتبط غير متوفّرة في نتائج الفحص، يمكن لبرنامج المورّد إرسال طلبات فحص متعددة الروابط (إطار طلب الفحص الذي يتضمّن عنصرًا لطلب الفحص المتعدد الروابط) لتضمين المجموعة الكاملة أو الجزئية من الإمكانات والمَعلمات وعناصر العمل الخاصة بنقطة الوصول مع AP-MLD المستهدَف في إطار الردّ.
يمكن لبرنامج المورّد بدء عملية الاستكشاف باستخدام تعلُّم الآلة (باستخدام متغير طلب الاستكشاف ML IE في إطار طلب الاستكشاف) إذا لزم الأمر.
ربط شبكة AP-MLD
عندما ينضم جهاز إلى شبكة AP-MLD، يستخدم برنامج المورّد رابط AP المحدد (الرابط المرتبط) للإرسال. يمكن لبرنامج المورّد الربط بجميع الروابط أو بعضها التي يتيحها الجهاز.
بعد الاقتران الناجح، يُبلغ برنامج التشغيل عن
ISupplicantStaIfaceCallback#onStateChanged()
باستخدام معرّف مجموعة الخدمات الأساسية لرابط
AP-MLD. بعد ذلك، يختار برنامج التشغيل رابطًا لملف AP-MLD شرط أن يتم تسجيل نتائج الفحص في إطار العمل الخاص بهذا الرابط.
تقييم الشبكة
بالنسبة إلى الأجهزة التي تعمل بالإصدار 14 من نظام التشغيل Android أو الإصدارات الأحدث، تتوافق ميزة اختيار شبكة Wi-Fi على Android مع تقنية Wi-Fi 7 MLO. وهذا يعني أنّ نظام التشغيل Android يختار أفضل شبكة Wi-Fi للجهاز استنادًا إلى عدد الروابط المتاحة لميزة "إدارة مستويات الخدمة".
لدعم MLO، تستخدِم خوارزمية اختيار الشبكة ميزات MLO التالية من شريحة Wi-Fi:
- الحد الأقصى لعدد روابط STR
- الحدّ الأقصى لعدد روابط الربط
- مجموعات الأشرطة المتزامنة
الشكل 2: اختيار شبكة MLO
الحد الأقصى لعدد روابط STR
ميزة "الإرسال والاستقبال المتزامنان" (STR) هي مخطط صراع وسيط Wi-Fi لتشغيل قنوات متعددة. يجب أن يكون عزل الإشارة بين الروابط المختلفة كافيًا كي تتمكّن الروابط من العمل بشكل مستقل وتكون قادرة على الإرسال والتلقّي في الوقت نفسه في روابط مختلفة. يختلف جهاز STR عن جهاز STA القديم المرتبط برابط واحد (SL) وجهاز STA القديم المرتبط برابط مزدوج مزدوج متزامن (DBDC). تشترك أجهزة 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
الحد الأقصى لعدد روابط الربط
يمكن أن تعمل روابط متعددة على جهاز راديو واحد باستخدام مخطّط الصراع، وهو "الراديو المتعدّد الروابط المحسّن (eMLSR)". يستخدم الجهاز المتعدّد الروابط eMLSR عبر مجموعة من الروابط إذا كان يمكنه تلقّي إطارات تحكّم أساسية معيّنة وإجراء تقييم واضح للقنوات في الوقت نفسه على مجموعة الروابط. ومع ذلك، تُرسِل أو تتلقّى تقنية 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) التي يمكن تشغيلها في الوقت نفسه. ومن هذه
المعلومات، يستخرج الإطار مجموعات النطاقات المتزامنة المحتملة. وفي ما يلي مثال على قائمة بمجموعات النطاقات المتزامنة (ميغاهرتز):
- 2.4
- 5
- 6
- 2.4 x 5
- 2.4 × 6
- 5 × 6
تتيح واجهة AIDL HAL التالية تركيبات البث اللاسلكي المتزامنة:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
اختيار الشبكة
أثناء اختيار الشبكة (MLO)، يتم تجميع القائمة المرشحة حسب الأعضاء الذين لديهم عنوان MAC لبروتوكول MLD نفسه. يتم احتساب الحد الأقصى لنتيجة معدل نقل البيانات المتوقّعة لرابطَين أو أكثر لكل مجموعة، استنادًا إلى الحد الأقصى لعدد روابط STR ومجموعات النطاقات المتزامنة التي تتيحها الشريحة. إذا كان الجهاز المُقترَح متوافقًا مع رابطَين وكانت الشريحة متوافقة مع تقنية STR، يتم استبدال نتيجة معدل نقل البيانات المتوقّعة بنتيجة معدل نقل البيانات المتوقّعة باستخدام رابطَين. ويمنح ذلك ميزة إضافية لمرشحي MLO أثناء اختيار الشبكة.
عند الانضمام إلى شبكة AP-MLD، ينفِّذ الإطار عمل اختيار SSID استنادًا
إلى المعلومات التي يتم تلقّيها في عنصرScanResults
كما أبلغ عنها برنامج
المورّد. عند اختيار SSID من خلال الإطار، يكون برنامج المورّد هو
المسؤول عن اختيار معرّف BSSID لأفضل نقطة اتصال (أو رابط نقطة اتصال) لاستخدامه في
العمل.
معالجة عنوان STA MAC للجهاز
يصف هذا القسم كيفية معالجة عناوين MAC لوحدة التحكّم في حدود الجلسة (عناوين MAC لبروتوكول MLD وعناوين MAC لوحدة التحكّم في حدود الجلسة لكل رابط).
عنوان MAC لبروتوكول MLD
يدير إطار عمل Wi-Fi عنوان MAC لبروتوكول MLD للجهاز. يتم التعامل مع عنوان MAC
MLD بالطريقة نفسها التي يتعامل بها جهاز غير MLD مع عنوان MAC الخاص به.
يمكن أن يكون عنوان MAC عشوائيًا أو عنوان MAC مخصّصًا للأجهزة استنادًا إلى اختيار المستخدم. يضبط إطار العمل عنوان MAC لبروتوكول MLD
باستخدام IWifiStaIface#setMacAddress()
HAL API.
عنوان MAC لجهاز العميل لكل رابط
تدير برامج المورّد عناوين MAC لوحدة التحكّم في حدود الجلسة (لكل رابط). عندما يتم ربط جهاز بنقطة اتصال، يخصّص برنامج المورّد عنوان MAC مثيل لكل رابط مرتبط.
يعين برنامج المورد عناوين MAC لكل رابط بناءً على الخوارزمية. يجب أن تكون الخطوات المتعلّقة بالalgorithm repeatable (قابلة للتكرار) وأن تكون دالةً لما يلي:
- عنوان MAC الخاص بوحدة STA-MLD الذي يحدّده إطار عمل Wi-Fi
- رقم تعريف الرابط (تم استلامه من AP)
وهذا يعني أنّه إذا أعاد إطار العمل استخدام عنوان MAC نفسه لبروتوكول MLD، على المورّد مجددًا استخدام عناوين MAC المرتبطة بكل مثيل، والعكس صحيح. يضمن ذلك أنّه عندما يكون عنوان STA-MLD الذي أنشأه إطار العمل ثابتًا لشبكة SSID، تكون عناوين MAC لكل محطة ثابتة أيضًا.
في ما يلي مثال على خوارزمية لتخصيص عنوان MAC لوحدة التحكّم في حدود الجلسة لكل رابط (يمكن للمورّدين تنفيذ أي خوارزمية تستوفي معايير الخوارزمية):
- الثمانيت 0: تأكَّد من ضبط الإعداد المُدار محليًا
- الثمانية من 1 إلى 4: نفسها مثل عنوان MAC الخاص بوحدة STA-MLD
- الثُمنية 5: لكل محطة = (MLD-STA + معرّف الرابط + 1) MOD (256)
معالجة الروابط المتعددة
يمكن للبرامج الثابتة الخاصة بالمورّد تنفيذ تبديل الروابط وإدارة حالة توفير الطاقة للروابط لتفعيلها أو إيقافها بدون إدخال معلومات من إطار عمل Wi-Fi.
لا يتوقّع إطار عمل Wi-Fi تلقّي إشعار عند تغيير حالة الربط.
إدارة حالة توفير الطاقة
تكون حالة توفير الطاقة مفعَّلة تلقائيًا في إطار عمل شبكة Wi-Fi. في حالة توفير الطاقة، تدير البرامج الثابتة للمورد حالة توفير الطاقة للروابط الفردية بناءً على أنماط حركة البيانات وقرارات تفعيل الروابط أو إلغاء التفعيل.
ومع ذلك، يمكن لإطار عمل Wi-Fi فرض إيقاف وضع توفير الطاقة من خلال
استدعاء ISupplicantStaIface::setPowerSave(false)
HAL API. إذا تم إيقاف حالة
توفير الطاقة من خلال إطار العمل، يجب أن تحافظ البرامج الثابتة للمورّد على فعالية
رابط واحد على الأقل (يكون توفير الطاقة غير مفعَّل). في هذه الحالة، يحدِّد تنفيذ البرامج الثابتة الرابط الذي يتم ضبطه.
مسار البيانات
يصف هذا تنفيذ البرامج الثابتة الخاصة بالمورد للتعامل مع روابط التحميل وعدد زيارات التنزيل.
عدد عمليات التحميل
يوجّه البرنامج الثابت حركة المرور في رابط التحميل إلى رابط واحد (أو أكثر) استنادًا إلى التنفيذ الداخلي. تحدِّد البرامج الثابتة الخاصة بالمورّد وقت إجراء موازنة التحميل أو التكرار أو تجميع الزيارات استنادًا إلى أنماط الزيارات. ننصح بأن تكرر البرامج الثابتة الزيارات إلى روابط متعددة في الحالات التالية:
- عند ضبط وضع وقت الاستجابة المنخفض من خلال
IWifiChip#setLatencyMode()
HAL API - عندما تكون هناك زيارات ذات أولوية المستخدِم 6 و7
حركة البيانات المُنزَّلة
يجب أن يستبدل البرنامج الثابت عنوان MAC (الوجهة) لكل محطة أساسية في عنوان MAC بالعنوان MAC لبروتوكول MLD-STA وعنوان MAC (المصدر) لكل نقطة اتصال في عنوان 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تلقّي إشعارات عند تغيُّر حالة الرابط بسبب ربط رقم تعريف الجهاز بالرابط، حتى إذا لم يكن الرابط المرتبط مرتبطًا برقم تعريف الجهاز.
واجهة برمجة التطبيقات لنظام HAL (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
واجهات برمجة التطبيقات
يمكن للتطبيقات الحصول على معلومات عن التغييرات في تعيين أرقام TID إلى الروابط باستخدام واجهات برمجة التطبيقات التالية:
ConnectivityManager.NetworkCallback.onCapabilitiesChanged()
: يشغّل إطار العمل استدعاء الشبكة عند حدوث تغيير في ربط TID للربط.WifiInfo#getAssociatedMloLinks()
: عرض روابط MLO المرتبطة.-
MloLink#getState()
: تعرض حالة الرابط، سواء كانتMLO_LINK_STATE_ACTIVE
أوMLO_LINK_STATE_IDLE
.
إمكانات التفاوض بشأن ربط معرّف المنتج بالرابط
بالنسبة إلى الأجهزة التي تعمل بالإصدار 14 من نظام التشغيل Android أو الإصدارات الأحدث، تتوفّر واجهات برمجة التطبيقات التالية التي يمكن استخدامها للحصول على إمكانات التفاوض بشأن خريطة تحديد TID للربط للمحطة وAP.
إمكانات الشريحة
تتيح الواجهات التالية إمكانية الشريحة لمفاوضة ربط TID بالربط.
AIDL HAL
يمكن العثور على واجهة AIDL للتفاوض بشأن تعيين TID إلى الرابط في FeatureSetMask
في hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
. تشير ميزة
T2LM_NEGOTIATION = 1 << 8
إلى أنّ الشريحة تتيح
ربط TID بالرابط.
واجهات برمجة التطبيقات
-
WifiManager.isTidToLinkMappingNegotiationSupported()
: يعرض الشريحة التي تتيح التفاوض على ربط TID بالرابط.
إمكانات الملف الشخصي البديل
تتيح الواجهات التالية إمكانية AP لمفاوضة ربط TID-to-link.
AIDL HAL
يطلب إطار العمل إمكانية نقطة الوصول من طلب البيانات مع إمكانية الاتصال الحالية.
-
apTidToLinkMapNegotiationSupported
: تحقّق من ما إذا كان نقطة الوصول تتيح إمكانية التفاوض على خريطة TID إلى الرابط.
واجهات برمجة التطبيقات
-
WifiInfo.isApTidToLinkMappingNegotiationSupported()
: يعرض ما إذا كان AP يتيح التفاوض على ربط TID بالرابط.
إحصاءات طبقة الربط
تتضمّن إحصاءات طبقة الربط تفاصيل خاصة برابط Wi-Fi، مثل مؤشر RSSI ومعدّلات عدّ الحِزم المرسَلة والمستقبلة المختلفة وإحصاءات البثّ اللاسلكي. يُجري إطار عمل Wi-Fi استطلاعات منتظمة لجمع قياسات ناتجة عن تحليل اتّصال الجهاز بالشبكة ومقدار طاقة الإشارة (RSSI) لاختيار أفضل شبكة أو تقييم جودة الشبكة المتّصل بها. بالنسبة إلى الأجهزة التي تعمل بالإصدار 14 من نظام التشغيل Android أو الإصدارات الأحدث، تشمل إحصاءات طبقة الروابط إمكانية استخدام روابط متعددة. للتوافق مع شبكة Wi-Fi 7، يتوافق Android مع MLO في كل من إحصاءات طبقة الروابط واستطلاع الإشارات.
يمكن العثور على الإحصاءات المتعلّقة بالرابط في واجهات AIDL التالية لطبقة الربط:
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceStats.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerLinkStats.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 13
بالنسبة إلى الأجهزة التي تعمل بنظام التشغيل Android 13، لا تأخذ إحصاءات طبقة الروابط
في الاعتبار استخدام روابط متعددة لواجهة واحدة. لإتاحة دالة MLO، يجب أن يطبّق برنامج المورّد منطق التجميع التالي عند إعداد التقارير عن LinkLayerStats
من خلال واجهة برمجة تطبيقات HAL IWifi# getLinkLayerStats_1_6()
. أفضل رابط هو
الرابط الذي يعرض أعلى قيمة لمستوى 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. يمكن للمحطات الحفاظ على الاتصال السلس بنقطة الوصول بدون إعادة الربط على الروابط المتبقية.
واجهة
onMloLinksInfoChanged
AIDL، المتوفّرة في طلب Wi-Fi على
ISupplicantStaIfaceCallback.aidl
،
تتيح إعادة ضبط الرابط (إزالة الرابط من نقطة الوصول).
عندما يعالج إطار عمل 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.