Skip to content

Interoperability with VSome/IP #238

@GabyUnalaq

Description

@GabyUnalaq

Background

I tested cross-stack SOME/IP-SD interoperability between opensomeip and vsomeip: a vsomeip publisher on one VM, an opensomeip subscriber on another, started as containers managed by Eclipse Ankaios, both using standard SOME/IP-SD multicast for discovery.

A minimal reproducible example is available here:

https://github.com/GabyUnalaq/someip-interoperability

Summary

Out of the box, the opensomeip subscriber cannot discover the vsomeip publisher. I traced this to two issues in IPv4EndpointOption in src/sd/sd_message.cpp:

  1. Bounds check — the deserializer checks offset + length_ against the remaining buffer, but vsomeip sets length_ = 9 per AUTOSAR while opensomeip has already consumed the reserved byte, leaving only 8 bytes. The option is silently dropped and the SD offer is ignored.
  2. Byte orderipv4_address_ is stored as addr.s_addr (NBO bytes in a little-endian integer), but the serializer and deserializer both use MSB-first shifts, reversing the IP bytes on the wire. This cancels within opensomeip↔opensomeip but breaks against vsomeip's correct AUTOSAR NBO.

Both fixes are symmetric (serialize and deserialize change together), so opensomeip↔opensomeip communication is unaffected.

Full technical details — root cause, before/after code, and reasoning — are in docs/interop.md in the example repository.

The purpose of this issue is to raise awareness of the interoperability gap and discuss whether these fixes should be merged into opensomeip.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions