شبكة Wi-Fi 7

بالنسبة إلى الأجهزة التي تعمل بالإصدار 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، التي تستدعي الأمر 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 لكي تستخدم التطبيقات واجهة برمجة التطبيقات هذه.

عند طلب بيانات من واجهة برمجة التطبيقات هذه، تتحقّق وحدة 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:

واجهات برمجة التطبيقات

يمكن للتطبيقات استخدام واجهات برمجة التطبيقات التالية لقياس المسافة بالاستناد إلى وقت استرداد الإرسال (RTT) في Wi-Fi 7:

نقطة اتصال لاسلكية

يتوافق نظام 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 للإبلاغ عن معلومات نقطة الاتصال اللاسلكية الافتراضية.

ميزات MLO Wi-Fi 7

تشكّل ميزة "العمل باستخدام روابط متعددة" (MLO) الميزة الرئيسية في مواصفات Wi-Fi 7 (802.11be). إنّ MLO هي ميزة إلزامية للأجهزة التي تتضمّن روابط متعددة (MLD) التي تعمل بتقنية Wi-Fi 7، سواء بشكل متزامن أو غير متزامن.

مخطّط MLO

الشكل 1: مخطّط MLO

كما هو موضّح في الشكل 1، يتضمّن كلّ من AP-MLD وSTA-MLD عدّة مثيلات AP أو STA قيد التشغيل على كل رابط. يحتوي كل رابط على عنوان AP أو STA MAC منفصل. يحتوي نقطة الوصول أو محطة الشبكة الجوّالة أيضًا على عنوان MAC لبروتوكول MLD لتحديد الجهاز.

يمثّل الترتيب 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، يمكن للتطبيقات استخدام واجهات برمجة التطبيقات التالية:

معلومات 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
  • الحدّ الأقصى لعدد روابط الربط
  • مجموعات الأشرطة المتزامنة

اختيار شبكة Wi-Fi MLO

الشكل 2: اختيار شبكة MLO

ميزة "الإرسال والاستقبال المتزامنان" (STR) هي مخطط صراع وسيط Wi-Fi لتشغيل قنوات متعددة. يجب أن يكون عزل الإشارة بين الروابط المختلفة كافيًا كي تتمكّن الروابط من العمل بشكل مستقل وتكون قادرة على الإرسال والتلقّي في الوقت نفسه في روابط مختلفة. يختلف جهاز STR عن جهاز STA القديم المرتبط برابط واحد (SL) وجهاز STA القديم المرتبط برابط مزدوج مزدوج متزامن (DBDC). تشترك أجهزة STA المرتبطة بجهاز STA MLD في رقم تسلسلي شائع للمرسل (SN) ومساحة مشتركة لنقل البيانات مخصّصة لوصلات مختلفة إذا كان لنقل البيانات عبر عدة وصلات فئة الوصول (AC) نفسها.

يمكن أن يختلف الحد الأقصى لعدد روابط STR المستخدمة عن الحد الأقصى لعدد وحدات الاتصال اللاسلكية التي تدعمها الشريحة. في المثال الوارد في الشكل 2، يبلغ الحد الأقصى لعدد روابط STR 2.

توفّر واجهات AIDL HAL التالية الحد الأقصى لعدد روابط STR والحد الأقصى لعدد إمكانات عدد روابط الربط:

يمكن أن تعمل روابط متعددة على جهاز راديو واحد باستخدام مخطّط الصراع، وهو "الراديو المتعدّد الروابط المحسّن (eMLSR)". يستخدم الجهاز المتعدّد الروابط eMLSR عبر مجموعة من الروابط إذا كان يمكنه تلقّي إطارات تحكّم أساسية معيّنة وإجراء تقييم واضح للقنوات في الوقت نفسه على مجموعة الروابط. ومع ذلك، تُرسِل أو تتلقّى تقنية MLD بيانات على رابط واحد فقط (الرابط الذي يتم اختياره ديناميكيًا في كل فترة لنقل البيانات (TXOP)) في المرة الواحدة.

