במכשירים עם Android 13 ואילך, מערכת Android תומכת בתקן Wi-Fi 7 (IEEE 802.11be). בדף הזה מתוארות התכונות של Wi-Fi 7 ב-Android, כולל פעולת קו בסיס ופעולה מרובת קישורים (MLO).
תכונות בסיסיות של Wi-Fi 7
בקטע הזה מוסבר על תכונות בסיסיות של Wi-Fi 7 שכלולות ב-Android מגרסה 13 ואילך.
תמיכה ב-Wi-Fi 7 במכשיר
מסגרת Android כוללת את ה-API WifiManager#isWifiStandardSupported(int standard)
, שאפליקציות יכולות לקרוא לו עם הארגומנט ScanResults.WIFI_STANDARD_11BE
, כדי לבדוק אם מכשיר תומך ב-Wi-Fi 7.
כשקוראים ל-API הזה, מודול ה-Wi-Fi בודק אם שכבת העל של ההגדרה config_wifi11beSupportOverride
משמשת כהחלפה, ועושה את הפעולות הבאות:
- אם שכבת העל מוגדרת ל-
true
, המכשיר נחשב כתומך ב-Wi-Fi 7 ללא קשר לתשובה מ-nl80211. ההחלפה הזו שימושית רק ליצרני מכשירים שאין להם מנהלי התקנים שמחזירים תמיכה ב-Wi-Fi 7. - אם שכבת העל מוגדרת ל-
false
(ערך ברירת מחדל), מודול ה-Wi-Fi משתמש במידע מ-nl80211. מודול ה-Wi-Fi מבקש את המידע מ-wificond, שמפעיל את הפקודה nl80211NL80211_CMD_GET_WIPHY
. אם המאפייןNL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY
מופיע בתשובה מהדרייבר, המכשיר נחשב כתומך ב-Wi-Fi 7.
תמיכה ב-Wi-Fi 7 בנקודות גישה שנסרקו
ה-API int ScanResult#getWifiStandard()
נכלל ב-framework של Android, ואפליקציות יכולות להשתמש בו כדי לבדוק אם נקודת גישה (AP) שנסרקה תומכת ב-Wi-Fi 7. אם נקודת הגישה תומכת ב-Wi-Fi 7, ה-API מחזיר ScanResults.WIFI_STANDARD_11BE
.
המכשיר לא צריך לתמוך ב-Wi-Fi 7 כדי שאפליקציות יוכלו להשתמש ב-API הזה.
כשקוראים ל-API הזה, מודול ה-Wi-Fi בודק אם EHT Capability IE
נמצא בתוצאות שמוחזרות מסריקת הקישוריות. אם EHT Capability IE
מופיע בתוצאות הסריקה, נקודת הגישה שנסרקה תומכת ב-Wi-Fi 7.
המחלקות של AOSP WifiTracker
מציגות את פרטי התמיכה האלה בממשק המשתמש כשהן פועלות במצב מפורט.
מצב חיבור STA
מסגרת Android כוללת את ה-API int WifiInfo#getWifiStandard()
, שאפליקציות יכולות להפעיל כדי לבדוק אם מצב החיבור הנוכחי של התחנה (STA) הוא Wi-Fi 7. מצב החיבור STA הוא Wi-Fi 7 אם גם המכשיר וגם נקודת הגישה המחוברת תומכים ב-Wi-Fi 7. אם מצב החיבור הוא Wi-Fi 7, ה-API מחזיר ScanResults.WIFI_STANDARD_11BE
.
כשמתבצעת קריאה ל-getWifiStandard
, מודול ה-Wi-Fi קובע את המצב על ידי קריאה ל-ISupplicantStaIface#getConnectionCapabilities()
HAL API. ההטמעה של ה-API הזה של HAL בשכבת wpa_supplicant
AIDL בודקת אם EHT Capability IE
נמצא גם ב-AssocReq
וגם ב-AssocRsp
במהלך הגדרת החיבור.
בחירת רשת
ב-Android 13, בחירת הרשת מתבססת על כמה פרמטרים כדי לקבוע לאיזו נקודת גישה להתחבר. אחד הפרמטרים הוא קצב העברת הנתונים המשוער של נקודת הגישה, שמוערך באמצעות הבלוק ThroughputPredictor
. הבלוק ThroughputPredictor
משתמש בפרמטרים של השכבה הפיזית של המכשיר ושל נקודת הגישה שנסרקה.
ב-Android 13, ThroughputPredictor
משתמש ביכולות הבאות של AP בחישוב שלו:
- תמיכה ב-Wi-Fi 7 (802.11be)
- תמיכה ברוחב ערוץ של 320 MHz
הכללת היכולות האלה בלוגיקה של ThroughputPredictor
מגדילה את הסיכוי לבחירת נקודות גישה עם תמיכה ב-Wi-Fi 7, כשהמכשיר יכול להשתמש בתכונות האלה.
טווח מבוסס-RTT של Wi-Fi
Android מספקת תמיכה ב-API עבור פתיח EHT ורוחב ערוץ של 320 MHz עבור Wi-Fi RTT. ההגדרה הזו מאפשרת תמיכה ביכולות שקשורות ל-Wi-Fi 7 בטווח RTT, אם השבב תומך בכך.
ממשקי HAL API
ממשקי ה-API הבאים של HAL תומכים ביכולות של Wi-Fi 7 לחישוב טווח מבוסס-RTT:
-
EHT
: קבוע ב-enum RttPreamble
וגם ב-enum WifiRatePreamble
-
WIDTH_320
: קבוע ב-enum WifiChannelWidthInMhz
-
BW_320MHz
: קבוע ב-enum RttBw
ממשקי API
אפליקציות יכולות להשתמש בממשקי ה-API הבאים כדי להשתמש בטכנולוגיית RTT מבוססת Wi-Fi 7:
ScanResult#PREAMBLE_EHT
-
ResponderConfig#PREAMBLE_EHT
(SystemApi)
Soft AP
Android תומך ב-Wi-Fi 7 ב-Soft AP ומספק את התכונות הבאות.
הפעלת נקודת גישה וירטואלית
מערכת Android תומכת בהפעלת Soft AP במצב Wi-Fi 7.
ההתנהגות הזו נקבעת על ידי הגדרות שכבת העל של config_wifiSoftapIeee80211beSupported
.
מודול ה-Wi-Fi משתמש בשכבת העל config_wifiSoftapIeee80211beSupported
כדי להגדיר את הערך הבוליאני HwModeParams#enable80211BE
בקריאת ה-API IHostApd#addAccessPoint()
. בשכבת ה-AIDL של hostapd, הערך הזה משמש להגדרת הפרמטרים hostapd.conf
.
ממשקי HAL API
הערך הבוליאני
enable80211BE
ב-HwModeParams
ב-HAL של hostapd תומך בהפעלה של Soft AP במצב Wi-Fi 7.
דיווח מידע על נקודות גישה וירטואליות
מערכת Android כוללת תמיכה ב-API כדי לכלול מידע על Wi-Fi 7 ועל רוחב פס של ערוץ 320 MHz במידע על נקודת הגישה הווירטואלית (Soft AP) שמדווחת.
ממשקי HAL API
הקבוע WIFI_STANDARD_11BE
בממשק Generation.aidl
AIDL ב-hostapd HAL, שמשמש ב-ApInfo
שמדווח ב-callback IHostapdCallback#onApInstanceInfoChanged()
, תומך בדיווח על מידע של נקודת גישה וירטואלית.
ממשקי API
אפליקציות יכולות להשתמש בשיטות הבאות (ממשקי מערכת) ב-SoftApInfo
כדי לדווח על מידע לגבי נקודת גישה וירטואלית.
-
SoftApInfo#getWifiStandard()
: מחזירהScanResults.WIFI_STANDARD_11BE
אם ה-Soft AP מופעל במצב Wi-Fi 7. -
SoftApInfo#getBandwidth()
: הפונקציה מחזירהSoftApInfo#CHANNEL_WIDTH_320MHZ
אם נעשה שימוש ברוחב ערוץ של 320 MHz.
תכונות MLO Wi-Fi 7
התכונה העיקרית במפרט של Wi-Fi 7 (802.11be) היא פעולה מרובת-קישורים (MLO). MLO הוא תכונה חובה למכשירים עם קישור מרובה (MLD) שמריצים Wi-Fi 7, בו-זמנית או לא בו-זמנית.
איור 1. תרשים MLO.
כפי שמוצג באיור 1, גם AP-MLD וגם STA-MLD מפעילים כמה מופעים של AP או STA בכל קישור. לכל קישור יש כתובת MAC נפרדת של AP או STA. לנקודת הגישה או לתחנת ה-STA יש גם כתובת MAC של MLD כדי לזהות את המכשיר.
ייצוג של קישור MLO
המחלקות
android.net.wifi.MloLink
מייצגות את הקישור ל-MLO. השיעור הזה כולל את הפרמטרים הבאים:
-
int getLinkId()
: מזהה הקישור כפי שפורסם על ידי AP MLD. -
MacAddress getApMacAddress()
: כתובת ה-MAC של נקודת הגישה. ה-BSSID של מופע ה-AP עבור הקישור הזה. -
MacAddress getStaMacAddress()
: כתובת ה-MAC של ה-STA. כתובת ה-MAC שהוקצתה באופן מקומי למופע ה-STA בקישור. -
int getChannel()
: קישור הערוץ. מספר הערוץ של הקישור. -
int getBand()
: קישור ללהקה. הפס של הקישור.
int getState()
: מצב הקישור. יכול להיות אחד מהסטטוסים הבאים:-
MLO_LINK_STATE_INVALID
: לא תקין. משמש לאתחול ולמקרים של שגיאות. -
MLO_LINK_STATE_UNASSOCIATED
: לא משויך. הקישור לא משויך לנקודת גישה. MLO_LINK_STATE_IDLE
: Idle. הקישור משויך אבל לא פעיל (לא ממופה לקישור מזהה תנועה (TID)).-
MLO_LINK_STATE_ACTIVE
: פעיל. הקישור משויך ופעיל (לפחות מזהה עסקה אחד ממופה לקישור). קישור פעיל יכול להיות במצב חיסכון בחשמל כי המסגרת לא עוקבת אחרי מצב החשמל של הקישור.
-
מידע על נקודות גישה (AP) של Wi-Fi 7 MLO שנסרקו
אפליקציות יכולות לקבל את הפרמטרים של MLO עבור AP MLD של Wi-Fi 7 כשהמודול של Wi-Fi מקבל אובייקט ScanResult
מ-AP-MLD. AOSP WifiTracker
מציג את הפרמטרים של MLO כשמפעילים אותו במצב מפורט.
מודול ה-Wi-Fi אוסף את פרטי ה-MLO באופן הבא:
- מנתח את רכיב המידע (IE) של קישורים מרובים שכלול בתג Beacon או בתג Probe כדי לקרוא את כתובת ה-MAC של ה-AP MLD ואת מזהה הקישור הנוכחי.
- מנתח את רכיב המידע של דוח השכנים המצומצם (RNR) שכלול בתג או בתגובה של בדיקת הזמינות כדי לקרוא את רשימת המידע על הקישורים המסונפים.
ממשקי API
כדי לקבל מידע על AP MLO שנסרק, אפליקציות יכולות להשתמש בממשקי ה-API הבאים:
-
ScanResult#BSSID
: כתובת ה-MAC של מופע ה-AP (לקישור שבו מתקבלת תוצאת הסריקה) -
MacAddress ScanResult#getApMldMacAddress()
: מחזירה את כתובת ה-MAC של MLD של נקודת הגישה. -
int ScanResult#getApMloLinkId()
: מחזירה את מזהה הקישור של הקישור שבו התקבל ScanResult. -
List<MloLink> ScanResult#getAffiliatedMloLinks()
: מחזירה רשימה של אובייקטים מסוגMloLink
לכל הקישורים שפורסמו על ידי AP-MLD, כולל הקישור שבו התקבל ScanResult.
מידע על נקודת גישה (AP) עם חיבור Wi-Fi 7 MLO
כשמכשיר מתחבר ל-AP-MLD של Wi-Fi 7, המסגרת אוספת את פרמטרי ה-MLO של החיבור מאובייקט WifiInfo
. אובייקט ה-AOSP WifiTracker
מציג את המידע הזה כשמריצים אותו במצב מפורט.
כשהמכשיר מתחבר ל-AP-MLD, מודול ה-Wi-Fi מעתיק את פרטי ה-MLO מאובייקט ScanResult
שהתקבל מנקודת הגישה. לאחר מכן המודול קורא את כתובות ה-MAC של כל קישור גם עבור AP וגם עבור STA, ומעדכן את הסטטוס של הקישורים המשויכים באמצעות קריאה ל-ISupplicantStaIface#getConnectionMloLinksInfo()
HAL API.
ממשקי API
כדי לקבל את פרטי החיבור של MLO, אפליקציות יכולות להשתמש בממשקי ה-API הבאים:
-
WifiInfo#getBSSID()
: מחזירה את כתובת ה-MAC של מופע ה-AP (עבור הקישור שהמכשיר משויך אליו). -
MacAddress WifiInfo#getApMldMacAddress()
: מחזירה את כתובת ה-MAC של MLD של נקודת הגישה. -
int WifiInfo#getApMloLinkId()
: מחזירה את מזהה הקישור של הקישור שאליו משויך ה-STA בנקודת הגישה. -
List<MloLink> WifiInfo#getAffiliatedMloLinks()
: מחזירה רשימה של אובייקטים מסוגMloLink
לכל הקישורים שמפורסמים על ידי AP-MLD, כולל הקישור המשויך. אפשר לבצע שאילתה על כתובות ה-MAC של ה-AP ושל ה-STA בכל אובייקטMloLink
.
סריקת AP-MLD
תוכנת הספק מספקת למסגרת ה-Wi-Fi את תוצאות הסריקה של כל אות Beacon או תגובת בדיקה שהיא מקבלת. כלומר, מסגרת ה-Wi-Fi:
- יכול להיות שתקבלו כמה אובייקטים של
ScanResults
מאותו AP-MLD (כי לנקודת הגישה יכולים להיות כמה קישורים של אותות). - יכול להיות שתקבלו רק חלק מתוצאות הסריקה של קישורי ה-AP של AP-MLD, כי יכול להיות שהקושחה לא תקבל חלק מהאותות של הקישורים האלה.
תוכנת הספק מדווחת רק על תוצאות סריקה שהתקבלו בשידור אוויר, ואסור לה ליצור (לסנתז באופן מלאכותי) תוצאות סריקה על סמך קישורים שפורסמו על ידי AP-MLD.
תוכנת הספק צריכה לכלול את רכיבי המידע (IE) של RNR ואת רכיבי המידע של multi-link של הגרסה הבסיסית שהתקבלו ממופעי ה-AP בתוצאות הסריקה המדווחות. אם פרטים של נקודת גישה משויכת חסרים בתוצאות הסריקה, תוכנת הספק יכולה לשלוח בקשות בדיקה מרובות קישורים (מסגרת בקשת בדיקה שכוללת רכיב של בקשת בדיקה מרובת קישורים) כדי לכלול את קבוצת היכולות, הפרמטרים והרכיבים המלאה או החלקית של נקודת הגישה עם נקודת הגישה הממוקדת MLD במסגרת התגובה.
תוכנת הספק יכולה להפעיל בדיקות באמצעות למידת מכונה (באמצעות ML IE של וריאנט של בקשת בדיקה בפריים של בקשת הבדיקה) אם נדרש.
שיוך לרשת AP-MLD
כשמכשיר מצטרף לרשת AP-MLD, תוכנת הספק משתמשת בקישור AP שנבחר (קישור משויך) לאיתות. תוכנת הספק יכולה לשייך את עצמה לכל הקישורים שהמכשיר תומך בהם או לחלק מהם.
אחרי שיוך מוצלח, מדווח מנהל ההתקן
ISupplicantStaIfaceCallback#onStateChanged()
עם ה-BSSID של קישור עבור
ה-AP-MLD. לאחר מכן, מנהל ההתקן בוחר קישור של AP-MLD בתנאי שתוצאות הסריקה דווחו למסגרת עבור הקישור הזה.
דירוג רשתות
במכשירים עם Android 14 ואילך, התכונה 'בחירת רשת Wi-Fi ב-Android' תומכת ב-Wi-Fi 7 MLO. כלומר, מערכת Android בוחרת את רשת ה-Wi-Fi הטובה ביותר למכשיר על סמך מספר הקישורים שזמינים ל-MLO.
כדי לתמוך ב-MLO, האלגוריתם לבחירת רשת משתמש ביכולות MLO הבאות משבב ה-Wi-Fi:
- מספר הקישורים המקסימלי ל-STR
- מספר מקסימלי של קישורים לשיוך
- שילובים בו-זמניים של ערוצים
איור 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
מספר מקסימלי של קישורים לשיוך
אפשר להפעיל כמה קישורים ברדיו יחיד באמצעות תוכנית התחרות, 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) שיכולים לפעול בו-זמנית. על סמך המידע הזה, המסגרת מסיקה אילו שילובים אפשריים של פסי תדרים יכולים לפעול בו-זמנית. זוהי רשימה לדוגמה של שילובים של תדרים בו-זמניים (GHz):
- 2.4
- 5
- 6
- 2.4 x 5
- 2.4 x 6
- 5 x 6
ממשק ה-HAL הבא של AIDL תומך בשילובים סימולטניים של רדיו:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
בחירת רשת
במהלך בחירת הרשת (MLO), רשימת המועמדים מקובצת לפי חברים עם אותו כתובת MAC של MLD. הציון המקסימלי של התפוקה החזויה של קישור מרובה מחושב לכל קבוצה, על סמך המספר המקסימלי של קישורי STR ושילובי הפס בו-זמנית שנתמכים על ידי השבב. אם המועמד יכול להשתמש בכמה קישורים והשבב תומך ב-STR, ציון התפוקה החזויה מוחלף בציון התפוקה החזויה של כמה קישורים. הפעולה הזו משפרת את הסיכויים של מועמדים ל-MLO להיבחר במהלך בחירת הרשת.
כשמצטרפים לרשת AP-MLD, המסגרת מבצעת את בחירת ה-SSID על סמך מידע שמתקבל באובייקט ScanResults
כפי שמדווח על ידי תוכנת הספק. אחרי שהמסגרת בוחרת את ה-SSID, תוכנת הספק אחראית לבחירת ה-BSSID של נקודת הגישה (AP) הטובה ביותר (או קישור ה-AP) לשימוש בשיוך.
טיפול בכתובת MAC של STA במכשיר
בקטע הזה מוסבר איך כתובות MAC של STA במכשיר (כתובות MAC של MLD וכתובות MAC של STA לכל קישור) מטופלות.
כתובת MAC של MLD
מסגרת ה-Wi-Fi מנהלת את כתובת ה-MAC של MLD של המכשיר. כתובת ה-MAC של MLD
מטופלת באותו אופן שבו מכשיר שאינו MLD מטפל בכתובת ה-MAC שלו.
כתובת ה-MAC יכולה להיות כתובת MAC אקראית או כתובת MAC שסופקה על ידי החומרה, בהתאם לבחירת המשתמש. כתובת ה-MAC של MLD מוגדרת על ידי המסגרת באמצעות IWifiStaIface#setMacAddress()
HAL API.
כתובת MAC של STA לכל קישור
תוכנת הספק מנהלת את כתובות ה-MAC של מופעי STA (לכל קישור). כשמכשיר משויך לנקודת גישה, תוכנת הספק מקצה כתובת MAC של מופע לכל קישור משויך.
תוכנת הספק מקצה כתובות MAC לכל קישור על סמך האלגוריתם שלה. האלגוריתם צריך להיות ניתן לחזרה ופונקציה של המאפיינים הבאים:
- כתובת ה-MAC של STA-MLD מוגדרת על ידי מסגרת ה-Wi-Fi.
- מזהה קישור (שהתקבל מנקודת הגישה)
המשמעות היא שאם המסגרת משתמשת מחדש באותה כתובת MAC של MLD, הספק חייב להשתמש מחדש באותן כתובות MAC משויכות לכל מופע, ולהיפך. כך מובטח שכאשר כתובת ה-STA-MLD שנוצרה על ידי המסגרת היא קבועה עבור SSID, גם כתובות ה-MAC לכל STA הן קבועות.
הדוגמה הבאה היא אלגוריתם להקצאת כתובות MAC של STA לכל קישור (ספקים יכולים להטמיע כל אלגוריתם שעומד בקריטריונים של האלגוריתם):
- אוקטט 0: מוודאים שהביט שמציין ניהול מקומי מוגדר
- אוקטט 1-4: זהה לכתובת ה-MAC של STA-MLD
- אוקטט 5: לכל STA = (STA-MLD + מזהה הקישור + 1) MOD (256)
טיפול בכמה קישורים
הקושחה של הספק יכולה לבצע החלפת קישורים ולנהל את מצב החיסכון באנרגיה של הקישורים להפעלה או להשבתה ללא קלט ממסגרת ה-Wi-Fi.
מסגרת ה-Wi-Fi לא מצפה לקבל התראה כשמצב הקישור משתנה.
ניהול מצב חיסכון בסוללה
מצב חיסכון בחשמל מופעל כברירת מחדל במסגרת Wi-Fi. במצב חיסכון באנרגיה, קושחת הספק מנהלת את מצב החיסכון באנרגיה של קישורים ספציפיים על סמך דפוסי תנועה והחלטות לגבי הפעלה או השבתה של קישורים.
עם זאת, מסגרת ה-Wi-Fi יכולה להשבית את מצב החיסכון בסוללה על ידי קריאה ל-ISupplicantStaIface::setPowerSave(false)
HAL API. אם מצב חיסכון בצריכת החשמל מושבת על ידי המסגרת, קושחת הספק צריכה לשמור על קישור אחד לפחות פעיל (חיסכון בצריכת החשמל מושבת). במצב הזה, הטמעת הקושחה מחליטה איזה קישור מוגדר.
נתיב הנתונים
התיאור הזה מתייחס להטמעה של קושחת הספק לטיפול בתנועה של העלאות והורדות.
תנועה בקישור העולה
הקושחה מנתבת את התנועה בקישור העולה לקישור אחד (או יותר) על סמך ההטמעה הפנימית שלה. הקושחה של הספק מחליטה מתי לבצע איזון עומסים, שכפול או צבירה של תעבורת נתונים על סמך דפוסי תעבורת נתונים. מומלץ לשכפל את התנועה של הקושחה לכמה קישורים במקרים הבאים:
- כשמגדירים מצב זמן טעינה קצר דרך
IWifiChip#setLatencyMode()
HAL API. - כשיש תנועה עם עדיפות משתמש 6 ו-7.
תנועה בהורדה
הקושחה צריכה להחליף את כתובת ה-MAC (של היעד) לכל STA בכותרת ה-MAC בכתובת ה-MAC של MLD-STA, ואת כתובת ה-MAC (של המקור) לכל AP בכותרת ה-MAC בכתובת ה-MAC של MLD-AP. הקושחה צריכה לבצע את ההחלפה של כתובת ה-MAC לפני שהיא עוברת דרך מסנן ה-APF, כי לפקודות של מסנן ה-APF יש מסננים שמבוססים על כתובות MAC של MLD. יש מסנן APF יחיד לכל הקישורים של AP-MLD.
מקביליות
בתרחישים של פעולות מקבילות, שבהם נעשה שימוש ברדיו לממשק חדש, צריך לתת עדיפות על פני הקצאה של כמה מכשירי רדיו לקישורים של אותו ממשק. גם תרחישים של פעולות שמתבצעות בו-זמנית מקבלים עדיפות על פני MLO, בלי קשר למה שקרה קודם. השימוש בכמה קישורים לממשק יחיד הוא אופציונלי, כלומר השימוש בכמה קישורים מתבצע רק במקרים הבאים:
- MLO נדרש על סמך החלטת הקושחה לגבי איזון עומסים, צבירה או שכפול.
- האפשרות MLO זמינה, כלומר ממשק אחר לא דורש רדיו.
מיפוי של מזהה עסקה לקישור
במכשירים עם Android מגרסה 14 ואילך, כשנקודת הגישה של Wi-Fi 7 מודיעה על השבתה זמנית של אחד הקישורים דרך רכיב מיפוי של TID לקישור שמועבר בפריים של beacon, probe response ו-association response, תחנת Wi-Fi 7 ממשיכה את החיבור לנקודת הגישה באמצעות הקישורים שנותרו שהוגדרו, בלי לבצע שיוך נוסף.
במכשירים עם Android 13 ומטה, מסגרת ה-Wi-Fi לא תומכת בקבלת התראות על שינוי במצב הקישור בגלל מיפוי של TID לקישור, גם אם הקישור המשויך לא מקושר ל-TID.
AIDL 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
ממשקי API
אפליקציות יכולות לקבל מידע על שינויים במיפוי של מזהה TID לקישור באמצעות ממשקי ה-API הבאים:
-
ConnectivityManager.NetworkCallback.onCapabilitiesChanged()
: קריאה חוזרת לרשת שמופעלת על ידי המסגרת כשמתרחש שינוי במיפוי של TID לקישור. -
WifiInfo#getAssociatedMloLinks()
: מחזירה את הקישורים המשויכים ל-MLO. -
MloLink#getState()
: מחזירה את הסטטוס של הקישור, MLO_LINK_STATE_ACTIVE
או MLO_LINK_STATE_IDLE
.
יכולות של משא ומתן למיפוי של TID לקישור
במכשירים עם Android מגרסה 14 ומעלה, ממשקי ה-API הבאים זמינים כדי לקבל את יכולות המשא ומתן של מיפוי TID לקישור עבור התחנה ונקודת הגישה.
יכולות הצ'יפ
הממשקים הבאים תומכים ביכולת השבב לניהול משא ומתן על מיפוי של TID לקישור.
AIDL HAL
ממשק AIDL למשא ומתן על מיפוי של מזהה TID לקישור נמצא ב-FeatureSetMask
ב-hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
. היכולת
T2LM_NEGOTIATION = 1 << 8
מציינת שהשבב תומך במיפוי של TID לקישור.
APIs
-
WifiManager.isTidToLinkMappingNegotiationSupported()
: מחזירה את הצ'יפ שתומך במשא ומתן על מיפוי של TID לקישור.
יכולת של חשבון תשלומים
הממשקים הבאים תומכים ביכולת AP למשא ומתן על מיפוי של TID לקישור.
AIDL HAL
המסגרת שולחת שאילתה לגבי יכולת ה-AP מהמבקש יחד עם היכולת הנוכחית של החיבור.
-
apTidToLinkMapNegotiationSupported
: בודק אם נקודת הגישה תומכת ביכולת של משא ומתן על מיפוי TID לקישור.
APIs
-
WifiInfo.isApTidToLinkMappingNegotiationSupported()
: הפונקציה מחזירה אם AP תומך במשא ומתן על מיפוי של TID לקישור.
נתונים סטטיסטיים של שכבת הקישור
הנתונים הסטטיסטיים של שכבת הקישור כוללים פרטים ספציפיים לקישור Wi-Fi, כמו RSSI, מוני חבילות שונים של TX ו-RX ונתונים סטטיסטיים של רדיו. מסגרת ה-Wi-Fi מבצעת מדי פעם סקרים של נתונים סטטיסטיים של שכבת הקישור ושל RSSI כדי לבחור את הרשת הטובה ביותר או כדי להעריך את האיכות של הרשת המחוברת. במכשירים עם Android מגרסה 14 ואילך, הנתונים הסטטיסטיים של שכבת הקישור כוללים תמיכה בקישורים מרובים. כדי לתמוך ב-Wi-Fi 7, Android תומך ב-MLO גם בנתוני הקישוריות של שכבת הקישור וגם בסקר אותות.
נתונים סטטיסטיים ספציפיים לקישור נמצאים בממשקי AIDL של שכבת הקישור הבאים:
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceStats.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerLinkStats.aidl
מערכת ה-API של android.net.wifi.WifiManager#addOnWifiUsabilityStatsListener()
מאזינה לכל הנתונים הסטטיסטיים של שכבת הקישור. המסגרת מפעילה את ה-API הזה מדי פעם כדי לעדכן את הנתונים הסטטיסטיים לגבי השימושיות של Wi-Fi.
ממשקי ה-API הבאים שספציפיים לקישורים זמינים ב-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()
.
ממשקי ה-API ב-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
: דיווח על מספר ה-beacons עבור הקישור הטוב ביותר שמשמש לממשק. -
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. תחנות יכולות לשמור על קישוריות חלקה לנקודת הגישה בלי לשייך מחדש את הקישורים שנותרו.
ממשק ה-AIDL
onMloLinksInfoChanged
שנמצא ב-Wi-Fi supplicant בכתובת
ISupplicantStaIfaceCallback.aidl
,
תומך בהגדרה מחדש של הקישור (הסרת נקודת הגישה מהקישור).
כשמסגרת ה-Wi-Fi מעבדת את ההסרה של קישור, מצב הקישור מוגדר ל-MLO_LINK_STATE_UNASSOCIATED
.
לאחר מכן, המסגרת מפעילה את ConnectivityManager.NetworkCallback#onCapabilitiesChanged()
לשינוי במצב הקישור.
השיטה
WifiInfo#getAffiliatedMloLinks
מחזירה את הקישורים של MLO שמשויכים לחשבון. השיטה
MloLink#getState
מחזירה את מצב הקישור. אם הקישור הוסר, מצב הקישור שמוחזר הוא MLO_LINK_STATE_UNASSOCIATED
.
אסטרטגיית Chip MLO
טכנולוגיית MLO מאפשרת למכשירים לשלוח ולקבל נתונים בכמה קישורי Wi-Fi בו-זמנית, וכך לשפר את הביצועים של אפליקציות עם דרישות ספציפיות כמו זמן אחזור נמוך, רוחב פס גבוה וצריכת חשמל נמוכה. ספקי שבבים יכולים לפתח אלגוריתמים לשימוש בקישורים הזמינים.
לאפליקציות עם הרשאות מיוחדות יש אפשרות לשנות את האלגוריתמים האלה באמצעות השיטה setMloMode
ב-Wifimanager
ולהגדיר את המצבים הבאים:
MLO_MODE_DEFAULT = 0
MLO_MODE_LOW_LATENCY = 1
MLO_MODE_HIGH_THROUGHPUT = 2
MLO_MODE_LOW_POWER = 3
ב-framework נעשה שימוש ב-setMloMode
בממשק IWifiChip
AIDL כדי להגדיר את מצב ה-MLO.