Android 13 veya sonraki sürümleri çalıştıran cihazlarda Android, Wi-Fi 7 (IEEE 802.11be) standardını destekler. Bu sayfada, referans ve çoklu bağlantı işlemi (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ümlerde bulunan temel Wi-Fi 7 özellikleri açıklanmaktadır.
Cihaz 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 Kablosuz 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'in yanıtından 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) değerine ayarlanırsa kablosuz bağlantı modülü nl80211 kaynaklı 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 kullanması için cihazın Wi-Fi 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 Wi-Fi 7 olup olmadığını kontrol etmek için çağırabileceği int WifiInfo#getWifiStandard()
API'sini 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 bağlantı modülü ISupplicantStaIface#getConnectionCapabilities()
HAL API'yi ç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 erişim noktasının 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 ön ekiyle ve 320 MHz kanal genişliğiyle API desteği sağlar. Bu sayede, çip tarafından desteklendiğinde RTT aralığında Wi-Fi 7 ile ilgili özelliklerin desteklenmesi sağlanır.
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.
Soft AP'yi başlat
Android, Soft AP'nin Wi-Fi 7 modunda başlatılmasını destekler.
Bu, config_wifiSoftapIeee80211beSupported
yer paylaşımı yapılandırması tarafından yönetilir.
Kablosuz 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, Soft AP bilgilerini raporlamak için SoftApInfo
uygulamasında aşağıdaki yöntemleri (sistem API'leri) kullanabilir.
SoftApInfo#getWifiStandard()
: Soft 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ırsaSoftApInfo#CHANNEL_WIDTH_320MHZ
değerini döndürür.
MLO Wi-Fi 7 özellikleri
Çoklu bağlantı işlemi (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'nin her bağlantıda çalışan birden fazla AP veya STA örneği vardı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()
: Kayışı bağla. 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
: İlişkilendirilmemiş. 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 etkin olmalıdır (bağlantıyla en az bir TID eşlenmiş). Çerçeve, bağlantının güç durumunu izlemediğinden etkin bir bağlantı güç tasarrufu modunda olabilir.
Wi-Fi 7 AP MLO bilgileri tarandı
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.
Wi-Fi modülü şunları 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 Wi-Fi 7 AP-MLD'ye bağlandığında çerçeve, WifiInfo
nesnesinden bağlantının MLO parametrelerini 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ği MAC adresini (cihazın ilişkilendirildiği bağlantı için) döndürür.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 sonda 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 hava yoluyla alınan sonuçları tarar 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ı, AP örnekleri tarafından alınan temel varyant çoklu bağlantısını ve RNR IEs'lerini bildirilen tarama sonuçlarına dahil etmelidir. 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 alabiliyor ve bağlantı kümesinde aynı anda net kanal değerlendirmesi (CCA) yapabiliyorsa bir dizi bağlantı üzerinde eMLSR'yi 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 eşzamanlı olarak ç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ışabilen izin verilen radyo kombinasyonlarını (IWifiChip.aidl
AIDL arayüzü üzerinden) 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 bir listesi bulunmaktadır:
- 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 listesi, 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ın çoklu bağlantı özelliği kullanılabiliyorsa ve çip STR'yi destekliyorsa tahmini işleme hızı puanı, birden çok bağlantıya sahip olan tahmini işleme 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, SSID seçimini tedarikçi yazılımı tarafından bildirildiği şekilde ScanResults
nesnesinde alınan bilgilere göre 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ım tarafından 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ı, örneğin STA MAC adreslerini yönetir (her bağlantı için). 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 sayede, ç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ı sağlanır.
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 Ekim: 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ı, kablosuz bağlantı çerçevesinden giriş almadan bağlantı geçişi yapabilir ve 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 ağ ç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ı etkin durumda kalmalıdır (güç kaydı devre dışı). Bu durumda hangi bağlantının
kurulacağına donanım yazılımı uygulaması karar verir.
Veri yolu
Burada, yukarı bağlantı ve indirme trafiğini yönetmek için tedarikçi firma 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 birden fazla bağlantıdaki trafiği yinelemesini ö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'deki tüm bağlantılar için tek bir API filtresi bulunur.
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 ile bağlantı eşleme
Android 14 veya sonraki sürümleri çalıştıran cihazlarda Wi-Fi 7 AP; işaretçi, durum 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ı bildirdiğinde, Wi-Fi 7 istasyonu, başka bir ilişkilendirme işlemi gerçekleştirmeden, kurulu kalan bağlantıları kullanarak AP ile bağlantıyı sürdürür.
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ı arasında eşleme değişikliği olduğunda çerçeve tarafından tetiklenen ağ geri çağırması.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 ile bağlantı eşleme müzakere özellikleri
Android 14 veya sonraki sürümleri çalıştıran cihazlarda, istasyon ve AP için TID-to-link harita 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-bağlantı eşleme pazarlığı için AIDL arayüzü hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
bölgesindeki FeatureSetMask
konumundadı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, tedarikçiden gelen AP özelliğini mevcut bağlantı özelliğiyle birlikte sorgular.
apTidToLinkMapNegotiationSupported
: AP'nin, TID ile bağlantı arasındaki harita 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 özel ayrıntıları içerir. Kablosuz çerçeve, 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 ağ kullanılabilirliği istatistiklerini güncellemek için düzenli olarak bu API'yi ç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 istatistiklerinde bağlantı başına istatistiklerin toplamı kullanılı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ı, IWifi# getLinkLayerStats_1_6()
HAL API aracılığıyla LinkLayerStats
bildirirken aşağıdaki toplama mantığını uygulamalıdır. 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üz için kullanılan en iyi bağlantıyıavgRssiMgmt
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 kullanıldığında AP, MLO bağlantısını 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ıyı sürdürebilir.
ISupplicantStaIfaceCallback.aidl
adresindeki kablosuz ağ tedarikçisinde bulunan onMloLinksInfoChanged
AIDL arayüzü, bağlantı yeniden yapılandırmayı (AP'nin bağlantının 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()
etiketini 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 sayede düşük gecikme süresi, yüksek bant genişliği ve düşük güç gibi belirli gereksinimleri olan uygulamaların performansı artırılabilir. Ç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.