Bağlantı donanımı aktarımı

Bağlantı boşaltma, bağlantı trafiğini (USB, Wi-Fi üzerinden) donanıma aktararak cihazların güç tasarrufu yapmasına ve performansı artırmasına olanak tanır. Bağlantı trafiğinin yükü, uygulama işlemcisini atlayarak modem ile çevre birimleri arasında doğrudan bir yol sağlanarak boşaltılır.

Özellikler

Android 8.1'den itibaren cihazlar, donanıma IPv4, IPv6 veya IPv4+IPv6 iletmeyi boşaltmak için bağlantı boşaltmayı kullanabilir.

Boşaltma özelliğinin tüm paketleri boşaltması gerekmez. Çerçeve, yazılımdaki herhangi bir paketi işleyebilir. Kontrol paketleri genellikle yazılımda işlenir. IPv4 bağlantı noktaları bağlı trafik ve cihaz trafiği arasında paylaşıldığından, çekirdeğin akış durumunu oluşturabilmesi için IPv4 oturum kurulum/yıkma paketlerinin (örneğin, SYN/SYN+ACK, FIN) yazılımda işlenmesi gerekir. Çerçeve, kontrol düzlemini ve durum makinelerini sağlar. Ayrıca donanıma yukarı ve aşağı yöndeki 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 izin verir. Çekirdek, NAT girişleri oluşturur ve HAL uygulaması, çerçeve tarafından sağlanan dosya tanımlayıcılardan gelen girişleri gözlemler ve bu akışları donanımda yönetir. Bu, HAL'nin çerçeveden açılan NF_NETLINK_CONNTRACK yuvalarını alması nedeniyle HAL uygulamasının CAP_NET_* gerektirmediği anlamına gelir. Donanım, periyodik olarak, o anda etkin olan akışlar için NAT durumu güncellemelerini çerçeveye gönderir ve bu da ilgili çekirdek bağlantı izleme durumu girişlerini yeniler.

IPv6 için çerçeve, trafiğin boşaltılmaması gereken IPv6 hedef öneklerinin bir listesini programlar. Diğer tüm bağlı paketler boşaltılabilir.

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

Donanım Gereksinimleri

Bağlantı boşaltmayı uygulamak için donanımınızın, trafiği ana işlemci üzerinden göndermeden modem ile Wi-Fi/USB arasında IP paketlerini iletebilmesi gerekir.

Uygulama

Bağlantı boşaltma özelliğini etkinleştirmek için, hem yapılandırma HAL'sini ( IOffloadConfig ) hem de kontrol HAL'sini ( IOffloadControl ) takip eden ikisini uygulamanız gerekir.

HAL Yapılandırması: IOffloadConfig

IOffloadConfig HAL, bağlama boşaltma uygulamasını başlatır. Çerçeve, HAL uygulamasına, uygulamanın IPv4 akışlarını gözlemlemek için kullanabileceği önceden bağlanmış NF_NETLINK_CONNTRACK yuvaları sağlar. Yalnızca iletilen akışlar hızlandırılmalıdır.

HAL Kontrolü: IOffloadControl

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

  • Donanım boşaltmayı başlatın/durdurun: initOffload/stopOffload kullanın ve setLocalPrefixes ile yerel IP adreslerini veya diğer ağları boşaltmadan 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ı hesaplaması: getForwardedStats/setDataLimit kullanın.

Satıcınız HAL'nin ayrıca aşağıdakilerin çerçevesini bildiren ITetheringOffloadCallback arayüzü aracılığıyla geri aramalar göndermesi gerekir:

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

Doğrulama

Bağlantı boşaltma uygulamanızı doğrulamak için, bağlantının ve Wi-Fi ortak erişim noktasının beklendiği gibi çalıştığını doğrulamak için manuel veya otomatik testler kullanın. Satıcı Test Paketi (VTS), bağlama boşaltma HAL'lerine yönelik testler içerir.