SOME/IP スタックは、Android インターフェース定義言語(AIDL)インターフェースを介して低レベルの SOME/IP 転送ロジックを管理します。このスタックは、SOME/IP イベントとリモート プロシージャ コール(RPC)を送受信します。このドキュメントでは、次のコンセプトについて説明します。
リファレンス実装: SDV は、SOME/IP スタックの非本番環境リファレンス サンプル実装を提供します。
Binder API:
ISomeIpStackインターフェースは、SOME/IP スタック インスタンスとやり取りするためのメソッドを定義します。SELinux: リファレンス スタックの SELinux 構成例では、バインダ通信と粒度の細かいファイル システム アクセスが有効になっています。
このスタックは SOME/IP ワイヤー形式を読み取りますが、ペイロードは不透明なバイナリ BLOB として残し、SOME/IP ブローカーに転送します。
SOME/IP 標準では、スタックまたはスタック API レイヤの定義は提供されていません。SDV は、標準の使い慣れた定義内で動作する AIDL API を提供し、既存のスタックを適応させるために必要なコードの量を最小限に抑えます。
この API を使用すると、スタックのさまざまな実装を選択でき、スタックとシステム内の他のコンポーネントとの統合が簡素化されます。
リファレンス実装
SDV は、SOME/IP スタックの非本番環境のリファレンス サンプル実装を提供します。これは、オープンソースの COVESA vsomeip ライブラリの上に構築されたシン ラッパーで構成されています。システムは、参照スタックを sdv_core_cf ターゲットと sdv_core_arm64 ターゲットにのみデプロイし、init.rc は CID=3 を使用して VM で起動します。
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_availabilitySDV サービスの可用性の変更を示します。
リモート プロシージャ コール(RPC)
RPC リクエストは次の方法で送信できます。
rpc_transact応答を待つrpc_oneway: レスポンスを待たない
RPC リクエスト処理の場合:
register_rpc_request_callback着信 RPC リクエストのコールバックを登録します。unregister_rpc_request_callbackRPC リクエスト コールバックの登録を解除します。
イベント通知
register_event_notification_callbackは、登録されたイベント通知のコールバックを登録します。unregister_event_notification_callbackアクティビティ通知コールバックの登録を解除します。on_sdv_topic_availabilitySDV トピックの可用性の変化を示します。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は、バイナリ フォルダとデータ フォルダを適切なコンテキストにマッピングします。
この構成により、スタックとブローカー間のバインダ通信が可能になり、ネットワーク品質へのアクセスとデバイスのファイル システムへのきめ細かいアクセスが可能になります。