Triển khai ngăn xếp SOME/IP

Ngăn xếp truyền tải SOME/IP quản lý giao thức truyền SOME/IP cấp thấp và logic mạng thông qua giao diện Ngôn ngữ định nghĩa giao diện Android (AIDL) (ISomeIpStack). Ngăn xếp này gửi và nhận các sự kiện SOME/IP và lệnh gọi thủ tục từ xa (RPC). Các đối tác có thể tích hợp các chế độ triển khai ngăn xếp SOME/IP tuỳ chỉnh thông qua ISomeIpStack hoặc sử dụng chế độ triển khai tham chiếu đi kèm được xây dựng trên thư viện COVESA vsomeip nguồn mở. Trang này mô tả các khái niệm sau:

  • Triển khai tham chiếu: SDV cung cấp một cách triển khai mẫu tham chiếu không phải sản xuất cho ngăn xếp SOME/IP.

  • API Binder: Giao diện ISomeIpStack xác định các phương thức để tương tác với một thực thể ngăn xếp SOME/IP.

  • SELinux: Cấu hình SELinux mẫu cho ngăn xếp tham chiếu cho phép giao tiếp trình liên kết và quyền truy cập thật chi tiết vào hệ thống tệp.

Mặc dù ngăn xếp này đọc định dạng truyền dẫn SOME/IP, nhưng nó vẫn giữ nguyên tải trọng dưới dạng các blob nhị phân không rõ ràng và chuyển tiếp tải trọng đến trình môi giới SOME/IP.

Tiêu chuẩn SOME/IP không đưa ra định nghĩa về ngăn xếp hoặc lớp API ngăn xếp. SDV cung cấp một API AIDL hoạt động trong các định nghĩa quen thuộc của tiêu chuẩn và yêu cầu một lượng mã tối thiểu để điều chỉnh các ngăn xếp hiện có.

API này cho phép bạn chọn các cách triển khai khác nhau của ngăn xếp và đơn giản hoá việc tích hợp ngăn xếp với các thành phần khác trong hệ thống.

Triển khai tham chiếu

SDV cung cấp một phương thức triển khai mẫu tham chiếu không dành cho sản xuất cho ngăn xếp SOME/IP và bao gồm một trình bao bọc mỏng trên thư viện COVESA vsomeip nguồn mở. Hệ thống chỉ triển khai ngăn xếp tham chiếu cho các mục tiêu sdv_core_cfsdv_core_arm64, đồng thời init.rc sẽ khởi động ngăn xếp này trên VM bằng CID=3.

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

Xác định cấu hình triển khai sản xuất cho ngăn xếp do OEM xác định. Để tìm hiểu thêm, hãy xem bài viết Tích hợp SOME/IP với SDV.

Cấu hình

Ngăn xếp tham chiếu khai báo một cấu hình cho thư viện vSomeIP. Hãy xem phần Cấu trúc tệp cấu hình để biết nội dung mô tả về cấu trúc cấu hình. Trong quá trình định cấu hình, tệp cấu hình sẽ chỉ định các tham số SOME/IP SD, chẳng hạn như địa chỉ truyền tin đa hướng và cổng mà ngăn xếp sử dụng.

Binder API

Giao diện ISomeIpStack được khai báo trong core_services/some_ip/aidl/google/sdv/someip. Giao diện ISomeIpStack xác định các phương thức để tương tác với một thực thể ngăn xếp SOME/IP và cung cấp các đặc điểm thiết yếu cho những mục này.

Tình trạng cung cấp dịch vụ

  • register_availability_callback Đăng ký một lệnh gọi lại cho các thay đổi về trạng thái sẵn có của dịch vụ.

  • monitor_service Hướng dẫn ngăn xếp theo dõi khả năng cung cấp của một dịch vụ cụ thể.

  • unregister_availability_callback Huỷ đăng ký lệnh gọi lại về trạng thái sẵn sàng.

  • on_sdv_service_availability Cho biết sự thay đổi về phạm vi cung cấp dịch vụ SDV.

Lệnh gọi quy trình từ xa (RPC)

Bạn có thể gửi yêu cầu RPC bằng cách:

  • rpc_transact để chờ phản hồi
  • rpc_oneway để không chờ phản hồi

Để xử lý yêu cầu RPC:

  • register_rpc_request_callback Đăng ký một lệnh gọi lại cho các yêu cầu RPC đến.

  • unregister_rpc_request_callback Huỷ đăng ký lệnh gọi lại yêu cầu RPC.

Thông báo sự kiện

  • register_event_notification_callback Đăng ký một lệnh gọi lại cho các thông báo về sự kiện đã đăng ký.

  • unregister_event_notification_callback Huỷ đăng ký lệnh gọi lại thông báo sự kiện.

  • on_sdv_topic_availability Cho biết sự thay đổi về phạm vi cung cấp chủ đề SDV.

  • subscribe Đăng ký nhận một sự kiện cụ thể trong một nhóm sự kiện.

  • unsubscribe Huỷ đăng ký nhận thông báo về một sự kiện cụ thể.

  • publish Xuất bản một sự kiện với một tải trọng nhất định.

SELinux

Thư mục device/google/sdv/sdv_core_base/sepolicy/samples/vendor/ chứa một cấu hình SELinux mẫu cho ngăn xếp tham chiếu:

  • sdv_someip_stack_default.te xác định loại sdv_someip_stack_default và ánh xạ loại này với các thuộc tính và bối cảnh.

  • file_contexts liên kết các thư mục nhị phân và dữ liệu với các ngữ cảnh thích hợp.

Cấu hình này cho phép giao tiếp Binder giữa ngăn xếp và trình môi giới, cho phép truy cập vào các chất lượng mạng và quyền truy cập chi tiết vào hệ thống tệp của thiết bị.