কিছু/আইপি স্ট্যাক প্রয়োগ করুন

SOME/IP ট্রান্সপোর্ট স্ট্যাক একটি অ্যান্ড্রয়েড ইন্টারফেস ডেফিনিশন ল্যাঙ্গুয়েজ (AIDL) ইন্টারফেস ( ISomeIpStack )-এর মাধ্যমে নিম্ন-স্তরের SOME/IP ওয়্যার প্রোটোকল এবং নেটওয়ার্ক লজিক পরিচালনা করে। এই স্ট্যাকটি SOME/IP ইভেন্ট এবং রিমোট প্রসিডিউর কল (RPC) প্রেরণ ও গ্রহণ করে। পার্টনাররা ISomeIpStack এর মাধ্যমে কাস্টম SOME/IP স্ট্যাক ইমপ্লিমেন্টেশন ইন্টিগ্রেট করতে পারেন, অথবা ওপেন-সোর্স COVESA vsomeip লাইব্রেরির উপর নির্মিত অন্তর্ভুক্ত রেফারেন্স ইমপ্লিমেন্টেশনটি ব্যবহার করতে পারেন। এই পৃষ্ঠাটি নিম্নলিখিত ধারণাগুলি বর্ণনা করে:

  • রেফারেন্স ইমপ্লিমেন্টেশন: SDV একটি SOME/IP স্ট্যাকের জন্য একটি নন-প্রোডাকশন রেফারেন্স স্যাম্পল ইমপ্লিমেন্টেশন প্রদান করে।

  • বাইন্ডার এপিআই: ISomeIpStack ইন্টারফেসটি একটি SOME/IP স্ট্যাক ইনস্ট্যান্সের সাথে ইন্টারঅ্যাক্ট করার জন্য মেথডসমূহ সংজ্ঞায়িত করে।

  • SELinux: রেফারেন্স স্ট্যাকের জন্য একটি নমুনা SELinux কনফিগারেশন বাইন্ডার কমিউনিকেশন এবং গ্র্যানুলার ফাইল সিস্টেম অ্যাক্সেস সক্ষম করে।

এই স্ট্যাকটি SOME/IP ওয়্যার ফরম্যাট পড়ার সময়, পেলোডটিকে অস্বচ্ছ বাইনারি ব্লব হিসেবে রেখে দেয় এবং SOME/IP ব্রোকারের কাছে পাঠিয়ে দেয়।

SOME/IP স্ট্যান্ডার্ডে স্ট্যাক বা স্ট্যাক এপিআই লেয়ারের কোনো সংজ্ঞা দেওয়া নেই। SDV একটি AIDL এপিআই প্রদান করে যা স্ট্যান্ডার্ডটির পরিচিত সংজ্ঞাগুলোর মধ্যেই কাজ করে এবং বিদ্যমান স্ট্যাকগুলোকে অভিযোজিত করার জন্য ন্যূনতম পরিমাণ কোডের প্রয়োজন হয়।

এই এপিআই আপনাকে স্ট্যাকের বিভিন্ন বাস্তবায়ন বেছে নিতে দেয় এবং সিস্টেমের অন্যান্য উপাদানের সাথে স্ট্যাকের একীকরণকে সহজ করে তোলে।

রেফারেন্স বাস্তবায়ন

SDV একটি SOME/IP স্ট্যাকের জন্য একটি নন-প্রোডাকশন রেফারেন্স স্যাম্পল ইমপ্লিমেন্টেশন প্রদান করে, এবং এটি ওপেন সোর্স COVESA vsomeip লাইব্রেরির উপরে একটি থিন র‍্যাপার নিয়ে গঠিত। সিস্টেমটি রেফারেন্স স্ট্যাকটি শুধুমাত্র sdv_core_cf এবং sdv_core_arm64 টার্গেটগুলিতে ডেপ্লয় করে, এবং init.rc CID=3 সহ VM-এ এটি চালু করে।

on property:dev.bootcomplete=1 && property:ro.sdv.vsock_local_cid=3
    start sdv_someip_stack_agent

আপনার OEM-সংজ্ঞায়িত স্ট্যাকের জন্য প্রোডাকশন ডেপ্লয়মেন্ট কনফিগারেশন নির্ধারণ করুন। আরও জানতে, SOME/IP-কে SDV-এর সাথে ইন্টিগ্রেট করুন দেখুন।

কনফিগারেশন

