Ngăn xếp SOME/IP quản lý logic truyền tải SOME/IP cấp thấp thông qua giao diện Ngôn ngữ định nghĩa giao diện Android (AIDL). Ngăn xếp này gửi và nhận các sự kiện SOME/IP và Lệnh gọi quy trình từ xa (RPC). Tài liệu này mô tả các khái niệm sau:
Triển khai tham chiếu: SDV cung cấp một mẫu triển khai tham chiếu không dành cho môi trường sản xuất cho ngăn xếp SOME/IP.
API Binder: Giao diện
ISomeIpStackxá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 bằng trình liên kết và quyền truy cập chi tiết vào hệ thống tệp.
Mặc dù ngăn xếp này đọc định dạng có dây SOME/IP, nhưng nó vẫn để tải trọng dưới dạng các blob nhị phân mờ đục 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 cung cấp đị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 mẫu triển khai tham chiếu không dành cho môi trường 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_cf và sdv_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 cấu hình cho thư viện vSomeIP. Hãy xem 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 cấu hình, chúng tôi chỉ định các tham số SD SOME/IP, chẳng hạn như địa chỉ truyền đa hướng và cổng mà ngăn xếp sử dụng.
API Binder
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 thuộc tính cần thiết cho các mục này.
Tình trạng cung cấp dịch vụ
register_availability_callbackĐăng ký lệnh gọi lại cho các thay đổi về tình trạng cung cấp dịch vụ.monitor_serviceHướng dẫn ngăn xếp theo dõi tình trạng cung cấp của một dịch vụ cụ thể.unregister_availability_callbackHuỷ đăng ký lệnh gọi lại về tình trạng cung cấp.on_sdv_service_availabilityCho biết sự thay đổi về tình trạng 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:
rpc_transactđể chờ phản hồirpc_onewayđể không chờ phản hồi
Đối với việc xử lý yêu cầu RPC:
register_rpc_request_callbackĐăng ký lệnh gọi lại cho các yêu cầu RPC đến.unregister_rpc_request_callbackHuỷ đă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ý lệnh gọi lại cho các thông báo sự kiện đã đăng ký.unregister_event_notification_callbackHuỷ đăng ký lệnh gọi lại thông báo sự kiện.on_sdv_topic_availabilityCho biết sự thay đổi về tình trạng cung cấp chủ đề SDV.subscribeĐăng ký một sự kiện cụ thể trong một nhóm sự kiện.unsubscribeHuỷ đăng ký một sự kiện cụ thể.publishPhát hành một sự kiện có tải trọng nhất định.
SELinux
Thư mục device/google/sdv/sdv_core_base/sepolicy/samples/vendor/ chứa cấu hình SELinux mẫu cho ngăn xếp tham chiếu:
sdv_someip_stack_default.texác định loạisdv_someip_stack_defaultvà liên kết loại này với các thuộc tính và ngữ cảnh.file_contextsliê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 bằng 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ị.