SOME/IP in AUTOSAR Classic

SOME/IP

Methods: fire&forget

A fire&forget method asks the server to do something and expects nothing back: no RESPONSE, and no ERROR either.

Fire and forget

Some requests need no reply. "Reset", "write your current state to the log": the client only wants the server to do it. A fire&forget call is a message with the Message Type REQUEST_NO_RETURN in its SOME/IP header. The server runs the method and stays silent.

Side by side: request/response has two arrows, REQUEST and then RESPONSE or ERROR. Fire&forget has a single arrow, REQUEST_NO_RETURN, from client to server and nothing back, even when the server fails. request/response Client Server REQUEST · Calibrate RESPONSE or ERROR fire&forget Client Server REQUEST_NO_RETURN · Reset nothing comes back not even when Reset fails
Figure 1. Count the arrows: two on the left, one on the right. Fire&forget calls are drawn dashed in this course.

Three rules

header

REQUEST_NO_RETURN

The same SOME/IP header as a REQUEST, but the Message Type says no response is expected. The Return Code stays E_OK.

errors

No ERROR ever comes back

If the server does not know the method, is not ready, or fails, it still sends nothing. Error handling, if needed, is the application's job.

delivery

No proof of arrival

Over UDP (connectionless transport, lesson 22) a lost request is simply gone. Over TCP (connection-oriented transport that repeats lost data) the connection repeats lost bytes, but the client application still gets no reply from the server.

How the Classic Platform describes it

There is no fire&forget flag on a ClientServerOperation. A fire&forget method is described like an event in the other direction:

The fire&forget method…is described asThe client SWC uses
has argumentsa data element (one value an interface carries) of a sender-receiver interface (an interface over which one SWC sends data and others receive it); the client sends, the server receivesa normal write
has no argumentsa trigger of a trigger interface (an interface that carries triggers: signals without data)a normal trigger

The Message Type REQUEST_NO_RETURN comes from the SOME/IP transformer settings for that data element. An event uses the same mechanism with Message Type NOTIFICATION. On the wire the two differ only in the Message Type, the ID (a Method ID instead of an Event ID) and the direction.

Try it

Choose what happens at the server and step through both kinds of method.

Things to notice. With fire&forget the client's story ends the same way in all three cases: it sent the REQUEST_NO_RETURN and heard nothing. Only request/response lets the client tell success, failure and loss apart (loss shows up as E_TIMEOUT).

Check yourself optional

New terms in this lesson

TermMeaning
fire&forgetA method call without a response: nothing comes back, not even an error
REQUEST_NO_RETURNThe Message Type of a fire&forget call
sender-receiver interface, data elementHow a fire&forget method with arguments is described: the client writes a data element, the server receives it
trigger interfaceHow a fire&forget method without arguments is described: the client fires a trigger

Source: SOME/IP Protocol Specification, R20-11, sections 4.2.3 and 4.2.6.2; System Template, R20-11, sections 10.1.3 and 10.2; SOME/IP Transformer, R20-11, sections 7.3.2 and 7.3.3.