Android 12'de kullanıma sunulan kablosuz ve hücresel birlikte var olma kanalından kaçınma özelliği, hücresel kanallardan veya hücresel kanallara müdahale olabileceği durumlarda güvenli olmayan kablosuz kanalları tanımlar ve bu kanalların kullanılmasını önler. STA, SoftAp, Kablosuz Doğrudan Bağlantı (P2P) ve Wi-Fi Aware (NAN) gibi arayüzler buna dahildir.
Bu sayfada aşağıdaki konular ele alınmaktadır:
- Hücresel modemin Android çerçevesine bildirmesi gereken bilgiler.
- Kablosuz çerçevesinin, kaçınılması gereken kablosuz kanalları hesaplamak için kullandığı algoritmalar.
- Cihaz üreticilerinin Wi-Fi çerçevesi için sağlaması gereken yapılandırma tabloları.
- Kanal önleme özelliğiyle ilgili sistem API'leri, yapılandırmalar ve HAL API'leri.
- Kanaldan kaçınma işlemini yönetmeye yönelik çerçeve davranışı.
- Kanaldan kaçınma özelliğinin işlenmesi için çip satıcısı davranışı.
- Kanal engelleme ile ilgili uygulama ayrıntıları.
- Kanaldan kaçınma davranışını doğrulama testleri.
Arka plan
LTE, 5G NR ve Lisanslı Destekli Erişim (LAA) gibi hücresel teknolojilere sahip cihazlarda, kullanılan hücresel kanallar, kullanılan kablosuz kanalına müdahale edebilir. Bu durum, hücresel ve kablosuz kanallar kısa frekans ayrımı (komşu kanallar) içinde olduğunda veya harmonik ve intermodülasyon girişimi olduğunda ortaya çıkar.
Bu tür parazitler, bir anten iletim yaparken başka bir antenin aynı anda alım yapması durumunda sorun oluşturur. Bu durumda, iletim anteni alıcı anteni doldurarak alım kalitesini etkiler.
Bu belgede, parazit yapan verici saldırgan, girişimi deneyimleyen alıcı ise kurban olarak adlandırılır. Saldırgan veya kurban olan Wi-Fi kanalına güvenli olmayan kanal adı verilir.
Kablosuz ve hücresel birlikte var olma kanalından kaçınma özelliği, kanal kaçınma için tutarlı bir yaklaşım sunarak kablosuz çerçevesinden farklılaşan tescilli kod ihtiyacını azaltır. Ayrıca bu özellik, cihaz üreticilerinin özelliği yapılandırmasına, etkinleştirmesine, devre dışı bırakmasına ve geçersiz kılmasına olanak tanır.
Bu özellik, kablosuz kanallarını kontrol ederek kanal önleme işlemi gerçekleştirir. Kablosuz kanal önleme şeması, dört soyut adımdan oluşan bir dizi olarak tanımlanabilir:
- Modem raporları hücresel frekansta değişiklik olduğunu bildiriyor
- Birlikte var olma önleme algoritması, güvenli olmayan kablosuz kanalları hesaplar
- Birlikte var olma önleme algoritması, kablosuz hizmetini bilgilendirir
- Çerçeve veya sürücü uygun kablosuz bağlantı işlemini gerçekleştirir.
Şekil 1. Kanaldan kaçınma planı
Hücresel frekanstaki değişikliği bildirme
Telefon hizmeti, kullanılan hücresel kanalları bildirir. Çalışan hücresel frekans değiştiğinde modem, bu bilgiyi IRadio::PhysicalChannelConfig aracılığıyla telefoni hizmetine bildirir.
Bu bilgiler arasında Lisanslı Destekli Erişim (LAA) ve Taşıyıcı Toplama (CA) göstergeleri yer alır.
Android 12'den itibaren, 1.6 IRadio::PhysicalChannelConfig içindeki aşağıdaki alanlar, modem tarafından doldurulması gereken birlikte var olma formülleri için gerekli bilgileri sağlar.
struct PhysicalChannelConfig {
/** Connection status for cell. Valid values are PRIMARY_SERVING and SECONDARY_SERVING */
CellConnectionStatus status;
/** The radio technology for this physical channel */
RadioTechnology rat;
/** Downlink Absolute Radio Frequency Channel Number */
int32_t channelNumberDownlink;
/** Uplink Absolute Radio Frequency Channel Number */
int32_t channelNumberUplink;
/** Downlink cell bandwidth, in kHz */
int32_t cellBandwidthDownlink;
/** Uplink cell bandwidth, in kHz */
int32_t cellBandwidthUplink;
}
Güvenli olmayan kablosuz kanalları hesaplama
Modem hücresel frekansta bir değişiklik olduğunu bildirdiğinde, birlikte var olma kanalı algoritması hücresel ve kablosuz ağ kanalları arasındaki girişimi hesaplar ve hangi kablosuz ağ kanallarının güvenli olmadığını belirler.
Farklı formüller gerektiren birden fazla parazit türü vardır: komşu ve harmonik/intermodülasyon. Cihazlar arasındaki anten ve düzen farklılıkları nedeniyle her cihazın komşu ve harmonik/intermodülasyon girişimi kalıpları farklıdır. Bunu hesaba katmak için cihaz üreticileri, iki tür parazit için parametreleri genel formüllere yerleştirmek üzere bir arama tablosu sağlamalıdır. Bu parametreler, hücre bandı başına tanımlanır ve etkin hücre kanallarının bantları tarafından referans alınır.
Arama tablosunda maksimum güç sınırı tanımlanabilir. Tanımlanırsa güvenli olmayan bir kanal, belirtilen güç sınırıyla iletim yapar. Aksi takdirde kanal, tam güçle iletim yapar.
Genel olarak, kanal engelleme özelliği, performansı optimize etmek için güvenli olmayan kablosuz kanallardan kaçınmak üzere en iyi çabayı gösterir. Ancak belirli durumlarda (ör. operatör şartları nedeniyle) belirli arayüzlerin belirli hücresel bantlar için güvenli olmayan kanallardan kaçınması zorunludur. Bu gibi durumlarda, zorunlu kısıtlamalar, Kablosuz Doğrudan Bağlantı (P2P), SoftAp ve Wi-Fi Aware (NAN) gibi belirli kanalların yasaklanıp yasaklanmayacağıyla ilgili değerleri içeren bir bit maskesi olarak gösterilir. Güvenli olmayan bir kanal, tüm kullanım alanlarında bu kanalın kullanılmaması yönünde bir öneri olarak değerlendirilirken zorunlu kısıtlamalar, belirli kullanım alanlarında zorunlu olarak kaçınılması gereken durumları işaretler.
2,4 GHz veya 5 GHz bandının her kanalı güvenli değil olarak işaretlenirse arama tablosu, güvenli seçim olarak her bir müdahale eden hücre bandı için varsayılan bir 2,4 GHz kanalı veya varsayılan bir 5 GHz kanalı tanımlayabilir. Bu varsayılan kanallar, grubun geri kalanı güvenli olmayan olarak bildirildiğinde güvenli olmayan kanallar olarak raporlanmaz.
Geçersiz kılma listesi
Formüle dayalı yaklaşım, girişimin bant genişliğine büyük ölçüde bağlı olduğu durumlarda (bu nedenle, daha büyük bant genişliğine sahip kanallar güvenli olmayabilir ancak daha küçük bant genişliğine sahip kanallar güvenli olabilir) sınırlıdır. LAA gibi durumlarda hesaplamaları atlayıp belirtilen güvenli olmayan kanallar listesini kullanmak faydalıdır.
Bunu yapmak için belirli girişlerin arama tablosunda güvenli olmayan kanalların geçersiz kılma listesini belirtebilirsiniz. Tablo girişindeki bir geçersiz kılma listesi, söz konusu hücre kanalı için hesaplamanın atlandığını gösterir. Bunun yerine, geçersiz kılma listesi, eşleşen hücresel kanal için güvenli olmayan kablosuz kanalları açıkça belirtir.
Bant genişliğinin önemli olduğu durumlarda, geçersiz kılma listesinde belirli bant genişliklerine sahip belirli kanalları belirterek belirli bant genişliklerinden seçici olarak kaçınabilirsiniz. Bunun nedeni, her kablosuz kanal numarasının belirli bir bant genişliğine karşılık gelmesidir.
Geçersiz kılma listesi, her bir kablosuz bant için kanal numaraları veya önceden tanımlanmış kategori anahtar kelimelerinin listesiyle gösterilir:
2g kategorileri:
all(2,4 GHz bandının tamamı)
5G kategorileri:
all(5 GHz bandının tamamı)20mhz(5 GHz 20 MHz kanallar)40mhz(5 GHz 40 MHz kanallar)80mhz(5 GHz 80 MHz kanallar)160mhz(5 GHz 160 MHz kanallar)
Komşu kanal paraziti
Bitişik kanal parazitini belirlemek için birlikte var olma önleme algoritması, saldırgan ve kurban kanal arasındaki ΔF mesafesinin belirtilen eşik değerinin altına düşmemesini sağlar.
Şekil 2. Saldırgan ve mağdur kanal arasındaki mesafe
Eşik, cihazın fiziksel yapılandırmasına ve arama tablosu girişinde her bir müdahale eden bant için sağlanan eşik değerine göre belirlenir. Girişime neden olmadığı düşünülen bantların tablo girişi yoktur ve güvenli olmayan kanalların hesaplanması gerekmez (çoğu zaman).
Komşu girişim parametreleri
wifiVictimMhz: Kablosuz kurban için MHz uzaklık eşiği (hücre yukarı bağlantısı)cellVictimMhz: Hücre kurbanı için MHz cinsinden mesafe eşiği (hücre downlink'i)
Algoritma, her etkin hücre kanalı için aşağıdaki gibi çalışır:
- Kanalın bant genişliği için bir arama tablosu girişi bulmaya çalışır. Tablo girişi bulunamazsa bu hücre kanalı için güvenli olmayan kanal içermeyen bir sonuç döndürülür.
- Hücresel banda göre, hangi kablosuz bandın risk altında olduğunu ve parazitin bandın hangi tarafından geldiğini (örneğin, daha düşük 2,4 GHz kanalları, daha yüksek 2,4 GHz kanalları, daha düşük 5 GHz kanalları) belirler.
wifiVictimMhzmevcutsa ve hücresel kanalda uplink veKablosuz bantın alt kısmı risk altındaysa:
wifiVictimMhzdeğerini hücrenin en yüksek frekansına ekleyerek güvenli olmayan kanalların üst sınırını bulur.- Alt kenarı sınırla çakışan ilk 20 MHz'lik kablosuz kanalını bulur.
- Wi-Fi kanalını, onu içeren her daha büyük bant genişliğine sahip kanalı (örneğin, 40 MHz, 80 MHz) ve güvenli olmayan kanalla aynı banttaki her daha düşük kanalı işaretler.
Kablosuz bantın üst kısmı risk altındaysa:
- Hücre uplink'inin en düşük frekansından wifiVictimMhz'yi çıkararak güvenli olmayan kanalların alt sınırını bulur.
- Üst kenarı sınırla çakışan ilk kablosuz kanalını bulur.
- Wi-Fi kanalını, onu içeren daha büyük her kanalı (örneğin, 40 MHz, 80 MHz) ve güvenli olmayan kanalla aynı banttaki daha yüksek her kanalı işaretler.
cellVictimMhzmevcutsa ve hücresel kanalda bağlantı indirme varsa:- Eşik olarak
cellVictimMhz'ı kullanarak 3. adımı gerçekleştirir ve hücreden yukarı bağlantı yerine hücreden aşağı bağlantı ile karşılaştırır.
- Eşik olarak
Tablo girişinin güç sınırını, hesaplanan güvenli olmayan kanallara uygular.
Şekil 3. Komşu kanal müdahalesi için güvenli olmayan kanal hesaplaması
Harmonik veya intermodülasyon bozulması
Harmonik veya intermodülasyon bozulması için birlikte var olma motoru, harmonik veya intermodülasyon sinyalinin aralığını hesaplar ve olası bir kurban kanalla olan yüzde çakışmasını değerlendirir. Çakışma, çakışma eşiğini aşarsa algoritma bunu güvenli olmayan bir durum olarak kabul eder. Bir kurban kanalındaki harmonik veya intermodülasyon bozulmasının yüzde çakışmasının hesaplanması aşağıdaki denklemle yapılır:
Harmonik bozulma durumunda algoritma, Wi-Fi kanallarını etkileyen bir hücre uplink kanalının harmonik bozulmasını dikkate alır. Ardından, hücre uplink frekanslarına ve $ N $ harmonik derecesine göre bozulma yüksek ve bozulma düşük değerlerini harmonik değerlerle değiştirir.
Şekil 4. Harmonik bozulma için güvenli olmayan kanal hesaplaması
İntermodülasyon durumunda algoritma, hücre yukarı bağlantısının intermodülasyon bozulmasını ve hücre aşağı bağlantı kanalını etkileyen kablosuz kanalını dikkate alır. Ardından, bozulma yüksek ve bozulma düşük değerlerini, hücre uplink frekanslarına, kablosuz frekanslarına ve iki intermodülasyon katsayısına ($ M $, $ N $) dayalı intermodülasyon değerleriyle değiştirir.
Şekil 5. Intermodülasyon bozulması için güvenli olmayan kanal hesaplaması
Arama tablosunda, $ M $, $ N $ ve çakışma değerlerini her bir müdahale eden hücre bandı için belirtebilirsiniz. Bir bantta parazit yoksa bu bant girişi için değerler tablodan çıkarılır. Wi-Fi 2,4 GHz ve 5 GHz bantları için bu değerlerin iki grubu bağımsız olarak tanımlanabilir.
Komşu girişimi algoritmasına benzer şekilde, algoritma, girişim yapan hücre bandı başına tanımlanan aynı güç sınırı değerini yeniden kullanır.
Algoritma, her etkin hücre kanalı için aşağıdaki gibi çalışır:
- Hücre kanalının bandı için bir arama tablosu girişi bulmaya çalışır. Tablo girişi bulunamazsa bu kanal için güvenli olmayan kanal içermeyen bir sonuç döndürülür.
Parametreler tanımlanmışsa harmoniklerden güvenli olmayan 2,4 GHz kanalları bulur.
- 2,4 GHz için harmonik derece N'yi bulur.
- N ve hücre yukarı bağlantısına göre harmonik yüksek frekansı ve harmonik düşük frekansı hesaplar.
- Aşağıdan gelen harmoniklerin alt sınırında bulunan ilk 20 MHz'lik kablosuz kanalını bulur.
- Harmoniğin kablosuz kanal üzerindeki çakışmasını hesaplar ve çakışma 2,4 GHz kablosuz çakışma eşiğini aşarsa kanalı güvenli değil olarak işaretler.
- Yukarıdan gelen harmoniklerin üst sınırında olan ilk 20 MHz'lik Wi-Fi kanalını bulur.
- Harmoniğin kablosuz kanal üzerindeki çakışmasını hesaplar ve çakışma 2,4 GHz kablosuz çakışma eşiğini aşarsa kanalı güvenli değil olarak işaretler.
- Aradaki her 20 MHz'lik kanalı güvenli olmayan kanal olarak işaretler.
Parametreler tanımlanmışsa harmoniklerden güvenli olmayan 5 GHz kanalları bulur.
- 5 GHz için harmonik derece N'yi bulur. N 0 ise 5. adıma geçilir.
- N ve hücre yukarı bağlantısına göre harmonik yüksek frekansı ve harmonik düşük frekansı hesaplar.
Güvenli olmayan 20 MHz kanalları bulur.
- Aşağıdan gelen harmoniklerin alt sınırı içinde olan ilk 20 MHz'lik kablosuz kanalını bulur.
- Harmoniğin kablosuz kanal üzerindeki çakışmasını hesaplar ve çakışma 2,4 GHz kablosuz çakışma eşiğini aşarsa kanalı güvenli değil olarak işaretler.
- Yukarıdan gelen harmoniklerin üst sınırında olan ilk 20 MHz'lik Wi-Fi kanalını bulur.
- Harmoniğin kablosuz kanal üzerindeki çakışmasını hesaplar ve çakışma 2,4 GHz kablosuz çakışma eşiğini aşarsa kanalı güvenli değil olarak işaretler.
- Aradaki her 20 MHz'lik kanalı, belirtilen güç sınırıyla güvenli olmayan bir kanal olarak işaretler.
Güvenli olmayan 40 MHz, 80 MHz ve 160 MHz kanalları bulur.
- 3a adımını 40 MHz, 80 MHz ve 160 MHz ile tekrarlar.
- Kanalların harmonik kenardaki çakışmalarını hesaplamak yerine, daha küçük bileşen kanallardan hesaplanan çakışmaları yeniden kullanır (örneğin, iki 20 MHz kanal 40 MHz'lik bir kanal oluşturuyorsa ve% 30 ile% 90 çakışıyorsa 40 MHz'lik kanalın ortalama çakışma oranı% 60'tır).
Parametreler tanımlanmışsa intermodülasyondan güvenli olmayan 2,4 GHz kanalları bulur.
- 2, 4 GHz için intermodülasyon katsayıları N ve M'yi bulur.
Her 2,4 GHz kablosuz ağ kanalı için:
- N, M, hücresel bağlantı ve kablosuz ağ kanalına göre düşük frekanslı ve yüksek frekanslı intermodülasyonu hesaplar.
- Hücre downlink'i üzerindeki intermodülasyonun çakışmasını hesaplar ve çakışma 2,4 GHz hücre çakışma eşiğini aşarsa kanalı güvenli değil olarak işaretler.
Parametreler tanımlanmışsa intermodülasyondan kaynaklanan güvenli olmayan 5 GHz kanalları bulur.
- 5 GHz kablosuz kanalları ve 5 GHz hücresel çakışma eşiğini kullanarak 4. adımı tekrarlar.
Tablo girişinin güç sınırını, hesaplanan güvenli olmayan kanallara uygular.
Kesin sonuç
Hem komşu hem de harmonik parazitten kaynaklanan güvenli olmayan kanallar hesaplandıktan sonra, son küme her iki kümenin birleşimi alınarak (çakışma varsa daha düşük güç sınırı seçilerek) hesaplanır ve zorunlu kısıtlama uygulanmamışsa varsayılan kanallar kümeden kaldırılır.
Algoritma şu şekilde çalışır:
- 2,4 GHz kablosuz ağ kanallarının tümü güvenli olmayan kanal olarak işaretlenmişse varsayılan 2,4 GHz kablosuz ağ kanalını kümeden kaldırır.
- Her 5 GHz kablosuz kanal güvenli olmayan kanal olarak işaretlenmişse varsayılan 5 GHz kablosuz kanalını kümeden kaldırır.
- Güvenli olmayan kanalların son kümesini döndürür.
Arama tablosu biçimi
Arama tabloları, overlayable
config dizesinde config_wifiCoexTableFilepath bulunan bir XML dosyasında gösterilir ve aşağıdaki XSD ile tanımlanır.
<?xml version="1.0" encodin>g<="UTF-8"?
xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema&q>uot;<
version=&qu>ot;1.<0"
xsd:>element< name=">table&quo<t;
xsd:complexType
xsd:sequence
xsd:elemen>t ref=&<quot;entry&qu>ot; m<inOccurs="1>&qu<ot; maxOccur>s=&q<uot;unbounded"/
> /x<sd:sequence
> /xsd:c<omplexType
> /xsd:ele<ment
xsd:element name="entry&q>uot;
<xsd:complexType
xsd:sequence
> xsd:e<lement name="rat" type="ratType"/
> xsd:ele<ment name=>"band&<quot; type="xsd:int&>quot;/
< xsd:element name=">powerCapD<bm" ty>pe=&quo<t;xsd:int&quo>t; mi<nOccurs="0&>quo<t;/
>xsd:<choice
xsd:element >ref=&<quot;params"/
xsd:>element< ref="override"/
> </xsd:choice
/xsd:sequ>ence
< /xsd:complex>Typ<e
/xsd:elemen>t
< xsd:simpleType name="ratType">;
< xsd:restriction base=&>quot;<xsd:string">;
< xsd:enumera>tion valu<e="LTE"/
xsd:enumeration value=&quo>t;NR"<;/
/xsd:restriction
/xsd:simpleType
!-- Define coex algorithm p>arameters< --
xsd:element name="params"
xsd:complexType
xsd:>sequence
< xsd:element ref="neighborThresholds" minOccurs="0>"/
< xsd:element name="harmonicParams2g" type="harmonic>Params&qu<ot; minOccurs="0"/
xsd:element> name=&<quot;harmonic>Param<s5g" type=&>quo<t;harmonicPa>rams<" minOccurs="0"/
> xs<d:element name=>"i<ntermodParam>s2g"< type="intermodParams" minOccurs="0"/
> xsd:e<lement name="intermodParams5g" type="intermodPa>rams&qu<ot; minOccurs>=&quo<t;0"/
> <xsd:element >ref=<"defaultChannels" minOccurs>=&quo<t;0"/
> /x<sd:sequence
/xsd:complexType
/>xsd:ele<ment
xsd:element name="neighborThr>eshol<ds"
>xsd<:complexType
> x<sd:sequence
xsd:element name=>"<;wifiVictimM>hz"<; type="xsd:int" minOccurs>="<0"/
xsd:element name=&q>uot;cel<lVictimMhz" type="xsd:int" >minOc<curs="0&>quo<t;/
/xsd:s>eque<nce
/xsd:complexType
/xsd:el>ement<
xsd:complex>Type na<me="har>monicPara<ms"
xsd:sequence
xsd:element name="N&q>uot; type<="xsd:int"/
xsd:element name="overlap>" <type="xs>d:int<"/
/xsd>:se<quence
/xs>d:co<mplexType
xsd:complexType name=&quo>t;i<ntermodParams"
xsd>:sequ<ence
xsd:>element< name=">N" t<ype="xsd:int"/
xsd:element >name=&quo<t;M" type="xsd:int"/
x>sd:elem<ent name=&quo>t;ove<rlap" type=>&qu<ot;xsd:int&q>uot;</
/xsd:sequence
/xsd:co>mplex<Type
xsd:ele>ment na<me="def>aultChann<els"
xsd:complexType
xsd:sequence
xsd:element name="default2g&>quot; typ<e="xsd:int" minOccurs="0"/
xsd:element name=">default<5g" type>=&quo<t;xsd:int" >min<Occurs=">;0&q<uot;/
/xsd:sequence
> /xsd<:complexType
>/xsd:el<ement
!--> Define a<lgorithm override lists --
xsd:element name="override"
xsd:complexType
> xsd:se<quence
xsd:element ref="override2g" minOccurs="0"/>
< xsd:element> ref=<"override5g>&qu<ot; minOccur>s=&q<uot;0"/
/xsd:sequence
/xs>d:com<plexType
/xsd:element
xsd:el>ement n<ame="override2g"
> xs<d:complexType
> < xsd:sequence
> < xsd:element name="category"> type<="overrideCategory2g" m>inOccur<s="0" maxOccurs=&q>uot;unb<ounded"/
xsd:elem>ent nam<e="channel" type=&qu>ot;xsd:<int" minOccurs="0&qu>ot; max<Occurs="unbounded"/
> </xsd:sequence
> /<xsd:complexType>
< /xsd:elem>ent
xsd:element name="override5g"
xsd:complexType
xsd:sequence
xsd:element name="category" type="overrideCategory5g" minOccurs="0" maxOccurs="unbounded"/
xsd:element name="channel" type="xsd:int" minOccurs="0" maxOccurs="unbounded"/
/xsd:sequence
/xsd:complexType
/xsd:element
xsd:simpleType name="overrideCategory2g"
xsd:restriction base="xsd:string"
xsd:enumeration value="all"/
/xsd:restriction
/xsd:simpleType
xsd:simpleType name="overrideCategory5g"
xsd:restriction base="xsd:string"
xsd:enumeration value="all"/
xsd:enumeration value="20Mhz"/
xsd:enumeration value="40Mhz"/
xsd:enumeration value="80Mhz"/
xsd:enumeration value="160Mhz"/
/xsd:restriction
/xsd:simpleType
/xsd:schema
Örnek XML tablosu
Aşağıda örnek bir XML arama tablosu verilmiştir:
<table>
<!-- Entry using algorithm parameters -->
<entry>
<rat>LTE</rat>
<band>40</band>
<powerCapDbm>50</powerCapDbm>
<params>
<neighborThresholds>
<wifiVictimMhz>25</wifiVictimMhz>
<cellVictimMhz>40</cellVictimMhz>
</neighborThresholds>
<harmonicParams2g>
<N>3</N>
<overlap>50</overlap>
</harmonicParams2g>
<harmonicParams5g>
<N>3</N>
<overlap>50</overlap>
</harmonicParams5g>
<intermodParams2g>
<N>-2</N>
<M>1</M>
<overlap>75</overlap>
</intermodParams2g>
<intermodParams5g>
<N>-2</N>
<M>1</M>
<overlap>75</overlap>
</intermodParams5g>
<defaultChannels>
<default2g>6</default2g>
<default5g>36</default5g>
</defaultChannels>
</params>
</entry>
<!-- Entry using the override list -->
<entry>
<rat>LTE</rat>
<band>41</band>
<powerCapDbm>50</powerCapDbm>
<override>
<override2g>
<channel>6</channel>
<channel>11</channel>
...
</override2g>
<override5g>
<category>40Mhz</category>
<channel>34</channel>
...
</override5g>
</override>
</entry>
</table>
Operatör toplama
Taşıyıcı Toplama (CA) için her bir yukarı veya aşağı bağlantının harmonik ya da intermodülasyon aralıkları, tek başına parazite neden olacak kadar örtüşmeyebilir ancak birleştirildiğinde yeterli örtüşme oluşabilir. Algoritma, her harmonik veya intermodülasyon aralığını ayrı ayrı değerlendirir ve döndürülen güvenli olmayan kanalların birleşimini alır. İntermodülasyon durumunda bu, her bir UL'nin her bir DL üzerindeki intermodülasyon aralığını değerlendirmek anlamına gelir.
Algoritma, PCELL, PSCELL veya SCELL arasında ayrım yapmaz ve bunları eşit olarak ele alır.
Lisanslı Destekli Erişim
Lisanslı Destekli Erişim (LAA), 46. bant olarak tanımlanır. Algoritma, bu grubu diğer gruplara benzer şekilde ele alır. Bu durumda, 5 GHz'lik tüm kanallar, arama tablosunda geçersiz kılma listesi olarak ayarlanabilir.
Kanal önleme algoritması, operatörün şartlarına bağlı olarak 5 GHz kablosuz bant için SoftAP ve Kablosuz Doğrudan Bağlantı (P2P) üzerinde zorunlu kısıtlamalar belirler. Algoritmanın bu kullanım alanını işlemesi için taşıyıcı yapılandırma değeri restrict_5g_softap_wifi_direct_for_laa tanımlanmalıdır. Hücre kanalı LAA'da ise ve restrict_5g_softap_wifi_direct_for_laa true ise algoritma, 5 GHz bandının tamamıyla birlikte güvenli olmayan kanallar kümesini döndürür ve SoftAP ile Kablosuz Doğrudan Bağlantı (P2P) için zorunlu kısıtlama işaretlerini ayarlar.
Kablosuz hizmetini bilgilendirme
Birlikte var olma kanalı algoritması güvenli olmayan kanalları hesapladıktan sonra, sistem uygulamalarınıza güvenli olmayan kanalları ve kısıtlamalarını sağlamak için Android çerçevesinde tanımlanan aşağıdaki @SystemApi veri yapısını kullanın.
public final class CoexUnsafeChannel {
public static final int POWER_CAP_NONE
public @WifiAnnotations.WifiBandBasic int getBand();
public int getChannel();
// Returns the specified power cap in dBm, or POWER_CAP_NONE if not specified.
public int getPowerCapDbm();
}
Güvenli olmayan kanallar değiştiğinde uygulamaların güncellenmiş değerleri almasını sağlamak için aşağıdaki WifiManager @SystemApi yöntemlerini ve geri çağırmayı kullanın.
public static final int COEX_RESTRICTION_WIFI_DIRECT;
public static final int COEX_RESTRICTION_SOFTAP;
public static final int COEX_RESTRICTION_WIFI_AWARE;
// Register a CoexCallback to listen on onCoexUnsafeChannelsChanged callbacks. The callback will be called whenever the unsafe channels change, as well as immediately after registering to get the current values.
public void registerCoexCallback(Executor executor, CoexCallback callback);
public void unregisterCoexCallback(CoexCallback callback);
public abstract static class CoexCallback {
//Gets called whenever getCoexUnsafeChannels()/getCoexRestrictions() have updated values
public void onCoexUnsafeChannelsChanged(List<CoexUnsafeChannel> unsafeChannels,
int restrictions);
}
Kablosuz işlem gerçekleştirme
Kablosuz hizmeti, güvenli olmayan kanallar kümesi hakkında bilgi aldığında bu kanallardan kaçınmak için uygun işlemi gerçekleştirir. Bu bölümde, kablosuz bağlantı hizmetinin farklı senaryolardaki davranışı açıklanmaktadır.
Sürücüyü bilgilendirme
Sürücü, kanal önleme işlemini gerçekleştirmede önemli bir role sahip olduğundan güvenli olmayan kanalları sürücüye ve donanım yazılımına iletmek gerekir. Bunu yapmak için aşağıdaki IWifiChip HAL API'sini kullanın.
AIDL için:
void setCoexUnsafeChannels(in CoexUnsafeChannel[] unsafeChannels,
in int restrictions)
HIDL için (1.5 veya daha yeni):
setCoexUnsafeChannels(vec<CoexUnsafeChannel> unsafeChannels,
bitfield<IfaceType> restrictions);
SoftAP
SoftAP, güvenli olmayan kanaldan kaçınma için temel kullanım alanıdır. Aşağıdaki bölümde, ACS ile kanal önlemenin uygulanabileceği temel SoftAp senaryoları özetlenmiştir. Senaryolarda, kanal önleme algoritmasının ve sürücünün ya da donanım yazılımının davranışı açıklanmaktadır.
ACS etkinleştirilmiş olarak SoftAP'yi başlatma (henüz SoftAP başlatılmadı)
Kanallar güvenli değilse ve SoftAP kısıtlaması varsa:
- Çerçeve, güvenli olmayan kanalları ACS listesinden kaldırır.
- Liste boşsa çerçeve SoftAP'yi durdurur.
Kanallar güvenli değilse ve kısıtlama yoksa:
- Tedarikçi sürücüsü veya donanım yazılımı, güvenli kanallara güvenli olmayan kanallara göre öncelik verir.
SoftAP, ACS etkinleştirilmiş olarak çalışıyor ve güvenli olmayan kanallar güncelleniyor
SoftAP kanalı güvenli değilse ve SoftAP kısıtlaması varsa:
- Çerçeve, güvenli olmayan kanalları kaldırarak ACS listesini günceller.
- Liste boşsa çerçeve SoftAP'yi kapatır.
SoftAP kanalı güvenli değilse ve kısıtlama yoksa:
- Çerçeve tarafından herhangi bir işlem yapılmaz. Güvenli olmayan kanallardan kaçınma veya kaçınma mümkün değilse güç sınırını uygulama, satıcı sürücüsü ya da donanım yazılımı tarafından gerçekleştirilir.
Wi-Fi Direct (P2P)
Güvenli olmayan, Kablosuz Doğrudan Bağlantı (P2P) kısıtlamaları olan kanallar varsa:
- Çerçeve, HAL yöntemini kullanarak güvenli olmayan kanallardan kaçınmak için
wpa_supplicantisteğinde bulunurISupplicantP2pIface::setDisallowedFrequencies().
- Çerçeve, HAL yöntemini kullanarak güvenli olmayan kanallardan kaçınmak için
Kısıtlama uygulanmayan güvenli olmayan kanallar varsa:
- Satıcı sürücüsü veya donanım yazılımı, Kablosuz Doğrudan Bağlantı (P2P) kısıtlaması olmayan güvenli olmayan bir kanal kullanılıyorsa güç sınırını uygular.
Wi-Fi Aware (NAN)
Çerçeve, Wi-Fi Aware (NAN) için kanal seçiminde yer almaz ve herhangi bir çerçeve işlemi yapılmaz. Wi-Fi Aware (NAN) kanalından kaçınma özelliğinden satıcı sürücüsü veya donanım yazılımı sorumludur.
Algoritmayı devre dışı bırakma
Varsayılan algoritma uygulamasını devre dışı bırakmak ve kendi güvenli olmayan kanallar listenizi ileterek bu kanallardan kaçınmak istiyorsanız yer paylaşımını config_wifiDefaultCoexAlgorithmEnabled yapılandırın. Yer paylaşımı false olarak ayarlanırsa varsayılan algoritma devre dışı bırakılır. Ardından, aşağıdaki sistem API'sini kullanarak çerçeveye bağlanacak güvenli olmayan kanalların listesini oluşturmak için kendi bant dışı tescilli algoritmanızı kullanabilirsiniz.
public void setCoexUnsafeChannels(Set<CoexUnsafeChannel> coexUnsafeChannels,
int coexRestrictions);
Uygulamayı doğrulama
Kablosuz ve hücresel birlikte var olma kanalından kaçınma özelliğini uygulamanızı doğrulamak için aşağıdaki testleri kullanın.
CTS testleri
WifiManagerTest.javatestCoexMethodsShouldFailNoPermission()testListenOnCoexUnsafeChannels()
ACTS testleri
WifiManagerTest.pytest_set_get_coex_unsafe_channels()
VTS testleri
- AIDL uygulanıyorsa:
wifi_chip_aidl_test.cppTEST_P(WifiChipAidlTest, SetCoexUnsafeChannels)
- HIDL uygulanıyorsa:
wifi_chip_hidl_test.cppTEST_P(WifiChipHidlTest, setCoexUnsafeChannels)