SOME/IP#

SOME/IP defines a new philosophy of data communication in automotive networks. SOME/IP is used to exchange data between network domain controllers in the latest vehicle architectures. SOME/IP supports subscription and notification mechanisms, allowing domain controllers to dynamically subscribe to data provided by another domain controller dependent on the vehicle’s state. SOME/IP transports data between domain controllers and the gateway that a vehicle needs during its regular operation. The use-cases of SOME/IP are similar to the use-cases of CAN communication. The main purpose is the information exchange of sensor and actuator data between ECUs. This usage emphasizes SOME/IP communication as a rewarding target for cyber-attacks.

Protocol Basics of SOME/IP#

  • SOMEIP

  • Goals of SOME/IP

    • Resource consumption suitable for embedded systems

    • Compatible to as many communication partners as possible

    • Scalable from tiny to large platforms

    • Implementable on different OS

  • Specification components

    • SOMEIP: Serialization and message exchange

    • SOMEIP-SD: Service Discovery (SD) and Publish/Subscribe

    • SOMEIP-TP: Transport Protocol (TP) for segmented communication of large messages

  • SOMEIP supports multicast and unicast

Communication schemes#

  • Fire and Forget: Part of the RPC specification of SOMEIP

../../_images/fireforget.svg

Fig. 46 Fire and Forget#

  • Request and Response: Part of the RPC specification of SOMEIP. Client sends procedure call and expects response. Response may contain result or error values.

../../_images/reqresp.svg

Fig. 47 Request and Response#

  • Publish/Subscribe: Server can publish events or event-groups. Clients can subscribe to events. On events, client notifies server.

../../_images/pubsub.svg

Fig. 48 Publish/Subscribe#

  • Fields: Can be described as combination of Request and Responseand Publish/Subscribe. Servers can offer getter and setter functions through RPC calls. Additionally, clients can subscribe to value changes of fields to receive notifications.

../../_images/fields.svg

Fig. 49 Fields#

SOME/IP Service Discovery#

SOME/IP Service Discovery is a mechanism used by the Scalable Service-Oriented Middleware over IP (SOME/IP) protocol to enable the dynamic discovery of services and events at runtime. It allows clients to discover the IP address and port of service providers and to subscribe to events. The Service Discovery feature is built on top of the User Datagram Protocol (UDP) and uses multicast communication to enable service providers to announce their availability and for clients to discover them.

  • Used to explicitly signal:

    • Availability of a service instance

    • How to reach a service instance

    • Handling of Publish and Subscribe

Useful Tools#

  • Open-Source C++ implementation available on GitHub: GENIVI/vsomeip

  • Good first starting point: GENIVI/vsomeip

  • Wireshark support SOMEIP

  • Scapy allows message creation of SOME/IP packets

  • SOME/IP can be used with IPv4 or IPv6 and on top of UDP or TCP