हार्डवेयर से तेज़ी लाने के लिए टेदर करने की सुविधा

टेथरिंग ऑफलोड की सुविधा, डिवाइसों को पावर बचाने और परफ़ॉर्मेंस को बेहतर बनाने में मदद करती है. इसके लिए, यह यूएसबी और वाई-फ़ाई के ज़रिए टेथरिंग के ट्रैफ़िक को हार्डवेयर पर ऑफलोड करती है. टेथरिंग ट्रैफ़िक को ऑफ़लोड किया जाता है. इसके लिए, मॉडेम और पेरिफ़ेरल के बीच सीधा पाथ उपलब्ध कराया जाता है. इससे ऐप्लिकेशन प्रोसेसर को बायपास किया जा सकता है.

प्रॉडक्ट के बारे में जानकारी

Android 8.1 से, डिवाइसों में टेदरिंग ऑफलोडिंग की सुविधा उपलब्ध है. इसकी मदद से, हार्डवेयर पर IPv4, IPv6 या IPv4+IPv6 फ़ॉरवर्डिंग को ऑफलोड किया जा सकता है.

ऑफ़लोड करने की सुविधा के लिए, सभी पैकेट ऑफ़लोड करने की ज़रूरत नहीं होती. यह फ़्रेमवर्क, सॉफ़्टवेयर में किसी भी पैकेट को हैंडल कर सकता है. कंट्रोल पैकेट आम तौर पर सॉफ़्टवेयर में प्रोसेस किए जाते हैं. IPv4 पोर्ट, टेदर किए गए ट्रैफ़िक और डिवाइस ट्रैफ़िक के बीच शेयर किए जाते हैं. इसलिए, IPv4 सेशन सेटअप/टियरडाउन पैकेट (उदाहरण के लिए, SYN/SYN+ACK, FIN) को सॉफ़्टवेयर में प्रोसेस किया जाना चाहिए, ताकि कर्नल फ़्लो की स्थिति बना सके. यह फ़्रेमवर्क, कंट्रोल प्लेन और स्टेट मशीन उपलब्ध कराता है. यह हार्डवेयर को अपस्ट्रीम और डाउनस्ट्रीम इंटरफ़ेस/प्रीफ़िक्स के बारे में जानकारी भी देता है.

IPv4 के लिए, हार्डवेयर, IPv4 नेटवर्क पता अनुवाद (एनएटी) सेशन सेटअप पैकेट को सीपीयू तक पहुंचने की अनुमति देता है. कर्नल, NAT एंट्री बनाता है. साथ ही, HAL लागू करने वाला सॉफ़्टवेयर, फ़्रेमवर्क से मिले फ़ाइल डिस्क्रिप्टर से एंट्री देखता है और इन फ़्लो को हार्डवेयर में मैनेज करता है. इसका मतलब है कि HAL को लागू करने के लिए CAP_NET_* की ज़रूरत नहीं है, क्योंकि HAL को फ़्रेमवर्क से NF_NETLINK_CONNTRACK सॉकेट मिलते हैं. समय-समय पर, हार्डवेयर फ़्रेमवर्क को फ़िलहाल चालू फ़्लो के लिए, NAT की स्थिति से जुड़े अपडेट भेजता है. इससे, कर्नल कनेक्शन ट्रैकिंग की स्थिति से जुड़ी एंट्री रीफ़्रेश होती हैं.

आईपीवी6 के लिए, फ़्रेमवर्क, आईपीवी6 डेस्टिनेशन प्रीफ़िक्स की एक सूची प्रोग्राम करता है. इस सूची में शामिल प्रीफ़िक्स के लिए, ट्रैफ़िक को ऑफ़लोड नहीं किया जाना चाहिए. टेथर किए गए अन्य सभी पैकेट को ऑफलोड किया जा सकता है.

डेटा के इस्तेमाल का हिसाब रखने के लिए, NetworkStatsService डेटा के इस्तेमाल से जुड़े पोल की वजह से फ़्रेमवर्क, हार्डवेयर से ट्रैफ़िक के आंकड़े का अनुरोध करता है. यह फ़्रेमवर्क, HAL के ज़रिए हार्डवेयर को डेटा के इस्तेमाल की सीमाएं भी बताता है.

हार्डवेयर की ज़रूरी शर्तें

टेथरिंग ऑफलोड की सुविधा लागू करने के लिए, आपके हार्डवेयर में यह क्षमता होनी चाहिए कि वह मुख्य प्रोसेसर के ज़रिए ट्रैफ़िक भेजे बिना, मॉडेम और वाई-फ़ाई/यूएसबी के बीच आईपी पैकेट फ़ॉरवर्ड कर सके.

लागू करना

टेदरिंग ऑफ़लोड की सुविधा चालू करने के लिए, आपको कॉन्फ़िगरेशन एचएएल (IOffloadConfig) और कंट्रोल एचएएल (IOffloadControl), दोनों को लागू करना होगा.

कॉन्फ़िगरेशन HAL: IOffloadConfig

IOffloadConfig HAL, टेदरिंग ऑफ़लोड करने की सुविधा लागू करता है. यह फ़्रेमवर्क, HAL को पहले से कनेक्ट किए गए NF_NETLINK_CONNTRACK सॉकेट उपलब्ध कराता है. इनका इस्तेमाल करके, HAL, IPv4 फ़्लो को मॉनिटर कर सकता है. सिर्फ़ फ़ॉरवर्ड किए गए फ़्लो को तेज़ किया जाना चाहिए.

कंट्रोल एचएएल: IOffloadControl

IOffloadControl HAL, ऑफ़लोड करने की सुविधा को लागू करने की प्रोसेस को कंट्रोल करता है. इन तरीकों को लागू करना ज़रूरी है:

  • हार्डवेयर को ऑफ़लोड करना शुरू/बंद करें: initOffload/stopOffload का इस्तेमाल करें. साथ ही, initOffload/stopOffload की मदद से, लोकल आईपी पतों या अन्य नेटवर्क को ऑफ़लोड करने से बाहर रखें.setLocalPrefixes
  • अपस्ट्रीम इंटरफ़ेस, IPv4 पता, और IPv6 गेटवे सेट करें: setUpstreamParameters का इस्तेमाल करें और addDownstream/removeDownstream की मदद से डाउनस्ट्रीम आईपी पते की रेंज कॉन्फ़िगर करें.
  • डेटा के इस्तेमाल का हिसाब रखना: getForwardedStats/setDataLimit का इस्तेमाल करें.

आपके वेंडर HAL को ITetheringOffloadCallback इंटरफ़ेस के ज़रिए कॉलबैक भी भेजने होंगे. इससे फ़्रेमवर्क को इन बातों की जानकारी मिलती है:

  • एसिंक्रोनस इवेंट, जैसे कि ऑफलोड शुरू और बंद किया जा रहा है (OffloadCallbackEvent)
  • NAT टाइमआउट अपडेट. इन्हें समय-समय पर भेजना ज़रूरी है, ताकि यह पता चल सके कि किसी खास IPv4 फ़्लो में ट्रैफ़िक है और उसे कर्नल को बंद नहीं करना चाहिए

Validation

टेदरिंग ऑफलोडिंग को लागू करने की पुष्टि करने के लिए, मैन्युअल या ऑटोमेटेड टेस्टिंग का इस्तेमाल करें. इससे यह पुष्टि की जा सकेगी कि टेदरिंग और वाई-फ़ाई हॉटस्पॉट, उम्मीद के मुताबिक काम कर रहे हैं. Vendor Test Suite (VTS) में, टेदरिंग ऑफ़लोड एचएएल के लिए टेस्ट शामिल होते हैं.