'तेथरिंग ऑफ़लोड' की सुविधा से, डिवाइसों की बैटरी सेव होती है और उनकी परफ़ॉर्मेंस बेहतर होती है. ऐसा, यूएसबी और वाई-फ़ाई के ज़रिए तेथरिंग ट्रैफ़िक को हार्डवेयर पर ऑफ़लोड करके किया जाता है. ऐप्लिकेशन प्रोसेसर को बायपास करके, मॉडेम और डिवाइसों के बीच सीधा रास्ता उपलब्ध कराकर, कनेक्ट करने के लिए इस्तेमाल होने वाले डिवाइस से आने वाले ट्रैफ़िक को ऑफ़लोड किया जाता है.
प्रॉडक्ट के बारे में जानकारी
Android 8.1 से, डिवाइसों में 'तेथरिंग ऑफ़लोड' सुविधा का इस्तेमाल किया जा सकता है. इससे, आईपीवी4, आईपीवी6 या आईपीवी4+आईपीवी6 फ़ॉरवर्डिंग को हार्डवेयर पर ऑफ़लोड किया जा सकता है.
ऑफ़लोड करने की सुविधा के लिए, सभी पैकेट को ऑफ़लोड करने की ज़रूरत नहीं होती. यह फ़्रेमवर्क, सॉफ़्टवेयर में किसी भी पैकेट को मैनेज कर सकता है. आम तौर पर, कंट्रोल पैकेट को सॉफ़्टवेयर में प्रोसेस किया जाता है. 'कनेक्टेड डिवाइसों के ज़रिए इंटरनेट इस्तेमाल करना' सुविधा का इस्तेमाल करने पर, आईपीवी4 पोर्ट को कनेक्ट किए गए डिवाइसों के ट्रैफ़िक और डिवाइस के ट्रैफ़िक के बीच शेयर किया जाता है. इसलिए, आईपीवी4 सेशन सेटअप/टियरडाउन पैकेट (उदाहरण के लिए, SYN/SYN+ACK, FIN) को सॉफ़्टवेयर में प्रोसेस करना ज़रूरी है, ताकि कर्नेल फ़्लो स्टेटस बना सके. फ़्रेमवर्क, कंट्रोल प्लेन और स्टेट मशीन उपलब्ध कराता है. यह हार्डवेयर को अपस्ट्रीम और डाउनस्ट्रीम इंटरफ़ेस/प्रीफ़िक्स के बारे में भी जानकारी देता है.
आईपीवी4 के लिए, हार्डवेयर की मदद से सीपीयू तक पहुंचने के लिए, आईपीवी4 नेटवर्क पते के ट्रांसलेशन (एनएटी) सेशन सेटअप पैकेट की अनुमति मिलती है. कर्नेल, NAT एंट्री बनाता है. साथ ही, एचएएल लागू करने की प्रोसेस, फ़्रेमवर्क से मिले फ़ाइल डिस्क्रिप्टर की एंट्री को मॉनिटर करती है और हार्डवेयर में इन फ़्लो को मैनेज करती है. इसका मतलब है कि एचएएल लागू करने के लिए, CAP_NET_*
की ज़रूरत नहीं होती, क्योंकि एचएएल को फ़्रेमवर्क से NF_NETLINK_CONNTRACK
सॉकेट मिलते हैं. समय-समय पर, हार्डवेयर फ़्रेमवर्क को, फ़िलहाल चालू फ़्लो के लिए एनएटी स्टेटस के अपडेट भेजता है. इससे, संबंधित कर्नेल कनेक्शन ट्रैकिंग स्टेटस की एंट्री रीफ़्रेश हो जाती हैं.
आईपीवी6 के लिए, फ़्रेमवर्क आईपीवी6 डेस्टिनेशन प्रीफ़िक्स की एक सूची प्रोग्राम करता है, जिस पर ट्रैफ़िक को ऑफ़लोड नहीं किया जाना चाहिए. कनेक्ट किए गए अन्य सभी पैकेट को ऑफ़लोड किया जा सकता है.
डेटा के इस्तेमाल के हिसाब से खाता बनाने के लिए, NetworkStatsService
डेटा के इस्तेमाल से जुड़े सर्वे की वजह से फ़्रेमवर्क, हार्डवेयर से ट्रैफ़िक के आंकड़े का अनुरोध करता है. यह फ़्रेमवर्क, एचएएल के ज़रिए हार्डवेयर को डेटा के इस्तेमाल की सीमाओं की जानकारी भी देता है.
हार्डवेयर की ज़रूरी शर्तें
'तेथरिंग ऑफ़लोड' की सुविधा लागू करने के लिए, आपका हार्डवेयर, मुख्य प्रोसेसर के ज़रिए ट्रैफ़िक भेजे बिना, मॉडेम और वाई-फ़ाई/यूएसबी के बीच आईपी पैकेट फ़ॉरवर्ड करने में सक्षम होना चाहिए.
लागू करना
'तेथरिंग ऑफ़लोड' सुविधा चालू करने के लिए, आपको यहां दिए गए दोनों एचएएल लागू करने होंगे: कॉन्फ़िगरेशन एचएएल (IOffloadConfig
) और कंट्रोल एचएएल (IOffloadControl
).
Config HAL: IOffloadConfig
IOffloadConfig
एचएएल, टिथरिंग ऑफ़लोड लागू करने की प्रोसेस शुरू करता है. फ़्रेमवर्क, पहले से कनेक्ट किए गए NF_NETLINK_CONNTRACK
सॉकेट के साथ HAL लागू करने की सुविधा देता है. लागू करने की सुविधा, IPv4 फ़्लो को देखने के लिए इन सॉकेट का इस्तेमाल कर सकती है. सिर्फ़ फ़ॉरवर्ड किए गए फ़्लो को तेज़ किया जाना चाहिए.
कंट्रोल एचएएल: IOffloadControl
IOffloadControl
एचएएल, ऑफ़लोड करने की सुविधा को कंट्रोल करता है. इन तरीकों को लागू करना ज़रूरी है:
- हार्डवेयर को ऑफ़लोड करना शुरू या बंद करना:
initOffload/stopOffload
का इस्तेमाल करें औरsetLocalPrefixes
की मदद से, स्थानीय आईपी पतों या अन्य नेटवर्क को ऑफ़लोड करने से छूट दें. - अपस्ट्रीम इंटरफ़ेस, आईपीवी4 पता, और आईपीवी6 गेटवे सेट करें:
setUpstreamParameters
का इस्तेमाल करें औरaddDownstream/removeDownstream
की मदद से डाउनस्ट्रीम आईपी पते की रेंज कॉन्फ़िगर करें. - डेटा खर्च का हिसाब:
getForwardedStats/setDataLimit
का इस्तेमाल करें.
आपके वेंडर के एचएएल को ITetheringOffloadCallback
इंटरफ़ेस के ज़रिए कॉलबैक भी भेजने होंगे. इससे फ़्रेमवर्क को इनके बारे में जानकारी मिलती है:
- एसिंक्रोनस इवेंट, जैसे कि ऑफ़लोड शुरू और बंद होना (OffloadCallbackEvent)
- NAT टाइम आउट अपडेट, जिन्हें समय-समय पर भेजा जाना चाहिए, ताकि यह पता चल सके कि किसी खास IPv4 फ़्लो में ट्रैफ़िक है और उसे कर्नेल से बंद नहीं किया जाना चाहिए
पुष्टि करें
टेदरिंग ऑफ़लोड की सुविधा को लागू करने की पुष्टि करने के लिए, मैन्युअल या ऑटोमेटेड जांच का इस्तेमाल करें. इससे यह पुष्टि की जा सकेगी कि टेदरिंग और वाई-फ़ाई हॉटस्पॉट, उम्मीद के मुताबिक काम कर रहे हैं या नहीं. Vendor Test Suite (VTS) में, 'इंटरनेट शेयर करने की सुविधा' के लिए ऑफ़लोड किए गए एचएएल के टेस्ट शामिल होते हैं.