Wi-Fi 7

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 ister NL80211_CMD_GET_WIPHY. Sürücüden gelen yanıtta NL80211_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:

API'ler

Uygulamalar, Wi-Fi 7 RTT tabanlı mesafe ölçümü için aşağıdaki API'leri kullanabilir:

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.

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.

MLO diyagramı

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.

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:

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:

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ı

Wi-Fi MLO ağ seçimi

Şekil 2. MLO ağ seçimi.

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:

Ç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:

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:

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.

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)

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.

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.

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.

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.

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:

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:

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

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.

API'ler

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:

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 ç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.

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.