بالنسبة إلى الأجهزة التي تعمل بالإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث، يتيح نظام التشغيل Android معيار Wi-Fi 7 (IEEE 802.11be). توضّح هذه الصفحة ميزات شبكة Wi-Fi 7 على أجهزة Android، بما في ذلك التشغيل الأساسي والتشغيل المتزامن على نطاقات متعددة (MLO).
الميزات الأساسية لشبكة Wi-Fi 7
يوضّح هذا القسم ميزات Wi-Fi 7 الأساسية المضمّنة في الإصدار 13 من نظام التشغيل Android والإصدارات الأحدث.
توافُق الجهاز مع شبكة 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
معلومات الدعم هذه في واجهة المستخدم عند التشغيل في الوضع المفصّل.
وضع اتصال STA
يتضمّن إطار عمل Android واجهة برمجة التطبيقات
int WifiInfo#getWifiStandard()
التي يمكن أن تستخدمها التطبيقات للتحقّق مما إذا كان وضع اتصال المحطة الحالية (STA) هو Wi-Fi 7. يكون وضع اتصال STA هو Wi-Fi 7 عندما يدعم كل من الجهاز ونقطة الوصول المتصلة معيار Wi-Fi 7. إذا كان وضع الاتصال هو Wi-Fi 7، ستعرض واجهة برمجة التطبيقات القيمة ScanResults.WIFI_STANDARD_11BE
.
عند استدعاء getWifiStandard
، تحدِّد وحدة Wi-Fi الوضع من خلال استدعاء واجهة برمجة التطبيقات ISupplicantStaIface#getConnectionCapabilities()
HAL. يتحقّق تنفيذ واجهة برمجة التطبيقات HAL هذه في طبقة AIDL من توفّر EHT Capability IE
في كل من AssocReq
وAssocRsp
أثناء عملية إعداد الاتصال.wpa_supplicant
اختيار الشبكة
في نظام التشغيل Android 13، تستخدم عملية اختيار الشبكة عدة معلَمات لتحديد نقطة الوصول التي سيتم الاتصال بها. إحدى المَعلمات هي معدّل نقل البيانات المقدَّر لنقطة الوصول، ويتم تقديره باستخدام الحزمة ThroughputPredictor
. يستخدم الحظر ThroughputPredictor
مَعلمات الطبقة الفيزيائية (PHY) لكل من الجهاز ونقطة الوصول التي تم فحصها.
في نظام التشغيل Android 13، تستخدم ThroughputPredictor
إمكانات نقطة الوصول التالية في عملية الحساب:
- توافق مع شبكة Wi-Fi 7 (802.11be)
- التوافق مع عرض القناة البالغ 320 ميغاهرتز
يؤدي تضمين هذه الإمكانات في منطق ThroughputPredictor
إلى زيادة فرص اختيار نقاط وصول متوافقة مع Wi-Fi 7 عندما يكون الجهاز قادرًا على الاستفادة من هذه الميزات.
تحديد المدى استنادًا إلى ميزة "المراسلة النصية في الوقت الفعلي" عبر شبكة Wi-Fi
يتيح نظام التشغيل Android استخدام واجهة برمجة التطبيقات مع ديباجة EHT وعرض قناة يبلغ 320 ميغاهرتز لخدمة Wi-Fi RTT. يتيح ذلك إمكانية استخدام ميزات Wi-Fi 7 ذات الصلة في تحديد المسافة باستخدام تقنية RTT عندما تكون متاحة في الشريحة.
واجهات برمجة تطبيقات 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()
. في طبقة AIDL الخاصة ببرنامج hostapd، يتم استخدام هذه القيمة لضبط مَعلمات hostapd.conf
.
واجهات برمجة تطبيقات HAL
تتيح قيمة
enable80211BE
البولية في HwModeParams
في hostapd HAL
بدء تشغيل نقطة الوصول البرمجية في وضع Wi-Fi 7.
الإبلاغ عن معلومات نقطة الوصول البرمجية
يتضمّن Android توافقًا مع واجهة برمجة التطبيقات لتضمين معلومات حول شبكة Wi-Fi 7 وعرض نطاق القناة 320 ميغاهرتز في معلومات نقطة الوصول البرمجية (Soft AP) التي يتم إعداد التقارير بشأنها.
واجهات برمجة تطبيقات HAL
الثابت WIFI_STANDARD_11BE
في واجهة AIDL
Generation.aidl
في hostapd HAL، والذي يتم استخدامه
في ApInfo
الذي تم الإبلاغ عنه في معاودة الاتصال IHostapdCallback#onApInstanceInfoChanged()
، يتيح إمكانية الإبلاغ عن معلومات نقطة الوصول البرمجية.
واجهات برمجة التطبيقات
يمكن للتطبيقات استخدام الطرق التالية (واجهات برمجة تطبيقات النظام) في
SoftApInfo
للإبلاغ عن معلومات نقطة الوصول البرمجية.
-
SoftApInfo#getWifiStandard()
: تعرض هذه السمةScanResults.WIFI_STANDARD_11BE
إذا تم بدء نقطة الوصول البرمجية في وضع Wi-Fi 7. -
SoftApInfo#getBandwidth()
: تعرض القيمةSoftApInfo#CHANNEL_WIDTH_320MHZ
في حال استخدام عرض القناة 320 ميغاهرتز.
ميزات Wi-Fi 7 في تقنية MLO
تُعدّ عملية الربط المتعدد (MLO) الميزة الرئيسية في مواصفات Wi-Fi 7 (802.11be). MLO هي ميزة إلزامية للأجهزة المتعددة الروابط (MLD) التي تعمل في شبكة Wi-Fi 7، سواء بشكل متزامن أو غير متزامن.
الشكل 1. مخطط MLO
كما هو موضّح في الشكل 1، يتضمّن كل من AP-MLD وSTA-MLD مثيلات متعددة من نقطة الوصول (AP) أو المحطة الطرفية (STA) تعمل على كل رابط. يحتوي كل رابط على عنوان MAC منفصل لنقطة الوصول أو محطة STA. يحتوي نقطة الوصول أو محطة STA أيضًا على عنوان MAC متعدد الأجهزة لتحديد الجهاز.
تمثيل رابط MLO
يمثّل الصف
android.net.wifi.MloLink
رابط MLO. يتضمّن هذا الصف المَعلمات التالية:
- استبدِل
int getLinkId()
برقم تعريف الرابط كما هو معلن عنه من قِبل AP MLD. MacAddress getApMacAddress()
: عنوان MAC لنقطة الوصول معرّف مجموعة الخدمات الأساسية (BSSID) لمثيل نقطة الوصول لهذا الرابطMacAddress getStaMacAddress()
: عنوان MAC الخاص بمحطة STA عنوان 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
: نشط الرابط مرتبط ونشط (تم ربط معرّف معاملة واحد على الأقل بالرابط). يمكن أن يكون الرابط النشط في وضع توفير الطاقة لأنّ إطار العمل لا يراقب حالة الطاقة للرابط.
معلومات MLO الخاصة بنقطة وصول Wi-Fi 7 التي تم فحصها
يمكن للتطبيقات الحصول على مَعلمات MLO الخاصة بنقطة وصول Wi-Fi 7 MLD عندما تتلقّى وحدة Wi-Fi العنصر ScanResult
من نقطة وصول MLD. تعرض حزمة AOSP WifiTracker
مَعلمات MLO عند التشغيل في الوضع المفصّل.
يجمع جهاز Wi-Fi معلومات MLO من خلال تنفيذ ما يلي:
- تحلّل هذه السمة عنصر معلومات الروابط المتعدّدة (IE) المضمّن في إشارة البث أو استجابة البحث عن الشبكة لقراءة عنوان MAC الخاص بنقطة الوصول التي تستخدم روابط متعدّدة ومعرّف الرابط الحالي.
- تحلّل هذه السمة عنصر معلومات "تقرير الجيران المخفّض" (RNR) المضمّن في إشارة التتبّع أو ردّ التحقّق لقراءة قائمة معلومات الروابط التابعة.
واجهات برمجة التطبيقات
للحصول على معلومات حول شبكات AP MLO التي تم فحصها، يمكن للتطبيقات استخدام واجهات برمجة التطبيقات التالية:
- استبدِل
ScanResult#BSSID
بما يلي: عنوان MAC لمثيل نقطة الوصول (للرابط الذي تم تلقّي نتيجة الفحص عليه) MacAddress ScanResult#getApMldMacAddress()
: تعرض عنوان MAC الخاص ببروتوكول MLD لنقطة الوصول.-
int ScanResult#getApMloLinkId()
: تعرض هذه السمة رقم تعريف الرابط الذي تم تلقّي ScanResult عليه. List<MloLink> ScanResult#getAffiliatedMloLinks()
: تعرض هذه السمة قائمة بعناصرMloLink
لجميع الروابط التي يعرضها AP-MLD، بما في ذلك الرابط الذي تم تلقّي ScanResult عليه.
معلومات حول نقطة وصول Wi-Fi 7 المتصلة بتقنية MLO
عندما يتصل جهاز بنقطة وصول Wi-Fi 7 AP-MLD، يجمع إطار العمل مَعلمات MLO الخاصة بالاتصال من العنصر WifiInfo
. يعرض العنصر WifiTracker
في AOSP هذه المعلومات عند التشغيل في الوضع المفصّل.
عندما يتصل الجهاز بنقطة الوصول المتعددة الروابط (AP-MLD)، تنسخ وحدة Wi-Fi معلومات MLO من عنصر ScanResult
الذي تم تلقّيه من نقطة الوصول. بعد ذلك، يستدعي الوحدة ISupplicantStaIface#getConnectionMloLinksInfo()
HAL API
لقراءة عناوين MAC لكل رابط لكل من نقطة الوصول (AP) والمحطة (STA)، ولتعديل حالة الروابط المرتبطة.
واجهات برمجة التطبيقات
للحصول على معلومات اتصال MLO، يمكن للتطبيقات استخدام واجهات برمجة التطبيقات التالية:
- استبدِل
WifiInfo#getBSSID()
بما يلي: تعرض هذه السمة عنوان MAC لمثيل نقطة الوصول (بالنسبة إلى الرابط الذي يرتبط به الجهاز). MacAddress WifiInfo#getApMldMacAddress()
: تعرض عنوان MAC الخاص ببروتوكول MLD لنقطة الوصول.int WifiInfo#getApMloLinkId()
: تعرض هذه السمة معرّف الرابط الذي تم ربط STA به على نقطة الوصول.List<MloLink> WifiInfo#getAffiliatedMloLinks()
: تعرض هذه السمة قائمة بكائناتMloLink
لجميع الروابط التي يعلن عنها AP-MLD، بما في ذلك الرابط المرتبط. يمكن طلب البحث عن عنوانَي MAC الخاصين بنقطة الوصول ومحطة STA في كل عنصرMloLink
.
AP-MLD scanning
يوفّر برنامج المورّد إطار عمل Wi-Fi مع نتائج الفحص لكل إشارة أو ردّ على طلب الفحص يتلقّاه. ويعني ذلك أنّ إطار عمل Wi-Fi:
- قد تتلقّى عدة عناصر
ScanResults
من AP-MLD نفسه (لأنّ نقطة الوصول يمكن أن تتضمّن عدة روابط إرسال إشارات). - قد تتلقّى مجموعة جزئية فقط من نتائج الفحص لروابط نقطة الوصول الخاصة بجهاز AP-MLD، لأنّ بعض إشارات الروابط هذه قد لا يتلقّاها البرنامج الثابت.
لا تعرض برامج المورّدين سوى نتائج الفحص التي تم تلقّيها عبر الأثير، ويجب ألا تنشئ (توليف بشكل مصطنع) نتائج فحص استنادًا إلى الروابط المُعلَن عنها من خلال AP-MLD.
يجب أن يتضمّن برنامج المورّد الأساسي متعدد الروابط وخانات المعلومات الخاصة بـ RNR التي تم تلقّيها من مثيلات نقطة الوصول في نتائج الفحص التي تم الإبلاغ عنها. إذا كانت تفاصيل نقطة الوصول المرتبطة مفقودة في نتائج الفحص، يمكن لبرنامج المورّد إرسال طلبات فحص متعددة الروابط (إطار طلب الفحص الذي يتضمّن عنصر طلب الفحص متعدد الروابط) لتضمين المجموعة الكاملة أو الجزئية من الإمكانات والمعلَمات وعناصر التشغيل لنقطة الوصول مع نقطة الوصول المستهدَفة متعددة الروابط في إطار الرد.
يمكن لبرنامج المورّد تشغيل ميزة ML-probing (باستخدام ML IE لطلب التحقّق من الاتصال في إطار طلب التحقّق من الاتصال) إذا لزم الأمر.
ربط شبكة AP-MLD
عندما ينضم جهاز إلى شبكة AP-MLD، يستخدم برنامج المورّد رابط AP المحدّد (الرابط المرتبط) للإشارة. يمكن لبرنامج المورّد ربط كل الروابط التي يتيحها الجهاز أو بعضها.
عند الاقتران بنجاح، يرسل برنامج التشغيل
ISupplicantStaIfaceCallback#onStateChanged()
مع BSSID لرابط
نقطة الوصول المتعددة الروابط (AP-MLD). يختار برنامج التشغيل بعد ذلك رابطًا من روابط AP-MLD، شرط أن يتم إرسال نتائج الفحص إلى إطار العمل لهذا الرابط.
تقييم الشبكة
بالنسبة إلى الأجهزة التي تعمل بالإصدار 14 من نظام التشغيل Android أو الإصدارات الأحدث، تتوافق ميزة اختيار شبكة Wi-Fi على Android مع تقنية MLO في شبكة Wi-Fi 7. وهذا يعني أنّ نظام التشغيل Android يختار أفضل شبكة Wi-Fi للجهاز استنادًا إلى عدد الروابط المتاحة لتقنية MLO.
لإتاحة MLO، تستخدم خوارزمية اختيار الشبكة إمكانات MLO التالية من شريحة Wi-Fi:
- الحدّ الأقصى لعدد روابط STR
- الحدّ الأقصى لعدد روابط الربط
- مجموعات النطاقات المتزامنة
الشكل 2. اختيار شبكة MLO
الحدّ الأقصى لعدد روابط STR
الإرسال والاستقبال المتزامن (STR) هو مخطط للحد من التنازع على وسيط Wi-Fi في عملية الربط المتعدد. ويكون عزل الإشارة بين الروابط المختلفة كافيًا بحيث يمكن أن تعمل الروابط بشكل مستقل وتكون قادرة على الإرسال والاستقبال في الوقت نفسه في روابط مختلفة. يختلف وضع STA عن وضع 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
الحدّ الأقصى لعدد روابط الربط
يمكن أن تعمل روابط متعددة على جهاز راديو واحد باستخدام نظام التنازع، وهو نظام Enhanced Multi-Link Single Radio (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 × 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 الخاص بمحطة الجهاز
يوضّح هذا القسم كيفية التعامل مع عناوين MAC الخاصة بمحطة STA (عناوين MAC الخاصة ببروتوكول MLD وعناوين MAC الخاصة بمحطة STA لكل رابط).
عنوان MAC الخاص ببروتوكول MLD
يتولّى إطار عمل Wi-Fi إدارة عنوان MAC الخاص ببروتوكول MLD للجهاز. يتم التعامل مع عنوان MAC الخاص ببروتوكول MLD بالطريقة نفسها التي يتعامل بها جهاز غير متوافق مع بروتوكول MLD مع عنوان MAC الخاص به.
يمكن أن يكون عنوان MAC عشوائيًا أو عنوان MAC مخصصًا للأجهزة استنادًا إلى اختيار المستخدم. يتم ضبط عنوان MAC الخاص بـ MLD من خلال إطار العمل باستخدام واجهة برمجة التطبيقات IWifiStaIface#setMacAddress()
HAL.
عنوان MAC الخاص بمحطة STA لكل رابط
يدير برنامج المورّد عناوين MAC الخاصة بمحطة STA (لكل رابط). عندما يرتبط جهاز بنقطة وصول، يخصص برنامج المورّد عنوان MAC لكل رابط مرتبط.
يحدّد برنامج المورّد عناوين MAC لكل رابط استنادًا إلى الخوارزمية. يجب أن تكون الخوارزمية قابلة للتكرار وأن تكون دالة في ما يلي:
- عنوان MAC الخاص بـ STA-MLD الذي يحدّده إطار عمل Wi-Fi
- رقم تعريف الرابط (تم استلامه من نقطة الوصول)
وهذا يعني أنّه إذا كان إطار العمل يعيد استخدام عنوان MAC نفسه الخاص ببروتوكول MLD، على المورّد إعادة استخدام عناوين MAC نفسها المرتبطة بكل مثيل، والعكس صحيح. يضمن ذلك أنّه عندما يكون عنوان STA-MLD الذي أنشأه إطار العمل ثابتًا بالنسبة إلى SSID، تكون عناوين MAC لكل STA ثابتة أيضًا.
في ما يلي مثال على خوارزمية لتحديد عنوان MAC الخاص بـ STA لكل رابط (يمكن للمورّدين تنفيذ أي خوارزمية تستوفي معايير الخوارزمية):
- Octet 0: تأكَّد من ضبط بت الإدارة المحلية
- الثمانيات من 1 إلى 4: هي نفسها عنوان MAC الخاص بـ STA-MLD
- Octet 5: Per-STA = (STA-MLD + link ID + 1) MOD (256)
معالجة الروابط المتعددة
يمكن أن ينفّذ البرنامج الثابت الخاص بالمورّد عملية تبديل الروابط وإدارة حالة توفير الطاقة للروابط من أجل تفعيلها أو إيقافها بدون أي إدخال من إطار عمل Wi-Fi.
لا يتوقّع إطار عمل Wi-Fi تلقّي إشعار عند تغيير حالة الربط.
إدارة حالة توفير الطاقة
يتم تفعيل حالة توفير الطاقة تلقائيًا في إطار عمل Wi-Fi. في حالة توفير الطاقة، يدير البرنامج الثابت الخاص بالمورّد حالة توفير الطاقة للروابط الفردية استنادًا إلى أنماط نقل البيانات وقرارات تفعيل الروابط أو إيقافها.
ومع ذلك، يمكن لإطار عمل Wi-Fi فرض إيقاف حالة توفير الطاقة من خلال استدعاء واجهة برمجة التطبيقات ISupplicantStaIface::setPowerSave(false)
HAL. إذا أوقف إطار العمل حالة توفير الطاقة، يجب أن يحافظ البرنامج الثابت للمورِّد على رابط واحد على الأقل نشطًا (توفير الطاقة غير مفعَّل). في هذه الحالة، يحدّد تنفيذ البرنامج الثابت الرابط الذي سيتم ضبطه.
مسار البيانات
يصف ذلك عملية تنفيذ البرامج الثابتة الخاصة بالمورّد للتعامل مع حركة بيانات الإرسال والاستقبال.
حركة بيانات الإرسال
توجّه البرامج الثابتة حركة بيانات الربط الصاعد إلى رابط واحد (أو أكثر) استنادًا إلى التنفيذ الداخلي. يحدّد البرنامج الثابت الخاص بالمورّد وقت إجراء موازنة التحميل أو التكرار أو التجميع لحركة البيانات استنادًا إلى أنماط حركة البيانات. ننصح بتكرار عدد الزيارات من البرامج الثابتة إلى روابط متعددة في الحالات التالية:
- عند ضبط وضع وقت الاستجابة المنخفض من خلال واجهة برمجة التطبيقات
IWifiChip#setLatencyMode()
HAL. - عندما يكون هناك عدد زيارات بأولوية المستخدم 6 و7
حركة البيانات الواردة
يجب أن يستبدل البرنامج الثابت عنوان MAC (الوجهة) لكل محطة STA في عنوان MAC بعنوان MLD-STA MAC، وعنوان MAC (المصدر) لكل نقطة وصول AP في عنوان MAC بعنوان MLD-AP MAC. يجب أن ينفّذ البرنامج الثابت عملية استبدال عنوان MAC هذه قبل المرور عبر فلتر APF لأنّ أوامر فلتر APF تتضمّن فلاتر تستند إلى عناوين MAC الخاصة ببروتوكول MLD. يتوفّر فلتر APF واحد لجميع روابط AP-MLD.
التزامن
يجب أن يكون لسيناريوهات التزامن، حيث يتم استخدام الراديو لواجهة جديدة، الأولوية على تخصيص أجهزة راديو متعددة لروابط الواجهة نفسها. يجب أيضًا أن تحظى سيناريوهات التزامن بالأولوية على MLO بغض النظر عن الترتيب. إنّ استخدام روابط متعددة لواجهة واحدة هو أمر انتهازي، ما يعني أنّه لا يتم استخدام روابط متعددة إلا في الحالات التالية:
- مطلوب MLO استنادًا إلى قرار البرنامج الثابت بشأن موازنة الحمل أو التجميع أو التكرار.
- يتوفّر MLO، ما يعني أنّ واجهة أخرى لا تتطلّب استخدام الراديو.
ربط المعرّف المؤقت بالرابط
بالنسبة إلى الأجهزة التي تعمل بالإصدار 14 من نظام التشغيل Android أو الإصدارات الأحدث، عندما تعلن نقطة وصول Wi-Fi 7 عن إيقاف مؤقت لأحد الروابط من خلال عنصر ربط TID يتم إرساله في إطارات الإشارات والبحث والاستجابة للربط، تواصل محطة Wi-Fi 7 الاتصال بنقطة الوصول باستخدام الروابط المتبقية التي تم إعدادها، بدون إجراء ربط آخر.
بالنسبة إلى الأجهزة التي تعمل بالإصدار 13 من نظام التشغيل Android أو الإصدارات الأقدم، لا يتيح إطار عمل Wi-Fi تلقّي إشعارات عند تغيير حالة الرابط بسبب ربط المعرّف المؤقت للجهاز بالرابط، حتى إذا لم يكن الرابط المرتبط مرتبطًا بمعرّف مؤقت للجهاز.
AIDL HAL
يُبلغ برنامج طلب المصادقة لشبكة Wi-Fi إطار عمل Wi-Fi بالتغييرات في عملية ربط المعرّف المؤقت بالجهاز من خلال واجهات 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
واجهات برمجة التطبيقات
يمكن للتطبيقات الحصول على معلومات حول تغييرات ربط المعرّف المؤقت بالرابط باستخدام واجهات برمجة التطبيقات التالية:
ConnectivityManager.NetworkCallback.onCapabilitiesChanged()
: يتم تفعيل دالة رد الاتصال بالشبكة من خلال إطار العمل عند حدوث تغيير في عملية الربط بين المعرّف المؤقت للجهاز ومعرّف الرابط.WifiInfo#getAssociatedMloLinks()
: تعرض هذه السمة روابط MLO المرتبطة.-
MloLink#getState()
: تعرض حالة الرابط،MLO_LINK_STATE_ACTIVE
أوMLO_LINK_STATE_IDLE
.
إمكانات التفاوض بشأن ربط معرّف الجهاز المؤقت بالرابط
في الأجهزة التي تعمل بالإصدار 14 من نظام التشغيل Android أو الإصدارات الأحدث، تتوفّر واجهات برمجة التطبيقات التالية للحصول على إمكانات التفاوض بشأن ربط معرّف الجهاز المؤقت بمعرّف الجهاز الدائم لكل من المحطة ونقطة الوصول.
إمكانات الشريحة
تتيح الواجهات التالية إمكانية التفاوض بشأن ربط المعرّف المؤقت بالجهاز.
طبقة تجريد الأجهزة (HAL) المستندة إلى لغة تعريف واجهة Android (AIDL)
تتوفّر واجهة AIDL للتفاوض بشأن ربط معرّف الجهاز المؤقت بالرابط في FeatureSetMask
في hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
. تشير إمكانية
T2LM_NEGOTIATION = 1 << 8
إلى أنّ الشريحة تتوافق مع
ربط المعرّف بالرابط.
واجهات برمجة التطبيقات
WifiManager.isTidToLinkMappingNegotiationSupported()
: تعرض هذه السمة الشريحة التي تتيح التفاوض بشأن ربط المعرّف المؤقت بالرابط.
إمكانية استخدام واجهة برمجة التطبيقات
تتيح الواجهات التالية إمكانية AP للتفاوض بشأن ربط المعرّف المؤقت بالمعرّف الدائم.
طبقة تجريد الأجهزة (HAL) المستندة إلى لغة تعريف واجهة Android (AIDL)
يستعلم إطار العمل عن إمكانية نقطة الوصول من طالب الاتصال بالإضافة إلى إمكانية الاتصال الحالية.
apTidToLinkMapNegotiationSupported
: للتحقّق مما إذا كانت نقطة الوصول تتيح إمكانية التفاوض على خريطة ربط المعرّف المؤقت بالرابط.
واجهات برمجة التطبيقات
WifiInfo.isApTidToLinkMappingNegotiationSupported()
: تعرض هذه السمة ما إذا كان موفّر الإعلانات يتيح التفاوض بشأن ربط المعرّف المؤقت بالرابط.
إحصاءات طبقة الربط
تتضمّن إحصاءات طبقة الربط تفاصيل خاصة برابط 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
بالنسبة إلى الأجهزة التي تعمل بالإصدار 13 من نظام التشغيل Android، لا تأخذ إحصاءات طبقة الربط في الاعتبار استخدام روابط متعددة لواجهة واحدة. لإتاحة ميزة "تحديد الموقع الجغرافي المتعدّد المصادر"، يجب أن يطبّق برنامج المورّد منطق التجميع التالي عند إعداد التقارير عن LinkLayerStats
من خلال واجهة برمجة التطبيقات IWifi# getLinkLayerStats_1_6()
HAL. أفضل رابط هو الرابط الذي يتضمّن أعلى قيمة لمؤشر قوة الإشارة المستلَمة (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 supplicant على
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.