SOME/IP in AUTOSAR Classic

SOME/IP

The data path configuration map

The path of a SOME/IP message through COM or LdCom, PduR, SOME/IP TP, SoAd, TcpIp and EthIf is configured as a chain of references. Each module references a shared global PDU (the ECU-wide name of one PDU) and the next container on the path.

One PDU, followed through the configuration

All communication modules refer to the same PDUs through a global PDU (an EcuC Pdu container: the ECU-wide name of one PDU that every module references). COM, PduR and SoAd each reference the global PDU "BrakeEvent", and that is how they agree they mean the same PDU. From SoAd on, the references lead to socket connection groups, local addresses and controllers.

Configuration chain for transmitting BrakeEvent: the ComIPdu, the PduRRoutingPath with source and destination, the SoAdPduRoute and its SoAdPduRouteDest with header ID, routing groups and socket connection, the SoAdSocketConnectionGroup with SoAdPduHeaderEnable and local port, the TcpIpLocalAddr, the TcpIpCtrl and the EthIfController with its VLAN. ComIPdu, PduRRoutingPath and SoAdPduRoute all reference the same global PDU. global PDU "BrakeEvent" ComIPduComPduIdRef PduRRoutingPathsource → destination SoAdPduRouteSoAdTxPduRef SoAdPduRouteDestheader ID,routing groups,socket connection SoAdSocket-ConnectionGroupSoAdPduHeaderEnable,local port TcpIpLocalAddrIP address of the ECU TcpIpCtrlTcpIp on one controller EthIfControllerEthIfVlanId (VLAN) top row: the route of the PDU · bottom row: where it leaves the ECU dashed: "references the same global PDU" · solid: "leads on to"
Figure 1. Read the top row left to right, then the bottom row right to left. The three dashed arrows are why the PDU keeps its identity across modules even though each module gives it its own handle ID.

COM / LdCom

One byte-array signal

In COM, the ComIPdu (COM's container for one I-PDU) holds one ComSignal of type UINT8_N (fixed length) or UINT8_DYN (up to a maximum), and ComIPduType says NORMAL or TP. In LdCom, one LdComIPdu (LdCom's container for one I-PDU) per PDU, with LDCOM_IF or LDCOM_TP.

PduR

Routing paths

In R20-11, the sources (PduRSrcPdu: a PDU PduR receives) and destinations (PduRDestPdu: a PDU PduR forwards) are listed next to the paths, inside PduRRoutingPaths; each PduRRoutingPath (one route through PduR) references one source and one destination. For a segmented message one path goes to SOME/IP TP and another from SOME/IP TP to SoAd.

SOME/IP TP

N-SDU and N-PDU

For each segmented message: the N-SDU (the whole message, before segmentation or after reassembly) and the N-PDU (the PDU that carries one segment), plus per channel the separation time between segments and the receive timeout.

SoAd

Routes, socket connections, routing groups

Each SoAdPduRoute (transmit route: a PDU from above) has SoAdPduRouteDests (one way out each: header ID, routing groups, socket connection or socket connection group). Each SoAdSocketRoute (receive route: from a socket connection up) has a header ID and SoAdSocketRouteDests (the PDU handed up, with routing groups). Then come the socket connection groups with their socket connections, and the routing groups themselves.

The map

The SOME/IP-relevant part of each module's configuration, with multiplicities. Containers are in bold. Parameters not needed for SOME/IP are left out. Three containers are new here: SoAdSocketRemoteAddress (the remote IP address and port of a socket connection, possibly a wildcard), TcpIpLocalAddr (one local IP address of the ECU) and EthIfController (an Ethernet controller as TcpIp sees it, with its optional VLAN). SoAdPduHeaderEnable (switches the SoAd PDU header on for a socket connection group) must be on for SOME/IP.

Try it

Pick a feature; the map above marks where it is configured.

Pick a feature.

Things to notice. The header ID appears twice in SoAd: for transmission in the route destination (SoAdTxPduHeaderId), for reception in the route itself (SoAdRxPduHeaderId). The routing groups are defined once in SoAd and referenced from both route kinds, and from Sd. The VLAN is not a SoAd setting at all: it comes from the EthIf controller behind the local address.

Check yourself optional

New terms in this lesson

TermMeaning
global PDUThe EcuC Pdu container: the ECU-wide name of one PDU that COM, PduR, SOME/IP TP and SoAd all reference
ComIPdu / LdComIPduThe container for one I-PDU in COM / LdCom
PduRRoutingPathOne route through PduR, from one PduRSrcPdu to one PduRDestPdu
N-SDU / N-PDUIn SOME/IP TP: the whole message / the PDU that carries one segment
SoAdPduRoute / SoAdPduRouteDestTransmit route of a PDU / one way out, with header ID, routing groups and socket connection
SoAdSocketRoute / SoAdSocketRouteDestReceive route with its header ID / the PDU handed up, with routing groups
SoAdSocketRemoteAddressRemote IP address and port of a socket connection; may be a wildcard
SoAdPduHeaderEnableSwitches the SoAd PDU header on for a socket connection group; needed for SOME/IP
TcpIpLocalAddrOne local IP address of the ECU
EthIfControllerAn Ethernet controller as TcpIp sees it, with its optional VLAN

Source: chapter 10 of the R20-11 specifications of Socket Adaptor, PDU Router, COM, Large Data COM, SOME/IP TP, TCP/IP and Ethernet Interface.