Stack transport SOME/IP mengelola protokol dan logika jaringan SOME/IP tingkat rendah melalui antarmuka Android Interface Definition Language (AIDL) (ISomeIpStack). Stack ini mengirim dan menerima peristiwa SOME/IP dan remote procedure call (RPC). Partner dapat mengintegrasikan penerapan stack SOME/IP kustom melalui ISomeIpStack, atau menggunakan penerapan referensi yang disertakan yang dibangun di atas library COVESA vsomeip open source. Halaman ini
menjelaskan konsep berikut:
Implementasi referensi: SDV menyediakan implementasi contoh referensi non-produksi untuk stack SOME/IP.
Binder API: Antarmuka
ISomeIpStackmenentukan metode untuk berinteraksi dengan instance stack SOME/IP.SELinux: Contoh konfigurasi SELinux untuk stack referensi memungkinkan komunikasi binder dan akses sistem file terperinci.
Meskipun membaca format kabel SOME/IP, stack ini 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 sedikit kode untuk mengadaptasi stack yang ada.
API ini memungkinkan Anda memilih penerapan stack yang berbeda dan menyederhanakan integrasi stack dengan komponen lain dalam sistem.
Penerapan referensi
SDV menyediakan penerapan contoh referensi non-produksi untuk stack SOME/IP, dan terdiri dari wrapper tipis di atas library vsomeip COVESA open source. Sistem men-deploy stack referensi hanya 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, file konfigurasi menentukan parameter SD SOME/IP, 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 menyediakan
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 ke acara tertentu dari grup acara.unsubscribeBerhenti berlangganan dari acara 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.