ติดตั้งใช้งานสแต็ก SOME/IP

สแต็กการรับส่ง SOME/IP จะจัดการโปรโตคอลแบบมีสายและเครือข่าย SOME/IP ระดับต่ำ ผ่านอินเทอร์เฟซ Android Interface Definition Language (AIDL) (ISomeIpStack) สแต็กนี้จะส่งและรับเหตุการณ์ SOME/IP และการเรียกกระบวนการระยะไกล (RPC) พาร์ทเนอร์สามารถผสานรวมการติดตั้งใช้งานสแต็ก SOME/IP ที่กำหนดเอง ผ่าน ISomeIpStack หรือใช้การติดตั้งใช้งานอ้างอิงที่รวมไว้ ซึ่งสร้างขึ้นบนไลบรารี COVESA vsomeip แบบโอเพนซอร์ส หน้านี้ อธิบายแนวคิดต่อไปนี้

  • การใช้งานอ้างอิง: SDV มีตัวอย่างการใช้งานอ้างอิงที่ไม่ใช่เวอร์ชันที่ใช้งานจริงสำหรับสแต็ก SOME/IP

  • Binder API: ISomeIpStack อินเทอร์เฟซกำหนดเมธอดสำหรับการโต้ตอบ กับอินสแตนซ์สแต็ก SOME/IP

  • SELinux: การกำหนดค่า SELinux ตัวอย่างสำหรับสแต็กอ้างอิงจะเปิดใช้ การสื่อสาร Binder และการเข้าถึงระบบไฟล์แบบละเอียด

แม้ว่าสแต็กนี้จะอ่านรูปแบบการส่งผ่านข้อมูล SOME/IP แต่จะปล่อยให้เพย์โหลดเป็น ออบเจ็กต์แบบไบนารีที่ทึบแสงและส่งต่อเพย์โหลดไปยังตัวกลาง SOME/IP

มาตรฐาน SOME/IP ไม่ได้ให้คำจำกัดความของเลเยอร์สแต็กหรือเลเยอร์ API ของสแต็ก SDV มี AIDL API ที่ทํางานภายในคําจํากัดความที่คุ้นเคยของ มาตรฐาน และต้องใช้โค้ดจํานวนน้อยที่สุดในการปรับสแต็กที่มีอยู่

API นี้ช่วยให้คุณเลือกการติดตั้งใช้งานต่างๆ ของสแต็กและลดความซับซ้อน ในการผสานรวมสแต็กกับคอมโพเนนต์อื่นๆ ในระบบ

การใช้งานอ้างอิง

SDV มีการใช้งานตัวอย่างอ้างอิงที่ไม่ใช่เวอร์ชันที่ใช้งานจริงสำหรับสแต็ก SOME/IP และประกอบด้วย Wrapper แบบบางที่อยู่เหนือไลบรารี COVESA vsomeip แบบโอเพนซอร์ส ระบบจะติดตั้งใช้งานสแต็กรีเฟอเรนซ์เฉพาะในเป้าหมาย sdv_core_cf และ sdv_core_arm64 เท่านั้น และ init.rc จะเริ่มทำงานใน VM ด้วย CID=3

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 เช่น ที่อยู่แบบมัลติแคสต์และพอร์ตที่สแต็กใช้

ตั้งค่าเครือข่ายที่เหมาะสม

Binder API

ประกาศอินเทอร์เฟซ ISomeIpStack ใน core_services/some_ip/aidl/google/sdv/someip ISomeIpStack อินเทอร์เฟซ กำหนดวิธีการโต้ตอบกับอินสแตนซ์สแต็ก SOME/IP และมี คุณสมบัติที่จำเป็นสำหรับรายการเหล่านี้

ความพร้อมใช้งานของบริการ

  • register_availability_callback ลงทะเบียนการเรียกกลับสำหรับการเปลี่ยนแปลงความพร้อมให้บริการ

  • monitor_service สั่งให้สแต็กตรวจสอบความพร้อมใช้งานของบริการที่เฉพาะเจาะจง

  • unregister_availability_callback ยกเลิกการลงทะเบียนการเรียกกลับความพร้อม

  • on_sdv_service_availability ระบุการเปลี่ยนแปลงความพร้อมให้บริการของ SDV

การเรียกใช้โพรซีเยอร์ระยะไกล (RPC)

คุณส่งคำขอ RPC ได้โดยใช้

  • rpc_transact เพื่อรอรับการตอบกลับ
  • rpc_oneway ไม่ต้องรอการตอบกลับ

สำหรับการจัดการคำขอ RPC ให้ทำดังนี้

  • register_rpc_request_callback ลงทะเบียนการเรียกกลับสำหรับคำขอ RPC ที่เข้ามา

  • unregister_rpc_request_callback ยกเลิกการลงทะเบียนการเรียกกลับของคำขอ RPC

การแจ้งเตือนเหตุการณ์

  • register_event_notification_callback ลงทะเบียนการเรียกกลับสำหรับการแจ้งเตือนเหตุการณ์ที่สมัครรับข้อมูล

  • unregister_event_notification_callback ยกเลิกการลงทะเบียนการแจ้งเตือนเหตุการณ์ การเรียกกลับ

  • on_sdv_topic_availability แสดงการเปลี่ยนแปลงความพร้อมให้บริการของหัวข้อ SDV

  • 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 แมปโฟลเดอร์ไบนารีและข้อมูลกับบริบทที่เหมาะสม

การกำหนดค่าช่วยให้การสื่อสาร Binder ระหว่างสแต็กและโบรกเกอร์ จึงอนุญาตให้เข้าถึงคุณภาพเครือข่ายและสิทธิ์เข้าถึงแบบละเอียดในระบบไฟล์ ของอุปกรณ์