টিথারিং হার্ডওয়্যার অফলোড

টিথারিং অফলোড ডিভাইসগুলিকে শক্তি সঞ্চয় করতে এবং টিথারিং ট্র্যাফিক (USB, Wi-Fi-এর মাধ্যমে) হার্ডওয়্যারে অফলোড করে কার্যক্ষমতা উন্নত করতে সক্ষম করে৷ অ্যাপ প্রসেসরকে বাইপাস করে মডেম এবং পেরিফেরালগুলির মধ্যে একটি সরাসরি পথ প্রদান করে টিথারিং ট্র্যাফিক অফলোড করা হয়।

স্পেসিফিকেশন

অ্যান্ড্রয়েড 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-এর মাধ্যমে হার্ডওয়্যারে ডেটা ব্যবহারের সীমাও যোগাযোগ করে।

হার্ডওয়্যার প্রয়োজনীয়তা

টিথারিং অফলোড বাস্তবায়ন করতে, আপনার হার্ডওয়্যারটি অবশ্যই প্রধান প্রসেসরের মাধ্যমে ট্র্যাফিক না পাঠিয়ে মডেম এবং Wi-Fi/USB-এর মধ্যে আইপি প্যাকেটগুলি ফরোয়ার্ড করতে সক্ষম হতে হবে৷

বাস্তবায়ন

টিথারিং অফলোড বৈশিষ্ট্য সক্রিয় করতে, আপনাকে অবশ্যই একটি কনফিগার HAL ( IOffloadConfig ) এবং একটি নিয়ন্ত্রণ HAL ( IOffloadControl ) অনুসরণ করে দুটি প্রয়োগ করতে হবে।

কনফিগার HAL: IOffloadConfig

IOffloadConfig HAL টিথারিং অফলোড বাস্তবায়ন শুরু করে। ফ্রেমওয়ার্ক পূর্ব-সংযুক্ত NF_NETLINK_CONNTRACK সকেট সহ HAL বাস্তবায়ন প্রদান করে যা বাস্তবায়ন IPv4 প্রবাহ পর্যবেক্ষণ করতে ব্যবহার করতে পারে। শুধুমাত্র ফরোয়ার্ড করা প্রবাহকে ত্বরান্বিত করতে হবে।

কন্ট্রোল HAL: IOffloadControl

IOffloadControl HAL অফলোড বাস্তবায়ন নিয়ন্ত্রণ করে। নিম্নলিখিত পদ্ধতি প্রয়োগ করা আবশ্যক:

  • অফলোড হার্ডওয়্যার স্টার্ট/স্টপ করুন: initOffload/stopOffload ব্যবহার করুন এবং স্থানীয় IP ঠিকানা বা অন্যান্য নেটওয়ার্ককে setLocalPrefixes এর সাথে অফলোড থেকে অব্যাহতি দিন।
  • আপস্ট্রিম ইন্টারফেস, IPv4 ঠিকানা, এবং IPv6 গেটওয়ে সেট করুন: setUpstreamParameters ব্যবহার করুন এবং addDownstream/removeDownstream এর সাথে ডাউনস্ট্রিম আইপি অ্যাড্রেস রেঞ্জ কনফিগার করুন।
  • ডেটা ব্যবহার অ্যাকাউন্টিং: getForwardedStats/setDataLimit ব্যবহার করুন।

আপনার বিক্রেতা HAL-কে অবশ্যই ITetheringOffloadCallback ইন্টারফেসের মাধ্যমে কলব্যাক পাঠাতে হবে, যা ফ্রেমওয়ার্ককে অবহিত করে:

  • অসিঙ্ক্রোনাস ইভেন্ট যেমন অফলোড শুরু হওয়া এবং বন্ধ করা (অফলোডকলব্যাক ইভেন্ট)
  • NAT টাইমআউট আপডেট, যা নির্দিষ্ট IPv4 ফ্লোতে ট্র্যাফিক রয়েছে এবং কার্নেল দ্বারা বন্ধ করা উচিত নয় তা নির্দেশ করার জন্য পর্যায়ক্রমে পাঠাতে হবে

বৈধতা

টিথারিং অফলোডের আপনার বাস্তবায়নকে যাচাই করতে, টিথারিং এবং ওয়াই-ফাই হটস্পট কাজটি প্রত্যাশিতভাবে যাচাই করতে ম্যানুয়াল বা স্বয়ংক্রিয় পরীক্ষা ব্যবহার করুন। ভেন্ডর টেস্ট স্যুট (VTS) টিথারিং অফলোড এইচএএল-এর জন্য পরীক্ষা ধারণ করে।