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.
Cihaz Wi-Fi 7 desteği
Android çerçevesi, bir cihazın Wi-Fi 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'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 ayarlanırsa nl80211'den gelen yanıta bakılmaksızın 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 kullanışlıdır. - Yer paylaşımı
false
(varsayılan değer) olarak ayarlanmışsa Wi-Fi modülü nl80211'deki bilgileri kullanır. Wi-Fi modülü, nl80211 komutunuNL80211_CMD_GET_WIPHY
çağıran wificond'dan bilgi ister. Sürücünün yanıtındaNL80211_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, uygulamaların taranan bir erişim noktasının (AP) Wi-Fi 7'yi destekleyip desteklemediğini kontrol etmek için arayabileceğ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 gerekli değildir.
Bu API çağrıldığında Wi-Fi modülü, bağlantı taramasının döndürülen sonuçlarında EHT Capability IE
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örüntüler.
STA bağlantı modu
Android çerçevesi, uygulamaların geçerli istasyon (STA) bağlantı modunun Wi-Fi 7 olup olmadığını kontrol etmek için arayabileceği int WifiInfo#getWifiStandard()
API'sini içerir. Hem cihaz hem de bağlı olduğunda STA bağlantı modu Wi-Fi 7'dir. AP, Wi-Fi 7'yi destekler. 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'sinin wpa_supplicant
AIDL katmanında uygulanması, bağlantı kurulumu sırasında EHT Capability IE
hem AssocReq
hem de AssocRsp
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 verimidir. 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 yeteneklerini kullanır:
- Wi-Fi 7 (802.11be) desteği
- 320 MHz kanal genişliği desteği
Bu yeteneklerin ThroughputPredictor
mantığına dahil edilmesi, cihazın bu özelliklerden yararlanabildiği durumlarda Wi-Fi 7 özellikli AP'leri seçme şansını artırır.
Wi-Fi RTT tabanlı menzil
Android, EHT başlangıcı için API desteği ve Wi-Fi RTT için 320 MHz kanal genişliği sağlar. Bu, çip tarafından desteklendiğinde RTT aralığında Wi-Fi 7 ile ilgili özelliklerin desteklenmesini sağlar.
HAL API'leri
Aşağıdaki HAL API'leri, RTT tabanlı menzil için Wi-Fi 7 özelliklerini destekler:
-
EHT
:enum RttPreamble
veenum WifiRatePreamble
sabit -
WIDTH_320
:enum WifiChannelWidthInMhz
sabit -
BW_320MHz
:enum RttBw
sabit
API'ler
Uygulamalar, Wi-Fi 7 RTT tabanlı menzil için aşağıdaki API'leri kullanabilir:
-
ScanResult#PREAMBLE_EHT
-
ResponderConfig#PREAMBLE_EHT
(SystemApi)
Yumuşak AP
Android, Soft AP'de Wi-Fi 7'yi destekler ve aşağıdaki özellikleri sağlar.
Soft AP'yi başlatın
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.
Wi-Fi modülü, IHostApd#addAccessPoint()
API çağrısında boolean HwModeParams#enable80211BE
ayarlamak için config_wifiSoftapIeee80211beSupported
kaplaması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
enable80211BE
boolean'ı, Soft AP'nin Wi-Fi 7 modunda başlatılmasını destekler.
Soft AP bilgilerini bildirme
Android, bildirilen Soft AP bilgilerine Wi-Fi 7 ve 320 MHz kanal genişliği bilgilerini dahil etmek için API desteği içerir.
HAL API'leri
IHostapdCallback#onApInstanceInfoChanged()
geri çağrısında bildirilen ApInfo
kullanılan, hostapd HAL'deki Generation.aidl
AIDL arayüzündeki WIFI_STANDARD_11BE
sabiti, Soft AP bilgilerinin raporlanmasını destekler.
API'ler
Uygulamalar, Soft AP bilgilerini raporlamak için SoftApInfo
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 ana özelliktir. MLO, Wi-Fi 7'de eş zamanlı veya eş zamanlı olmayan şekilde çalışan çoklu bağlantı 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, 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 ayrıca cihazı tanımlamak için bir MLD MAC adresine sahiptir.
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 duyurulan 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 atanan MAC adresi. -
int getChannel()
: Bağlantı kanalı. Bağlantının kanal numarası. -
int getBand()
: Bağlantı bandı. Bağlantının grubu. 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şkilidir ancak etkin değildir (bağlantıya hiçbir trafik tanımlayıcısı (TID) eşlenmemiştir). -
MLO_LINK_STATE_ACTIVE
: Etkin. Bağlantı ilişkilendirilmiştir ve etkindir (bağlantıya en az bir TID eşlenmiştir). Etkin bir bağlantı, çerçevenin bağlantının güç durumunu izlememesi nedeniyle güç tasarrufu modunda olabilir.
-
Taranan Wi-Fi 7 AP MLO bilgileri
Wi-Fi modülü AP-MLD'den bir ScanResult
nesnesi aldığında uygulamalar bir Wi-Fi 7 AP MLD'ye ilişkin MLO parametrelerini alabilir. AOSP WifiTracker
ayrıntılı modda çalışırken MLO parametrelerini görüntüler.
Wi-Fi modülü aşağıdakileri yaparak MLO bilgilerini toplar:
- AP MLD MAC adresini ve mevcut bağlantı kimliğini okumak için işaret veya prob yanıtında yer alan çoklu bağlantı bilgi öğesini (IE) ayrıştırır.
- Bağlı bağlantı bilgilerinin listesini okumak için işaret veya araştırma yanıtında yer alan azaltılmış komşu raporu (RNR) IE'yi ayrıştırır.
API'ler
Taranan AP MLO bilgilerini almak için uygulamalar aşağıdaki API'leri kullanabilir:
-
ScanResult#BSSID
: AP örneği 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'un alındığı bağlantının bağlantı kimliğini döndürür. -
List<MloLink> ScanResult#getAffiliatedMloLinks()
: ScanResult'un alındığı bağlantı da dahil olmak üzere AP-MLD tarafından tanıtılan tüm bağlantılar içinMloLink
nesnelerinin bir listesini döndürür.
Bağlı Wi-Fi 7 AP MLO bilgileri
Bir cihaz bir Wi-Fi 7 AP-MLD'ye bağlandığında çerçeve, bağlantının MLO parametrelerini WifiInfo
nesnesinden toplar. AOSP WifiTracker
nesnesi ayrıntılı modda çalışırken bu bilgiyi görüntüler.
Cihaz AP-MLD'ye bağlandığında, Wi-Fi modülü MLO bilgilerini AP'den alınan ScanResult
nesnesinden kopyalar. Modül daha sonra hem AP hem de STA için her bağlantının MAC adreslerini okumak ve ilgili bağlantıların durumunu güncellemek için ISupplicantStaIface#getConnectionMloLinksInfo()
HAL API'sini çağırır.
API'ler
MLO bağlantı bilgilerini almak için uygulamalar aşağıdaki API'leri kullanabilir:
-
WifiInfo#getBSSID()
: AP örneğinin MAC adresini döndürür (cihazın ilişkilendirildiği bağlantı için). -
MacAddress WifiInfo#getApMldMacAddress()
: AP'nin MLD MAC adresini döndürür. -
int WifiInfo#getApMloLinkId()
: STA'nın AP ile ilişkilendirildiği bağlantının bağlantı kimliğini döndürür. -
List<MloLink> WifiInfo#getAffiliatedMloLinks()
: İlgili bağlantı da dahil olmak üzere AP-MLD tarafından tanıtılan tüm bağlantılar içinMloLink
nesnelerinin bir listesini döndürür. Hem AP hem de STA MAC adresleri herMloLink
nesnesinde sorgulanabilir.
AP-MLD taraması
Satıcı yazılımı, Wi-Fi çerçevesine aldığı her işaret veya prob yanıtı için tarama sonuçlarını sağlar. Bu, Wi-Fi çerçevesinin şu anlama geldiği anlamına gelir:
- Aynı AP-MLD'den birden fazla
ScanResults
nesnesi alınabilir (çünkü AP birden fazla işaret bağlantısına sahip olabilir). - Bu bağlantı sinyallerinden bazıları ürün yazılımı tarafından alınamayabileceğinden, bir AP-MLD'nin AP bağlantıları için tarama sonuçlarının yalnızca kısmi bir kümesini alabilir.
Satıcı yazılımı yalnızca kablosuz olarak alınan tarama sonuçlarını raporlar ve AP-MLD tarafından reklamı yapılan bağlantılara dayalı olarak tarama sonuçları oluşturmamalıdır (yapay olarak sentezlememelidir).
Satıcı yazılımı, raporlanan tarama sonuçlarına AP örneklerinden alınan temel değişken çoklu bağlantı ve RNR IE'leri dahil etmelidir. Tarama sonuçlarında bağlı AP ayrıntıları eksikse satıcı yazılımı, yeteneklerin, parametrelerin ve operasyon öğelerinin tamamını veya bir kısmını dahil etmek için çoklu bağlantı araştırma istekleri (bir araştırma İsteği çoklu bağlantı öğesi içeren araştırma istek çerçevesi) gönderebilir Yanıt çerçevesinde hedeflenen AP-MLD ile AP'nin.
Satıcı yazılımı gerekirse ML incelemeyi tetikleyebilir (arama istek çerçevesindeki araştırma istek değişkeni ML IE'yi kullanarak).
AP-MLD ağ ilişkisi
Bir cihaz bir AP-MLD ağına katıldığında satıcı yazılımı, sinyalleşme 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ü veya bir kısmı ile ilişkilendirilebilir.
Başarılı bir ilişkilendirme sonrasında sürücü, AP-MLD için bir bağlantının BSSID'si ile ISupplicantStaIfaceCallback#onStateChanged()
ı bildirir. Sürücü daha sonra tarama sonuçlarının bu bağlantı için çerçeveye bildirilmesi koşuluyla AP-MLD'nin bir bağlantısını seçer.
Ağ puanlaması
Android 14 veya üstünü çalıştıran cihazlar için Android Wi-Fi Ağı Seçimi , Wi-Fi 7 MLO'yu destekler. Bu, Android'in MLO için mevcut bağlantı sayısına göre cihaz için en iyi Wi-Fi ağını seçtiği anlamına gelir.
Ağ seçim algoritması, MLO'yu desteklemek için Wi-Fi yongasının aşağıdaki MLO yeteneklerini 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ı gönderme ve alma (STR), çoklu bağlantı işlemine yönelik bir Wi-Fi ortamı çekişme şemasıdır. Farklı bağlantılar arasındaki sinyal izolasyonu, 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'dan ve eski çift bantlı çift eşzamanlı (DBDC) STA'dan farklıdır. Bir STA MLD'ye bağlı STA'lar, birden fazla bağlantı iletiminin aynı erişim kategorisine (AC) sahip olması durumunda, ortak bir verici sıra numarasını (SN) ve farklı bağlantılara tahsis edilen veri iletimi için ortak bir alanı 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ı sayısı 2'dir.
Aşağıdaki AIDL HAL arayüzleri, maksimum STR bağlantı sayısını ve maksimum sayıda ilişkilendirme bağlantısı sayımı yeteneklerini 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ı Tek Radyo (eMLSR) çekişme şemasını kullanarak birden fazla bağlantı tek bir radyoda çalışabilir. Çok bağlantılı bir cihaz, belirli temel kontrol çerçevelerini alabiliyor ve bağlantı kümesi üzerinde eş zamanlı olarak net kanal değerlendirmesi (CCA) gerçekleştirebiliyorsa, bir dizi bağlantı üzerinden eMLSR'yi kullanır. Bununla birlikte, MLD aynı anda yalnızca bir bağlantı (her iletim fırsatı (TXOP) döneminde dinamik olarak seçilen bağlantı) üzerinden veri 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 verim ve daha düşük gecikme süresi (tek bağlantılı eski istasyonla karşılaştırıldığında) 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ı sayısı 3'tür.
Aşağıdaki AIDL HAL arayüzleri maksimum ilişkilendirme bağlantı sayımı ö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ü aracılığıyla) elde etmek için çipi sorgular. Bu bilgiden, çerçeve olası eş zamanlı bant kombinasyonlarını türetmektedir. Aşağıda eşzamanlı bant kombinasyonlarının (GHz) örnek bir listesi verilmiştir:
- 2.4
- 5
- 6
- 2,4x5
- 2,4x6
- 5x6
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 çoklu bağlantı çıkış puanı, maksimum STR bağlantı sayısına ve çip tarafından desteklenen eşzamanlı bant kombinasyonlarına dayalı olarak her grup için hesaplanır. Aday çoklu bağlantı yeteneğine sahipse ve çip STR'yi destekliyorsa, tahmin edilen üretim puanı, çoklu bağlantıya dayalı üretim puanıyla değiştirilir. Bu, ağ seçimi sırasında MLO adaylarına destek sağlar.
Bir AP-MLD ağına katılırken çerçeve, satıcı yazılımı tarafından bildirilen ScanResults
nesnesinde alınan bilgilere dayanarak SSID seçimini gerçekleştirir. Çerçeve tarafından SSID seçimi üzerine 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 yönetimi
Bu bölümde cihazın 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
Wi-Fi çerçevesi cihazın MLD MAC adresini yönetir. MLD MAC adresi, MLD olmayan bir cihazın kendi MAC adresini işlemesiyle aynı ş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
Satıcı yazılımı, örnek STA MAC adreslerini (her bağlantı için) yönetir. Bir cihaz bir AP ile ilişkilendirdiğinde satıcı yazılımı, ilişkili her bağlantı için bir örnek MAC adresi atar.
Satıcı yazılımı, algoritmasına dayalı olarak bağlantı başına MAC adresleri atar. Algoritma tekrarlanabilir olmalı ve aşağıdakilerin bir fonksiyonu olmalıdır:
- Wi-Fi çerçevesi tarafından belirlenen STA-MLD MAC adresi.
- Bağlantı Kimliği (AP'den alındı)
Bu, çerçevenin aynı MLD MAC adresini yeniden kullanması durumunda satıcının aynı ilişkili örnek başına MAC adreslerini yeniden kullanması gerektiği anlamına gelir; bunun tersi de geçerlidir. Bu, çerçeve tarafından oluşturulan STA-MLD adresinin bir SSID için kalıcı olması durumunda, STA başına MAC adreslerinin de kalıcı olmasını garanti eder.
Aşağıda, bağlantı başına STA MAC adresi ataması için örnek bir algoritma verilmiştir (satıcılar, algoritma kriterlerini karşılayan herhangi bir algoritmayı uygulayabilir):
- Sekizli 0: Yerel olarak yönetilen bitin ayarlandığından emin olun
- 1-4 Sekizli: STA-MLD MAC Adresiyle aynı
- Sekizli 5: STA başına = (STA-MLD + bağlantı kimliği + 1) MOD (256)
Çoklu bağlantı yönetimi
Satıcının ürün yazılımı, Wi-Fi çerçevesinden giriş olmadan bağlantı değiştirme işlemini gerçekleştirebilir ve etkinleştirme veya devre dışı bırakma için bağlantıların güç tasarrufu durumunu yönetebilir.
Wi-Fi çerçevesi, bağlantı durumu değiştirildiğinde bir bildirim beklemez.
Güç tasarrufu durumunun yönetimi
Güç tasarrufu durumu, Wi-Fi çerçevesinde varsayılan olarak etkindir. Güç tasarrufu durumunda satıcı ürün yazılımı, trafik modellerine ve bağlantı etkinleştirme veya devre dışı bırakma kararlarına dayalı olarak ayrı bağlantıların güç tasarrufu durumunu yönetir.
Ancak Wi-Fi çerçevesi, ISupplicantStaIface::setPowerSave(false)
HAL API'sini çağırarak güç tasarrufu durumunu devre dışı bırakmaya zorlayabilir. Güç tasarrufu durumu çerçeve tarafından devre dışı bırakılırsa satıcı ürün yazılımının en az bir bağlantıyı aktif tutması gerekir (güç tasarrufu devre dışı). Bu durumda, bellenim uygulaması hangi bağlantının ayarlanacağına karar verir.
Veri yolu
Bu, yukarı bağlantı ve indirme trafiğini yönetmek için satıcının ürün yazılımı uygulamasını açıklar.
Yukarı bağlantı trafiği
Ürün yazılımı, dahili uygulamasına bağlı olarak yukarı bağlantı trafiğini bir (veya daha fazla) bağlantıya yönlendirir. Satıcı ürün yazılımı, trafik modellerine göre trafiğin yük dengelemesinin, çoğaltılmasının veya toplanmasının ne zaman yapılacağına karar verir. Aşağıdaki durumlarda ürün yazılımı trafiğinin birden çok bağlantıya kopyalanmasını öneririz:
- Düşük gecikme modu
IWifiChip#setLatencyMode()
HAL API aracılığıyla ayarlandığında. - Kullanıcı önceliği 6 ve 7 olan trafik olduğunda.
Aşağı bağlantı trafiği
Ürün yazılımı, MAC başlığının (hedef) STA başına MAC adresini MLD-STA MAC ile ve MAC başlığının (kaynak) AP başına MAC adresini MLD-AP MAC adresiyle değiştirmelidir. APF filtre komutlarının MLD MAC adreslerini temel alan filtreleri olduğundan, ürün yazılımının APF filtresinden geçmeden önce bu MAC adresi değişimini gerçekleştirmesi gerekir. 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 bir radyonun kullanıldığı eşzamanlılık senaryoları, aynı arayüzün bağlantıları için birden fazla radyonun tahsis edilmesine göre önceliğe sahip olmalıdır. Eşzamanlılık senaryoları, hangisi önce gelirse gelsin MLO'ya göre öncelikli olmalıdır. Tek bir arayüz için birden fazla bağlantı kullanmak fırsatçılıktır; bu, birden fazla bağlantının yalnızca aşağıdaki durumlarda kullanıldığı anlamına gelir:
- Yük dengeleme, toplama veya çoğaltma için ürün yazılımı kararına bağlı olarak MLO gereklidir .
- MLO mevcuttur , yani başka bir arayüz için radyoya gerek yoktur.
TID-bağlantı eşlemesi
Android 14 veya üstünü çalıştıran cihazlar için, Wi-Fi 7 AP, işaret, prob yanıtı ve ilişkilendirme yanıt çerçevelerinde iletilen bir TID-bağlantı eşleme öğesi aracılığıyla bağlantılardan birinin geçici olarak devre dışı bırakıldığını duyurduğunda, Wi-Fi 7 istasyon, başka bir ilişkilendirme gerçekleştirmeden, kurulan kalan bağlantıları kullanarak AP ile bağlantıyı sürdürür.
Android 13 veya daha düşük sürümleri çalıştıran cihazlarda Wi-Fi çerçevesi, ilgili bağlantı bir TID'ye bağlı olmasa bile TID-bağlantı eşlemesi nedeniyle bağlantı durumu değiştiğinde bildirim almayı desteklemez.
AIDL HAL
Wi-Fi talep sahibi, aşağıdaki AIDL arayüzleri aracılığıyla TID-bağlantı 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 TID-bağlantı eşleme değişiklikleri hakkında bilgi alabilir:
-
ConnectivityManager.NetworkCallback.onCapabilitiesChanged()
: TID-bağlantı eşleme değişikliği olduğunda çerçeve tarafından tetiklenen ağ geri çağrısı. -
WifiInfo#getAssociatedMloLinks()
: İlişkili MLO bağlantılarını döndürür. -
MloLink#getState()
: Bağlantının durumunu döndürür:MLO_LINK_STATE_ACTIVE
veyaMLO_LINK_STATE_IDLE
.
TID'den bağlantıya haritalama müzakere yetenekleri
Android 14 veya üstünü çalıştıran cihazlarda, istasyon ve AP için TID'den bağlantıya harita anlaşması yeteneklerini elde etmek amacıyla aşağıdaki API'ler mevcuttur.
Çip yeteneği
Aşağıdaki arayüzler TID-bağlantı eşleme anlaşması için çip özelliğini destekler.
AIDL HAL
TID-bağlantı eşleme anlaşması için AIDL arayüzü hardware/interfaces/wifi/aidl/android/hardware/wifi/IWifiChip.aidl
adresindekiFeatureSetMask'ta FeatureSetMask
. T2LM_NEGOTIATION = 1 << 8
yeteneği, çipin TID-bağlantı eşlemesini desteklediğini gösterir. API'ler
-
WifiManager.isTidToLinkMappingNegotiationSupported()
: TID-bağlantı eşleme anlaşmasını destekleyen çipi döndürür.
Erişim noktası yeteneği
Aşağıdaki arayüzler TID-bağlantı eşleme anlaşması için AP özelliğini destekler.
AIDL HAL
Çerçeve, istekte bulunanın AP yeteneğini mevcut bağlantı yeteneğiyle birlikte sorgular.
-
apTidToLinkMapNegotiationSupported
: Bir AP'nin TID-bağlantı haritası anlaşması yeteneğini destekleyip desteklemediğini kontrol eder.
API'ler
-
WifiInfo.isApTidToLinkMappingNegotiationSupported()
: AP'nin TID-bağlantı eşleme anlaşması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 Wi-Fi bağlantısına özgü ayrıntıları içerir. Wi-Fi çerçevesi, en iyi ağı seçmek veya bağlı ağın kalitesini değerlendirmek için periyodik olarak bağlantı katmanı istatistiklerini ve RSSI'yi yoklar. Android 14 veya üstünü çalıştıran cihazlar için bağlantı katmanı istatistikleri çoklu bağlantı desteğini içerir. Wi-Fi 7'yi desteklemek için Android, hem bağlantı katmanı istatistiklerinde hem de sinyal yoklamada 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, Wi-Fi kullanılabilirlik istatistiklerini güncellemek için periyodik olarak bu API'yi çağırır.
Aşağıdaki bağlantıya özgü API'ler android.net.wifi.WifiUsabilityStatsEntry
mevcuttur.
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)
Kullanılabilir bağlantı kimliklerini sorgulamak için uygulamalar android.net.wifi.WifiUsabilityStatsEntry#getLinkIds()
yöntemini çağırabilir.
Tek bağlantı için (MLO değil) android.net.wifi.WifiUsabilityStatsEntry
API'ler, MLO bağlantıları için toplu istatistikleri döndürür. Toplama kriterleri aşağıdadır:
Aşağıdaki toplu paket istatistikleri, bağlantı başına istatistiklerin toplamını kullanır:
public long getTotalTxSuccess() public long getTotalTxRetries() public long getTotalTxBad() public long getTotalRxSuccess() public int getRxLinkSpeedMbps()
Aşağıdaki istatistikler, en yüksek RSSI'ye sahip bağlantıdaki verileri kullanır:
public int getRssi() public int getLinkSpeedMbps() public long getTotalBeaconRx() public int getTimeSliceDutyCycleInPercent() public ContentionTimeStats getContentionTimeStats(@WmeAccessCategory int ac) public List<RateStats> getRateStats()
Android 13'teki bağlantı katmanı istatistikleri
Android 13 çalıştıran cihazlarda bağlantı katmanı istatistikleri, tek bir arayüz için birden fazla bağlantının kullanımını hesaba katmaz. MLO'yu desteklemek için satıcı yazılımının, LinkLayerStats
IWifi# getLinkLayerStats_1_6()
HAL API'si aracılığıyla bildirirken aşağıdaki toplama mantığını uygulaması gerekir. En iyi bağlantı, en yüksek RSSI'ye sahip olan bağlantıdır.
-
StaLinkLayerStats.iface.beaconRx
: Arayüz için kullanılan en iyi bağlantının işaret sayısını bildirin. -
StaLinkLayerStats.iface.avgRssiMgmt
: Arayüz için kullanılan en iyi bağlantı içinavgRssiMgmt
rapor edin. -
StaLinkLayerStats.iface.wmeXxPktStats
(Xx = Vo, Vi, Be,Bk): Arayüz bağlantıları üzerinden toplu paket istatistiklerini (toplam) raporlayın. -
StaLinkLayerStats.iface.wmeXxContentionTimeStats
(Xx = Vo, Vi, Be,Bk): Arayüzde kullanılan en iyi bağlantı için çekişme süresi istatistiklerini rapor edin (en düşük çekişme süresi istatistikleri).
MLO bağlantısının yeniden yapılandırılması
Wi-Fi 7 erişim noktasının bağlantılarından biri başka bir amaca uygun hale getirildiğinde AP, MLO bağlantısının yeniden yapılandırılması yoluyla bağlantının kaldırıldığını duyurabilir. İstasyonlar, kalan bağlantılarda yeniden ilişkilendirme olmadan AP ile kesintisiz bağlantıyı sürdürebilir.
ISupplicantStaIfaceCallback.aidl
adresindeki Wi-Fi sağlayıcısında bulunan onMloLinksInfoChanged
AIDL arayüzü, bağlantının yeniden yapılandırılmasını destekler (bağlantının AP tarafından kaldırılması).
Wi-Fi çerçevesi bir bağlantının kaldırılmasını işlediğinde bağlantı durumu MLO_LINK_STATE_UNASSOCIATED
olarak ayarlanır. Çerçeve daha sonra bir bağlantı durumu değişikliği için ConnectivityManager.NetworkCallback#onCapabilitiesChanged()
öğesini tetikler.
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.
Çip MLO stratejisi
MLO, cihazların aynı anda birden fazla Wi-Fi bağlantısı üzerinden veri gönderip almasına olanak tanır; bu da düşük gecikme, yüksek bant genişliği ve düşük güç gibi belirli gereksinimlere sahip uygulamaların performansını artırabilir. Chip satıcıları mevcut bağlantıların nasıl kullanılacağına dair algoritmalar geliştirebilirler.
Ayrıcalıklı uygulamalar, Wifimanager
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.