تخلیه سخت‌افزاری اشتراک‌گذاری اینترنت

تخلیه بار اتصال به اینترنت به دستگاه‌ها امکان می‌دهد با تخلیه بار ترافیک اتصال به اینترنت (ازطریق USB،‏ Wi-Fi) به سخت‌افزار، در مصرف انرژی صرفه‌جویی کنند و عملکرد را بهبود دهند. ترافیک اتصال با ارائه مسیری مستقیم بین مودم و دستگاه‌های جانبی و دور زدن پردازنده برنامه، بارگیری می‌شود.

مشخصات

از Android 8.1، دستگاه‌ها می‌توانند از تخلیه اتصال اینترنت برای تخلیه بازارسال IPv4،‏ IPv6، یا IPv4+IPv6 به سخت‌افزار استفاده کنند.

ویژگی واگذاری نیاز ندارد همه بسته‌ها را واگذار کند. این چارچوب قادر است هر بسته‌ای را در نرم‌افزار مدیریت کند. بسته‌های کنترلی معمولاً در نرم‌افزار پردازش می‌شوند. ازآنجایی‌که درگاه‌های IPv4 بین ترافیک اتصال و ترافیک دستگاه هم‌رسانی می‌شود، بسته‌های راه‌اندازی/برچیدن جلسه IPv4 (برای مثال، SYN/SYN+ACK،‏ FIN) باید در نرم‌افزار پردازش شود تا هسته بتواند وضعیت جریان را بسازد. این چارچوب صفحه کنترل و ماشین‌های حالت را ارائه می‌دهد. همچنین اطلاعاتی درباره پیشوندها/میاناهای بالادستی و پایین‌دستی دراختیار سخت‌افزار قرار می‌دهد.

برای IPv4، سخت‌افزار به بسته‌های راه‌اندازی جلسه ترجمه نشانی شبکه IPv4 (NAT) اجازه می‌دهد به CPU برسند. هسته ورودی‌های NAT را ایجاد می‌کند و پیاده‌سازی HAL ورودی‌ها را از توصیف‌گرهای فایل ارائه‌شده توسط چارچوب مشاهده می‌کند و این جریان‌ها را در سخت‌افزار مدیریت می‌کند. این یعنی پیاده‌سازی HAL به CAP_NET_* نیاز ندارد زیرا HAL NF_NETLINK_CONNTRACK سوکت را از چارچوب باز می‌کند. سخت‌افزار به‌صورت دوره‌ای به‌روزرسانی‌های وضعیت NAT را برای جریان‌های فعال فعلی به چارچوب ارسال می‌کند، که ورودی‌های وضعیت ردیابی اتصال هسته مربوطه را بازآوری می‌کند.

برای IPv6، چارچوب فهرستی از پیشوندهای مقصد IPv6 را برنامه‌ریزی می‌کند که ترافیک نباید از آن‌ها تخلیه شود. همه بسته‌های دیگر اتصال می‌توانند تخلیه شوند.

برای محاسبه مصرف داده، NetworkStatsService نظرسنجی مصرف داده باعث می‌شود چارچوب آمار ترافیک را از سخت‌افزار درخواست کند. این چارچوب همچنین محدودیت‌های مصرف داده را ازطریق HAL به سخت‌افزار اطلاع می‌دهد.

الزامات سخت‌افزاری

برای پیاده‌سازی بارگذاری اتصال اینترنت، سخت‌افزار شما باید بتواند بسته‌های IP را بین مودم و Wi-Fi/USB بدون ارسال ترافیک ازطریق پردازنده اصلی ارسال کند.

پیاده‌سازی

برای فعال کردن ویژگی واگذاری اتصال، باید دو مورد زیر را پیاده‌سازی کنید: هم پیکربندی HAL (IOffloadConfig) و هم کنترل HAL (IOffloadControl).

Config HAL: IOffloadConfig

IOffloadConfig ‫HAL پیاده‌سازی واگذاری اتصال را شروع می‌کند. این چارچوب پیاده‌سازی HAL را با سوکت‌های NF_NETLINK_CONNTRACK ازپیش متصل‌شده‌ای که پیاده‌سازی می‌تواند برای مشاهده جریان‌های IPv4 استفاده کند ارائه می‌دهد. فقط باید جریان‌های بازارسال‌شده را شتاب داد.

کنترل HAL: IOffloadControl

IOffloadControl HAL پیاده‌سازی تخلیه را کنترل می‌کند. روش‌های زیر باید پیاده‌سازی شوند:

  • شروع/توقف سخت‌افزار واگذاری: از initOffload/stopOffload استفاده کنید و نشانی‌های IP محلی یا شبکه‌های دیگر را با setLocalPrefixes از واگذاری معاف کنید.
  • تنظیم میانای بالادستی، نشانی «پروتکل اینترنتی نسخه ۴»، و دروازه‌های «پروتکل اینترنتی نسخه ۶»: از setUpstreamParameters استفاده کنید و محدوده‌های نشانی IP پایین‌دستی را با addDownstream/removeDownstream پیکربندی کنید.
  • محاسبه مصرف داده: از getForwardedStats/setDataLimit استفاده کنید.

«لایه انتزاع سخت‌افزار» فروشنده شما نیز باید ازطریق ITetheringOffloadCallback میانای تماس برگشتی ارسال کند که چارچوب را از موارد زیر مطلع می‌کند:

  • رویدادهای غیرهم‌زمان مثل شروع و توقف تخلیه (OffloadCallbackEvent)
  • به‌روزرسانی‌های مهلت زمانی NAT که باید به‌صورت دوره‌ای ارسال شوند تا نشان دهند که یک جریان IPv4 خاص حاوی ترافیک است و نباید توسط هسته بسته شود

اعتبارسنجی

برای اعتبارسنجی پیاده‌سازی‌تان از بارگذاری اشتراک اینترنت، از آزمایش دستی یا خودکارسازی‌شده استفاده کنید تا مطمئن شوید اشتراک اینترنت و نقطه اتصال Wi-Fi طبق انتظار کار می‌کنند. Vendor Test Suite (VTS) شامل آزمایش‌هایی برای HALهای بارگذاری اتصال اینترنت است.