Kablosuz bağlantı 7

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 komutunu NL80211_CMD_GET_WIPHY çağırır. 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 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:

API'ler

Uygulamalar, Wi-Fi 7 RTT tabanlı menzil belirleme için aşağıdaki API'leri kullanabilir:

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.

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.

MLO diyagramı

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

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:

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:

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ı

Wi-Fi MLO ağ seçimi

Şekil 2. MLO ağ seçimi.

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:

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:

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:

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.

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)

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.

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.

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.

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.

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:

Uygulamalar, aşağıdaki API'leri kullanarak TID'den bağlantıya eşleme değişiklikleri hakkında bilgi edinebilir:

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

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.

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

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

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.