بالنسبة إلى الأجهزة التي تعمل بالإصدار 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. يكون وضع اتصال محطة العمل هو Wi-Fi 7 عندما يتيح كل من الجهاز
ونقطة الوصول المتصلة استخدام 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 لكلّ من الجهاز و AP الذي تم فحصه.
في Android 13، يستخدم ThroughputPredictor
الميزات التالية لنقاط الاتصال في عملية الحساب:
- التوافق مع Wi-Fi 7 (802.11be)
- إتاحة عرض القناة الذي يبلغ 320 MHz
يؤدي تضمين هذه الإمكانات في منطق 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 واجهة برمجة تطبيقات تتيح تضمين معلومات Wi-Fi 7 وعرض قناة 320 MHz في معلومات نقطة الاتصال اللاسلكية المتوفّرة.
واجهات برمجة تطبيقات HAL
يتوافق ثابت WIFI_STANDARD_11BE
في
Generation.aidl
واجهة AIDL في hostapd HAL، والذي يتم استخدامه
في ApInfo
الذي تم الإبلاغ عنه في IHostapdCallback#onApInstanceInfoChanged()
الاستدعاء، مع الإبلاغ عن معلومات نقطة الاتصال اللاسلكية (Soft AP).
واجهات برمجة التطبيقات
يمكن للتطبيقات استخدام الطرق التالية (واجهات برمجة تطبيقات النظام) في
SoftApInfo
للإبلاغ عن معلومات نقطة الاتصال اللاسلكية الافتراضية.
-
SoftApInfo#getWifiStandard()
: يعرض القيمةScanResults.WIFI_STANDARD_11BE
إذا تم تشغيل نقطة اتصال البرامج في وضع Wi-Fi 7. SoftApInfo#getBandwidth()
: يعرض القيمةSoftApInfo#CHANNEL_WIDTH_320MHZ
إذا تم استخدام عرض القناة الذي يبلغ 320 MHz.
ميزات MLO Wi-Fi 7
تشكّل ميزة "العمل باستخدام روابط متعددة" (MLO) الميزة الرئيسية في مواصفات Wi-Fi 7 (802.11be). MLO هي ميزة إلزامية للأجهزة التي تتضمّن روابط متعددة (MLD) التي تعمل بتقنية Wi-Fi 7، سواء بشكل متزامن أو غير متزامن.
الشكل 1: مخطّط MLO
كما هو موضّح في الشكل 1، يتضمّن كلّ من AP-MLD وSTA-MLD عدّة مثيلات لبروتوكول AP أو STA قيد التشغيل على كل رابط. يحتوي كل رابط على عنوان MAC منفصل لنقطة اتصال أو محطة اتصال. يحتوي نقطة الوصول أو محطة الشبكة الجوّالة أيضًا على عنوان MAC لبروتوكول MLD لتحديد الجهاز.
تمثيل رابط MLO
يمثّل الرمز البرمجي
android.net.wifi.MloLink
فئة رابط MLO. تتضمّن هذه الفئة المَعلمات التالية:
int getLinkId()
: رقم تعريف الرابط كما هو مُعلَن عنه في ملف بيانات المحتوى البديل للملف الشخصي.MacAddress getApMacAddress()
: عنوان MAC لنقطة الوصول معرّف BSSID لمثيل نقطة الوصول لهذا الرابط.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 لوحدة MLD لنقطة اتصال Wi-Fi 7 عندما تتلقّى وحدة Wi-Fi
عنصرًا
ScanResult
من وحدة MLD لنقطة الاتصال. يعرض AOSP WifiTracker
مَعلمات MLO عند
التشغيل في وضع التفاصيل.
تجمع وحدة Wi-Fi معلومات MLO من خلال تنفيذ ما يلي:
- لتحليل عنصر معلومات الروابط المتعدّدة (IE) المضمّن في إشارة الاستكشاف أو استجابة الاستكشاف من أجل قراءة عنوان MAC لبروتوكول MLD لنقطة الوصول ورقم تعريف الرابط الحالي
- لتحليل عنصر المعلومات المُعدَّل عن الجيران (RNR) المُدرَج في إشارة الاستكشاف أو الاستفسار للقراءة من قائمة معلومات الروابط التابعة.
واجهات برمجة التطبيقات
للحصول على معلومات مسح ضوئي لملف AP MLO، يمكن للتطبيقات استخدام واجهات برمجة التطبيقات التالية:
ScanResult#BSSID
: عنوان MAC لوحدة نقطة الوصول (للرابط الذي يتم تلقّي نتيجة الفحص عليه)MacAddress ScanResult#getApMldMacAddress()
: تعرِض هذه السمة عنوان MAC لبروتوكول MLD الخاص بنقطة الوصول.-
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 على مجموعة من الروابط إذا كان بإمكانه تلقّي إطارات تحكّم أساسية معيّنة وإجراء تقييم للقناة الواضحة (CCA) في الوقت نفسه على مجموعة الروابط. ومع ذلك، تُرسِل أو تتلقّى تقنية MLD بيانات على رابط واحد فقط (الرابط الذي يتم اختياره ديناميكيًا في كل فترة لنقل البيانات (TXOP)) في المرة الواحدة.
يمكن لمحطة MLD زيادة عدد روابط الربط إلى أقصى حد لتحسين الموثوقية ومعدل نقل البيانات ووقت الاستجابة (مقارنةً بمحطة قديمة تستخدم رابطًا واحدًا) من خلال العمل بشكل متزامن في وضعَي STR وeMLSR إذا كانت المعالجة المتقدّمة للإشارة متوافقة مع الرقاقة. في الشكل 2، يبلغ الحد الأقصى لعدد روابط الربط 3 روابط.
تتيح واجهات AIDL HAL التالية الحد الأقصى لعدد روابط الربط:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/WifiChipCapabilities.aidl
مجموعات النطاقات المتزامنة
يُجري إطار العمل طلب بحث على الشريحة للحصول على مجموعات الترددات المسموح بها (من خلال
واجهة IWifiChip.aidl
AIDL) التي يمكن تشغيلها في الوقت نفسه. ومن هذه
المعلومات، يستخرج الإطار مجموعات النطاقات المتزامنة المحتملة. في ما يلي مثال على قائمة بمجموعات النطاقات المتزامنة (بوحدة غيغاهرتز):
- 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 ومجموعات النطاقات المتزامنة التي تتيحها الشريحة. إذا كان الجهاز المُقترَح متوافقًا مع تقنية "الربط المتعدّد" وكانت الشريحة متوافقة مع تقنية "الربط المتعدّد"، يتم استبدال نتيجة معدل نقل البيانات المتوقّعة بنتيجة معدل نقل البيانات المتوقّعة باستخدام تقنية "الربط المتعدّد". ويمنح ذلك ميزة إضافية لمرشحي MLO أثناء اختيار الشبكة.
عند الانضمام إلى شبكة AP-MLD، ينفِّذ الإطار عمل اختيار SSID استنادًا
إلى المعلومات التي يتم تلقّيها في عنصرScanResults
كما أبلغ عنها برنامج
المورّد. عند اختيار SSID من خلال الإطار، يكون برنامج المورّد هو
المسؤول عن اختيار معرّف BSSID لأفضل نقطة اتصال (أو رابط نقطة اتصال) لاستخدامه في
العملية الربط.
معالجة عنوان MAC لوحدة STA للجهاز
يصف هذا القسم كيفية معالجة عناوين 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 لكل رابط استنادًا إلى خوارزميتها. يجب أن تكون الخطوات متكرّرة وأن تكون دالةً لما يلي:
- عنوان 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 بالقاعدة لتحديد المحطة ونقطة الوصول.
إمكانات الشريحة
تتيح الواجهات التالية إمكانية التفاوض على ربط TID بالرابط.
AIDL HAL
يمكن العثور على واجهة AIDL للتفاوض بشأن تعيين TID إلى الرابط في FeatureSetMask
في hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
. تشير ميزة
T2LM_NEGOTIATION = 1 << 8
إلى أنّ الشريحة تتيح
ربط TID بالرابط.
واجهات برمجة التطبيقات
-
WifiManager.isTidToLinkMappingNegotiationSupported()
: يعرض الشريحة التي تتيح التفاوض على ربط TID بالرابط.
إمكانات الملف الشخصي البديل
تتيح الواجهات التالية إمكانية نقطة الوصول للتفاوض بشأن ربط TID بالرابط.
AIDL HAL
يطلب إطار العمل إمكانية نقطة الوصول من طلب البيانات مع إمكانية الاتصال الحالية.
-
apTidToLinkMapNegotiationSupported
: تحقّق من ما إذا كان نقطة الوصول تتيح إمكانية التفاوض على خريطة TID إلى الرابط.
واجهات برمجة التطبيقات
-
WifiInfo.isApTidToLinkMappingNegotiationSupported()
: يعرض ما إذا كان AP يتيح التفاوض على ربط TID بالرابط.
إحصاءات طبقة الربط
تتضمّن إحصاءات طبقة الربط تفاصيل خاصة برابط Wi-Fi، مثل مؤشر RSSI، وعدادات الحِزم المرسَلة والمستقبلة المختلفة، وإحصاءات البث اللاسلكي. يُجري إطار عمل Wi-Fi استطلاعات منتظمة لجمع قياسات ناتجة عن تحليل اتّصالات الشبكة ومؤشر RSSI لاختيار أفضل شبكة أو تقييم جودة الشبكة المتّصل بها. بالنسبة إلى الأجهزة التي تعمل بالإصدار 14 من نظام التشغيل Android أو إصدار أحدث، تتضمّن إحصاءات طبقة الربط دعم الروابط المتعدّدة. ليتمكّن Android من استخدام تقنية Wi-Fi 7، يجب أن يكون متوافقًا مع 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
من خلال واجهة برمجة التطبيقات IWifi# getLinkLayerStats_1_6()
HAL API. أفضل رابط هو
الرابط الذي يعرض أعلى قيمة لمستوى RSSI.
StaLinkLayerStats.iface.beaconRx
: أبلِغ عن عدد الإشارات لأفضل رابط مستخدَم في الواجهة.StaLinkLayerStats.iface.avgRssiMgmt
: أبلِغ عنavgRssiMgmt
للحصول على أفضل رابط تم استخدامه للواجهة.StaLinkLayerStats.iface.wmeXxPktStats
(Xx = Vo, Vi, Be,Bk): الإبلاغ عن إحصاءات الحِزم المجمّعة (إجمالي) على روابط الواجهةStaLinkLayerStats.iface.wmeXxContentionTimeStats
(Xx = Vo, Vi, Be,Bk): الإبلاغ عن إحصاءات وقت الصراع لأفضل رابط مستخدَم في الواجهة (أدنى إحصاءات وقت الصراع)
إعادة ضبط رابط MLO
عند إعادة استخدام أحد روابط نقطة وصول Wi-Fi 7، يمكن لنقطة الوصول إعلام العميل بإزالة الرابط من خلال إعادة ضبط رابط 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 للرقاقة
تسمح تقنية MLO للأجهزة بإرسال البيانات واستلامها على روابط Wi-Fi متعددة في الوقت نفسه، ما يمكن أن يُحسِّن أداء التطبيقات التي لها متطلبات محدّدة، مثل وقت الاستجابة المنخفض وسعة النطاق العالية واستهلاك الطاقة المنخفض. يمكن لمورّدي الشرائح تطوير algoritms بشأن كيفية استخدام الروابط المتاحة.
يمكن للتطبيقات المميّزة تعديل هذه الخوارزميات باستخدام 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.