يمكن لمحطة MLD زيادة عدد روابط الاقتران إلى أقصى حد لتحسين الموثوقية ومعدل نقل البيانات ووقت الاستجابة (مقارنةً بمحطة قديمة تستخدم رابطًا واحدًا) من خلال العمل بشكل متزامن في وضعَي STR وeMLSR إذا كانت المعالجة المتقدّمة للإشارة متوافقة مع الرقاقة. في الشكل 2، يكون الحد الأقصى لعدد روابط الربط هو 3.

توفِّر واجهات AIDL HAL التالية الحدّ الأقصى لعدد روابط الربط:

مجموعات الأشرطة المتزامنة

يُجري إطار العمل طلب بحث في الشريحة للحصول على مجموعات الترددات المسموح بها (من خلال واجهة IWifiChip.aidl AIDL) التي يمكن تشغيلها في الوقت نفسه. ومن هذه المعلومات، يستخرج الإطار مجموعات النطاقات المتزامنة المحتملة. وفي ما يلي مثال على قائمة بمجموعات النطاقات المتزامنة (ميغاهرتز):

  • 2.4
  • 5
  • 6
  • 2.4 x 5
  • ‫2.4 × 6
  • 5 × 6

تتيح واجهة AIDL HAL التالية تركيبات البث اللاسلكي المتزامنة:

اختيار الشبكة

أثناء اختيار الشبكة (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 لكل رابط بناءً على الخوارزمية. يجب أن تكون الخطوات المتعلّقة بال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تلقّي إشعارات عند تغيُّر حالة الرابط بسبب ربط رقم تعريف الجهاز بالرابط، حتى إذا لم يكن الرابط المرتبط مرتبطًا برقم تعريف الجهاز.

يُعلم مقدّم طلب Wi-Fi إطار عمل Wi-Fi بتغييرات ربط TID بالرابط من خلال واجهات AIDL التالية:

يمكن للتطبيقات الحصول على معلومات عن التغييرات في تعيين أرقام TID إلى الروابط باستخدام واجهات برمجة التطبيقات التالية:

بالنسبة إلى الأجهزة التي تعمل بالإصدار 14 من نظام التشغيل Android أو الإصدارات الأحدث، تتوفّر واجهات برمجة التطبيقات التالية التي يمكن استخدامها للحصول على إمكانات التفاوض بشأن خريطة تحديد TID للربط للمحطة وAP.

إمكانات الشريحة

تتيح الواجهات التالية إمكانية الشريحة لمفاوضة ربط TID بالربط.

AIDL HAL

يمكن العثور على واجهة AIDL للتفاوض بشأن تعيين TID إلى الرابط في FeatureSetMask في hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl. تشير ميزة T2LM_NEGOTIATION = 1 << 8 إلى أنّ الشريحة تتيح ربط TID بالرابط. واجهات برمجة التطبيقات

إمكانات الملف الشخصي البديل

تتيح الواجهات التالية إمكانية AP لمفاوضة ربط TID-to-link.

AIDL HAL

يطلب إطار العمل إمكانية نقطة الوصول من طلب البيانات مع إمكانية الاتصال الحالية.

  • apTidToLinkMapNegotiationSupported: تحقّق من ما إذا كان نقطة الوصول تتيح إمكانية التفاوض على خريطة TID إلى الرابط.

واجهات برمجة التطبيقات

تتضمّن إحصاءات طبقة الربط تفاصيل خاصة برابط Wi-Fi، مثل مؤشر RSSI ومعدّلات عدّ الحِزم المرسَلة والمستقبلة المختلفة وإحصاءات البثّ اللاسلكي. يُجري إطار عمل Wi-Fi استطلاعات منتظمة لجمع قياسات ناتجة عن تحليل اتّصال الجهاز بالشبكة ومقدار طاقة الإشارة (RSSI) لاختيار أفضل شبكة أو تقييم جودة الشبكة المتّصل بها. بالنسبة إلى الأجهزة التي تعمل بالإصدار 14 من نظام التشغيل 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 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): الإبلاغ عن إحصاءات وقت المنافسة لأفضل رابط تم استخدامه في الواجهة (أقل إحصاءات وقت المنافسة).

عندما تتم إعادة استخدام أحد روابط نقطة وصول 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.