SOME/IP
SOME/IP at a glance
Every feature of SOME/IP in the course on one page: its AUTOSAR name, the rule in one line, and the lesson that explains it.
Events, methods and fields
| Feature | In one line | Lesson |
|---|---|---|
| SOME/IP header | Message ID, Length, Request ID (Client ID + Session ID), Protocol Version, Interface Version, Message Type, Return Code; several SOME/IP messages may share one UDP datagram. | 4 |
| event | Sent by the server to its subscribers as a NOTIFICATION; no response and never an error back; cyclic update, update on change or epsilon change is the sender's choice. | 5 |
| method (request/response) | The RESPONSE carries the Request ID of the REQUEST; the client times out with E_TIMEOUT; one open request per client and operation in the RTE (transaction handle). | 6 |
| fire&forget | REQUEST_NO_RETURN without response or error; in the Classic Platform described by a sender-receiver interface or a trigger interface. | 7 |
| field | getter, setter (its RESPONSE carries the value actually set) and notifier, with an initial event for a new subscriber. | 8 |
| Return Code | The Classic Platform SOME/IP transformer reports errors in the Return Code of an ERROR, without exception data; a REQUEST whose Message ID SoAd cannot route is dropped, so the client ends with E_TIMEOUT. | 9 |
| server and client | Configured per service instance as SdServerService or SdClientService; eventgroups as event handler or consumed eventgroup. | 10 |
Service Discovery
| Feature | In one line | Lesson |
|---|---|---|
OfferService, TTL | Offer with Endpoint options; valid only for its TTL; StopOfferService is an OfferService with TTL 0. | 11 |
| Initial Wait Phase, Repetition Phase, Main Phase | Random wait, repetitions with doubling gaps, then cyclic offers every CYCLIC_OFFER_DELAY (or none). | 12 |
FindService | Only while no offer is known; repetitions with doubling gaps, never cyclic; answers to a multicast FindService wait a random REQUEST_RESPONSE_DELAY. | 13 |
SubscribeEventgroup, SubscribeEventgroupAck, SubscribeEventgroupNack | Sent in reply to every OfferService; unicast only; initial events right after the Ack when the Initial Data Requested flag is set. | 14 |
| unicast or multicast events, multicast threshold | Threshold 0: always unicast; 1: always multicast; N: multicast from N subscribers on. | 15 |
| reboot detection | The reboot flag went from 0 to 1, or it is set and the Session ID did not increase: the partner rebooted. | 16 |
| Sd and BswM | BswM requests: REQUESTED / RELEASED, server services AVAILABLE / DOWN; Sd reports client services and consumed eventgroups AVAILABLE / DOWN and event handlers REQUESTED / RELEASED; service groups. | 17 |
The data path between the wire and the SWC
| Topic | In one line | Lesson |
|---|---|---|
| Transmission | The RTE runs the SOME/IP transformer → COM / LdCom → PduR → SoAd adds the SoAd PDU header (Message ID and Length) for each enabled socket connection → TcpIp → EthIf → Eth driver. | 18 |
| Reception | EthIf picks the frame owner → TcpIp: IP address and port → SoAd: socket connection and message acceptance filter, then the header ID selects the socket route, if its routing group is enabled → the SOME/IP transformer checks versions and Message Type. | 19 |
| Who writes the SOME/IP header | SoAd: Message ID and Length; SOME/IP transformer: the rest; SOME/IP TP: the TP flag and the SOME/IP TP header; Sd: its own SOME/IP-SD messages. | 20 |
| Socket connections and routing groups | Sd fills in the wildcard remote address and enables routing groups per socket connection; a triggering routing group sends the initial events. | 21 |
| UDP or TCP | UDP: lean, may lose a message; TCP: no loss but waits; large data with hard timing: UDP with SOME/IP TP. One TCP connection per service instance, opened and closed by the client. | 22 |
| segmentation | Segments of up to 1392 bytes of payload (multiples of 16 except the last), each with the original SOME/IP header plus the TP flag and a SOME/IP TP header; AUTOSAR SOME/IP TP does not reorder or retry. | 23 |
| COM, LdCom and the transformer chain | The RTE runs the chain (the SOME/IP transformer first, then for example the E2E transformer); the bytes travel as one byte-array signal (UINT8_N or UINT8_DYN) in COM, or as an I-PDU in the leaner LdCom. | 24 |
Configuration and details
- Where things are configured, the Sd configuration map, the data path configuration map.
- The SOME/IP header, byte by byte, serialization, the SD message, byte by byte, the Sd state machines, the SOME/IP TP header.
- Sheets: IDs, types and codes, Service Discovery timing, Glossary.
Source: the lessons of this course, which name their R20-11 sources.