How hayeon-lee/someip-simulator works
vSomeIP is a C++ SOME/IP middleware stack. Its principal workflow starts with an application using the public API, proceeds through runtime and routing to local or network transport, and delivers SOME/IP messages to another application; service discovery supports finding and announcing remote services. Configuration, security, plugins, tracing, logging, and E2E protection are additional product capabilities. The tree and excerpts establish module responsibilities, but do not expose enough call sites to verify every runtime handoff, so unverified links are dashed.
Main entry points: routing_manager_impl.cpp Routing manager · endpoint_manager_impl.cpp Endpoint manager · routing_manager_client.cpp Client routing · runtime.cpp Runtime API
Components 22
Application runtime
- SOME/IP application
interface/vsomeip/application.hpp - Runtime API
implementation/runtime/src/runtime.cpp - Application lifecycle
implementation/runtime/src/application_impl.cpp - Routing bootstrap
implementation/runtime/src/routing_application.cpp
Service routing
- Client routing
implementation/routing/src/routing_manager_client.cpp - Routing manager
implementation/routing/src/routing_manager_impl.cpp - Client state
implementation/routing/src/routing_client_state_machine.cpp - Events and groups
implementation/routing/src/event.cpp - Service registry
implementation/routing/src/serviceinfo.cpp - Service discovery
implementation/service_discovery/src/service_discovery_impl.cpp
Communication transport
- Endpoint manager
implementation/endpoints/src/endpoint_manager_impl.cpp - Local IPC endpoint
implementation/endpoints/include/local_endpoint.hpp - TCP endpoints
implementation/endpoints/src/tcp_client_endpoint_impl.cpp - UDP endpoints
implementation/endpoints/src/udp_client_endpoint_impl.cpp
Messages and protection
- Message codec
implementation/message/src/serializer.cpp - Message model
implementation/message/src/message_impl.cpp - E2E protection
implementation/e2e_protection/src/e2exf/config.cpp
Configuration and extensions
- Configuration
implementation/configuration/src/configuration_impl.cpp - Security policies
implementation/security/src/policy_manager_impl.cpp - Plugin manager
implementation/plugin/src/plugin_manager_impl.cpp - Tracing
implementation/tracing/src/connector_impl.cpp - Logging
implementation/logger/src/logger_impl.cpp
Connections 22
- SOME/IP application → Runtime API: uses API
- Runtime API → Application lifecycle: creates application
- Application lifecycle → Routing bootstrap: starts routing
- Routing bootstrap → Routing manager: initializes
implementation/runtime/src/routing_application.cpp - Client routing → Client state: uses state
implementation/routing/src/routing_manager_client.cpp - Client routing → Routing manager: routes requests
- Routing manager → Endpoint manager: manages endpoints
- Routing manager → Service discovery: uses discovery
- Routing manager → Events and groups: updates events
implementation/routing/src/routing_manager_impl.cpp - Routing manager → Service registry: tracks services
implementation/routing/src/routing_manager_impl.cpp - Endpoint manager → Local IPC endpoint: creates local IPC
implementation/endpoints/src/endpoint_manager_impl.cpp - Endpoint manager → TCP endpoints: creates TCP
implementation/endpoints/src/endpoint_manager_impl.cpp - Endpoint manager → UDP endpoints: creates UDP
implementation/endpoints/src/endpoint_manager_impl.cpp - Routing manager → Message codec: serializes messages
implementation/routing/src/routing_manager_impl.cpp - Message codec → Message model: encodes message
- Service discovery → Endpoint manager: uses transport
- Configuration → Routing manager: provides settings
- Security policies → Client routing: checks permissions
implementation/routing/src/routing_manager_client.cpp - Plugin manager → Configuration: loads extensions
- Tracing → Routing manager: observes traffic
- Routing manager → Logging: logs activity
- E2E protection → Message model: protects payloads