SOME/IP in AUTOSAR Classic

SOME/IP

Where things are configured

SOME/IP is described twice: once for the whole car in the system description (the network model all ECUs share), and once for each ECU in the ECU configuration (the containers and parameters of its basic software modules). Most ECU settings are the system description seen from one ECU.

Two layers of description

The system description (the model of the whole network, written with the AUTOSAR System Template) covers which services exist, which ECU provides or consumes which service instance, which IDs the messages carry, how data is serialized, and the Sd timing. It is the shared plan every ECU must agree on. The part of it that concerns one ECU is that ECU's ECU extract (the system description cut down to one ECU).

The ECU configuration (ECUC: the containers and parameters each basic software module of one ECU reads) is per ECU and per module: the configuration of Sd, SoAd, PduR, COM, SOME/IP TP, TcpIp and EthIf. It holds the ECU's share of the plan, plus purely local choices such as main function periods and buffer sizes.

Left, the system description: service interfaces as Collections, ISignals with SOME/IP transformation settings, PDUs with their header IDs, ProvidedServiceInstance and ConsumedServiceInstance with EventHandler, ConsumedEventGroup and PduActivationRoutingGroup, Service Discovery timing, network addresses. Right, the ECU configuration per module: RTE, COM or LdCom, PduR, SOME/IP TP, SoAd, Sd, TcpIp, EthIf. Arrows show which part of the system description ends up in which module. System description (whole car) ECU configuration (one ECU) service interface (Collection)events, methods, fields as port interfaces ISignals + SOME/IP transformationmessage type, interface version, byte order … PDUs and their header IDsSoConIPduIdentifier per method and event Provided- / ConsumedServiceInstanceEventHandler, ConsumedEventGroup,PduActivationRoutingGroup with its PDUs Service Discovery timinginitial delay, repetitions, cyclic delay, TTL network addresses and portsIP address, UDP/TCP port, VLAN RTE · no transformer ECUC COM / LdCom PduR SOME/IP TP SoAd Sd TcpIp EthIf The configuration tools derive each ECU's share; local choices are added in the ECU configuration only.
Figure 1. Follow the arrows into SoAd and Sd: most of their settings come from the service instances, the header IDs and the addresses on the left. Note the top right box: the SOME/IP transformer has no ECU configuration of its own.

The system description, part by part

lesson 2

Service interface

The Classic Platform has no service interface element of its own. A Collection groups the sender-receiver, client-server and trigger interfaces that make up one service, with sub-collections for fields and fire&forget methods.

lessons 4, 20, 24

SOME/IP transformation

Each ISignal that carries SOME/IP data points to a transformer chain whose first step is the SOME/IP transformer. General settings (byte order, alignment, interface version) are in the SOMEIPTransformationDescription (the transformer settings shared by all signals); per-signal settings (message type, session handling on or off, size of length fields) are in the SOMEIPTransformationISignalProps (the transformer settings of one signal).

lessons 20, 21

Header IDs

For every PDU sent over a socket, a SoConIPduIdentifier (the entry that binds a PDU to a socket and gives its header ID) holds the header ID that SoAd writes in front: Service ID plus Method ID or Event ID. Header IDs must be unique per address and direction; a request and its response may share one.

lessons 10–15

Service instances

A ProvidedServiceInstance (a service instance this ECU offers) has Service ID, Instance ID, versions, its local ApplicationEndpoints (UDP and/or TCP port plus IP address), its EventHandlers (one per eventgroup, with Eventgroup ID and multicast threshold) and a routing group for its methods. A ConsumedServiceInstance (a service instance this ECU uses) lists the ConsumedEventGroups it subscribes to.

lesson 21

PduActivationRoutingGroup

Each PduActivationRoutingGroup (a routing group as seen in the system description) names the PDUs it enables, over UDP or TCP, and for events its eventGroupControlType: unicast events, multicast events, initial events for a new subscriber, or both unicast kinds together.

lessons 11–14

Service Discovery timing

Server timing (initial delay, repetitions, CYCLIC_OFFER_DELAY, TTL of the OfferService, request-response delay) and client timing (initial delay, repetitions, TTL of the FindService) per service instance, plus subscription TTL and Subscribe retry per eventgroup.

Older releases described SOME/IP sockets as socket connection bundles. In R20-11 that part of the model is marked obsolete; the sockets come from the ApplicationEndpoints of the service instances instead. You may still meet the old form in existing projects.

The ECU configuration, module by module

ModuleHolds for SOME/IPLesson
RTEWhich transformer functions run for which signal; no module configuration for the SOME/IP transformer itself, its settings come from the system description24
COM / LdComThe I-PDU with one byte-array signal; NORMAL or TP27
PduRRouting paths: from COM to SoAd, through SOME/IP TP when needed27
SOME/IP TPWhich PDUs are segmented, the separation time between segments and the receive timeout27
SoAdSocket connections and socket connection groups, header IDs, transmit and receive routes, routing groups27
SdSdServerService and SdClientService with their eventgroups, timers, its own SD message PDUs, references to SoAd socket connection groups and routing groups26
TcpIp, EthIfLocal addresses, controllers and VLANs, frame owners27

Try it

Pick a part of the system description to see where it ends up in the ECU configuration.

In the system descriptionIn the ECU configuration

Things to notice. Almost every Sd parameter has a twin in the system description, often with nearly the same name. The header ID appears twice in SoAd, once for transmission and once for reception. The PduActivationRoutingGroups of the system description become SoAd routing groups that Sd's containers reference.

Check yourself optional

New terms in this lesson

TermMeaning
system descriptionThe model of the whole network (System Template): services, service instances, PDUs, header IDs, Sd timing, addresses
ECU extractThe part of the system description that concerns one ECU
ECU configuration (ECUC)The containers and parameters of each basic software module of one ECU
ProvidedServiceInstance / ConsumedServiceInstanceA service instance this ECU offers / uses; becomes SdServerService / SdClientService
EventHandler / ConsumedEventGroupServer / client side of an eventgroup; becomes SdEventHandler / SdConsumedEventGroup
PduActivationRoutingGroupA routing group with its PDUs and, for events, its eventGroupControlType; becomes a SoAd routing group
SoConIPduIdentifierBinds a PDU to a socket and gives its header ID
SOMEIPTransformationDescriptionTransformer settings shared by all signals: byte order, alignment, interface version
SOMEIPTransformationISignalPropsTransformer settings of one signal: message type, session handling, size of length fields
ApplicationEndpointThe local UDP or TCP port of a service instance, together with its IP address

Source: System Template, R20-11, sections 6.7 (service instances, Service Discovery configuration), 10 and Appendix E (obsolete socket connection model); SOME/IP Transformer, R20-11, chapter 7 (no module-specific EcuC).