vsomeip icon indicating copy to clipboard operation
vsomeip copied to clipboard

[BUG]: Some/IP-SD session counter issue with ipv6 and local link addresses

Open wennmbj opened this issue 1 year ago • 3 comments

We discovered an issue in the service discovery module with ipv6 and local link addresses. We use one Linux ECU with vsomeip and an ECU with Autosar Classic. On receiving side of the subscribe ack the session id is incorrect. Someip-SD

The SD module handles two session counters for one receiving ECU. One for subscribing to a service offered by another ECU and one for the subscribe ack when an ECU subscribed a service from the host ECU. For the ack in service_discovery_impl::get_session(const boost::asio::ip::address &_address) the address object contains the device e.g. fe80::a8bb:ccff:fedd:2%eth0. For other sd operations the object contains only the address e.g. fe80::a8bb:ccff:fedd:2.

wennmbj avatar Jan 09 '24 10:01 wennmbj

@fcmonteiro & @duartenfonseca: Are you considering merging my fix into main?

wennmbj avatar Oct 17 '24 14:10 wennmbj

@wennmbj yes, we are, but we would need some suggestions in how to reproduce on our side the mentioned bug

duartenfonseca avatar Oct 17 '24 14:10 duartenfonseca

@duartenfonseca: It is not that difficult. Use one Linux ECU with vsomeip and one other vsomeip stack vendor e.g. Vector Autosar Classic. Actually it should work if you are setting up a communication between two ECUs with the Covesa stack and monitoring the traffic in Wireshark like I did. Only difference is, that the Vector stack detects reboots due to incorrect session. You just need to use IPv6 local link addresses. Not sure if I can write a unit-test for that case. We are testing this on integration test level with physical hardware.

wennmbj avatar Oct 18 '24 05:10 wennmbj