ربط تفريغ الأجهزة

يتيح إلغاء تحميل التوصيل للأجهزة إمكانية توفير الطاقة وتحسين الأداء عن طريق إلغاء تحميل حركة مرور الربط (عبر USB وWi-Fi) إلى الجهاز. يتم إلغاء تحميل حركة مرور الربط من خلال توفير مسار مباشر بين المودم والأجهزة الطرفية، متجاوزًا معالج التطبيق.

تحديد

بدءًا من Android 8.1، يمكن للأجهزة استخدام إلغاء تحميل التوصيل لإلغاء تحميل IPv4 أو IPv6 أو IPv4+IPv6 إلى الأجهزة.

لا تحتاج ميزة إلغاء التحميل إلى إلغاء تحميل جميع الحزم. الإطار قادر على التعامل مع أي حزمة في البرنامج. تتم معالجة حزم التحكم عادةً في البرامج. نظرًا لأن منافذ IPv4 مشتركة بين حركة المرور المربوطة وحركة مرور الأجهزة، يجب معالجة حزم إعداد/تفكيك جلسة IPv4 (على سبيل المثال، SYN/SYN+ACK، FIN) في البرنامج حتى تتمكن kernel من إنشاء حالة التدفق. يوفر الإطار مستوى التحكم وأجهزة الحالة. كما أنه يزود الجهاز بمعلومات حول الواجهات/البادئات الأولية والنهائية.

بالنسبة لـ IPv4، يسمح الجهاز لحزم إعداد جلسة ترجمة عنوان شبكة IPv4 (NAT) بالوصول إلى وحدة المعالجة المركزية (CPU). يقوم kernel بإنشاء إدخالات NAT، ويراقب تطبيق HAL الإدخالات من واصفات الملفات المتوفرة في إطار العمل ويتعامل مع هذه التدفقات في الأجهزة. وهذا يعني أن تطبيق HAL لا يتطلب CAP_NET_* لأن HAL يتم فتح مآخذ توصيل NF_NETLINK_CONNTRACK من إطار العمل. بشكل دوري، يرسل الجهاز تحديثات حالة NAT للتدفقات النشطة حاليًا إلى إطار العمل، والذي يقوم بتحديث إدخالات حالة تتبع اتصال kernel المقابلة.

بالنسبة لـ IPv6، يقوم إطار العمل بإعداد قائمة ببادئات وجهة IPv6 التي يجب ألا يتم إلغاء تحميل حركة المرور إليها. يمكن إلغاء تحميل كافة الحزم المربوطة الأخرى.

بالنسبة لحسابات استخدام البيانات، تؤدي استطلاعات استخدام بيانات NetworkStatsService إلى قيام إطار العمل بطلب إحصائيات حركة المرور من الأجهزة. يقوم إطار العمل أيضًا بإبلاغ حدود استخدام البيانات إلى الأجهزة عبر HAL.

متطلبات الأجهزة

لتنفيذ إلغاء تحميل الربط، يجب أن يكون جهازك قادرًا على إعادة توجيه حزم IP بين المودم وشبكة Wi-Fi/USB دون إرسال حركة المرور عبر المعالج الرئيسي.

تطبيق

لتمكين ميزة إلغاء تحميل التوصيل، يجب عليك تنفيذ الاثنين التاليين لكل من config HAL ( IOffloadConfig ) وتحكم HAL ( IOffloadControl ).

تكوين HAL: IOffloadConfig

يبدأ IOffloadConfig HAL في تنفيذ عملية إلغاء تحميل التوصيل. يوفر إطار العمل تطبيق HAL بمآخذ توصيل NF_NETLINK_CONNTRACK المتصلة مسبقًا والتي يمكن أن يستخدمها التنفيذ لمراقبة تدفقات IPv4. يجب تسريع التدفقات المعاد توجيهها فقط.

التحكم HAL: IOffloadControl

يتحكم IOffloadControl HAL في تنفيذ إلغاء التحميل. ويجب تنفيذ الطرق التالية:

  • بدء/إيقاف إلغاء تحميل الأجهزة: استخدم initOffload/stopOffload وإعفاء عناوين IP المحلية أو الشبكات الأخرى من إلغاء التحميل باستخدام setLocalPrefixes .
  • قم بإعداد الواجهة الأولية وعنوان IPv4 وبوابات IPv6: استخدم setUpstreamParameters وقم بتكوين نطاقات عناوين IP النهائية باستخدام addDownstream/removeDownstream .
  • محاسبة استخدام البيانات: استخدم getForwardedStats/setDataLimit .

يجب أيضًا على HAL للمورد الخاص بك إرسال عمليات الاسترجاعات من خلال واجهة ITetheringOffloadCallback ، والتي تُعلم إطار العمل بما يلي:

  • الأحداث غير المتزامنة مثل بدء إلغاء التحميل وإيقافه (OffloadCallbackEvent)
  • تحديثات مهلة NAT، والتي يجب إرسالها بشكل دوري للإشارة إلى أن تدفق IPv4 محدد يحتوي على حركة مرور ويجب ألا يتم إغلاقه بواسطة kernel

تصديق

للتحقق من صحة تنفيذ عملية إلغاء تحميل التوصيل، استخدم الاختبار اليدوي أو الآلي للتحقق من عمل التوصيل ونقطة اتصال Wi-Fi كما هو متوقع. تحتوي مجموعة اختبار البائع (VTS) على اختبارات لوحدات HAL الخاصة بإلغاء تحميل التوصيل.