Android 13 veya sonraki sürümleri çalıştıran cihazlarda Android, Wi-Fi 7 (IEEE 802.11be) standardını destekler. Bu sayfada, temel ve çok bağlantılı çalışma (MLO) dahil olmak üzere Android Wi-Fi 7 özellikleri açıklanmaktadır.
Temel Wi-Fi 7 özellikleri
Bu bölümde, Android 13 ve sonraki sürümlere dahil edilen temel Wi-Fi 7 özellikleri açıklanmaktadır.
Cihazın Wi-Fi 7 desteği
Android çerçevesi, bir cihazın kablosuz ağ 7'yi destekleyip desteklemediğini kontrol etmek için uygulamaların ScanResults.WIFI_STANDARD_11BE
bağımsız değişkeniyle çağırabileceği WifiManager#isWifiStandardSupported(int standard)
API'yi içerir.
Bu API çağrıldığında Wi-Fi modülü, config_wifi11beSupportOverride
yapılandırma yer paylaşımının geçersiz kılma olarak kullanılıp kullanılmadığını kontrol eder ve aşağıdakileri yapar:
- Yer paylaşımı
true
olarak ayarlanırsa nl80211'den gelen yanıttan bağımsız olarak cihazın Wi-Fi 7'yi desteklediği varsayılır. Bu geçersiz kılma işlemi yalnızca Wi-Fi 7 desteğini döndüren sürücüleri olmayan cihaz üreticileri için yararlıdır. - Yer paylaşımı
false
(varsayılan değer) olarak ayarlanırsa kablosuz ağ modülü, nl80211'deki bilgileri kullanır. Kablosuz modülü, wificond'dan bilgi ister. wificond, nl80211 komutunuNL80211_CMD_GET_WIPHY
çağırır. Sürücüden gelen yanıttaNL80211_BAND_IFTYPE_ATTR_EHT_CAP_PHY
özelliği varsa cihazın Wi-Fi 7'yi desteklediği varsayılır.
Taranan AP Wi-Fi 7 desteği
Android çerçevesi, tarama yapılan bir erişim noktasının (AP) Wi-Fi 7'yi destekleyip desteklemediğini kontrol etmek için uygulamaların çağırabileceği int ScanResult#getWifiStandard()
API'sini içerir. AP, Wi-Fi 7'yi destekliyorsa API ScanResults.WIFI_STANDARD_11BE
değerini döndürür.
Uygulamaların bu API'yi kullanabilmesi için cihazın kablosuz ağ 7'yi desteklemesi gerekmez.
Bu API çağrıldığında kablosuz modül, EHT Capability IE
değerinin bağlantı taramasının döndürülen sonuçlarında olup olmadığını kontrol eder. Tarama sonuçlarında EHT Capability IE
varsa taranan AP, Wi-Fi 7'yi destekler.
AOSP WifiTracker
sınıfı, ayrıntılı modda çalışırken bu destek bilgilerini kullanıcı arayüzünde gösterir.
STA bağlantı modu
Android çerçevesi, mevcut istasyon (STA) bağlantı modunun Kablosuz 7 olup olmadığını kontrol etmek için uygulamaların çağırabileceği int WifiInfo#getWifiStandard()
API'yi içerir. Hem cihaz hem de bağlı AP, kablosuz 7'yi destekliyorsa STA bağlantı modu kablosuz 7'dir. Bağlantı modu kablosuz 7 ise API ScanResults.WIFI_STANDARD_11BE
döndürür.
getWifiStandard
çağrıldığında kablosuz modül, ISupplicantStaIface#getConnectionCapabilities()
HAL API'sini çağırarak modu belirler. Bu HAL API'nin wpa_supplicant
AIDL katmanında uygulanması, bağlantı kurulumu sırasında EHT Capability IE
'nin hem AssocReq
hem de AssocRsp
'da olup olmadığını kontrol eder.
Ağ seçimi
Android 13'te ağ seçimi, hangi AP'ye bağlanacağını belirlemek için çeşitli parametreler kullanır. Parametrelerden biri, ThroughputPredictor
bloğu kullanılarak tahmin edilen AP'nin tahmini işleme hızıdır. ThroughputPredictor
bloğu, hem cihazın hem de taranan AP'nin PHY parametrelerini kullanır.
Android 13'te ThroughputPredictor
, hesaplamasında aşağıdaki AP özelliklerini kullanır:
- Wi-Fi 7 (802.11be) desteği
- 320 MHz kanal genişliği desteği
Bu özellikleri ThroughputPredictor
mantığına dahil etmek, cihaz bu özelliklerden yararlanabiliyorsa Wi-Fi 7 özellikli AP'ler seçme şansını artırır.
Kablosuz RTT tabanlı menzil ölçümü
Android, Wi-Fi RTT için EHT önbölümü ve 320 MHz kanal genişliği için API desteği sağlar. Bu, çip tarafından desteklendiğinde RTT aralığında Wi-Fi 7 ile ilgili özelliklerin desteklenmesini sağlar.
HAL API'leri
Aşağıdaki HAL API'leri, RTT tabanlı menzil belirleme için Wi-Fi 7 özelliklerini destekler:
EHT
:enum RttPreamble
veenum WifiRatePreamble
içinde sabitWIDTH_320
:enum WifiChannelWidthInMhz
bölgesinde sabitBW_320MHz
:enum RttBw
bölgesinde sabit
API'ler
Uygulamalar, Wi-Fi 7 RTT tabanlı menzil belirleme için aşağıdaki API'leri kullanabilir:
ScanResult#PREAMBLE_EHT
ResponderConfig#PREAMBLE_EHT
(SystemApi)
Soft AP
Android, Soft AP'de Wi-Fi 7'yi destekler ve aşağıdaki özellikleri sunar.
Yumuşak AP'yi başlatma
Android, Soft AP'nin kablosuz 7 modunda başlatılmasını destekler.
Bu, config_wifiSoftapIeee80211beSupported
yer paylaşımı yapılandırmasına göre belirlenir.
Wi-Fi modülü, IHostApd#addAccessPoint()
API çağrısında HwModeParams#enable80211BE
boole değerini ayarlamak için config_wifiSoftapIeee80211beSupported
yer paylaşımını kullanır. hostapd AIDL katmanında bu değer, hostapd.conf
parametrelerini ayarlamak için kullanılır.
HAL API'leri
hostapd HAL'deki HwModeParams
içinde enable80211BE
doğru/yanlış değeri, Soft AP'nin Wi-Fi 7 modunda başlatılmasını destekler.
Soft AP bilgilerini bildirme
Android, raporlanan Soft AP bilgilerine Wi-Fi 7 ve 320 MHz kanal genişliği bilgilerini eklemek için API desteği içerir.
HAL API'leri
hostapd HAL'deki Generation.aidl
AIDL arayüzündeki WIFI_STANDARD_11BE
sabit, IHostapdCallback#onApInstanceInfoChanged()
geri çağırma işlevinde bildirilen ApInfo
içinde kullanılır ve Soft AP bilgilerinin raporlanmasını destekler.
API'ler
Uygulamalar, SoftApInfo
bölümündeki aşağıdaki yöntemleri (sistem API'leri) kullanarak yumuşak AP bilgilerini bildirebilir.
SoftApInfo#getWifiStandard()
: Yumuşak AP, Wi-Fi 7 modunda başlatılırsaScanResults.WIFI_STANDARD_11BE
değerini döndürür.SoftApInfo#getBandwidth()
: 320 MHz kanal genişliği kullanılıyorsaSoftApInfo#CHANNEL_WIDTH_320MHZ
değerini döndürür.
MLO Wi-Fi 7 özellikleri
Çoklu bağlantılı çalışma (MLO), Wi-Fi 7 (802.11be) spesifikasyonundaki ana özelliktir. MLO, eşzamanlı veya eşzamanlı olmayan şekilde Wi-Fi 7'de çalışan çok bağlantılı cihazlar (MLD) için zorunlu bir özelliktir.
Şekil 1. MLO diyagramı.
Şekil 1'de gösterildiği gibi, hem AP-MLD hem de STA-MLD'de her bağlantıda birden fazla AP veya STA örneği çalışır. Her bağlantının ayrı bir AP veya STA MAC adresi vardır. AP veya STA'nın, cihazı tanımlamak için bir MLD MAC adresi de vardır.
MLO bağlantısı gösterimi
android.net.wifi.MloLink
sınıfı, MLO bağlantısını temsil eder. Bu sınıf aşağıdaki parametreleri içerir:
int getLinkId()
: AP MLD tarafından reklamı yapılan bağlantı kimliği.MacAddress getApMacAddress()
: AP MAC adresi. İlgili bağlantı için AP örneğinin BSSID'si.MacAddress getStaMacAddress()
: STA MAC adresi. Bağlantıdaki STA örneği için yerel olarak atanan MAC adresi.int getChannel()
: Kanalı bağlama. Bağlantının kanal numarası.int getBand()
: Bağlantı bandı. Bağlantının bandı.int getState()
: Bağlantı durumu. Aşağıdaki durumlardan biri olabilir:MLO_LINK_STATE_INVALID
: Geçersiz. Başlatma ve hata durumları için kullanılır.MLO_LINK_STATE_UNASSOCIATED
: Bağlantı kaldırıldı. Bağlantı bir AP ile ilişkili değil.MLO_LINK_STATE_IDLE
: Boşta. Bağlantı ilişkilendirilmiş ancak etkin değil (bağlantıyla eşlenen bir trafik tanımlayıcısı (TID) yok).MLO_LINK_STATE_ACTIVE
: Etkin. Bağlantı ilişkilendirilmiş ve etkindir (bağlantı ile en az bir TID eşlenmiştir). Çerçeve, bağlantının güç durumunu izlemediğinden etkin bir bağlantı güç tasarrufu modunda olabilir.
Taranan kablosuz 7 AP MLO bilgileri
Kablosuz modül, AP-MLD'den bir ScanResult
nesnesi aldığında uygulamalar, Wi-Fi 7 AP MLD için MLO parametrelerini alabilir. AOSP WifiTracker
, ayrıntılı modda çalışırken MLO parametrelerini gösterir.
Kablosuz modül, aşağıdakileri yaparak MLO bilgilerini toplar:
- AP MLD MAC adresini ve mevcut bağlantı kimliğini okumak için işaretçi veya prob yanıtına dahil edilen çok bağlantılı bilgi öğesini (IE) ayrıştırır.
- İlişkili bağlantı bilgilerinin listesini okumak için işaretçi veya prob yanıtına dahil edilen azaltılmış komşu raporunu (RNR) IE'yi ayrıştırır.
API'ler
Uygulamalar, taranan AP MLO bilgilerini almak için aşağıdaki API'leri kullanabilir:
ScanResult#BSSID
: AP örneğinin MAC adresi (tarama sonucunun alındığı bağlantı için)MacAddress ScanResult#getApMldMacAddress()
: AP'nin MLD MAC adresini döndürür.int ScanResult#getApMloLinkId()
: ScanResult'ın alındığı bağlantının bağlantı kimliğini döndürür.List<MloLink> ScanResult#getAffiliatedMloLinks()
: ScanResult'ın alındığı bağlantı da dahil olmak üzere AP-MLD tarafından reklamı yapılan tüm bağlantılar içinMloLink
nesnelerinin listesini döndürür.
Bağlı Wi-Fi 7 AP MLO bilgileri
Bir cihaz bir Wi-Fi 7 AP-MLD'ye bağlandığında çerçeve, bağlantının MLO parametrelerini WifiInfo
nesnesinden toplar. AOSP WifiTracker
nesnesi, ayrıntılı modda çalışırken bu bilgileri gösterir.
Cihaz AP-MLD'ye bağlandığında kablosuz modül, AP'den alınan ScanResult
nesnesinden MLO bilgilerini kopyalar. Ardından modül, hem AP hem de STA için her bağlantının MAC adreslerini okumak ve ilişkili bağlantıların durumunu güncellemek üzere ISupplicantStaIface#getConnectionMloLinksInfo()
HAL API'yi çağırır.
API'ler
Uygulamalar, MLO bağlantı bilgilerini almak için aşağıdaki API'leri kullanabilir:
WifiInfo#getBSSID()
: AP örneğinin MAC adresini döndürür (cihazın ilişkilendirildiği bağlantı için).MacAddress WifiInfo#getApMldMacAddress()
: AP'nin MLD MAC adresini döndürür.int WifiInfo#getApMloLinkId()
: STA'nın AP ile ilişkilendirdiği bağlantının bağlantı kimliğini döndürür.List<MloLink> WifiInfo#getAffiliatedMloLinks()
: AP-MLD tarafından reklamı yapılan tüm bağlantılar (ilişkili bağlantı dahil) içinMloLink
nesnelerinin listesini döndürür. HerMloLink
nesnesinde hem AP hem de STA MAC adresleri sorgulanabilir.
AP-MLD taraması
Tedarikçi yazılımı, aldığı her işaretçi veya prob yanıtının tarama sonuçlarını kablosuz ağ çerçevesine sağlar. Bu, kablosuz ağ çerçevesinin:
- Aynı AP-MLD'den birden fazla
ScanResults
nesnesi alabilir (AP'nin birden fazla işaretçi bağlantısı olabilir). - Bu bağlantı sinyallerinden bazıları donanım yazılımı tarafından alınamayabileceğinden, AP-MLD'nin AP bağlantıları için yalnızca kısmi bir tarama sonucu grubu alabilir.
Tedarikçi yazılımı yalnızca kablosuz olarak alınan tarama sonuçlarını raporlar ve AP-MLD tarafından reklamı yapılan bağlantılara dayalı tarama sonuçları oluşturmamalıdır (yapay olarak sentezlememelidir).
Tedarikçi yazılımı, bildirilen tarama sonuçlarında AP örnekleri tarafından alınan temel varyant çoklu bağlantı ve RNR IEs'lerini içermelidir. Tarama sonuçlarında ilişkili AP ayrıntıları eksikse tedarikçi yazılımı, AP'nin tüm veya kısmi özellik, parametre ve işletim öğelerini yanıt çerçevesindeki hedeflenen AP-MLD ile birlikte içerecek şekilde çok bağlantılı keşif istekleri (keşif isteği çok bağlantılı öğesi içeren keşif isteği çerçevesi) gönderebilir.
Tedarikçi yazılımı gerekirse ML problamasını tetikleyebilir (probe req çerçevesinde probe req varyantı ML IE kullanılarak).
AP-MLD ağ ilişkilendirmesi
Bir cihaz AP-MLD ağına katıldığında tedarikçi yazılımı, sinyal göndermek için seçili AP bağlantısını (ilişkili bağlantı) kullanır. Tedarikçi yazılımı, cihaz tarafından desteklenen bağlantıların tümünü veya bir kısmını ilişkilendirebilir.
Sürücü, başarılı bir ilişkilendirmeden sonra AP-MLD için bir bağlantının BSSID'sini içeren ISupplicantStaIfaceCallback#onStateChanged()
bildirir. Sürücü daha sonra, tarama sonuçları ilgili bağlantının çerçevesine bildirilmişse AP-MLD'nin bir bağlantısını seçer.
Ağ puanlaması
Android 14 veya sonraki sürümleri çalıştıran cihazlarda Android kablosuz ağ seçimi, kablosuz 7 MLO'yu destekler. Yani Android, MLO için kullanılabilen bağlantıların sayısına göre cihaz için en iyi kablosuz ağı seçer.
Ağ seçim algoritması, MLO'yu desteklemek için kablosuz çipteki aşağıdaki MLO özelliklerini kullanır:
- Maksimum STR bağlantı sayısı
- Maksimum ilişkilendirme bağlantısı sayısı
- Eş zamanlı bant kombinasyonları
Şekil 2. MLO ağ seçimi.
Maksimum STR bağlantı sayısı
Eşzamanlı iletim ve alma (STR), çok bağlantılı çalışma için bir kablosuz ortam çekişme şemasıdır. Farklı bağlantılar arasındaki sinyal yalıtımı, bağlantıların bağımsız olarak çalışabilmesi ve farklı bağlantılarda aynı anda veri gönderip alabilmesi için yeterlidir. STR, eski tek bağlantılı (SL) STA ve eski çift bantlı çift eşzamanlı (DBDC) STA'dan farklıdır. Bir STA MLD'ye bağlı STA'lar, ortak bir veri aktarıcı sıra numarasını (SN) ve birden fazla bağlantı aktarımı aynı erişim kategorisine (AC) sahipse farklı bağlantılara ayrılmış ortak bir veri aktarımı alanını paylaşır.
Kullanılan maksimum STR bağlantısı sayısı, çip tarafından desteklenen maksimum radyo sayısından farklı olabilir. Şekil 2'deki örnekte maksimum STR bağlantısı sayısı 2'dir.
Aşağıdaki AIDL HAL arayüzleri, maksimum STR bağlantı sayısını ve maksimum ilişkilendirme bağlantısı sayısı özelliklerini destekler:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/WifiChipCapabilities.aidl
Maksimum ilişkilendirme bağlantısı sayısı
Gelişmiş Çoklu Bağlantılı Tek Radyo (eMLSR) anlaşmazlık şemasını kullanarak tek bir radyoda birden fazla bağlantı çalışabilir. Çok bağlantılı bir cihaz, belirli temel kontrol çerçevelerini alıp bağlantı grubunda aynı anda net kanal değerlendirmesi (CCA) yapabiliyorsa bağlantı grubunda eMLSR kullanır. Ancak MLD, aynı anda yalnızca bir bağlantıda (her iletim fırsatında (TXOP) dinamik olarak seçilen bağlantı) veri iletir veya alır.
MLD istasyonu, çip tarafından destekleniyorsa STR ve eMLSR'de aynı anda çalışarak daha iyi güvenilirlik, daha iyi işleme hızı ve daha düşük gecikme süresi (tek bağlantılı eski istasyona kıyasla) için ilişkilendirme bağlantılarının sayısını en üst düzeye çıkarabilir. Şekil 2'de maksimum ilişkilendirme bağlantısı sayısı 3'tür.
Aşağıdaki AIDL HAL arayüzleri, maksimum ilişkilendirme bağlantısı sayısı özelliğini destekler:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/WifiChipCapabilities.aidl
Eş zamanlı bant kombinasyonları
Çerçeve, aynı anda çalışabilecek izin verilen radyo kombinasyonlarını (IWifiChip.aidl
AIDL arayüzü aracılığıyla) almak için çipi sorgular. Çerçeve, bu bilgilerden olası eşzamanlı bant kombinasyonlarını çıkarır. Aşağıda, eşzamanlı bant kombinasyonlarının (GHz) örnek listesi verilmiştir:
- 2.4
- 5
- 6
- 2,4 x 5
- 2,4 x 6
- 5 x 6
Aşağıdaki AIDL HAL arayüzü eşzamanlı radyo kombinasyonlarını destekler:
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
Ağ seçimi
Ağ seçimi (MLO) sırasında, aday liste aynı MLD MAC adresine sahip üyelere göre gruplandırılır. Tahmin edilen maksimum çok bağlantılı işleme hızı puanı, çip tarafından desteklenen maksimum STR bağlantı sayısına ve eşzamanlı bant kombinasyonlarına göre her grup için hesaplanır. Aday çok bağlantılıysa ve çip STR'yi destekliyorsa tahmini aktarım hızı puanı, çok bağlantılı tahmini aktarım hızı puanıyla değiştirilir. Bu, ağ seçimi sırasında MLO adaylarına avantaj sağlar.
Bir AP-MLD ağına katılırken çerçeve, ScanResults
nesnesinde tedarikçi yazılımı tarafından bildirilen bilgilere göre SSID seçimini gerçekleştirir. Çerçeve tarafından SSID seçildikten sonra, ilişkilendirme için kullanılacak en iyi AP (veya AP bağlantısı) için BSSID'yi seçmekten tedarikçi yazılımı sorumludur.
Cihaz STA MAC adresi işleme
Bu bölümde, cihaz STA MAC adreslerinin (MLD MAC adresleri ve bağlantı başına STA MAC adresleri) nasıl işlendiği açıklanmaktadır.
MLD MAC adresi
Kablosuz çerçeve, cihazın MLD MAC adresini yönetir. MLD MAC adresi, MLD dışı bir cihazın kendi MAC adresini işlediği şekilde işlenir.
MAC adresi, kullanıcının tercihine bağlı olarak rastgele bir MAC adresi veya donanımla sağlanan bir MAC adresi olabilir. MLD MAC adresi, IWifiStaIface#setMacAddress()
HAL API'si kullanılarak çerçeve tarafından ayarlanır.
Bağlantı başına STA MAC adresi
Tedarikçi yazılımı, örnek STA MAC adreslerini (her bağlantı için) yönetir. Bir cihaz bir AP ile ilişkilendirildiğinde tedarikçi firma yazılımı, ilişkilendirilen her bağlantı için bir örnek MAC adresi atar.
Tedarikçi yazılımı, algoritmasına göre bağlantı başına MAC adresleri atar. Algoritma tekrarlanabilir olmalı ve aşağıdakilerin işlevi olmalıdır:
- Wi-Fi çerçevesi tarafından ayarlanan STA-MLD MAC adresi.
- Bağlantı kimliği (AP'den alınır)
Bu, çerçeve aynı MLD MAC adresini yeniden kullanırsa tedarikçi firmanın da ilişkili örnek başına aynı MAC adreslerini yeniden kullanması gerektiği anlamına gelir. Bu, çerçeve tarafından oluşturulan STA-MLD adresi bir SSID için kalıcı olduğunda STA başına MAC adreslerinin de kalıcı olmasını sağlar.
Aşağıda, bağlantı başına STA MAC adresi atama işlemi için örnek bir algoritma verilmiştir (tedarikçi firmalar, algoritma ölçütlerini karşılayan herhangi bir algoritmayı uygulayabilir):
- 0. bayt: Yerel olarak yönetilen bitin ayarlandığından emin olun
- 1-4 Oktet: STA-MLD MAC Adresi ile aynı
- 5. bayt: STA başına = (STA-MLD + bağlantı kimliği + 1) MOD (256)
Çoklu bağlantı işleme
Tedarikçi firma donanım yazılımı, bağlantı anahtarlama işlemini gerçekleştirebilir ve Wi-Fi çerçevesinden giriş almadan bağlantıların etkinleştirilmesi veya devre dışı bırakılması için güç tasarrufu durumunu yönetebilir.
Kablosuz ağ çerçevesi, bağlantı durumu değiştiğinde bildirim beklemez.
Güç tasarrufu durumunun yönetimi
Güç tasarrufu durumu, kablosuz bağlantı çerçevesinde varsayılan olarak etkindir. Güç tasarrufu durumunda tedarikçi firma donanım yazılımı, trafik kalıplarına ve bağlantı etkinleştirme veya devre dışı bırakma kararlarına göre bağlantıların güç tasarrufu durumunu yönetir.
Ancak kablosuz ağ çerçevesi, ISupplicantStaIface::setPowerSave(false)
HAL API'sini çağırarak güç tasarrufu durumunun devre dışı bırakılmasını zorunlu kılabilir. Güç tasarrufu durumu çerçeve tarafından devre dışı bırakılırsa tedarikçi firma donanım yazılımı en az bir bağlantıyı etkin tutmalıdır (güç tasarrufu devre dışı). Bu durumda, hangi bağlantının ayarlanacağına donanım yazılımı uygulaması karar verir.
Veri yolu
Bu dokümanda, uplink ve indirme trafiğini işlemek için tedarikçi firmanın donanım yazılımı uygulaması açıklanmaktadır.
Yukarı bağlantı trafiği
Donanım yazılımı, dahili uygulamasına göre uplink trafiğini bir (veya daha fazla) bağlantıya yönlendirir. Tedarikçi firma donanım yazılımı, trafik kalıplarına göre ne zaman yük dengeleme, kopyalama veya trafik toplama işlemi yapılacağına karar verir. Aşağıdaki durumlarda donanım yazılımının trafiği birden fazla bağlantıya kopyalamasını öneririz:
- Düşük gecikme modu
IWifiChip#setLatencyMode()
HAL API aracılığıyla ayarlandığında - Kullanıcı önceliği 6 ve 7 olan trafik olduğunda.
Aşağı bağlantı trafiği
Donanım yazılımı, MAC başlığının STA başına (hedef) MAC adresini MLD-STA MAC ile ve MAC başlığının AP başına (kaynak) MAC adresini MLD-AP MAC ile değiştirmelidir. APF filtresi komutları MLD MAC adreslerine dayalı filtrelere sahip olduğundan, donanım yazılımı APF filtresinden geçmeden önce bu MAC adresi değiştirme işlemini yapmalıdır. AP-MLD'nin tüm bağlantıları için tek bir APF filtresi vardır.
Eşzamanlılık
Yeni bir arayüz için radyonun kullanıldığı eşzamanlılık senaryoları, aynı arayüzün bağlantıları için birden fazla radyoyu ayırmaya göre öncelikli olmalıdır. Hangisi önce geldiyse fark etmeksizin eşzamanlılık senaryoları da MLO'ya göre öncelikli olmalıdır. Tek bir arayüz için birden fazla bağlantı kullanmak fırsatçı bir yaklaşımdır. Yani birden fazla bağlantı yalnızca aşağıdaki durumlarda kullanılır:
- Yük dengeleme, toplama veya kopyalama için donanım yazılımı kararına bağlı olarak MLO zorunludur.
- MLO kullanılabilir. Başka bir arayüz için radyoya gerek yoktur.
TID'yi bağlantıya eşleme
Android 14 veya sonraki sürümleri çalıştıran cihazlarda, Wi-Fi 7 AP, işaretçi, prob yanıtı ve ilişkilendirme yanıtı çerçevelerinde iletilen bir TID-bağlantı eşleme öğesi aracılığıyla bağlantılardan birinin geçici olarak devre dışı bırakıldığını duyurduğunda Wi-Fi 7 istasyonu, başka bir ilişkilendirme gerçekleştirmeden ayarlanmış kalan bağlantıları kullanarak AP ile bağlantıya devam eder.
Android 13 veya daha eski sürümleri çalıştıran cihazlarda kablosuz ağ çerçevesi, ilişkili bağlantı bir TID'ye bağlı olmasa bile TID'den bağlantıya eşleme nedeniyle bağlantı durumunun değiştiği durumlar için bildirim almayı desteklemez.
AIDL HAL
Kablosuz istemci, aşağıdaki AIDL arayüzleri aracılığıyla TID'den bağlantıya eşleme değişikliklerini kablosuz çerçeveye bildirir:
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'ler
Uygulamalar, aşağıdaki API'leri kullanarak TID'den bağlantıya eşleme değişiklikleri hakkında bilgi edinebilir:
ConnectivityManager.NetworkCallback.onCapabilitiesChanged()
: TID ile bağlantı eşleme değişikliği olduğunda çerçeve tarafından tetiklenen ağ geri çağırma.WifiInfo#getAssociatedMloLinks()
: İlişkili MLO bağlantılarını döndürür.MloLink#getState()
: Bağlantının durumunu döndürür:MLO_LINK_STATE_ACTIVE
veyaMLO_LINK_STATE_IDLE
.
TID'den bağlantıya eşleme müzakere özellikleri
Android 14 veya sonraki sürümleri çalıştıran cihazlarda, istasyon ve AP için TID'den bağlantı haritası pazarlığı özelliklerini almak üzere aşağıdaki API'ler kullanılabilir.
Çip kapasitesi
Aşağıdaki arayüzler, TID'den bağlantıya eşleme pazarlığı için çip özelliğini destekler.
AIDL HAL
TID ile bağlantı eşleme pazarlığı için AIDL arayüzü FeatureSetMask
hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
'dadır. T2LM_NEGOTIATION = 1 << 8
özelliği, çipin TID'den bağlantıya eşlemeyi desteklediğini gösterir.
API'ler
WifiManager.isTidToLinkMappingNegotiationSupported()
: TID ile bağlantı eşleme pazarlığını destekleyen çipi döndürür.
AP kapasitesi
Aşağıdaki arayüzler, TID'den bağlantıya eşleme pazarlığı için AP özelliğini destekler.
AIDL HAL
Çerçeve, istemciden AP özelliğini ve mevcut bağlantı özelliğini sorar.
apTidToLinkMapNegotiationSupported
: Bir AP'nin TID-to-link map (TID'den bağlantı haritasına) pazarlık özelliğini destekleyip desteklemediğini kontrol eder.
API'ler
WifiInfo.isApTidToLinkMappingNegotiationSupported()
: AP'nin TID'den bağlantıya eşleme pazarlığını destekleyip desteklemediğini döndürür.
Bağlantı katmanı istatistikleri
Bağlantı katmanı istatistikleri, RSSI, çeşitli TX ve RX paket sayaçları ve radyo istatistikleri gibi kablosuz bağlantıya özgü ayrıntıları içerir. Kablosuz ağ çerçevesi, en iyi ağı seçmek veya bağlı ağın kalitesini değerlendirmek için bağlantı katmanı istatistiklerini ve RSSI'yi düzenli olarak sorar. Android 14 veya sonraki sürümleri çalıştıran cihazlarda bağlantı katmanı istatistikleri çoklu bağlantı desteğini içerir. Android, Wi-Fi 7'yi desteklemek için hem bağlantı katmanı istatistiklerinde hem de sinyal yoklaması işlemlerinde MLO'yu destekler.
Bağlantıya özgü istatistikler aşağıdaki bağlantı katmanı AIDL arayüzlerinde bulunur:
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerIfaceStats.aidl
hardware/interfaces/wifi/aidl/android/hardware/wifi/StaLinkLayerLinkStats.aidl
android.net.wifi.WifiManager#addOnWifiUsabilityStatsListener()
sistem API'si tüm bağlantı katmanı istatistiklerini dinler. Çerçeve, kablosuz bağlantı kullanılabilirlik istatistiklerini güncellemek için bu API'yi düzenli olarak çağırır.
Aşağıdaki bağlantıya özel API'ler android.net.wifi.WifiUsabilityStatsEntry
'te kullanılabilir.
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)
Uygulamalar, kullanılabilir bağlantı kimliklerini sorgulamak için android.net.wifi.WifiUsabilityStatsEntry#getLinkIds()
yöntemini çağırabilir.
Tek bağlantı için android.net.wifi.WifiUsabilityStatsEntry
API'leri (MLO değil), MLO bağlantıları için toplu istatistikleri döndürür. Aşağıda, toplama ölçütleri verilmiştir:
Aşağıdaki toplu paket istatistikleri, bağlantı başına istatistiklerin toplamını kullanır:
public long getTotalTxSuccess() public long getTotalTxRetries() public long getTotalTxBad() public long getTotalRxSuccess() public int getRxLinkSpeedMbps()
Aşağıdaki istatistikler, en yüksek RSSI'ye sahip bağlantıdaki verileri kullanır:
public int getRssi() public int getLinkSpeedMbps() public long getTotalBeaconRx() public int getTimeSliceDutyCycleInPercent() public ContentionTimeStats getContentionTimeStats(@WmeAccessCategory int ac) public List<RateStats> getRateStats()
Android 13'teki bağlantı katmanı istatistikleri
Android 13 çalıştıran cihazlarda bağlantı katmanı istatistikleri, tek bir arayüz için birden fazla bağlantının kullanımını dikkate almaz. MLO'yu desteklemek için tedarikçi yazılımının, IWifi# getLinkLayerStats_1_6()
HAL API aracılığıyla LinkLayerStats
bildirme işleminde aşağıdaki toplama mantığını uygulaması gerekir. En iyi bağlantı, en yüksek RSSI değerine sahip olan bağlantıdır.
StaLinkLayerStats.iface.beaconRx
: Arayüzde kullanılan en iyi bağlantı için işaretçi sayısını bildirin.StaLinkLayerStats.iface.avgRssiMgmt
: Arayüzde kullanılan en iyi bağlantı içinavgRssiMgmt
değerini raporlayın.StaLinkLayerStats.iface.wmeXxPktStats
(Xx = Vo, Vi, Be,Bk): Arayüzün bağlantıları üzerinden toplanan paket istatistiklerini (toplam) raporlar.StaLinkLayerStats.iface.wmeXxContentionTimeStats
(Xx = Vo, Vi,Be,Bk): Arayüzde kullanılan en iyi bağlantının (en düşük anlaşmazlık süresi istatistikleri) anlaşmazlık süresi istatistiklerini raporlar.
MLO bağlantısını yeniden yapılandırma
Wi-Fi 7 erişim noktasının bağlantılarından biri yeniden amaçlandığında AP, MLO bağlantısı yeniden yapılandırma yoluyla bağlantının kaldırıldığını duyurabilir. İstasyonlar, kalan bağlantılarda yeniden ilişkilendirme yapmadan AP ile sorunsuz bağlantı sağlayabilir.
ISupplicantStaIfaceCallback.aidl
adresindeki kablosuz istemcide bulunan onMloLinksInfoChanged
AIDL arayüzü, bağlantıyı yeniden yapılandırmayı (bağlantının AP'den kaldırılması) destekler.
Kablosuz çerçeve, bir bağlantının kaldırılmasını işlediğinde bağlantı durumu MLO_LINK_STATE_UNASSOCIATED
olarak ayarlanır.
Ardından çerçeve, bağlantı durumu değişikliği için ConnectivityManager.NetworkCallback#onCapabilitiesChanged()
'i tetikler.
WifiInfo#getAffiliatedMloLinks
yöntemi, ilişkili MLO bağlantılarını döndürür. MloLink#getState
yöntemi, bağlantının durumunu döndürür. Bağlantı kaldırılırsa döndürülen bağlantı durumu MLO_LINK_STATE_UNASSOCIATED
olur.
Çip MLO stratejisi
MLO, cihazların aynı anda birden fazla kablosuz bağlantı üzerinden veri gönderip almasına olanak tanır. Bu da düşük gecikme süresi, yüksek bant genişliği ve düşük güç gibi belirli gereksinimleri olan uygulamaların performansını artırabilir. Çip tedarikçileri, mevcut bağlantıların nasıl kullanılacağına dair algoritmalar geliştirebilir.
Ayrıcalıklı uygulamalar, Wifimanager
'daki setMloMode
yöntemini kullanarak bu algoritmaları değiştirebilir ve aşağıdaki modları ayarlayabilir:
MLO_MODE_DEFAULT = 0
MLO_MODE_LOW_LATENCY = 1
MLO_MODE_HIGH_THROUGHPUT = 2
MLO_MODE_LOW_POWER = 3
Çerçeve, MLO modunu ayarlamak için IWifiChip
AIDL arayüzünde setMloMode
kullanır.