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 ç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.
Cihazda Wi-Fi 7 desteği
Android çerçevesi, uygulamaların bir cihazın Wi-Fi 7'yi destekleyip desteklemediğini kontrol etmek için ScanResults.WIFI_STANDARD_11BE
bağımsız değişkeniyle çağırabileceği WifiManager#isWifiStandardSupported(int standard)
API'sini içerir.
Bu API çağrıldığında Wi-Fi modülü, config_wifi11beSupportOverride
yapılandırma katmanı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 ayarlanmışsa 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 yalnızca Wi-Fi 7 desteğini döndüren sürücülere sahip olmayan cihaz üreticileri için yararlıdır. - Yer paylaşımı
false
(varsayılan değer) olarak ayarlanmışsa kablosuz ağ modülü nl80211'deki bilgileri kullanır. Kablosuz modülü, nl80211 komutunu çağıran wificond'dan bilgileri isterNL80211_CMD_GET_WIPHY
. 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'de Wi-Fi 7 desteği
Android çerçevesi, taranan 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 Wi-Fi 7'yi desteklemesi gerekmez.
Bu API çağrıldığında, kablosuz modül EHT Capability IE
öğesinin 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 destekliyor demektir.
AOSP WifiTracker
sınıfı, ayrıntılı modda çalışırken kullanıcı arayüzünde bu destek bilgilerini gösterir.
STA bağlantı modu
Android çerçevesi, uygulamaların 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, Wi-Fi 7'yi desteklediğinde STA bağlantı modu Wi-Fi 7 olur. Bağlantı modu Wi-Fi 7 ise API, ScanResults.WIFI_STANDARD_11BE
değerini döndürür.
getWifiStandard
çağrıldığında, Wi-Fi modülü ISupplicantStaIface#getConnectionCapabilities()
HAL API'sini çağırarak modu belirler. Bu HAL API'nin wpa_supplicant
AIDL katmanındaki uygulanması, bağlantı kurulumu sırasında EHT Capability IE
öğesinin hem AssocReq
hem de AssocRsp
içinde olup olmadığını kontrol eder.
Ağ seçimi
Android 13'te ağ seçimi, hangi AP'ye bağlanılacağı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 yararlanabildiğinde Wi-Fi 7 özellikli AP'lerin seçilme olasılığını artırır.
Wi-Fi RTT tabanlı mesafe ölçümü
Android, Wi-Fi RTT için EHT önsözü ve 320 MHz kanal genişliği için API desteği sağlar. Bu, çip tarafından desteklendiği her durumda RTT aralığında Wi-Fi 7 ile ilgili özelliklerin desteklenmesini sağlar.
HAL API'leri
Aşağıdaki HAL API'leri, RTT tabanlı mesafe ölçümü için Wi-Fi 7 özelliklerini destekler:
EHT
: Sabitenum RttPreamble
veenum WifiRatePreamble
WIDTH_320
:enum WifiChannelWidthInMhz
içinde sabitBW_320MHz
:enum RttBw
içinde sabit
API'ler
Uygulamalar, Wi-Fi 7 RTT tabanlı mesafe ölçümü 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 sağlar.
Yazılım erişim noktasını başlatma
Android, Wi-Fi 7 modunda Soft AP başlatmayı destekler.
Bu, config_wifiSoftapIeee80211beSupported
yer paylaşımı yapılandırması tarafından yönetilir.
Kablosuz modülü, config_wifiSoftapIeee80211beSupported
yer paylaşımını kullanarak IHostApd#addAccessPoint()
API çağrısında HwModeParams#enable80211BE
boole değerini ayarlar. Bu değer, hostapd AIDL katmanında hostapd.conf
parametrelerini ayarlamak için kullanılır.
HAL API'leri
hostapd HAL'deki HwModeParams
içinde bulunan enable80211BE
boolean'ı, Wi-Fi 7 modunda Soft AP'nin başlatılmasını destekler.
Yazılımsal erişim noktası bilgilerini bildirme
Android, bildirilen 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ünde bulunan ve IHostapdCallback#onApInstanceInfoChanged()
geri çağırmasında bildirilen ApInfo
içinde kullanılan WIFI_STANDARD_11BE
sabiti, Soft AP bilgilerinin raporlanmasını destekler.
API'ler
Uygulamalar, Soft AP bilgilerini bildirmek için SoftApInfo
'de 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ıyorsaSoftApInfo#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 temel ö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.
1. şekil. MLO diyagramı.
Şekil 1'de gösterildiği gibi, hem AP-MLD hem de STA-MLD, her bağlantıda çalışan birden fazla AP veya STA örneğine sahiptir. Her bağlantının ayrı bir AP veya STA MAC adresi vardır. AP veya STA'da cihazı tanımlamak için bir MLD MAC adresi de bulunur.
MLO bağlantı 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. Bu bağlantı için AP örneğinin BSSID'si.MacAddress getStaMacAddress()
: STA MAC adresi. Bağlantıdaki STA örneği için yerel olarak atanmış MAC adresi.int getChannel()
: Kanalı bağlayın. Bağlantının kanal numarası.int getBand()
: Grubu bağlayın. Bağlantının bantı.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şkilendirilmemiş.MLO_LINK_STATE_IDLE
: Boşta. Bağlantı ilişkilendirilmiş ancak etkin değil (bağlantıyla eşlenmiş bir trafik tanımlayıcısı (TID) yok).MLO_LINK_STATE_ACTIVE
: Etkin. Bağlantı ilişkilendirilmiş ve etkin (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.
Taranan Wi-Fi 7 AP MLO bilgileri
Uygulamalar, kablosuz modülü AP-MLD'den bir ScanResult
nesnesi aldığında bir 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çiye veya yoklama yanıtına dahil edilen çok bağlantılı bilgi öğesini (IE) ayrıştırır.
- Bağlı bağlantı bilgilerinin listesini okumak için işaret veya yoklama yanıtına dahil edilen azaltılmış komşu raporu (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, 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 Wi-Fi modülü, AP'den alınan ScanResult
nesnesindeki 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'sini ç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 (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şkilendirildiği bağlantının bağlantı kimliğini döndürür.List<MloLink> WifiInfo#getAffiliatedMloLinks()
: İlişkili 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. Hem AP hem de STA MAC adresleri herMloLink
nesnesinde sorgulanabilir.
AP-MLD taraması
Tedarikçi yazılımı, aldığı her işaret veya yoklama yanıtı için tarama sonuçlarıyla birlikte kablosuz ağ çerçevesini sağlar. Bu, Wi-Fi çerçevesinin:
- Aynı AP-MLD'den birden fazla
ScanResults
nesne alabilir (AP'nin birden fazla işaret bağlantısı olabilir). - AP-MLD'nin AP bağlantıları için yalnızca kısmi bir tarama sonucu grubu alabilirsiniz. Bunun nedeni, bu bağlantı sinyallerinin bazılarının donanım yazılımı tarafından alınamamasıdır.
Tedarikçi yazılımı yalnızca kablosuz olarak alınan tarama sonuçlarını bildirir ve AP-MLD tarafından reklamı yapılan bağlantılara dayalı olarak tarama sonuçları oluşturmamalıdır (yapay olarak sentezlememelidir).
Tedarikçi yazılımı, bildirilen tarama sonuçlarında AP örneklerinden alınan temel varyantlı çoklu bağlantı ve RNR IE'lerini içermelidir. Tarama sonuçlarında bağlı AP ayrıntıları eksikse tedarikçi yazılımı, yanıt çerçevesinde hedeflenen AP-MLD ile AP'nin özellikler, parametreler ve işlem öğelerinin tamamını veya bir kısmını içerecek şekilde çok bağlantılı araştırma istekleri (araştırma isteği çok bağlantılı öğesi içeren araştırma isteği çerçevesi) gönderebilir.
Gerekirse satıcı yazılımı, ML-probing'i (probe req çerçevesinde probe req varyantı ML IE kullanılarak) tetikleyebilir.
AP-MLD ağ ilişkilendirmesi
Bir cihaz AP-MLD ağına katıldığında, satıcı yazılımı sinyal için seçilen AP bağlantısını (ilişkili bağlantı) kullanır. Satıcı yazılımı, cihaz tarafından desteklenen bağlantıların tümüyle veya bir kısmıyla ilişkilendirilebilir.
Başarılı bir ilişkilendirme sonrasında sürücü, AP-MLD için bir bağlantının BSSID'siyle ISupplicantStaIfaceCallback#onStateChanged()
rapor verir. Sürücü daha sonra, tarama sonuçlarının bu bağlantı için çerçeveye bildirildiği koşuluyla AP-MLD'nin bir bağlantısını seçer.
Ağ puanlaması
Android 14 veya sonraki sürümlerin yüklü olduğu cihazlarda, Android Kablosuz Ağ Seçimi Wi-Fi 7 MLO'yu destekler. Bu durumda Android, MLO için kullanılabilen bağlantı sayısına göre cihaz için en iyi kablosuz ağı seçer.
MLO'yu desteklemek için ağ seçimi algoritması, kablosuz çipindeki 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ı
Aynı anda iletme ve alma (STR), çok bağlantılı işlem için bir kablosuz ortam anlaşmazlığı planı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 iletim ve alım yapabilmesi 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 verici sıra numarası (SN) ve birden fazla bağlantı iletiminin aynı erişim kategorisine (AC) sahip olması durumunda farklı bağlantılara ayrılan veri iletimi için ortak bir alan paylaşır.
Kullanılan maksimum STR bağlantı sayısı, çip tarafından desteklenen maksimum radyo sayısından farklı olabilir. Şekil 2'deki örnekte maksimum STR link 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ı
Çekişme şeması olan Gelişmiş Çoklu Bağlantı Tek Radyo (eMLSR) kullanılarak tek bir radyoda birden fazla bağlantı çalıştırılabilir. Ç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 bağlantı kümesi üzerinden eMLSR kullanır. Ancak MLD, her iletim fırsatı (TXOP) döneminde dinamik olarak seçilen bağlantı olmak üzere, verileri yalnızca tek bir bağlantı üzerinden iletir veya alır.
Bir 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ışabilecek izin verilen radyo kombinasyonlarını almak için çipe (IWifiChip.aidl
AIDL arayüzü aracılığıyla) sorgu gönderir. Bu bilgilerden yola çıkarak çerçeve, olası eşzamanlı bant kombinasyonlarını türetir. 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 listesi aynı MLD MAC adresine sahip üyeler tarafından gruplandırılır. Maksimum öngörülen ç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 çoklu bağlantı özelliğine sahipse ve çip STR'yi destekliyorsa öngörülen işleme hızı puanı, çoklu bağlantı öngörülen işleme hızı puanıyla değiştirilir. Bu, ağ seçimi sırasında MLO adaylarına destek sağlar.
AP-MLD ağına katılırken çerçeve, satıcı yazılımı tarafından bildirilen ScanResults
nesnesinde alınan bilgilere göre SSID seçimini yapar. Çerçeve tarafından SSID seçimi yapıldıktan sonra, satıcı yazılımı, ilişkilendirme için kullanılacak en iyi AP'nin (veya AP bağlantısının) BSSID'sini seçmekten 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 olmayan bir cihazın kendi MAC adresini işlediği şekilde işlenir.
MAC adresi, kullanıcının seçimine 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ı, örnek STA MAC adreslerini (her bağlantı için) yönetir. Bir cihaz bir AP ile ilişkilendirildiğinde, tedarikçi yazılımı her ilişkilendirilmiş 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 bir işlevi olmalıdır:
- Kablosuz çerçeve tarafından ayarlanan STA-MLD MAC adresi.
- Bağlantı kimliği (AP'den alınır)
Bu nedenle, çerçeve aynı MLD MAC adresini yeniden kullanıyorsa satıcı, aynı örnek başına MAC adreslerini yeniden kullanmalıdır ve bunun tersi de geçerlidir. 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.
Bağlantı başına STA MAC adresi ataması için örnek bir algoritma aşağıda verilmiştir (satıcılar, algoritma ölçütlerini karşılayan herhangi bir algoritmayı uygulayabilir):
- Sekizli 0: Yerel olarak yönetilen bitin ayarlandığından emin olun.
- Sekizli 1-4: STA-MLD MAC adresiyle aynıdır.
- Sekizli 5: Per-STA = (STA-MLD + bağlantı kimliği + 1) MOD (256)
Çoklu bağlantı işleme
Tedarikçi üretici yazılımı, bağlantı geçişi yapabilir ve etkinleştirme veya devre dışı bırakma için bağlantıların güç tasarrufu durumunu Wi-Fi çerçevesinden giriş almadan yönetebilir.
Bağlantı durumu değiştiğinde kablosuz ağ çerçevesi bildirim beklemez.
Güç tasarrufu durumunu yönetme
Güç tasarrufu durumu, kablosuz bağlantı çerçevesinde varsayılan olarak etkindir. Güç tasarrufu durumunda, satıcı üretici yazılımı, trafik kalıplarına ve bağlantı etkinleştirme veya devre dışı bırakma kararlarına göre tek tek bağlantıların güç tasarrufu durumunu yönetir.
Ancak Wi-Fi çerçevesi, ISupplicantStaIface::setPowerSave(false)
HAL API'si çağrılarak güç tasarrufu durumunun devre dışı bırakılmasını zorlayabilir. Güç tasarrufu durumu çerçeve tarafından devre dışı bırakılırsa satıcı 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, yukarı bağlantı ve indirme trafiğini işlemek için tedarikçi üretici yazılımı uygulamasını açıklar.
Yükleme trafiği
Donanım yazılımı, dahili uygulamasına bağlı olarak yukarı bağlantı trafiğini bir veya daha fazla bağlantıya yönlendirir. Tedarikçi yazılımı, trafik kalıplarına göre yük dengeleme, çoğaltma veya trafik toplama işlemlerinin ne zaman yapılacağına karar verir. Aşağıdaki durumlarda yazılımın trafiği birden fazla bağlantıya kopyalamasını öneririz:
- Düşük gecikme modu,
IWifiChip#setLatencyMode()
HAL API'si aracılığıyla ayarlandığında. - Kullanıcı önceliği 6 ve 7 olan trafik olduğunda.
İndirme bağlantısı trafiği
Donanım yazılımı, MAC başlığının (hedef) STA başına MAC adresini MLD-STA MAC adresiyle, MAC başlığının (kaynak) AP başına MAC adresini ise MLD-AP MAC adresiyle değiştirmelidir. APF filtre komutlarında MLD MAC adreslerine dayalı filtreler olduğundan, donanım yazılımı bu MAC adresi yerine koyma işlemini APF filtresinden geçirmeden önce gerçekleştirmelidir. Bir 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ında, aynı arayüzün bağlantıları için birden fazla radyo ayırmaya kıyasla öncelik verilmelidir. Aynı anda gerçekleşen senaryolar da hangisi önce olursa olsun 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 şu durumlarda kullanılır:
- Yük dengeleme, toplama veya çoğaltma için donanım yazılımı kararına göre MLO gerekir.
- MLO kullanılabilir. Yani başka bir arayüz tarafından radyo gerekmez.
TID-to-link eşleme
Android 14 veya sonraki sürümlerin yüklü olduğu cihazlarda, Wi-Fi 7 AP, bağlantılardan birinin geçici olarak devre dışı bırakıldığını beacon, probe response ve association response çerçevelerinde iletilen bir TID-to-link eşleme öğesi aracılığıyla duyurduğunda Wi-Fi 7 istasyonu, başka bir ilişkilendirme işlemi yapmadan, kurulan bağlantılardan kalanları kullanarak AP ile bağlantıya devam eder.
Android 13 veya önceki sürümlerin yüklü olduğu cihazlarda, ilişkili bağlantı bir TID'ye bağlı olmasa bile TID-bağlantı eşlemesi nedeniyle bağlantı durumu değiştiğinde Wi-Fi çerçevesi bildirim alınmasını desteklemez.
Aidl HAL
Wi-Fi supplicant, aşağıdaki AIDL arayüzleri aracılığıyla TID-to-link eşleme değişikliklerini Wi-Fi çerçevesine 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 bağlantı oluşturmak için kullanılan TID'lerle ilgili değişiklikler hakkında bilgi edinebilir:
ConnectivityManager.NetworkCallback.onCapabilitiesChanged()
: TID-to-link 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,MLO_LINK_STATE_ACTIVE
veyaMLO_LINK_STATE_IDLE
olarak döndürür.
TID-to-link eşleme müzakeresi özellikleri
Android 14 veya sonraki sürümleri çalıştıran cihazlarda, istasyon ve AP için TID'den bağlantı haritasına müzakere özelliklerini almak üzere aşağıdaki API'ler kullanılabilir.
Çip özelliği
Aşağıdaki arayüzler, TID-to-link eşleme anlaşması için çip özelliğini destekler.
AIDL HAL
TID-to-link eşleme görüşmesi için AIDL arayüzü FeatureSetMask
in hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
konumundadır. T2LM_NEGOTIATION = 1 << 8
özelliği, çipin TID-to-link eşlemeyi desteklediğini gösterir.
API'ler
WifiManager.isTidToLinkMappingNegotiationSupported()
: TID-to-link eşleme görüşmesini destekleyen çipi döndürür.
Borç hesabı işlevi
Aşağıdaki arayüzler, TID-to-link eşleme anlaşması için AP özelliğini destekler.
AIDL HAL
Çerçeve, AP özelliğini supplicant'tan mevcut bağlantı özelliğiyle birlikte sorgular.
apTidToLinkMapNegotiationSupported
: Bir AP'nin, TID'den bağlantı haritası oluşturma özelliğini destekleyip desteklemediğini kontrol eder.
API'ler
WifiInfo.isApTidToLinkMappingNegotiationSupported()
: AP'nin TID-to-link eşleme görüşmesini 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 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 yoklar. Android 14 veya sonraki sürümlerin yüklü olduğu 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ında MLO'yu destekler.
Bağlantıya özel 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, Wi-Fi 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
'de 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ı (MLO değil) için
android.net.wifi.WifiUsabilityStatsEntry
API'leri, 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 istatistiklerde en yüksek RSSI'ye sahip bağlantının verileri kullanılı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 satıcı yazılımı, LinkLayerStats
raporlarken IWifi# getLinkLayerStats_1_6()
HAL API'si aracılığıyla aşağıdaki toplama mantığını uygulamalıdır. En iyi bağlantı, en yüksek RSSI'ye sahip bağlantıdır.
StaLinkLayerStats.iface.beaconRx
: Arayüz için kullanılan en iyi bağlantının işaretçi sayısını bildirin.StaLinkLayerStats.iface.avgRssiMgmt
: Arayüz için kullanılan en iyi bağlantıavgRssiMgmt
raporu.StaLinkLayerStats.iface.wmeXxPktStats
(Xx = Vo, Vi, Be,Bk): Arayüz bağlantılarındaki toplu paket istatistiklerini (toplam) raporlayın.StaLinkLayerStats.iface.wmeXxContentionTimeStats
(Xx = Vo, Vi, Be,Bk): Arayüzde kullanılan en iyi bağlantının (en düşük çekişme süresi istatistikleri) çekişme süresi istatistiklerini bildirin.
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ı yeniden yapılandırması aracılığıyla bağlantının kaldırıldığını duyurabilir. İstasyonlar, kalan bağlantılarda yeniden ilişkilendirme olmadan AP ile kesintisiz bağlantı sağlayabilir.
onMloLinksInfoChanged
ISupplicantStaIfaceCallback.aidl
konumundaki Wi-Fi supplicant'ta bulunan AIDL arayüzü, bağlantı yeniden yapılandırmasını (bağlantının AP'den kaldırılması) destekler.
Kablosuz ağ çerçevesi 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()
tetiklenir.
WifiInfo#getAffiliatedMloLinks
yöntemi, bağlı 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.
Chip MLO stratejisi
MLO, cihazların aynı anda birden fazla kablosuz bağlantıda veri göndermesine ve almasına olanak tanır. Bu da düşük gecikme, 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ğıyla ilgili algoritmalar geliştirebilir.
Ayrıcalıklı uygulamalar, Wifimanager
içindeki 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.