टेदरिंग ऑफलोड हार्डवेयर पर टेदरिंग ट्रैफिक (यूएसबी, वाई-फाई पर) को ऑफलोड करके उपकरणों को बिजली बचाने और प्रदर्शन में सुधार करने में सक्षम बनाता है। ऐप प्रोसेसर को दरकिनार करते हुए, मॉडेम और बाह्य उपकरणों के बीच एक सीधा रास्ता प्रदान करके टेथरिंग ट्रैफ़िक को ऑफलोड किया जाता है।
विशेष विवरण
एंड्रॉइड 8.1 से शुरू होकर, डिवाइस आईपीवी4, आईपीवी6, या आईपीवी4+आईपीवी6 को हार्डवेयर पर अग्रेषित करने के लिए टेदरिंग ऑफलोड का उपयोग कर सकते हैं।
ऑफलोड सुविधा के लिए सभी पैकेटों को ऑफलोड करने की आवश्यकता नहीं है। फ्रेमवर्क सॉफ्टवेयर में किसी भी पैकेट को संभालने में सक्षम है। नियंत्रण पैकेट आमतौर पर सॉफ़्टवेयर में संसाधित होते हैं। क्योंकि IPv4 पोर्ट टेथर्ड ट्रैफ़िक और डिवाइस ट्रैफ़िक के बीच साझा किए जाते हैं, IPv4 सत्र सेटअप/टियरडाउन पैकेट (उदाहरण के लिए, SYN/SYN+ACK, FIN) को सॉफ़्टवेयर में संसाधित किया जाना चाहिए ताकि कर्नेल प्रवाह स्थिति का निर्माण कर सके। ढांचा नियंत्रण विमान और राज्य मशीनें प्रदान करता है। यह हार्डवेयर को अपस्ट्रीम और डाउनस्ट्रीम इंटरफेस/उपसर्गों की जानकारी भी प्रदान करता है।
IPv4 के लिए, हार्डवेयर IPv4 नेटवर्क एड्रेस ट्रांसलेशन (NAT) सत्र सेटअप पैकेट को CPU तक पहुंचने की अनुमति देता है। कर्नेल NAT प्रविष्टियाँ बनाता है, और HAL कार्यान्वयन फ़्रेमवर्क-प्रदत्त फ़ाइल डिस्क्रिप्टर से प्रविष्टियों का निरीक्षण करता है और हार्डवेयर में इन प्रवाह को संभालता है। इसका मतलब है कि HAL कार्यान्वयन के लिए CAP_NET_*
की आवश्यकता नहीं है क्योंकि HAL को फ्रेमवर्क से NF_NETLINK_CONNTRACK
सॉकेट खोले जाते हैं। समय-समय पर, हार्डवेयर वर्तमान में सक्रिय प्रवाह के लिए NAT स्थिति अपडेट को फ्रेमवर्क में भेजता है, जो संबंधित कर्नेल कनेक्शन ट्रैकिंग स्थिति प्रविष्टियों को ताज़ा करता है।
IPv6 के लिए, फ्रेमवर्क IPv6 गंतव्य उपसर्गों की एक सूची प्रोग्राम करता है, जिस पर ट्रैफ़िक को ऑफलोड नहीं किया जाना चाहिए। अन्य सभी बंधे हुए पैकेट उतारे जा सकते हैं।
डेटा उपयोग लेखांकन के लिए, NetworkStatsService
डेटा उपयोग पोल हार्डवेयर से ट्रैफ़िक आंकड़ों का अनुरोध करने के लिए फ़्रेमवर्क का कारण बनता है। फ्रेमवर्क एचएएल के माध्यम से हार्डवेयर को डेटा उपयोग सीमा भी बताता है।
हार्डवेयर आवश्यकताएँ
टेदरिंग ऑफलोड को लागू करने के लिए, आपका हार्डवेयर मुख्य प्रोसेसर के माध्यम से ट्रैफ़िक भेजे बिना मॉडेम और वाई-फाई/यूएसबी के बीच आईपी पैकेट अग्रेषित करने में सक्षम होना चाहिए।
कार्यान्वयन
टेदरिंग ऑफलोड सुविधा को सक्षम करने के लिए, आपको कॉन्फ़िगरेशन एचएएल ( IOffloadConfig
) और नियंत्रण एचएएल ( IOffloadControl
) दोनों को लागू करना होगा।
कॉन्फिग एचएएल: IOoffloadConfig
IOffloadConfig
HAL टेदरिंग ऑफलोड कार्यान्वयन शुरू करता है। फ्रेमवर्क एचएएल कार्यान्वयन को पूर्व-कनेक्टेड NF_NETLINK_CONNTRACK
सॉकेट के साथ प्रदान करता है जिसका उपयोग कार्यान्वयन IPv4 प्रवाह का निरीक्षण करने के लिए कर सकता है। केवल अग्रेषित प्रवाह को तेज़ किया जाना चाहिए।
नियंत्रण एचएएल: IOoffloadControl
IOffloadControl
HAL ऑफलोड कार्यान्वयन को नियंत्रित करता है। निम्नलिखित विधियों को लागू किया जाना चाहिए:
- ऑफलोड हार्डवेयर प्रारंभ/बंद करें:
initOffload/stopOffload
उपयोग करें औरsetLocalPrefixes
के साथ स्थानीय आईपी पते या अन्य नेटवर्क को ऑफलोड से मुक्त करें। - अपस्ट्रीम इंटरफ़ेस, IPv4 एड्रेस और IPv6 गेटवे सेट करें:
setUpstreamParameters
उपयोग करें औरaddDownstream/removeDownstream
के साथ डाउनस्ट्रीम IP एड्रेस रेंज को कॉन्फ़िगर करें। - डेटा उपयोग लेखांकन:
getForwardedStats/setDataLimit
का उपयोग करें।
आपके विक्रेता HAL को ITetheringOffloadCallback
इंटरफ़ेस के माध्यम से कॉलबैक भी भेजना होगा, जो इसकी रूपरेखा को सूचित करता है:
- अतुल्यकालिक घटनाएँ जैसे ऑफलोड शुरू और बंद किया जा रहा है (ऑफलोडकॉलबैकइवेंट)
- NAT टाइमआउट अपडेट, जिसे यह इंगित करने के लिए समय-समय पर भेजा जाना चाहिए कि एक विशिष्ट IPv4 प्रवाह में ट्रैफ़िक है और इसे कर्नेल द्वारा बंद नहीं किया जाना चाहिए
मान्यकरण
टेदरिंग ऑफलोड के अपने कार्यान्वयन को मान्य करने के लिए, टेदरिंग और वाई-फ़ाई हॉटस्पॉट के अपेक्षित कार्य को सत्यापित करने के लिए मैन्युअल या स्वचालित परीक्षण का उपयोग करें। वेंडर टेस्ट सूट (वीटीएस) में टेथरिंग ऑफलोड एचएएल के लिए परीक्षण शामिल हैं।