La pile SOME/IP gère la logique de transport SOME/IP de bas niveau via une interface AIDL (Android Interface Definition Language). Cette pile envoie et reçoit des événements SOME/IP et des appels de procédure à distance (RPC). Ce document décrit les concepts suivants :
Implémentation de référence : SDV fournit un exemple d'implémentation de référence hors production pour une pile SOME/IP.
API Binder : l'interface
ISomeIpStackdéfinit les méthodes d'interaction avec une instance de pile SOME/IP.SELinux : un exemple de configuration SELinux pour la pile de référence permet la communication binder et l'accès précis au système de fichiers.
Bien que cette pile lise le format filaire SOME/IP, elle laisse la charge utile sous forme de blobs binaires opaques et la transmet au courtier SOME/IP.
La norme SOME/IP ne fournit aucune définition de la pile ni de la couche d'API de la pile. SDV fournit une API AIDL qui fonctionne selon les définitions familières de la norme et nécessite un minimum de code pour adapter les piles existantes.
Cette API vous permet de sélectionner différentes implémentations de la pile et simplifie l'intégration de la pile à d'autres composants du système.
Implémentation de référence
SDV fournit un exemple d'implémentation de référence non destiné à la production pour une pile SOME/IP. Il se compose d'un wrapper fin au-dessus de la bibliothèque COVESA vsomeip Open Source. Le système déploie la pile de référence uniquement sur les cibles sdv_core_cf et sdv_core_arm64, et init.rc la démarre sur la VM avec CID=3.
on property:dev.bootcomplete=1 && property:ro.sdv.vsock_local_cid=3
start sdv_someip_stack_agent
Définissez la configuration de déploiement en production pour votre pile définie par l'OEM. Pour en savoir plus, consultez Intégrer SOME/IP à SDV.
Configuration
La pile de référence déclare une configuration pour la bibliothèque vSomeIP. Pour obtenir une description de la structure de configuration, consultez Structure du fichier de configuration. Dans le cadre de la configuration, nous spécifions des paramètres SOME/IP SD, tels qu'une adresse multicast et le port utilisé par la pile.
API Binder
L'interface ISomeIpStack est déclarée dans core_services/some_ip/aidl/google/sdv/someip. L'interface ISomeIpStack définit les méthodes d'interaction avec une instance de pile SOME/IP et fournit les qualités essentielles pour ces éléments.
Disponibilité du service
register_availability_callbackenregistre un rappel pour les modifications de la disponibilité du service.monitor_serviceIndique à la pile de surveiller la disponibilité d'un service spécifique.unregister_availability_callbackannule l'enregistrement du rappel de disponibilité.on_sdv_service_availabilityindique une modification de la disponibilité du service SDV.
Appels de procédure à distance (RPC)
Vous pouvez envoyer une requête RPC avec :
rpc_transactpour attendre une réponserpc_onewaypour ne pas attendre de réponse
Pour le traitement des requêtes RPC :
register_rpc_request_callbackEnregistre un rappel pour les requêtes RPC entrantes.unregister_rpc_request_callbackAnnule l'enregistrement du rappel de la requête RPC.
Notification d'événement
register_event_notification_callbackEnregistre un rappel pour les notifications d'événements auxquels l'utilisateur est abonné.unregister_event_notification_callbackannule l'enregistrement du rappel de notification d'événement.on_sdv_topic_availabilityindique une modification de la disponibilité des thèmes SDV.subscribeS'abonne à un événement spécifique d'un groupe d'événements.unsubscribeSe désabonne d'un événement spécifique.publishPublie un événement avec une charge utile donnée.
SELinux
Le dossier device/google/sdv/sdv_core_base/sepolicy/samples/vendor/ contient un exemple de configuration SELinux pour la pile de référence :
sdv_someip_stack_default.tedéfinit le typesdv_someip_stack_defaultet le mappe aux attributs et aux contextes.file_contextsmappe les dossiers binaires et de données aux contextes appropriés.
La configuration permet la communication Binder entre la pile et le broker, ce qui permet d'accéder aux qualités réseau et d'accéder de manière précise au système de fichiers de l'appareil.