Summary
The current jumpstarter-driver-someip driver (added in #391) provides client-side SOME/IP operations: RPC calls, service discovery, event subscription, and raw messaging. This is great for testing against ECUs.
However, there are test scenarios where the test harness itself needs to act as a SOME/IP server — offering services, registering method handlers, and publishing events — so the DUT (ECU) can discover and call the tester.
Use case
In a Body ECU integration test setup:
- The ECU runs SOME/IP services (door lock, lighting, speed sensor)
- The tester needs to also offer a service that the ECU can discover and interact with (e.g. a mock cloud gateway or a test-specific service)
- The tester needs to publish events that the ECU subscribes to
Currently this requires dropping down to opensomeip directly, bypassing Jumpstarter's remoting and lease model.
Proposed API additions
| Method |
Description |
offer_service(service_id, instance_id) |
Offer a service via SOME/IP-SD |
stop_offer(service_id, instance_id) |
Stop offering a service |
register_method(service_id, method_id, handler) |
Register an RPC method handler |
publish_event(service_id, event_id, eventgroup_id, payload) |
Publish an event notification |
These would mirror the server-side API from opensomeip.SomeIpServer (register_method, service offering via SD config, event publishing).
Context
Summary
The current
jumpstarter-driver-someipdriver (added in #391) provides client-side SOME/IP operations: RPC calls, service discovery, event subscription, and raw messaging. This is great for testing against ECUs.However, there are test scenarios where the test harness itself needs to act as a SOME/IP server — offering services, registering method handlers, and publishing events — so the DUT (ECU) can discover and call the tester.
Use case
In a Body ECU integration test setup:
Currently this requires dropping down to
opensomeipdirectly, bypassing Jumpstarter's remoting and lease model.Proposed API additions
offer_service(service_id, instance_id)stop_offer(service_id, instance_id)register_method(service_id, method_id, handler)publish_event(service_id, event_id, eventgroup_id, payload)These would mirror the server-side API from
opensomeip.SomeIpServer(register_method, service offering via SD config, event publishing).Context
opensomeipalready supports both client and server modesjumpstarter-driver-someipPR feat: add SOME/IP driver wrapping opensomeip Python binding #391