Stack SOME/IP mengelola logika transportasi SOME/IP tingkat rendah melalui antarmuka Android Interface Definition Language (AIDL). Stack ini mengirim dan menerima peristiwa SOME/IP dan Remote Procedure Call (RPC). Dokumen ini menjelaskan konsep berikut:
Implementasi referensi: SDV menyediakan implementasi sampel referensi non-produksi untuk stack SOME/IP.
Binder API: Antarmuka
ISomeIpStackmenentukan metode untuk berinteraksi dengan instance stack SOME/IP.SELinux: Konfigurasi SELinux sampel untuk stack referensi memungkinkan komunikasi binder dan akses sistem file terperinci.
Meskipun stack ini membaca format kabel SOME/IP, stack ini akan membiarkan payload sebagai blob biner buram dan meneruskan payload ke broker SOME/IP.
Standar SOME/IP tidak memberikan definisi stack atau lapisan stack API. SDV menyediakan AIDL API yang beroperasi dalam definisi standar yang sudah dikenal dan memerlukan jumlah kode minimal untuk mengadaptasi stack yang ada.
API ini memungkinkan Anda memilih implementasi stack yang berbeda dan menyederhanakan integrasi stack dengan komponen lain dalam sistem.
Implementasi referensi
SDV menyediakan implementasi sampel referensi non-produksi untuk stack SOME/IP, dan terdiri dari wrapper tipis di atas library COVESA vsomeip open source. Sistem hanya men-deploy stack referensi ke target sdv_core_cf dan sdv_core_arm64, dan init.rc memulainya di VM dengan CID=3.
on property:dev.bootcomplete=1 && property:ro.sdv.vsock_local_cid=3
start sdv_someip_stack_agent
Tentukan konfigurasi deployment produksi untuk stack yang ditentukan OEM. Untuk mempelajari lebih lanjut, lihat Mengintegrasikan SOME/IP dengan SDV.
Konfigurasi
Stack referensi mendeklarasikan konfigurasi untuk library vSomeIP. Lihat Struktur File Konfigurasi untuk mengetahui deskripsi struktur konfigurasi. Sebagai bagian dari konfigurasi, kami menentukan parameter SOME/IP SD, seperti alamat multicast dan port yang digunakan oleh stack.
Binder API
Antarmuka ISomeIpStack dideklarasikan di core_services/some_ip/aidl/google/sdv/someip. Antarmuka ISomeIpStack menentukan metode untuk berinteraksi dengan instance stack SOME/IP dan memberikan kualitas penting untuk item ini.
Ketersediaan layanan
register_availability_callbackMendaftarkan callback untuk perubahan ketersediaan layanan.monitor_serviceMenginstruksikan stack untuk memantau ketersediaan layanan tertentu.unregister_availability_callbackMembatalkan pendaftaran callback ketersediaan.on_sdv_service_availabilityMenunjukkan perubahan ketersediaan layanan SDV.
Remote procedure call (RPC)
Anda dapat mengirim permintaan RPC dengan:
rpc_transactuntuk menunggu responsrpc_onewayuntuk tidak menunggu respons
Untuk penanganan permintaan RPC:
register_rpc_request_callbackMendaftarkan callback untuk permintaan RPC masuk.unregister_rpc_request_callbackMembatalkan pendaftaran callback permintaan RPC.
Notifikasi peristiwa
register_event_notification_callbackMendaftarkan callback untuk notifikasi peristiwa yang dilanggan.unregister_event_notification_callbackMembatalkan pendaftaran callback notifikasi peristiwa.on_sdv_topic_availabilityMenunjukkan perubahan ketersediaan topik SDV.subscribeBerlangganan peristiwa tertentu dari grup peristiwa.unsubscribeBerhenti berlangganan peristiwa tertentu.publishMemublikasikan peristiwa dengan payload tertentu.
SELinux
Folder device/google/sdv/sdv_core_base/sepolicy/samples/vendor/ berisi konfigurasi SELinux sampel untuk stack referensi:
sdv_someip_stack_default.temenentukan jenissdv_someip_stack_defaultdan memetakannya ke atribut dan konteks.file_contextsmemetakan folder biner dan data ke konteks yang sesuai.
Konfigurasi ini memungkinkan komunikasi Binder antara stack dan broker, sehingga memungkinkan akses ke kualitas jaringan dan akses terperinci ke sistem file perangkat.