রেফারেন্স স্ট্যাকটি vSomeIP লাইব্রেরির জন্য একটি কনফিগারেশন ঘোষণা করে। কনফিগারেশন কাঠামোর বিবরণের জন্য ‘কনফিগারেশন ফাইল কাঠামো’ দেখুন। কনফিগারেশনের অংশ হিসেবে, কনফিগারেশন ফাইলটি SOME/IP SD প্যারামিটারসমূহ নির্দিষ্ট করে, যেমন একটি মাল্টিকাস্ট অ্যাড্রেস এবং স্ট্যাক দ্বারা ব্যবহৃত পোর্ট।

বাইন্ডার এপিআই

ISomeIpStack ইন্টারফেসটি core_services/some_ip/aidl/google/sdv/someip এ ঘোষিত হয়েছে। ISomeIpStack ইন্টারফেসটি একটি SOME/IP স্ট্যাক ইনস্ট্যান্সের সাথে ইন্টারঅ্যাক্ট করার জন্য মেথডসমূহ সংজ্ঞায়িত করে এবং এই আইটেমগুলোর জন্য প্রয়োজনীয় বৈশিষ্ট্যসমূহ প্রদান করে।

পরিষেবার প্রাপ্যতা

  • register_availability_callback পরিষেবার প্রাপ্যতা পরিবর্তনের জন্য একটি কলব্যাক নিবন্ধন করে।

  • monitor_service স্ট্যাককে একটি নির্দিষ্ট সার্ভিসের প্রাপ্যতা নিরীক্ষণ করার নির্দেশ দেয়।

  • unregister_availability_callback অ্যাভেইলেবিলিটি কলব্যাকটি অনিবন্ধিত করে।

  • on_sdv_service_availability এসডিভি পরিষেবার প্রাপ্যতার পরিবর্তন নির্দেশ করে।

রিমোট প্রসিডিউর কল (RPC)

আপনি নিম্নলিখিত উপায়ে একটি RPC অনুরোধ পাঠাতে পারেন:

  • প্রতিক্রিয়ার জন্য অপেক্ষা করতে rpc_transact
  • প্রতিক্রিয়ার জন্য অপেক্ষা না করার জন্য rpc_oneway

RPC অনুরোধ পরিচালনার জন্য:

  • register_rpc_request_callback আগত RPC অনুরোধগুলির জন্য একটি কলব্যাক নিবন্ধন করে।

  • unregister_rpc_request_callback আরপিসি অনুরোধ কলব্যাকটি অনিবন্ধিত করে।

ইভেন্ট বিজ্ঞপ্তি

  • register_event_notification_callback সাবস্ক্রাইব করা ইভেন্ট নোটিফিকেশনের জন্য একটি কলব্যাক রেজিস্টার করে।

  • unregister_event_notification_callback ইভেন্ট নোটিফিকেশন কলব্যাকটি অনিবন্ধিত করে।

  • on_sdv_topic_availability এসডিভি টপিকের প্রাপ্যতার পরিবর্তন নির্দেশ করে।

  • subscribe একটি ইভেন্ট গ্রুপ থেকে কোনো নির্দিষ্ট ইভেন্টে সাবস্ক্রাইব করে।

  • আনসাবস্ক্রাইব একটি নির্দিষ্ট ইভেন্ট থেকে সদস্যতা unsubscribe ।

  • publish প্রদত্ত পেলোড সহ একটি ইভেন্ট প্রকাশ করে।

SELinux

device/google/sdv/sdv_core_base/sepolicy/samples/vendor/ ফোল্ডারটিতে রেফারেন্স স্ট্যাকের জন্য একটি নমুনা SELinux কনফিগারেশন রয়েছে:

  • sdv_someip_stack_default.te ফাইলটি sdv_someip_stack_default টাইপকে সংজ্ঞায়িত করে এবং এটিকে অ্যাট্রিবিউট ও কনটেক্সটের সাথে ম্যাপ করে।

  • file_contexts বাইনারি এবং ডেটা ফোল্ডারগুলোকে উপযুক্ত কনটেক্সটের সাথে ম্যাপ করে।

এই কনফিগারেশনটি স্ট্যাক এবং ব্রোকারের মধ্যে বাইন্ডার কমিউনিকেশন সক্ষম করে, যার ফলে ডিভাইসটির নেটওয়ার্কিং বৈশিষ্ট্য এবং ফাইল সিস্টেমে সুনির্দিষ্ট অ্যাক্সেস পাওয়া যায়।