Tethering donanımdan kaldırma

Tethering aktarımı, tethering trafiğini (USB, kablosuz ağ üzerinden) donanıma aktararak cihazların güç tasarrufu yapmasını ve performansını artırmasını sağlar. Modem ile çevre birimleri arasında doğrudan bir yol sağlayarak uygulama işlemcisini atlayarak tethering trafiği hafifletilir.

Özellikler

Android 8.1'den itibaren cihazlar, IPv4, IPv6 veya IPv4+IPv6 yönlendirme işlemlerini donanıma aktarmak için tethering aktarma özelliğini kullanabilir.

Tüm paketlerin aktarılması için aktarma özelliğinin kullanılması gerekmez. Çerçeve, yazılımdaki tüm paketleri işleyebilir. Kontrol paketleri genellikle yazılımda işlenir. IPv4 bağlantı noktaları, bağlı trafik ile cihaz trafiği arasında paylaşıldığı için çekirdeğin akış durumunu oluşturabilmesi için IPv4 oturum kurulumu/dağıtımı paketleri (ör. SYN/SYN+ACK, FIN) yazılımda işlenmelidir. Çerçeve, kontrol düzlemi ve durum makinelerini sağlar. Ayrıca, donanıma yayın öncesi ve yayın sonrası arayüzler/önekler hakkında bilgi sağlar.

IPv4 için donanım, IPv4 ağ adresi çevirisi (NAT) oturum kurulum paketlerinin CPU'ya ulaşmasına olanak tanır. Çekirdek NAT girişleri oluşturur ve HAL uygulaması, çerçeve tarafından sağlanan dosya tanımlayıcılarındaki girişleri gözlemleyip bu akışları donanımda işler. Bu, HAL'ın çerçeveden NF_NETLINK_CONNTRACK soket açtığı için HAL uygulamasının CAP_NET_* gerektirmediği anlamına gelir. Donanım, geçerli olarak etkin akışlar için NAT durum güncellemelerini düzenli aralıklarla çerçeveye gönderir. Bu da ilgili çekirdek bağlantısı izleme durumu girişlerini yeniler.

IPv6 için çerçeve, trafiğin aktarılmaması gereken IPv6 hedef ön eklerinin bir listesini programlar. Diğer tüm bağlı paketler aktarılabilir.

Veri kullanımı muhasebesi için NetworkStatsService veri kullanımı anketleri, çerçevenin donanımdan trafik istatistikleri istemesine neden olur. Çerçeve, HAL aracılığıyla veri kullanımı sınırlarını donanıma da iletir.

Donanım gereksinimleri

Tethering aktarma özelliğini uygulamak için donanımınızın, trafiği ana işlemci üzerinden göndermeden IP paketlerini modem ile kablosuz ağ/USB arasında yönlendirebilmesi gerekir.

Uygulama

Tethering aktarma özelliğini etkinleştirmek için hem yapılandırma HAL'si (IOffloadConfig) hem de kontrol HAL'si (IOffloadControl) uygulamanız gerekir.

Yapılandırma HAL: IOffloadConfig

IOffloadConfig HAL, tethering aktarma uygulamasını başlatır. Çerçeve, HAL uygulamasına IPv4 akışlarını gözlemlemek için kullanabileceği önceden bağlı NF_NETLINK_CONNTRACK soketler sağlar. Yalnızca yönlendirilen akışlar hızlandırılmalıdır.

Kontrol HAL'si: IOffloadControl

IOffloadControl HAL, aktarma uygulamasını kontrol eder. Aşağıdaki yöntemler uygulanmalıdır:

  • Donanımdan aktarma işlemini başlatma/durdurma: initOffload/stopOffload kullanın ve yerel IP adreslerini veya diğer ağları setLocalPrefixes ile aktarma işleminden muaf tutun.
  • Yukarı akış arayüzünü, IPv4 adresini ve IPv6 ağ geçitlerini ayarlayın: setUpstreamParameters kullanın ve addDownstream/removeDownstream ile aşağı akış IP adresi aralıklarını yapılandırın.
  • Veri kullanımı hesabı: getForwardedStats/setDataLimit değerini kullanın.

Tedarikçi firma HAL'iniz, ITetheringOffloadCallbackarabirimi üzerinden geri çağırma göndermelidir. Bu geri çağırma, aşağıdakiler hakkında çerçeve bilgisi sağlar:

  • Aktarmanın başlatılması ve durdurulması gibi eşzamansız etkinlikler (OffloadCallbackEvent)
  • Belirli bir IPv4 akışının trafik içerdiğini ve çekirdek tarafından kapatılmaması gerektiğini belirtmek için düzenli olarak gönderilmesi gereken NAT zaman aşımı güncellemeleri

Doğrulama

Tethering aktarma özelliğini uygulamanızı doğrulamak için manuel veya otomatik test kullanarak tethering ve kablosuz hotspot'un beklendiği gibi çalıştığını doğrulayın. Tedarikçi Test Paketi (VTS), tethering offload HAL'leri için testler içerir.