Autosar Sws Diagnosticoverip
Autosar Sws Diagnosticoverip
Disclaimer
This work (specification and/or software implementation) and the material contained
in it, as released by AUTOSAR, is for the purpose of information only. AUTOSAR
and the companies that have contributed to it shall not be liable for any use of the
work.
The material contained in this work is protected by copyright and other types of
intellectual property rights. The commercial exploitation of the material contained in
this work requires a license to such intellectual property rights.
This work may be utilized or reproduced without any modification, in any form or by
any means, for informational purposes only. For any other purpose, no part of the
work may be utilized or reproduced, in any form or by any means, without permission
in writing from the publisher.
The work has been developed for automotive applications only. It has neither been
developed, nor tested for non-automotive applications.
The word AUTOSAR and the AUTOSAR logo are registered trademarks.
Table of Contents
3 Related documentation........................................................................................ 9
3.1 Input documents ........................................................................................... 9
3.2 Related standards and norms .................................................................... 10
3.3 Related specification .................................................................................. 10
4 Constraints and assumptions ............................................................................ 11
4.1 Applicability to car domains ........................................................................ 11
5 Dependencies to other modules ........................................................................ 12
5.1 Socket Adaptor (SoAd)............................................................................... 14
5.2 Pdu Router (PduR) ..................................................................................... 14
5.3 Diagnostic Communication Manager (Dcm) ............................................... 14
5.4 Default Error Tracer (Det) ........................................................................... 14
5.5 File structure .............................................................................................. 14
5.5.1 Code file structure ................................................................................. 14
5.5.2 Header file structure .............................................................................. 15
6 Requirements traceability .................................................................................. 16
The intent of this document is to specify the functionality, API and the configuration of
the AUTOSAR Basic Software module Diagnostic over IP (DoIP).
For detailed introduction and information about DoIP please refer to ISO 13400
documents set.
3 Related documentation
Thus, the specification SWS BSW General [14] shall be considered as additional and
required specification for the DoIP module.
+SoAd
«module»
«realize» DoIP «mandatory»
«generic_interface»
DoIP_Types
CancelTransmit
«realize»
DoIP_GetVersionInfo «realize»
+SoAd «generic_interface»
«realize»
CancelReceive
«mandatory»
«realize»
DoIP_Init
«mandatory»
SoAd_SoConCtrl
DoIP_MainFunction «realize»
«generic_interface» «realize»
CopyTxData «mandatory»
SoAd_ReadDhcpHostNameOption
«generic_interface»
CopyRxData «realize»
«mandatory»
SoAd_WriteDhcpHostNameOption
«generic_interface»
«realize»
StartOfReception
«mandatory»
«generic_interface» Dcm_GetVin
TpRxIndication «realize»
«mandatory»
«generic_interface»
«realize» SoAd_GeneralCtrl
TpTxConfirmation
«generic_interface» «realize»
TxConfirmation
«mandatory»
SoAd_SetRemoteAddr
«generic_interface»
RxIndication «realize»
«mandatory»
+SoAd «realize» SoAd_SetUniqueRemoteAddr
«mandatory»
«generic_interface»
Transmit
«mandatory»
«generic_interface»
«generic_interface» CopyTxData
CancelTransmit «realize»
«generic_interface»
«realize» «mandatory»
DoIP_SoConModeChg CopyRxData
«realize»
DoIP_LocalIpAddrAssignmentChg «generic_interface»
«mandatory»
TpTxConfirmation
DoIP_ActivationLineSwitchActive «realize»
«mandatory» «generic_interface»
TpRxIndication
«realize»
DoIP_ActivationLineSwitchInactive
«generic_interface»
«mandatory»
StartOfReception
<User>_DoIPGetGidCallback «realize»
«realize»
<User>_DoIPRoutingActivationConfirmation
«optional»
Det_ReportError
<User>_DoIPRoutingActivationAuthentication «realize»
«realize»
<User>_DoIPTriggerGidSyncCallback
<User>_DoIPGetFurtherActionByteCallback «realize»
The Socket Adaptor is the interfacing module for the TCP/IP Stack [13] that supports
IP, TCP, UDP,IPv4, IPv6 and address assignment mechanisms like AutoIP and
DHCP.
For details refer to chapter 5.1.6 “Code file structure” in SWS_BSWGeneral [14].
14 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
[SWS_DoIP_00158]⌈
The DoIP module shall provide the following H-files:
DoIP.h (for declaration of provided interface functions)
DoIP_Types.h (for public types defined by SoAd)
⌋ ()
[SWS_DoIP_00157]⌈
The DoIP module shall include the following H-files of other modules:
SoAd.h – header file of the AUTOSAR SoAd module
ComStack_Types.h [3]
PduR_DoIP.h (for callback functions of the DoIP upper layer module PduR)
⌋ ()
6 Requirements traceability
SWS_DoIP_00078, SWS_DoIP_00079,
SWS_DoIP_00080, SWS_DoIP_00081,
SWS_DoIP_00082, SWS_DoIP_00083,
SWS_DoIP_00084, SWS_DoIP_00086,
SWS_DoIP_00087, SWS_DoIP_00088,
SWS_DoIP_00089, SWS_DoIP_00205,
SWS_DoIP_00263, SWS_DoIP_00264,
SWS_DoIP_00287, SWS_DoIP_00288,
SWS_DoIP_00289, SWS_DoIP_00290,
SWS_DoIP_00291
SRS_Eth_00027 DoIP diagnostic message SWS_DoIP_00121, SWS_DoIP_00122,
shall have a format SWS_DoIP_00123, SWS_DoIP_00124,
SWS_DoIP_00125, SWS_DoIP_00126,
SWS_DoIP_00127, SWS_DoIP_00128,
SWS_DoIP_00129, SWS_DoIP_00130,
SWS_DoIP_00131, SWS_DoIP_00132,
SWS_DoIP_00133, SWS_DoIP_00134,
SWS_DoIP_00135, SWS_DoIP_00136,
SWS_DoIP_00137, SWS_DoIP_00138,
SWS_DoIP_00173, SWS_DoIP_00174
SRS_Eth_00028 Multiple DoIP sockets shall SWS_DoIP_00002, SWS_DoIP_00039,
be allowed on a single port SWS_DoIP_00040, SWS_DoIP_00058,
SWS_DoIP_00085, SWS_DoIP_00115,
SWS_DoIP_00201, SWS_DoIP_00202,
SWS_DoIP_00204, SWS_DoIP_00234,
SWS_DoIP_00235, SWS_DoIP_00241,
SWS_DoIP_00243
SRS_Eth_00047 DoIP shall be able to SWS_DoIP_00154, SWS_DoIP_00155,
access the DHCP host SWS_DoIP_00156
name option.
SRS_Eth_00080 DoIP shall implement a SWS_DoIP_00047, SWS_DoIP_00054,
mechanism to retrieve SWS_DoIP_00090, SWS_DoIP_00091,
diagnostic power mode SWS_DoIP_00092, SWS_DoIP_00093,
SWS_DoIP_00261
SRS_Eth_00081 DoIP shall be able to SWS_DoIP_00001, SWS_DoIP_00002,
dynamically maintain SWS_DoIP_00039, SWS_DoIP_00040,
connection to different SWS_DoIP_00058, SWS_DoIP_00085,
testers SWS_DoIP_00115, SWS_DoIP_00201,
SWS_DoIP_00202, SWS_DoIP_00204,
SWS_DoIP_00234, SWS_DoIP_00235,
SWS_DoIP_00241, SWS_DoIP_00243
SRS_Eth_00082 - SWS_DoIP_00094, SWS_DoIP_00095,
SWS_DoIP_00096, SWS_DoIP_00097,
SWS_DoIP_00098, SWS_DoIP_00099,
SWS_DoIP_00100
SRS_Eth_00083 - SWS_DoIP_00058, SWS_DoIP_00105,
SWS_DoIP_00107, SWS_DoIP_00115,
SWS_DoIP_00139, SWS_DoIP_00140,
SWS_DoIP_00141, SWS_DoIP_00142,
SWS_DoIP_00143, SWS_DoIP_00144,
SWS_DoIP_00145, SWS_DoIP_00146,
SWS_DoIP_00159
SRS_Eth_00084 - SWS_DoIP_00048, SWS_DoIP_00049,
SWS_DoIP_00055, SWS_DoIP_00101,
SWS_DoIP_00102, SWS_DoIP_00103,
SWS_DoIP_00104, SWS_DoIP_00105,
17 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
SWS_DoIP_00106, SWS_DoIP_00107,
SWS_DoIP_00108, SWS_DoIP_00109,
SWS_DoIP_00110, SWS_DoIP_00111,
SWS_DoIP_00112, SWS_DoIP_00113,
SWS_DoIP_00114, SWS_DoIP_00116,
SWS_DoIP_00117, SWS_DoIP_00118,
SWS_DoIP_00119, SWS_DoIP_00120,
SWS_DoIP_00160, SWS_DoIP_00161,
SWS_DoIP_00262, SWS_DoIP_00274
7 Functional specification
This specification provides the AUTOSAR representation of ISO 13400-2 as
specified in the following chapters.
The use cases for usage of DoIP differ from the single connection of external test
equipment (see Figure 3) to a brought interconnectivity of the car or single ECUs with
the environment (see Figure 4).
Figure 3: Connection of an external test equipment directly to the car (see ISO 13400-1 [15])
The DoIP is using for this interaction a protocol that executes several services within
the single DoIP entities to fulfil the service related requirements of the DoIP ISO
13400 [15]:
Figure 4: Highly interconnected system of several Cars via the DoIP protocol (see ISO 13400-1
[15])
[SWS_DoIP_00201]⌈ The DoIP module shall maintain the DoIP Activation Line
status by the calls to DoIP_ActivationLineSwitchActive() and
DoIP_ActivationLineSwitchInactive().
⌋ ( SRS_Eth_00081, SRS_Eth_00028)
Note: The API is called by the Rte or the SchM based on the Mode Switch Listening
Port as described in the Chapter 8.6.4.
Note: The return value depends on the API that is called. If it is Std_ReturnType it
shall return E_NOT_OK, if it is BufReq_ReturnType it shall return
BUFREQ_NOT_OK.
[SWS_DoIP_00001]⌈
The DoIP module shall maintain the following information of the configured
DoIPUDPConnection (for UDP communication):
(a) State of the SocketConnection
⌋ ( SRS_Eth_00081)
[SWS_DoIP_00002]⌈
[SWS_DoIP_00241]⌈
If the DoIP module is called with DoIP_SoConModeChg and the Mode set to
SOAD_SOCON_ONLINE the state of the socket connection shall be considered as
online and the DoIP module shall behave as described in SWS_DoIP_00143.
⌋ (SRS_Eth_00081, SRS_Eth_00028)
[SWS_DoIP_00243]⌈
If the DoIP module is called with DoIP_SoConModeChg and the Mode set to
something else than SOAD_SOCON_ONLINE the state of the socket connection
shall be considered as offline and the DoIP module shall behave as described in
SWS_DoIP_00115.
⌋ ( SRS_Eth_00081, SRS_Eth_00028)
[SWS_DoIP_00058]⌈
If a connection needs to be closed based on DoIP specific behavior the DoIP module
shall call the function SoAd_CloseSoCon with the parameter abort set to TRUE and
the SoConId determined by a call to the function SoAd_GetSoConId with the
according DoIPSoAdTcpTxPdu. Additionally also the according inactivity timer will be
stopped.
⌋ ( SRS_Eth_00081, SRS_Eth_00028, SRS_Eth_00083)
[SWS_DoIP_00076]⌈
If the parameter DoIPVinGIDMaster is set to true and the Container
DoIPTriggerGIDSynchronization is configured, the DoIP module shall call the
<User>_DoIPTriggerGIDSynchronization function (after a successful IP Address
assignment as described in SWS_DoIP_000003) and repeate this call within the
DoIP_MainFunction until its return value equals to E_OK or until the complete
connection is closed for any other reason.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00085]⌈
[SWS_DoIP_00115]⌈
If a TCP socket connection gets closed (after the DoIP_SoConModeChg was called
with different mode value than SOAD_SOCON_ONLINE or any other reason
described by SWS_DoIP_00058) the DoIP module shall
- unregister and release the socket connection to the related Tester,
- discard the ongoing diagnostic message processing and
- reset the inactivity timer of the given socket connection.
⌋ ( SRS_Eth_00028, SRS_Eth_00081, SRS_Eth_00083)
Note: This includes cleaning up all the buffers/internal variables and scheduled
asynchronous or pending function calls as well as reducing the amount of tester
connected by 1.
[SWS_DoIP_00142]⌈
The DoIP module shall maintain an inactivity timer for each registered TCP
connection.
⌋ ( SRS_Eth_00083)
[SWS_DoIP_00143]⌈
After a successful TCP socket connection (i.e. DoIP_SoConModeChg) the DoIP
module shall start the inactivity timer.
⌋ ( SRS_Eth_00083)
[SWS_DoIP_00144]⌈
If no Routing Activation request was received on a new opened socket within the
configured DoIPInitialInactivityTime, the DoIP module shall close the socket
connection.
⌋ ( SRS_Eth_00083)
[SWS_DoIP_00159]⌈
If a Routing Activation request was received on a new opened socket before the
inactivity timer elapsed (i.e. the configured DoIPInitialInactivityTime did not pass) the
DoIP module shall reset the inactivity timer to 0.
⌋ ( SRS_Eth_00083)
[SWS_DoIP_00145]⌈
After a routing activation has been performed (see SWS_DoIP_00159), the DoIP
module shall reset the inactivtity timer to 0 always when data communication is
performed on the socket (send or receive).
⌋ ( SRS_Eth_00083)
[SWS_DoIP_00146]⌈
If the inactivity timer reaches the time configured in DoIPGeneralInactivityTime, the
according socket connection shall be closed as described in SWS_DoIP_00058.
⌋ ( SRS_Eth_00083)
[SWS_DoIP_00154]⌈
If the API DoIP_LocalIpAddrAssignmentChg is called with the State set to
TCPIP_IPADDR_STATE_ASSIGNED, the DoIP module shall call the function
SoAd_ReadDhcpHostNameOption with the received SoConId to get the currently set
host name option. The returned Byte buffer shall be considered as ASCII buffer and
shall start with “DoIP-“.
⌋ ( SRS_Eth_00047)
[SWS_DoIP_00155]⌈
If the ASCII buffer returned in SWS_DoIP_00154 does not start with “DoIP-“ and the
configuration parameter DoIPDhcpOptionVinUse is set to FALSE the DoIP module
shall call the SoAd_WriteDhcpHostNameOption with a pointer to the string “DoIP-“ in
order to set the hostname.
⌋ ( SRS_Eth_00047)
[SWS_DoIP_00156]⌈
If the ASCII buffer returned in SWS_DoIP_00154 does not start with “DoIP-“ and the
configuration parameter DoIPDhcpOptionVinUse is set to TRUE the DoIP module
shall call the SoAd_WriteDhcpHostNameOption with a pointer to to the ASCII buffer
“DoIP-VIN<vinnumberinascii>“ with <vinnumberinascii> representing the ASCII
representation of the VIN that is retrieved via Dcm_GetVin. If no valid VIN could be
retrieved the DoIP shall use the configured DoIPVinInvalidityPattern in ASCII
representation.
⌋ ( SRS_Eth_00047)
All Pdus received or sent via the SoAd shall support the the DoIP header structure
as defined in the ISO 13400-2 [15] table 11. The DoIP header is described in this
chapter.
[SWS_DoIP_00004]⌈
The first 8 Bytes of a DoIP message shall contain the DoIP Header followed by the
actual payload data.
[SWS_DoIP_00005]⌈
Byte 0 of the DoIP header has to contain the protocol version e.g. 0x02.
⌋ ( SRS_Eth_00025)
[SWS_DoIP_00006]⌈
The Byte 1 of the DoIP header shall contain the inverse protocol version e.g. 0xFD
value shall be added if the protocol version is 0x02.
⌋ ( SRS_Eth_00025)
[SWS_DoIP_00007]⌈
Byte 2 and Byte 3 shall contain the PayloadType.
⌋ ( SRS_Eth_00025)
[SWS_DoIP_00008][⌈
The following PayloadTypes shall be supported for reception of DoIP messages:
[SWS_DoIP_00009]⌈
The following PayloadTypes shall be supported for sending of DoIP messages:
Payload Payload type name Chapter in DoIP Connection Kind
Type SWS
value
25 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
[SWS_DoIP_00010]⌈
Bytes 4 to 7 shall contain the payload length in Bytes not including the length of the
DoIP header information (i.e. if a DoIP message is received with Payload length set
to 2 it means that 10 Bytes in total were received).
⌋ ( SRS_Eth_00025)
This chapter contains the check of the DoIP header with the according negative
acknowledge messages with payload type 0x0000 for an invalid DoIP header.
[SWS_DoIP_00012]⌈
If an invalid DoIP header was received, a DoIP message with payload type 0x0000
shall be transmitted with the payload described in SWS_DoIP_00013 on the TxPdu
which is related to the RxPdu the message was received on, if the according
SocketConnection status has not changed since the reception of the DoIP message
⌋ ( SRS_Eth_00025)
[SWS_DoIP_00013]⌈
The payload of the generic DoIP header shall contain the corresponding NACK code
(1 Byte) as specified from SWS_DoIP_00014 to SWS_DoIP_00019.
⌋ ( SRS_Eth_00025)
[SWS_DoIP_00014]⌈
If the Protocol information is incorrect, (see SWS_DoIP_00005, SWS_DoIP_00006
and SWS_DoIP_00015 for valid information) the NACK code 0x00 shall be sent and
the according socket shall be closed (see SWS_DoIP_00058).
26 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
⌋ ( SRS_Eth_00025)
[SWS_DoIP_00016]⌈
If a payload type is not supported (see SWS_DoIP_00008 for valid payload types)
the DoIP module shall send the NACK code 0x01 to indicate that a unkown payload
type was requested. The message shall be discarded for further processing.
⌋ ( SRS_Eth_00025)
[SWS_DoIP_00017]⌈
If the payload length exceeds the value configured by DoIPMaxRequestBytes, the
DoIP module shall send the NACK code 0x02 to indicate that the message is too
large. The message shall be discarded for further processing.
⌋ ( SRS_Eth_00025)
[SWS_DoIP_00018]⌈
If the DoIP module is called with DoIP_SoAdTpStartOfReception() and the indicated
payload length exceeds the currently available buffer size, the function must return
with BUFREQ_E_OVFL value (No buffer of the required length can be provided) and
trigger a Negative Response (NACK) with value 0x03.
The currently available buffer size calculation shall be based on Payload Type. If the
DoIP message is processed internally (see SWS_DoIP_00008) the locally avalailable
buffer, other case the upper layer (PduR_DoIPTpStartOfReception) provided buffer
size shall be the base for the response.
⌋ ( SRS_Eth_00025)
[SWS_DoIP_00019]⌈
If the DoIP module is called with a payload length that is not valid for the specifc
payload type, the NACK code 0x04 shall be sent and the according socket shall be
closed (see SWS_DoIP_00058).
⌋ ( SRS_Eth_00025)
Note: The single valid payload length ranges for the single payload types are
described in the single subchapters of the payloads (see SWS_DoIP_00008 for the
list of all receive payload types and the according chapter references).
[SWS_DoIP_00015]⌈
On a vehicle identification request the Protocol Type 0xFF and the inverse Protocol
Type 0x00 shall be supported as default values, additionally to the ProtocolType
described in SWS_DoIP_00005 and SWS_DoIP_00006.
⌋ (SRS_Eth_00026)
[SWS_DoIP_00061]⌈
If a DoIP message with payload type 0x0001 is not received on a configured
DoIPUDPConnection, the message shall be discarded.
⌋ ( SRS_Eth_00026)
Note: This also means that it is not allowed to receive this payload type on a TCP
connection.
[SWS_DoIP_00059]⌈
The expected payload length (see SWS_DoIP_00019) for vehicle identification
request message with payload type 0x0001 shall be exactly 0.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00060]⌈
If a DoIP message with payload Type 0x0001 is received on the configured
DoIPUDPConnection, the DoIP module shall respond with a vehicle identification
response/vehicle announcement message after the configured
DoIPInitialVehicleAnnouncementTime with payload type 0x0004 as described
inTable 6.
⌋ ( SRS_Eth_00026)
The payload data structure of a vehicle identification request message with EID shall
be supported as described in Table 4:
Note: This also means that it is not allowed to receive this payload type on a TCP
connection.
[SWS_DoIP_00063]⌈
The expected payload length (see SWS_DoIP_00019) for vehicle identification
request message with payload type 0x0002 shall be exactly 6.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00064]⌈
If a DoIP message with payload Type 0x0002 is received on the configured
DoIPUDPConnection, the DoIP module shall further process the message.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00065]⌈
If the Parameter DoIPUseMacAdressForIdentification is set to true the received “EID”
6 payload data bytes shall be compared to the MacAddress received via
SoAd_GetPhysAddr . If they match the DoIP module shall respond with a vehicle
identification response/vehicle announcement message with payload type 0x0004 as
described inTable 6.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00066]⌈
If the Parameter DoIPUseMacAdressForIdentification is set to false the received
“EID” 6 payload data bytes shall be compared to the configured DoIPEID. If they
match the DoIP module shall respond with a vehicle identification response/vehicle
announcement message with payload type 0x0004 as described inTable 6.
⌋ ( SRS_Eth_00026)
The payload data structure of a vehicle identification request message with VIN shall
be supported as described in Table 5:
Note: This also means that it is not allowed to receive this payload type on a TCP
connection.
[SWS_DoIP_00068]⌈
The expected payload length (see SWS_DoIP_00019) for vehicle identification
request message with payload type 0x0003, shall be exactly 17.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00069]⌈
If a DoIP message with payload Type 0x0003 is received on the configured
DoIPUDPConnection the DoIP module shall further process the message.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00070]⌈
The DoIP 17 payload data bytes shall be compared to the data retrieved by the
function Dcm_GetVin. If the function returns E_OK, the VIN pointer is considered to
contain valid information. If the function returns E_NOT_OK or the returned VIN do
not match the requested VIN, the DoIP message with payload Type 0x0003 shall be
ignored. If the requested VIN matches the derived VIN, the DoIP module shall
respond with a vehicle identification response/vehicle announcement message with
payload type 0x0004 as described in Table 6.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00071]⌈
[SWS_DoIP_00072]⌈
The “VIN” of a vehicle identification response/vehicle announcement message shall
be derived by calling Dcm_GetVin. If Dcm_GetVin returns E_OK, the 17 Bytes in the
pointer shall be used, if the callback returns E_NOT_OK the 17 Bytes shall be filled
with the configured DoIPVinInvalidityPattern with “Further Action Required” field set
to 0x00 and VIN/GID sync. Status field set to 0x10 if
(DoIPUseVehicleIdentificationSyncStatus) is set to true.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00073]⌈
The “LA” of a vehicle identification response/vehicle announcement message shall
contain the configured DoIPLogicalAddress.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00074]⌈
The “EID” of a vehicle identification response/vehicle announcement message shall
contain the MAC address derived by Soad_GetPhysAddr if the configuration
parameter DoIPUseMacAdressForIdentification is set to true.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00075]⌈
30 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
[SWS_DoIP_00077]⌈
The “GID” of a vehicle identification response/vehicle announcement message shall
contain the same value as for the EID, if both configuration parameter and
DoIPUseEIDasGID are set to true (see SWS_DoIP_00074 and SWS_DoIP_00075).
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00078]⌈
The “GID” of a vehicle identification response/vehicle announcement message shall
contain the configured DoIPGID value, if the configuration parameter
DoIPVinGIDMaster is set to true, the configuration parameter DoIPUseEIDasGID is
set to false and the parameter DoIPGID is configured.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00079]⌈
The “GID” of a vehicle identification response/vehicle announcement message shall
contain the value retrieved by the configured DoIPGetGidCallback function(for the
signature see <User>_DoIPGetGidcallback, SWS_DoIP_00051), if the configuration
parameter DoIPVinGIDMaster is set to true, the configuration parameter
DoIPUseEIDasGID is set to false and the parameter DoIPGID is not configured. If the
function does not return E_OK the GID shall consist of 6 Bytes according to the
configured DoIPGIDInvalidityPattern.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00080]⌈
The “GID” of a vehicle identification response/vehicle announcement message shall
contain the configured DoIPGID value, if the configuration parameter
DoIPVinGIDMaster is set to false and the parameter DoIPGID is configured.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00081]⌈
The “GID” of a vehicle identification response/vehicle announcement message shall
contain the value retrieved by the configured DoIPGetGID function, if the
configuration parameter DoIPVinGIDMaster is set to false and the parameter
DoIPGID is not configured. If the function does not return E_OK, the GID shall
consist of 6 Bytes according to the configured DoIPGIDInvalidityPattern.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00082]⌈
The “Further action” byte of a vehicle identification response/vehicle announcement
message shall contain the value 0x10 if any DoIPRoutingActivation with
DoIPRoutingActivationNumber equal to 0xE0 is configured and the according
RoutingActivation was not yet successfully performed.
⌋ ( SRS_Eth_00026)
31 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
[SWS_DoIP_00083]⌈
The “Further action” byte of a vehicle identification response/vehicle announcement
message shall contain the value 0x00, if no DoIPRoutingActivation with
DoIPRoutingActivationNumber equal to 0xE0 is configured.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00084]⌈
The “Further action” byte of a vehicle identification response/vehicle announcement
message shall contain the value 0x00, if any DoIPRoutingActivation with
DoIPRoutingActivationNumber equal to 0xE0 is configured and the according
RoutingActivation was successfully performed.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00086]⌈
If the configuration parameter DoIPUseVehicleIdentificationSyncStatus is set to true,
the “VIN/GID status” byte shall be additionally added to the vehicle identification
response/vehicle announcement message.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00087]⌈
If a valid VIN could be requested in SWS_DoIP_00072, the value of the “VIN/GID
status” byte shall be 0x00.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00088]⌈
If no valid VIN could be requested in SWS_DoIP_00072 and the vehicle GID
synchronization was not yet successful as described in SWS_DoIP_00076, the value
of the “VIN/GID status” byte shall be 0x10.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00089]⌈
If no valid VIN could be requested in SWS_DoIP_00072 and the vehicle GID
synchronization was already successful as described in SWS_DoIP_00076, the
value of the “VIN/GID status” byte shall be 0x00.
⌋ ( SRS_Eth_00026)
[SWS_DoIP_00291]⌈
The “Further action” byte of a vehicle identification response/vehicle announcement
message shall contain the 1 Byte value retrieved by a call to the configured
DoIPFurtherActionByteCallback (if configured, for the signature see
<User>_DoIPGetFurtherActionByteCallback, SWS_DoIP_00288). If the function
returns E_OK, the “Further action” byte shall be set to the retrieved value of
FurtherActionByte. If the function returns E_NOT_OK, the “Further action” byte shall
be set according to [SWS_DoIP_00082], [SWS_DoIP_00083] or
[SWS_DoIP_00084].
⌋ (SRS_Eth_00026)
[SWS_DoIP_00101]⌈
If a DoIP message with payload Type 0x0005 is not received on a configured
DoIPTCPConnection the message shall be discarded. ⌋ (SRS_Eth_00084)
Note: That means that it is also not allowed to receive this payload type on a UDP
connection,
[SWS_DoIP_00117]⌈
The expected payload length (see SWS_DoIP_00019) for Routing Activation
Request Message with payload type 0x0005 shall be either exactly 7 or 11.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00102]⌈
If a routing activation request message is received with a valid DoIP header, the
DoIP module shall process further to SWS_DoIP_00103, if the field “Source address”
matches a configured DoIPTesterSA.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00106]⌈
If a routing activation request message is received with a valid “Source address” but
the connection this Routing activation was received on is already registered to
another source address, the DoIP module shall send a routing activation response
message (see chapter 7.3.2.3.2) on the same connection the request was received
on, with the routing activation response code set to 0x02. Additionally the socket
connection shall be closed as defined in SWS_DoIP_00058.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00104]⌈
If a routing activation request message is received with a “Source address” that does
not match a configured DoIPTesterSA, the routing activation response message (see
chapter7.3.2.3.2) shall be sent on the same connection as the received request with
the routing activation response code 0x00. Additionally the socket connection shall
be closed as defined in SWS_DoIP_00058.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00103]⌈
The DoIP module shall always continue with processing as defined in
SWS_DOIP_00105, either if the received “Source Address” is already registered to a
connection as described in SWS_DoIP_00002 and it is the same socket connection
this routing activation request was received on, or if the received “Source Address” is
not registered to a connection yet.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00105]⌈
If the received “Source Address” is already registered to another connection, an alive
check request to this connection shall be triggered as described in chapter 7.3.2.4.1
and it shall be waiting for the alive check response message or until the time
configured in parameter DoIPAliveCheckResponseTimeout expired. If the alive check
response was received within the configured time, the DoIP module shall send a
routing activation response message with the activation response code set to 0x03
as described in chapter 7.3.2.3.2. Additionally the socket connection shall be closed
as defined in SWS_DoIP_00058. If the “Source Address” is not already registered or
the DoIPAliveCheckResponseTimeout expired without receiving an alive check
response message the DoIP module shall continue with SWS_DoIP_00107.
⌋ ( SRS_Eth_00084, SRS_Eth_00083)
[SWS_DoIP_00107]⌈
If the amount of registered connections is smaller than the configured
DoIPMaxTesterConnections, the DoIP module shall proceed with the message as
described in SWS_DoIP_00108 otherwise an alive check request shall be sent to all
registered connections as described in chapter7.3.2.4.1. If none of the alive checks
times out (i.e. all tester respond with a valid alive check response within the
configured DoIPAliveCheckResponseTimeout) the DoIP module shall send a routing
activation response message with the activation response code set to 0x01 as
described in chapter 7.3.2.3.2. Additionally the socket connection shall be closed as
defined in SWS_DoIP_00058. If at least one of them times out the DoIp module shall
close the socket connection and continue as described in SWS_DoIP_00108.
⌋ ( SRS_Eth_00084, SRS_Eth_00083)
[SWS_DoIP_00108]⌈
If the “Activation type” bytes matches the DoIPRoutingActivationNumber of one of the
DoIPRoutingActivationRef of the “Source Address” (i.e. DoIPTester has a
DoIPRoutingActivationRef configured which has the DoIPRoutingActivationNumber
equal to “Activation type”) the DoIP module shall proceed with SWS_DoIP_109.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00160]⌈
If the “Activation type” bytes do not fulfill the SWS_DOIP_00108 requirement, the
DoIP module shall send a routing activation response message with the activation
response code set to 0x06 as described in chapter 7.3.2.3.2. In this case the socket
connection shall be closed as defined in SWS_DoIP_00058.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00109]⌈
[SWS_DoIP_00161]⌈
If the DoIPRoutingActivationAuthenticationCallback returns with E_OK the routing
activation authentication shall be considered as successful. If the
DoIPRoutingActivationAuthenticationResLength is not set to 0 the first
DoIPRoutingActivationAuthenticationResLength byte shall be attached in routing
activation response message in the field “OEM specific” as described in chapter
7.3.2.3.2.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00110]⌈
If the DoIPRoutingActivationAuthenticationCallback returns DOIP_E_PENDING the
DoIP module shall trigger the callback at next DoIP_MainFunction call again until
something else than DOIP_E_PENDING is returned. Additionally the socket
connection shall be considered as registered to this DoIPTesterSA without activating
the routing.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00111]⌈
If the DoIPRoutingActivationAuthenticationCallback returns something else (e.g.
E_NOT_OK) the DoIP module shall send a routing activation response message with
the activation response code set to 0x04 as described in chapter 7.3.2.3.2 and the
socket connection shall be considered as registered to this DoIPTesterSA without
activating the routing.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00112]⌈
If a DoIPRoutingActivationConfirmationCallback is configured for the referenced
DoIPRoutingActivation, the DoIp module shall call this callback (for the signature see
<User>_DoIPRoutingActivationConfirmation, SWS_DoIP_00048). If the
DoIPRoutingActivationConfirmationReqLength is not configured to 0, the DoIP
module shall handle additionally the last
DoIPRoutingActivationConfirmationReqLength bytes of the optional field “OEM
specific”. If the Callback returns with E_OK the routing activation confirmation shall
be considered as successful and if the
DoIPRoutingActivationConfirmationResLengthis not set to 0, the last
DoIPRoutingActivationConfirmationResLength bytes shall be attached in routing
activation response message in the field “OEM specific” as described in chapter
7.3.2.3.2.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00114]⌈
35 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
[SWS_DoIP_00274]⌈
If the DoIPRoutingActivationConfirmationCallback returns E_NOT_OK, the DoIP
module shall send a routing activation response message with the activation
response code set to 0x05 as described in chapter 7.3.2.3.2 and the socket
connection shall be closed as defined in SWS_DoIP_00058.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00113]⌈
If no response was sent because of the before mentioned checks this
DoIPRoutingActivation is confirmed, authorized and valid so the DoIP module shall
send a routing activation response message with the activation response code set to
0x10 as described in chapter 7.3.2.3.2 and the socket connection shall be considered
as registered to this DoIPTesterSA and enable the routing for this routing activation.
From now on the routing to the configured DoIPTargetAdressRef are active and valid
so the diagnostic request messages related to the specified DoIPTargetAdress
received via this socket connection are active.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00118]⌈
The “Logical Address DoIP entity” shall be set to the configured parameter
DoIPLogicalAddress.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00119]⌈
36 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
The “Routing activation response code shall be set according to the response
conditions specified in chapter7.3.2.3.1.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00120]⌈
The “OEM specific” field shall be filled with the optional values as defined in chapter
7.3.2.2.1. if the according DoIPRoutingActivationAuthenticationResLength and/or
DoIPRoutingActivationConfirmationResLength is used.
⌋ ( SRS_Eth_00084)
[SWS_DoIP_00139]⌈
If the DoIP module needs to send a alive check request, it shall have no payload data
but only the generic DoIP header and the payload type set 0x0007.
⌋ (SRS_Eth_00083)
[SWS_DoIP_00140]⌈
After sending an alive check request the DoIP module shall wait the configured time
DoIPAliveCheckResponseTimeout to receive a valid alive check response as
described in chapter 7.3.2.4.2. If it does not receive an alive check response, the
socket connection on which the alive check request was sent shall be closed as
described in SWS_DoIP_00058.
⌋ ( SRS_Eth_00083)
The payload data structure of a alive check response message shall be supported as
described in Table 9:
Item Position (Byte) Length (Byte)
External test equipment address information
Source address 0 2
Table 9: Alive check response message payload data
[SWS_DoIP_00141]⌈
If the received Alive check response field “SourceAddress” matches the registered
Source Address of the socket connection the response was received on, the DoIP
module shall do nothing. Otherwise it shall close the socket connection as described
in SWS_DoIP_00058.
⌋ ( SRS_Eth_00083)
Note: The alive check response can always be sent (not only after an according
request): With this method the test equipment can reset the inactivity time.
[SWS_DoIP_00090]⌈
37 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
Note: This means also that it is not allowed to receive this payload type on a TCP
connection.
[SWS_DoIP_00091]⌈
The expected payload length (see SWS_DoIP_00019) for diagnostic power mode
information request message with payload type 0x4003 shall be exactly 0.
⌋ ( SRS_Eth_00080)
[SWS_DoIP_00092]⌈
After a valid Diagnostic power mode request message, the DoIP module shall send a
Diagnostic Power mode information response message (see chapter 7.3.2.5.2) on
the configured DoIPUDPConnection.
⌋ ( SRS_Eth_00080)
The payload data structure of a diagnostic power mode information response shall be
supported as described in Table 10:
Item Position (Byte) Length (Byte)
Diagnostic Power Mode
Diagnostic power mode 0 1
Table 10: Diagnostic power mode information response message payload data
[SWS_DoIP_00093]⌈
The “Diagnostic Power Mode” byte of diagnostic power mode information response
message contains the 1 Byte value retrieved by a call to the configured
DoIPPowerModeCallback (for the signature see <User>DoIPGetPowerModeStatus,
SWS_DoIP_00047). If the function returns E_OK, the “Diagnostic Power Mode” shall
be set to the retrieved value of PowerStateReady, otherwise it shall be set to 0x00 to
indicate that the power mode is not ready.
⌋ ( SRS_Eth_00080)
[SWS_DoIP_00094]⌈
If a DoIP message with payload Type 0x4001 is not received on a configured
DoIPUDPConnection the message shall be discarded.
⌋ (SRS_Eth_00082)
Note: This means also that it is not allowed to receive this payload type on a TCP
connection.
[SWS_DoIP_00095]⌈
The expected payload length (see SWS_DoIP_00019) for diagnostic entity status
request message with payload type 0x4001 shall be exactly 0.
⌋ ( SRS_Eth_00082)
38 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
[SWS_DoIP_00096]⌈
After a valid Diagnostic entity status request message, the DoIP module shall send a
Diagnostic entity status response message (see chapter 7.3.2.5.4) on the configured
DoIPUDPConnection.
⌋ ( SRS_Eth_00082)
The payload data structure of a diagnostic entity status response message shall be
supported as described in Table 11:
Item Position (Byte) Length (Byte)
DoIP Entity Status Response
Node Type 0 1
Max open sockets 1 1
Currently open socket 2 1
Max. data size 3 4
Table 11: Diagnostic entity status response message payload data
[SWS_DoIP_00097]⌈
The “Node Type” byte of a diagnostic entity status response message shall contain
the configured DoIPNodeType, whereas DOIP_GATEWAY shall be represented by
0x00 and DOIP_NODE shall be represented by 0x01.
⌋ ( SRS_Eth_00082)
[SWS_DoIP_00098]⌈
The “Max open sockets” byte of a diagnostic entity status response message shall
contain the configured DoIPMaxTesterConnections. This parameter represents the
maximum number of concurrent TCP_DATA sockets allowed with this DoIP entity,
excluding the reserve socket required for socket handling as defined in the ISO
13400-2 standard.
⌋ ( SRS_Eth_00082)
[SWS_DoIP_00099]⌈
The “Currently open sockets” byte of a diagnostic entity status response message
shall contain the currently active connections, based on the information described in
SWS_DoIP_00002.
⌋ ( SRS_Eth_00082)
[SWS_DoIP_00100]⌈
The “Max data size” bytes are only supported if the configuration parameter
DoIPEntityStatusMaxByteFieldUse is set to TRUE. In this case, the diagnostic entity
status response message shall contain the configured DoIPMaxRequestBytes in the
“Max data size” field.
⌋ ( SRS_Eth_00082)
7.3.2.6.1 Diagnostic message (for request and response) (payload type 0x8001)
Note: This means also that it is not allowed to receive this payload type on a UDP
connection.
[SWS_DoIP_00122]⌈
The expected payload length (see SWS_DoIP_00019) for diagnostic messages with
payload type 0x8001 shall be at least 5 byte.
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00123]⌈
If the DoIP module receives a diagnostic message with a “Source Address” (equals
DoIPTesterSA) which is not registered on an established socket connection, the
DoIP modules shall send a diagnostic message negative acknowledge message with
the diagnostic message negative acknowledge code set to 0x02 as described in
chapter 7.3.2.6.3. Additionally the socket connection shall be closed as described in
SWS_DoIP_00058.
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00124]⌈
If the DoIP module receives a diagnostic message with a “Target Addess” (equals
DoIPTargetAdressValue) which is not connected via DoIPRoutingActivationRef and
DoIPTargetAdressRef to the received valid DoIPTesterSA, than the DoIP module
shall send a diagnostic message negative acknowledge message with the diagnostic
message negative acknowledge code set to 0x03 as described in chapter 7.3.2.6.3.
Additionally the message shall be discarded.
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00125]⌈
If the DoIP module receives a diagnostic message with the payload data length in the
DoIP header is set to a value bigger than DoIPMaxRequestBytes-4, than the DoIP
module shall send a diagnostic message negative acknowledge message with the
diagnostic message negative acknowledge code set to 0x04 as described in
chapter7.3.2.6.3. Additionally the message shall be discarded.
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00126]⌈
If the DoIP module receives a diagnostic message and SWS_DoIP_00125 does not
apply but the current buffer size is not sufficient to receive the message, than the
DoIP module shall send a diagnostic message negative acknowledge message with
the diagnostic message negative acknowledge code set to 0x05 as described in
chapter 7.3.2.6.3. Additionally the message shall be discarded.
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00127]⌈
If the DoIP module receives a diagnostic message and the according
“TargetAddress” was not activated by routing activation as described in
SWS_DoIP_00113, the DoIP module shall send a diagnostic message negative
acknowledge message with the diagnostic message negative acknowledge code set
to 0x06 as described in chapter 7.3.2.6.3. Additionally the message shall be
discarded.
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00128]⌈
If no negative acknowledge was sent the DoIP module shall evaluate the message
and forward the content (i.e. all UDS Data, not the TargetAddress and
SourceAddress) to the DoIPPduRRxPdu connected to the received
TargetAddress/SourceAddress combination as configured in DoIPChannel
⌋ ( SRS_Eth_00027)
Note: For how to proceed with the communication please refer to the TCP
communication described in chapter 7.5.1
[SWS_DoIP_00174]⌈
If the PduR is not accepting the data totally (for details refer to chapter7.5.1), the
DoIP module shall send a diagnostic message negative acknowledge message with
the diagnostic message negative acknowledge code set to 0x08 as described in
chapter 7.3.2.6.3. Additionally the message shall be discarded.
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00129]⌈
If the PduR accepted all Data, the DoIP module shall send a diagnostic acknowledge
message as described in chapter 7.3.2.6.2.
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00130]⌈
41 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
The DoIP module will get a diagnostic response message (i.e DoIP_TpTransmit or
DoIP_IfTransmit is called with DoIPPduRTxPdu which matches to the
DoIPPduRRxPdu that handled the data to the PduR) via the upper layer connection
to the PduR, so it has to monitor whether the socket connection the request was
received on is still established. If the socket connection has been closed, the
response shall be discarded and the DoIP shall return with E_NOT_OK in the return
value.
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00131]⌈
If the DoIP module is called with DoIPPduRTxPdu in the DoIP_TpTransmit or
DoIP_IfTransmit as described in SWS_DoIP_00130 and the according socket
connection has not been closed since the reception of the according diagnostic
message, the DoIP module shall prepare a diagnostic message via the according
socket connection with the message layout as described in Table 12 but with the
“SourceAddress” set to the DoIPTargetAdressValue of the request and the
“TargetAddress” set to the DoIPTesterSA.
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00173]⌈
The field “User data” of the SWS_DoIP_00131 message contains the actual
diagnostic payload data which shall not be modified by DoIP.
⌋ ( SRS_Eth_00027)
Note: The reception and transmission of diagnostic payload data is described more in
detail in chapter 7.5, the diagnostic communication related part of this specification
[SWS_DoIP_00132]⌈
42 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
If the DoIP module needs to send a diagnostic acknowledge message the “Source
Address” shall be set to the according “TargetAddress” of the received message (see
chapter 7.3.2.6.1).
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00133]⌈
If the DoIP module needs to send a diagnostic acknowledge message the “Target
Address” shall be set to the according “SourceAddress” of the received message
(see chapter7.3.2.6.1).
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00134]⌈
If the DoIP module needs to send a diagnostic acknowledge message the field
“previous diag message” shall be filled with the number of bytes of the original
request message as configured in the parameter DoIPNumByteDiagAckNack for the
DoIPTester the request was received on.
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00135]⌈
If the DoIP module needs to send a diagnostic negative acknowledge message the
“Source Address” shall be set to the according “TargetAddress” of the received
message (see chapter7.3.2.6.1).
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00136]⌈
If the DoIP module needs to send a diagnostic negative acknowledge message the
“Target Address” shall be set to the according “SourceAddress” of the received
message (see chapter7.3.2.6.1).
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00137]⌈
If the DoIP module needs to send a diagnostic negative acknowledge message, the
“Diagnostic message negative acknowledge code” shall be set to the value specified
by the specification item that is triggering the diagnostic negative acknowledge
message.
43 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00138]⌈
If the DoIP module needs to send a diagnostic negative acknowledge message the
field “previous diag message” shall be filled with the configured number of the original
request message as configured in the parameter DoIPNumByteDiagAckNack for the
DoIPTester the request was received on.
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00197]⌈ If the SoAd calls the DoIP module via the Interface
DoIP_SoAdIfRxIndication, the DoIP module shall copy the message into the internal
UDP buffer for further processing.
⌋ ( SRS_Eth_00024)
Note: Further processing depends on the header information and on the payload
type. For details refer to chapter 7.3.2. Which messages are expected to be received
on UDP connection is described in Table 2.
[SWS_DoIP_00198]⌈
If the DoIP module shall send a DoIP message via UDP it shall call the
SoAd_IfTransmit with the TxPduId set to the SoAd internal TxPduId that is retrieved
via the according configured DoIPSoAdUdpTxPduRef, the PduInfoPtr shall contain
the length of the message and the pointer to the to be transmitted message buffer
and additionally the buffer shall be locked.
⌋ ( SRS_Eth_00024)
Note: The events that lead to the sending of UDP DoIP messages are described in
the rest of the specification. Which DoIP message shall use UDP connection is
described in Table 3.
[SWS_DoIP_00199]⌈
If the SoAd calls the DoIP module via the Interface DoIP_SoAdIfTxConfirmation, the
DoIP module shall release the buffer which is related to the received TxPduId.⌋ ()
Example1: If the DoIP Tester sends in one UDP message 4 UDP requests but the
DoIPMaxUDPRequestPerMessage is set to 2 than the first 2 messages are
remembered for further processing, while for the UDP request 3 and 4 a DoIP NACK
is sent to the DoIP Tester with buffer overflow.
Example2: If the DoIP Tester sends in one UDP message 2 UDP requests, the
DoIPMaxUDPRequestPerMessage is set to 2 and there is currently still 1 message
processed for this tester than the first message is remembered for further processing
while for the 2nd DoIP request a DoIP NACK is sent to the DoIP Tester with buffer
overflow.
⌋ ( SRS_Eth_00027)
[SWS_DoIP_00207]⌈
If the function DoIP_SoAdTpStartOfReception is called with TpSduLength set to 0,
the DoIP module shall fill in the bufferSizePtr the available buffer size in the DoIP for
the reception of the TCP message, lock the according buffer for other TCP
connections and return BUFREQ_OK.
⌋ ( SRS_Eth_00024)
Note: The API will be called from SoAd only once per TCP connection, directly when
the socket is connected. All the data will be transferred to DoIP via the API
DoIP_SoAdTpCopyRxData.
[SWS_DoIP_00208]⌈
If the function DoIP_SoAdTpCopyRxData is called at the start of a new DoIP
message (e.g. directly after DoIPSoAdTpStartOfReception succeeded or previous
DoIP message processed completely) with info.SduLength set to 0 the DoIP module
shall return in the parameter bufferSizePtr the length to the maximum necessary
bytes to evaluate the DoIP relevant data for routing of diagnostic data.
⌋ ( SRS_Eth_00024)
Note: The DoIP module knows internal when a new DoIP message is started
because of the DoIP protocol payload length information (see chapter Generic DoIP
header 7.3.1).
[SWS_DoIP_00209]⌈
If the function DoIP_SoAdTpCopyRxData is called at the start of a new DoIP
message (e.g. directly after DoIPSoAdTpStartOfReception succeeded or previous
DoIP message processed completely) with info.SduLength is not set to 0 and the
DoIP TCP buffer is big enough to copy all the data, the DoIP module shall copy the
received data to the internal TCP buffer, return the parameter bufferSizePtr set to the
available buffer after copying and return BUFREQ_OK.
⌋ ( SRS_Eth_00024)
[SWS_DoIP_00210]⌈
If the function DoIP_SoAdTpCopyRxData is called at the start of a new DoIP
message (e.g. directly after DoIPSoAdTpStartOfReception succeeded or previous
DoIP message processed completely) with info.SduLength is not set to 0 and the
DoIP TCP buffer is not big enough to copy all the data, the DoIP module shall return
BUFREQ_E_NOT_OK.
⌋ ( SRS_Eth_00024)
[SWS_DoIP_00214]⌈
If the DoIP module has received sufficient data to evaluate the DoIP header and the
payload type is not diagnostic message the DoIP shall copy all data of this DoIP
message to the internal DoIP TCP buffer, lock the according buffer for other TCP
connections and process the DoIP message as described in SWS_DoIP_00219.
⌋ ( SRS_Eth_00024)
Note: The length of the DoIP message is encoded in the DoIP header. It has to be
considered that after the first DoIP message, there can be more in one single TCP
stream.
[SWS_DoIP_00212]⌈
If the DoIP module has received sufficient data to evaluate the DoIP header, the
payload type is diagnostic message and the Routing was already activated for the
SourceAddress/TargetAddress combination, the DoIP module shall call the
PduR_DoIPTpStartOfReception with the according id set to the DoIPPduRRxPduId
matching the SourceAddress/TargetAddress combination of the diagnostic message,
set the info.SduLength to the already received diagnostic data, set the info-
>SduDataPtr to the buffer containing the received diagnostic data and set the
TpSduLength to the total size of the diagnostic message extracted from DoIP
Header.
⌋ ( SRS_Eth_00024)
[SWS_DoIP_00260]⌈
[SWS_DoIP_00218]⌈
If PduR_DoIPTpStartOfReception returns BUFREQ_OK the reception was accepted
and the DoIP shall forward all subsequent calls to DoIP_SoAdTpCopyRxData directly
to PduR_DoIPTpCopyRxData until all diagnostic data was handed to the PduR.
⌋ ( SRS_Eth_00024)
[SWS_DoIP_00259]⌈
At the end of the copy procedure via PduR_DoIPTpCopyRxData to PduR, the DoIP
module has to modify the available buffer size pointer returned to SoAd in order to
stop before the next DoIP header.
⌋ (SRS_Eth_00024)
[SWS_DoIP_00253]⌈
If the buffer size reported by PduR_DoIPTpStartOfReception does not suffice for
already received data, DoIP shall abort the reception and call
PduR_DoIPTpRxIndication with E_NOT_OK.
⌋ ( SRS_Eth_00024)
[SWS_DoIP_00216]⌈
If PduR_DoIPTpStartOfReception returns BUFREQ_E_NOT_OK or
BUFREQ_E_OVFL, the DoIP module shall react as described in SWS_DoIP_00174
and discard all the TCP data until the next DoIP message.
⌋ ( SRS_Eth_00024)
[SWS_DoIP_00217]⌈
If PduR_DoIPTpCopyRxData returns BUFREQ_E_NOT_OK, the DoIP module shall
react as described in SWS_DoIP_00174, discard all the TCP data until the next DoIP
message and call the PduR_DoIPTpRxIndication with the according PduId and the
result set to E_NOT_OK.
⌋ ( SRS_Eth_00024)
[SWS_DoIP_00221]⌈
If all diagnostic data was successfully forwarded to the PduR (see
SWS_DoIP_00216) the DoIP module shall call the PduR_DoIPTpRxIndication with
the according PduId and the result set to E_OK.
⌋ ( SRS_Eth_00024)
[SWS_DoIP_00219]⌈
If the DoIP module has received with the DoIP_SoAdTpCopyRxData operations
enough data to evaluate the DoIP header and the payload type is not diagnostic
message (see SWS_DoIP_00214), the DoIP module shall receive via subsequent
calls to DoIP_SoAdTpCopyRxData all data for the DoIP message and process it.
⌋ ( SRS_Eth_00024)
Note: The possible DoIP messages on TCP are described in Table 2 and in the
according chapters in this specification.
[SWS_DoIP_00200]⌈
If the function DoIP_SoAdTpRxIndication is called the DoIp module shall release all
data connected to the reception and forward the result to PduR_DoIPTpRxIndication
if a reception for diagnostic message is currently ongoing.
⌋ ( SRS_Eth_00024)
Note: The function DoIP_SoAdTpRxIndication is only called once when the socket is
closed.
[SWS_DoIP_00258]⌈
If the DoIP module is called with DoIP_TpCancelReceive, the DoIP module shall call
the SoAd_TpCancelReceive function with the RxPduId that is retrieved via the
according configured DoIPSoAdTcpRxPduRef.
⌋ ()
[SWS_DoIP_00220]⌈
If the DoIP module needs to send a DoIP message that is not a diagnostic message
on the TCP connection, the DoIP shall call the SoAd_TpTransmit with the TxPduId
containing the Id of the according socket, the PduInfoPtr.SduLength set to the size of
the data to be transmitted and lock the buffer to send.
⌋ ( SRS_Eth_00024)
Note: If the call to SoAd_TpTransmit returns E_OK the DoIP module shall consider
that the data will be transmitted by subsequent calls to the
DoIP_SoAdTpCopyTxData.
[SWS_DoIP_00223]⌈
If the call to SoAd_TpTransmit returns E_NOT_OK the DoIP module shall discard the
DoIP message.
⌋ ( SRS_Eth_00024)
[SWS_DoIP_00224]⌈
If the function DoIP_SoAdCopyTxData is called after a sucessfull call to
SoAd_TpTransmit, with a valid id and the info.SduLength is set to 0 the DoIP shall
return BUFREQ_OK and set the parameter availableDataPtr to the total available
data size of the current DoIP message to be transmitted.
⌋ ( SRS_Eth_00024)
[SWS_DoIP_00225]⌈
If the function DoIP_SoAdCopyTxData is called after a sucessfull call to
SoAd_TpTransmit, with a valid id and the info.SduLength is not set to 0, the DoIP
module shall copy the bytes specified in the info.SduLength to the info->SduDataPtr,
return BUFREQ_OK and set the parameter availableDataPtr to the total available
data size of the current DoIP message after the copy process.
48 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
⌋ ( SRS_Eth_00024)
[SWS_DoIP_00229]⌈
If the function DoIP_SoAdTpTxConfirmation is called the DoIP module shall release
the buffer related to the id. ⌋ ( SRS_Eth_00024)
[SWS_DoIP_00230]⌈
If the function DoIP_TpTransmit or DoIP_IfTransmit is called and the data package is
allowed to be sent according to the current DoIP protocol related information, the
DoIP module shall return E_OK.
1.) If the connection to the SoAd is idle, the DoIP shall call the SoAd_TpTransmit
function according to SWS_DoIP_00284.
2.) If the connection to the SoAd is not idle, the DoIP shall store the transmission
request and call SoAd_TpTransmit according to SWS_DoIP_00284 as soon as the
connection is idle again.
⌋ ( SRS_Eth_00024)
[SWS_DoIP_00284]⌈
To transmit a DoIP diagnostic message the DoIP shall assemble the DoIP header
considering the information of the handed PduInfoPtr.SduLength and call
SoAd_TpTransmit with the TxPduId set to the according PduId of the socket
connection and the PduInfoPtr.SduLength set to the sum of the following lengths:
DoIP header (8 Byte), the DoIP diagnostic message specific data (4 Byte) and
received length of the call to DoIP_TpTransmit or DoIP_IfTransmit
(PduInfoPtr.SduLength).
⌋ (SRS_Eth_00024)
[SWS_DoIP_00226]⌈
If the function DoIP_TpTransmit or DoIP_IfTransmit is called and the data package is
not allowed according to the current DoIP protocol related information, the DoIP
module shall return E_NOT_OK.
⌋ ( SRS_Eth_00024)
Note: If the function SoAd_TpTransmit returns for the use case “diagnostic message”
E_OK, the DoIP module shall consider that the data will be transmitted by
subsequent calls to the DoIP_SoAdTpCopyTxData.
[SWS_DoIP_00231]⌈
49 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
Note: This means that only the length for the created DoIP header and the diagnostic
SourceAddress/TargetAddress is returned and not the total data length.
[SWS_DoIP_00232]⌈
If the function DoIP_SoAdCopyTxData is called after a sucessfull call to
SoAd_TpTransmit for the use case “diagnostic message” with a valid id and the
info.SduLength is not set to 0, the DoIP module shall copy the bytes specified in the
info.SduLength to the info->SduDataPtr. If the requested bytes are more than in the
DoIP internal buffer, the DoIP shall call the PduR_DoIPTpCopyTxData with the
info.SduLength set to the remaining requested data bytes and the info-> SduDataPtr
set to the position where the PduR shall continue to copy the data.
⌋ ( SRS_Eth_00024)
[SWS_DoIP_00254]⌈
If the call to PduR_DoIPTpCopyTxData returns BUFREQ_OK or all the requested
data was part of the DoIP internal buffer, the DoIP module shall return BUFREQ_OK
and set the parameter availableDataPtr to the remaining data size of the DoIP
header and diagnostic SourceAddress/TargetAddress if they have not been copied
completely or to the remaining data size returned from PduR_DoIPTpCopyTxData.
⌋ (SRS_Eth_00024)
[SWS_DoIP_00233]⌈
If the DoIP module has copied via subsequent calls to DoIP_SoAdTpCopyTxData for
the use case “diagnostic message” all information stored in the DoIP internal buffer,
the DoIP module shall forward all subsequent calls to
DoIP_SoAdTpCopyTxData/DoIP_SoAdTpTxConfirmation for this transmission
directly to the PduR using PduR_DoIPTpCopyTxData/PduR_DoIPTpTxConfirmation
in case the DoIPPduRTxPdu is DOIP_TPPDU and PduR_DoIPIfTxConfirmation
otherwise, and release the internal buffer for this transmission.
⌋ ( SRS_Eth_00024)
[SWS_DoIP_00257]⌈
If the DoIP module is called with DoIP_TpCancelTransmit or DoIP_IfCancelTransmit,
the DoIP module shall call the SoAd_TpCancelTransmit function of the according
SoAdTxPduId.
⌋ ( SRS_Eth_00024))
[SWS_DoIP_00283]⌈
Transient Fault Types
Type of Error Relevance Related Error Code Value [hex]
51 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
Transient
Transient
Transient
Transient
Transient
⌋ ()
8 API specification
The following types are contained in the Rte_DoIP_Type.h header file, which is
generated by the RTE generator:
[SWS_DoIP_00266] ⌈
Name DoIP_PowerStateType
Kind Type
Description Used for handling of the PowerMode in DoIP entity status requests
Variation --
⌋ ()
[SWS_DoIP_00267] ⌈
Name AuthenticationReqDataType_{Name}
{ecuc(DoIP/DoIPConfigSet/DoIPRoutingActivation/
Size
DoIPRoutingActivationAuthenticationCallback.
53 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
DoIPRoutingActivationAuthenticationReqLength)} Elements
Description --
[SWS_DoIP_00268] ⌈
Name AuthenticationResDataType_{Name}
{ecuc(DoIP/DoIPConfigSet/DoIPRoutingActivation/
Size DoIPRoutingActivationAuthenticationCallback.
DoIPRoutingActivationAuthenticationResLength)} Elements
Description --
[SWS_DoIP_00269] ⌈
Name ConfirmationReqDataType_{Name}
{ecuc(DoIP/DoIPConfigSet/DoIPRoutingActivation/
Size DoIPRoutingActivationConfirmationCallback.
DoIPRoutingActivationConfirmationReqLength)} Elements
Description --
[SWS_DoIP_00270] ⌈
Name ConfirmationResDataType_{Name}
{ecuc(DoIP/DoIPConfigSet/DoIPRoutingActivation/
Size DoIPRoutingActivationConfirmationCallback.
DoIPRoutingActivationConfirmationResLength)} Elements
Description --
[SWS_DoIP_00271] ⌈
54 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
Name DoIP_ActivationLineType
Kind ModeDeclarationGroup
Category ALPHABETIC_ORDER
On transition value --
DOIP_ACTIVATION_LINE_ACTIVE --
Modes
DOIP_ACTIVATION_LINE_INACTIVE --
Description --
⌋ ()
[SWS_DoIP_00287] ⌈
Name DoIP_FurtherActionByteType
Kind Type
Derived
uint8
from
Used to get the OEM specific Further Action Byte for the DoIP vehicle identification
Description
response/vehicle announcement.
Variation --
⌋ (SRS_Eth_00026)
The following Data Types shall be used for the functions defined in this specification.
8.2.1 DoIP_ConfigType
[SWS_DoIP_00025] ⌈
Name: DoIP_ConfigType
Type: Structure
Range: Implementation The content of the configuration data structure is
specific implementation specific
55 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
8.3.1 DoIP_TpTransmit
[SWS_DoIP_00022] ⌈
Service name: DoIP_TpTransmit
Syntax: Std_ReturnType DoIP_TpTransmit(
PduIdType TxPduId,
const PduInfoType* PduInfoPtr
)
Service ID[hex]: 0x49
Sync/Async: Synchronous
Reentrancy: Reentrant for different PduIds. Non reentrant for the same PduId.
TxPduId Identifier of the PDU to be transmitted
Parameters (in):
PduInfoPtr Length of and pointer to the PDU data and pointer to MetaData.
Parameters None
(inout):
Parameters (out): None
Std_ReturnType E_OK: Transmit request has been accepted.
Return value:
E_NOT_OK: Transmit request has not been accepted.
Description: Requests transmission of a PDU.
⌋ (SRS_Eth_00024)
[SWS_DoIP_00162]⌈
If development error detection is enabled: The function shall check that the service
DoIP_Init was previously called. If the check fails, the function shall raise the
development error DOIP_E_UNINIT. Otherwise, if DET is not enabled, return
E_NOT_OK.⌋ ()
[SWS_DoIP_00163]⌈
If development error detection is enabled: The function shall check if the TxPduId
matches a configured DoIPPduRTxPduId. If the check fails the function shall raise
the development error DOIP_E_INVALID_PDU_SDU_ID. Otherwise, if DET is not
enabled, return E_NOT_OK. ⌋ ()
[SWS_DoIP_00164]⌈
If development error detection is enabled: The function shall check if the
PduInfoPtr is not a NULL_PTR. If the check fails the function shall raise the
development error DOIP_E_PARAM_POINTER. Otherwise, if DET is not enabled,
return E_NOT_OK. ⌋ ()
8.3.2 DoIP_TpCancelTransmit
[SWS_DoIP_00023] ⌈
56 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
[SWS_DoIP_00167]⌈
If development error detection is enabled: The function shall check if the TxPduId
matches a configured DoIPPduRTxPduId. If the check fails the function shall raise
the development error DOIP_E_INVALID_PDU_SDU_ID. Otherwise, if DET is not
enabled, return E_NOT_OK. ⌋ ()
8.3.3 DoIP_TpCancelReceive
[SWS_DoIP_00024] ⌈
Service name: DoIP_TpCancelReceive
Syntax: Std_ReturnType DoIP_TpCancelReceive(
PduIdType RxPduId
)
Service ID[hex]: 0x4c
Sync/Async: Synchronous
Reentrancy: Non Reentrant
Parameters (in): RxPduId Identification of the PDU to be cancelled.
Parameters None
(inout):
Parameters (out): None
Std_ReturnType E_OK: Cancellation was executed successfully by the
destination module.
Return value:
E_NOT_OK: Cancellation was rejected by the destination
module.
Description: Requests cancellation of an ongoing reception of a PDU in a lower layer transport
protocol module.
⌋ (SRS_Eth_00024)
[SWS_DoIP_00169]⌈
57 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
If development error detection is enabled: The function shall check that the service
DoIP_Init was previously called. If the check fails, the function shall raise the
development error DOIP_E_UNINIT. Otherwise, if DET is not enabled, return
E_NOT_OK. ⌋ ()
[SWS_DoIP_00170]⌈
If development error detection is enabled: The function shall check if the RxPduId
matches a configured DoIPPduRRxPduId. If the check fails the function shall raise
the development error DOIP_E_INVALID_PDU_SDU_ID. Otherwise, if DET is not
enabled, return E_NOT_OK. ⌋ ()
8.3.4 DoIP_IfTransmit
[SWS_DoIP_00277] ⌈
Service name: DoIP_IfTransmit
Syntax: Std_ReturnType DoIP_IfTransmit(
PduIdType TxPduId,
const PduInfoType* PduInfoPtr
)
Service ID[hex]: 0x49
Sync/Async: Synchronous
Reentrancy: Reentrant for different PduIds. Non reentrant for the same PduId.
TxPduId Identifier of the PDU to be transmitted
Parameters (in):
PduInfoPtr Length of and pointer to the PDU data and pointer to MetaData.
Parameters None
(inout):
Parameters (out): None
Std_ReturnType E_OK: Transmit request has been accepted.
Return value:
E_NOT_OK: Transmit request has not been accepted.
Description: Requests transmission of a PDU.
⌋ (SRS_Eth_00024)
8.3.5 DoIP_IfCancelTransmit
[SWS_DoIP_00278] ⌈
Service name: DoIP_IfCancelTransmit
Syntax: Std_ReturnType DoIP_IfCancelTransmit(
PduIdType TxPduId
)
Service ID[hex]: 0x4a
Sync/Async: Synchronous
Reentrancy: Reentrant for different PduIds. Non reentrant for the same PduId.
Parameters (in): TxPduId Identification of the PDU to be cancelled.
Parameters None
(inout):
Parameters (out): None
Std_ReturnType E_OK: Cancellation was executed successfully by the
destination module.
Return value:
E_NOT_OK: Cancellation was rejected by the destination
module.
Description: Requests cancellation of an ongoing transmission of a PDU in a lower layer
58 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
communication module.
⌋ (SRS_Eth_00024)
8.3.6 DoIP_Init
[SWS_DoIP_00026] ⌈
Service name: DoIP_Init
Syntax: void DoIP_Init(
const DoIP_ConfigType* DoIPConfigPtr
)
Service ID[hex]: 0x01
Sync/Async: Synchronous
Reentrancy: Non Reentrant
Parameters (in): DoIPConfigPtr Pointer to the configuration data of the DoIP module
Parameters None
(inout):
Parameters (out): None
Return value: None
Description: This service initializes all global variables of the DoIP module. After return of this
service the DoIP module is operational.
⌋ (SRS_Eth_00024)
8.3.7 DoIP_GetVersionInfo
[SWS_DoIP_00027] ⌈
Service name: DoIP_GetVersionInfo
Syntax: void DoIP_GetVersionInfo(
Std_VersionInfoType* versioninfo
)
Service ID[hex]: 0x00
Sync/Async: Synchronous
Reentrancy: Reentrant
Parameters (in): None
Parameters None
(inout):
Parameters (out): versioninfo Pointer to where to store the version information of this module.
Return value: None
Description: Returns the version information of this module.
⌋ (SRS_BSW_00407, SRS_BSW_00411)
[SWS_DoIP_00172]⌈
If development error detection is enabled: The function shall check if the
versioninfo is not a NULL_PTR. If the check fails the function shall raise the
development error DOIP_E_PARAM_POINTER.
⌋ ((SRS_BSW_00323, SRS_BSW_00386)
[SWS_DoIP_00030]⌈
If source code for caller and callee of DoIP_GetVersionInfo is available, the DoIP
module should realize DoIP_GetVersionInfo as a macro, defined in the module’s
header file.
⌋ ()
59 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
This chapter contains a list of Call-Back functions which are called by the lower layer
SoAd module.
8.4.1 DoIP_SoAdTpCopyTxData
[SWS_DoIP_00031] ⌈
Service name: DoIP_SoAdTpCopyTxData
Syntax: BufReq_ReturnType DoIP_SoAdTpCopyTxData(
PduIdType id,
const PduInfoType* info,
const RetryInfoType* retry,
PduLengthType* availableDataPtr
)
Service ID[hex]: 0x43
Sync/Async: Synchronous
Reentrancy: Reentrant
id Identification of the transmitted I-PDU.
info Provides the destination buffer (SduDataPtr) and the number
of bytes to be copied (SduLength).
If not enough transmit data is available, no data is copied by
the upper layer module and BUFREQ_E_BUSY is returned.
The lower layer module may retry the call.
An SduLength of 0 can be used to indicate state changes in
the retry parameter or to query the current amount of
available data in the upper layer module. In this case, the
SduDataPtr may be a NULL_PTR.
retry This parameter is used to acknowledge transmitted data or
to retransmit data after transmission problems.
(inout):
availableDataPtr Indicates the remaining number of bytes that are available in
the upper layer module's Tx buffer. availableDataPtr can be
Parameters (out):
used by TP modules that support dynamic payload lengths
(e.g. FrIsoTp) to determine the size of the following CFs.
BufReq_ReturnType BUFREQ_OK: Data has been copied to the transmit buffer
completely as requested.
BUFREQ_E_BUSY: Request could not be fulfilled, because
the required amount of Tx data is not available. The lower
Return value:
layer module may retry this call later on. No data has been
copied.
BUFREQ_E_NOT_OK: Data has not been copied. Request
failed.
Description: This function is called to acquire the transmit data of an I-PDU segment (N-PDU).
Each call to this function provides the next part of the I-PDU data unless retry-
>TpDataState is TP_DATARETRY. In this case the function restarts to copy the
data beginning at the offset from the current position indicated by retry-
>TxTpDataCnt. The size of the remaining data is written to the position indicated
by availableDataPtr.
⌋ (SRS_Eth_00024)
[SWS_DoIP_00175]⌈
If development error detection is enabled: The function shall check that the service
DoIP_Init was previously called. If the check fails, the function shall raise the
development error DOIP_E_UNINIT. Otherwise, if DET is not enabled, return
BUFREQ_E_NOT_OK.
⌋ ()
[SWS_DoIP_00176]⌈
If development error detection is enabled: The function shall check if the id matches
a configured DoIPSoAdTcpTxPduId. If the check fails the function shall raise the
development error DOIP_E_INVALID_PDU_SDU_ID. Otherwise, if DET is not
enabled, return BUFREQ_E_NOT_OK.
⌋ ()
[SWS_DoIP_00177]⌈
If development error detection is enabled: The function shall check that neither the
info nor the availableDataPtr are a NULL_PTR. If the check fails the function
shall raise the development error DOIP_E_PARAM_POINTER. Otherwise, if DET is
not enabled, return BUFREQ_E_NOT_OK.
⌋ ()
[SWS_DoIP_00178]⌈
If development error detection is enabled: The function shall check if the retry is a
NULL_PTR. If the check fails the function shall raise the development error
DOIP_E_INVALID_PARAMETER. Otherwise, if DET is not enabled, return
BUFREQ_E_NOT_OK.
⌋ ()
8.4.2 DoIP_SoAdTpTxConfirmation
[SWS_DoIP_00032] ⌈
61 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
[SWS_DoIP_00181]⌈
If development error detection is enabled: The function shall check if the id matches
a configured DoIPSoAdTcpTxPduId. If the check fails the function shall raise the
development error DOIP_E_INVALID_PDU_SDU_ID.
⌋ ()
[SWS_DoIP_00182]⌈
If development error detection is enabled: The function shall check if the result is
valid. If the check fails the function shall raise the development error
DOIP_E_INVALID_PARAMETER.
⌋ ()
8.4.3 DoIP_SoAdTpCopyRxData
[SWS_DoIP_00033] ⌈
Service name: DoIP_SoAdTpCopyRxData
Syntax: BufReq_ReturnType DoIP_SoAdTpCopyRxData(
PduIdType id,
const PduInfoType* info,
PduLengthType* bufferSizePtr
)
Service ID[hex]: 0x44
Sync/Async: Synchronous
Reentrancy: Reentrant
id Identification of the received I-PDU.
info Provides the source buffer (SduDataPtr) and the number of
Parameters (in): bytes to be copied (SduLength).
An SduLength of 0 can be used to query the current amount
of available buffer in the upper layer module. In this case, the
[SWS_DoIP_00036]⌈
If development error detection is enabled: The function shall check if the id matches
a configured DoIPSoAdTcpRxPduId. If the check fails the function shall raise the
development error DOIP_E_INVALID_PDU_SDU_ID. Otherwise, if DET is not
enabled, return BUFREQ_E_NOT_OK.
⌋ ()
[SWS_DoIP_00184]⌈
If development error detection is enabled: The function shall check that neither the
info nor the bufferSizePtr are a NULL_PTR. If the check fails, the function shall
raise the development error DOIP_E_PARAM_POINTER. Otherwise, if DET is not
enabled, return BUFREQ_E_NOT_OK.
⌋ ()
8.4.4 DoIP_SoAdTpStartOfReception
[SWS_DoIP_00037] ⌈
Service name: DoIP_SoAdTpStartOfReception
Syntax: BufReq_ReturnType DoIP_SoAdTpStartOfReception(
PduIdType id,
const PduInfoType* info,
PduLengthType TpSduLength,
PduLengthType* bufferSizePtr
)
Service ID[hex]: 0x46
Sync/Async: Synchronous
Reentrancy: Reentrant
id Identification of the I-PDU.
info Pointer to a PduInfoType structure containing the payload
Parameters (in): data (without protocol information) and payload length of the
first frame or single frame of a transport protocol I-PDU
reception, and the MetaData related to this PDU. If neither
63 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
Note: This is because SoAd will call the DoIP module only once with the
TpSduLength set to 0 after the TCP connection has been established.
8.4.5 DoIP_SoAdTpRxIndication
[SWS_DoIP_00038] ⌈
Service name: DoIP_SoAdTpRxIndication
Syntax: void DoIP_SoAdTpRxIndication(
PduIdType id,
Std_ReturnType result
64 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
)
Service ID[hex]: 0x45
Sync/Async: Synchronous
Reentrancy: Reentrant
id Identification of the received I-PDU.
Parameters (in):
result Result of the reception.
Parameters None
(inout):
Parameters (out): None
Return value: None
Description: Called after an I-PDU has been received via the TP API, the result indicates
whether the transmission was successful or not.
⌋ (SRS_Eth_00024)
[SWS_DoIP_00190]⌈
If development error detection is enabled: The function shall check that the service
DoIP_Init was previously called. If the check fails, the function shall raise the
development error DOIP_E_UNINIT.
⌋ ()
[SWS_DoIP_00191]⌈
If development error detection is enabled: The function shall check if the id matches
a configured DoIPSoAdTcpRxPduId. If the check fails the function shall raise the
development error DOIP_E_INVALID_PDU_SDU_ID.
⌋ ()
[SWS_DoIP_00192]⌈
If development error detection is enabled: The function shall check if the result is
valid. If the check fails the function shall raise the development error
DOIP_E_INVALID_PARAMETER.
⌋ ()
8.4.6 DoIP_SoAdIfRxIndication
[SWS_DoIP_00244] ⌈
Service name: DoIP_SoAdIfRxIndication
Syntax: void DoIP_SoAdIfRxIndication(
PduIdType RxPduId,
const PduInfoType* PduInfoPtr
)
Service ID[hex]: 0x42
Sync/Async: Synchronous
Reentrancy: Reentrant for different PduIds. Non reentrant for the same PduId.
RxPduId ID of the received PDU.
PduInfoPtr Contains the length (SduLength) of the received PDU, a pointer to a
Parameters (in):
buffer (SduDataPtr) containing the PDU, and the MetaData related to
this PDU.
Parameters None
(inout):
Parameters (out): None
Return value: None
Description: Indication of a received PDU from a lower layer communication interface module.
⌋ (SRS_Eth_00024)
65 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
[SWS_DoIP_00246]⌈
If development error detection is enabled: The function shall check that the service
DoIP_Init was previously called. If the check fails, the function shall raise the
development error DOIP_E_UNINIT.
⌋ ()
[SWS_DoIP_00247]⌈
If development error detection is enabled: The function shall check if the RxPduId
matches a configured DoIPSoAdUdpRxPduId. If the check fails the function shall
raise the development error DOIP_E_INVALID_PDU_SDU_ID.
⌋ ()
[SWS_DoIP_00248]⌈
If development error detection is enabled: The function shall check the validity of the
PduInfoPtr and call the DET with DOIP_E_PARAM_POINTER error id if it is a
NULL_PTR.
⌋ ()
8.4.7 DoIP_SoAdIfTxConfirmation
[SWS_DoIP_00245] ⌈
Service name: DoIP_SoAdIfTxConfirmation
Syntax: void DoIP_SoAdIfTxConfirmation(
PduIdType TxPduId,
Std_ReturnType result
)
Service ID[hex]: 0x40
Sync/Async: Synchronous
Reentrancy: Reentrant for different PduIds. Non reentrant for the same PduId.
TxPduId ID of the PDU that has been transmitted.
Parameters (in): result E_OK: The PDU was transmitted.
E_NOT_OK: Transmission of the PDU failed.
Parameters None
(inout):
Parameters (out): None
Return value: None
Description: The lower layer communication interface module confirms the transmission of a
PDU, or the failure to transmit a PDU.
⌋ (SRS_Eth_00024)
[SWS_DoIP_00249]⌈
If development error detection is enabled: The function shall check that the service
DoIP_Init was previously called. If the check fails, the function shall raise the
development error DOIP_E_UNINIT.
⌋ ()
[SWS_DoIP_00250]⌈
If development error detection is enabled: The function shall check if the TxPduId
matches a configured DoIPSoAdUdpTxPduId. If the check fails the function shall
raise the development error DOIP_E_INVALID_PDU_SDU_ID.
66 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
⌋ ()
8.4.8 DoIP_SoConModeChg
[SWS_DoIP_00039] ⌈
Service name: DoIP_SoConModeChg
Syntax: void DoIP_SoConModeChg(
SoAd_SoConIdType SoConId,
SoAd_SoConModeType Mode
)
Service ID[hex]: 0x0b
Sync/Async: Synchronous
Reentrancy: Reentrant for different SoConIds. Non reentrant for the same SoConId.
SoConId socket connection index specifying the socket connection with the mode
Parameters (in): change.
Mode new mode
Parameters None
(inout):
Parameters (out): None
Return value: None
Description: Notification about a SoAd socket connection state change, e.g. socket connection
gets online
⌋ (SRS_Eth_00081, SRS_Eth_00028)
[SWS_DoIP_00193]⌈
If development error detection is enabled: The function shall check that the service
DoIP_Init was previously called. If the check fails, the function shall raise the
development error DOIP_E_UNINIT.
⌋ ()
[SWS_DoIP_00194]⌈
If development error detection is enabled: The function shall check if the SoConId
and Mode are valid. If the check fails the function shall raise the development error
DOIP_E_INVALID_PARAMETER.
⌋ ()
8.4.9 DoIP_LocalIpAddrAssignmentChg
[SWS_DoIP_00040] ⌈
Service name: DoIP_LocalIpAddrAssignmentChg
Syntax: void DoIP_LocalIpAddrAssignmentChg(
SoAd_SoConIdType SoConId,
TcpIp_IpAddrStateType State
)
Service ID[hex]: 0x0c
Sync/Async: Synchronous
Reentrancy: Reentrant for different SoConIds. Non reentrant for the same SoConId.
SoConId socket connection index specifying the socket connection where the IP
Parameters (in): address assigment has changed
State state of IP address assignment
Parameters None
(inout):
Parameters (out): None
67 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
[SWS_DoIP_00196]⌈
If development error detection is enabled: The function shall check if the SoConId
and State are valid. If the check fails the function shall raise the development error
DOIP_E_INVALID_PARAMETER.
⌋ ()
8.4.10 DoIP_ActivationLineSwitchActive
[SWS_DoIP_00251] ⌈
Service name: DoIP_ActivationLineSwitchActive
Syntax: void DoIP_ActivationLineSwitchActive(
void
)
Service ID[hex]: 0x0f
Sync/Async: Synchronous
Reentrancy: Non Reentrant
Parameters (in): None
Parameters None
(inout):
Parameters (out): None
Return value: None
Description: This function is used to notify the DoIP on a switch of the DoIPActivationLine to
active
⌋ ()
[SWS_DoIP_00252]⌈ If development error detection is enabled: The function shall
check that the service DoIP_Init was previously called. If the check fails, the
function shall raise the development error DOIP_E_UNINIT.
⌋ ()
8.4.11 DoIP_ActivationLineSwitchInactive
[SWS_DoIP_91001] ⌈
Service name: DoIP_ActivationLineSwitchInactive
Syntax: void DoIP_ActivationLineSwitchInactive(
void
)
Service ID[hex]: 0x0e
Sync/Async: Synchronous
Reentrancy: Non Reentrant
The Basic Software Scheduler within the Rte [6] directly calls these functions. The
following functions shall have no return value and no parameter. All functions shall be
non reentrant.
8.5.1 DoIP_MainFunction
[SWS_DoIP_00041] ⌈
Service name: DoIP_MainFunction
Syntax: void DoIP_MainFunction(
void
)
Service ID[hex]: 0x02
Description: Schedules the Diagnostic over IP module. (Entry point for scheduling)
⌋ ()
[SWS_DoIP_00042]⌈
The main function for scheduling the DoIP module (Entry point for scheduling) shall
be called by the Schedule Manager according to the configured call period.
⌋ ()
[SWS_DoIP_00043]⌈
The call period of the DoIP_MainFunction() is determined by the configuration
parameter DoIPMainFunctionPeriod.
⌋ ()
This chapter defines all interfaces which are required to fulfill the core functionality of
the module.
69 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
[SWS_DoIP_00044] ⌈
API function Description
Dcm_GetVin Function to get the VIN (as defined in SAE J1979-DA)
PduR_DoIPTpCopyRxData This function is called to provide the received data of an I-PDU
segment (N-PDU) to the upper layer.
Each call to this function provides the next part of the I-PDU data.
The size of the remaining buffer is written to the position indicated
by bufferSizePtr.
PduR_DoIPTpCopyTxData This function is called to acquire the transmit data of an I-PDU
segment (N-PDU).
Each call to this function provides the next part of the I-PDU data
unless retry->TpDataState is TP_DATARETRY. In this case the
function restarts to copy the data beginning at the offset from the
current position indicated by retry->TxTpDataCnt. The size of the
remaining data is written to the position indicated by
availableDataPtr.
PduR_DoIPTpRxIndication Called after an I-PDU has been received via the TP API, the result
indicates whether the transmission was successful or not.
PduR_DoIPTpStartOfReception This function is called at the start of receiving an N-SDU. The N-
SDU might be fragmented into multiple N-PDUs (FF with one or
more following CFs) or might consist of a single N-PDU (SF). The
service shall provide the currently available maximum buffer size
when invoked with TpSduLength equal to 0.
PduR_DoIPTpTxConfirmation This function is called after the I-PDU has been transmitted on its
network, the result indicates whether the transmission was
successful or not.
SoAd_CloseSoCon This service closes the socket connection specified by SoConId.
SoAd_GetLocalAddr Retrieves the local address (IP address and port) actually used for
the SoAd socket connection specified by SoConId, the netmask and
default router
SoAd_GetPhysAddr Retrieves the physical source address of the EthIf controller used by
the SoAd socket connection specified by SoConId.
SoAd_GetRemoteAddr Retrieves the remote address (IP address and port) actually used
for the SoAd socket connection specified by SoConId
SoAd_GetSoConId Returns socket connection index related to the specified TxPduId.
SoAd_IfTransmit Requests transmission of a PDU.
SoAd_OpenSoCon This service opens the socket connection specified by SoConId.
SoAd_ReadDhcpHostNameOption By this API service an upper layer of the SoAd can read the
currently configured hostname, i.e. FQDN option in the DHCP
submodule of the TCP/IP stack.
SoAd_ReleaseIpAddrAssignment By this API service the local IP address assignment used for the
socket connection specified by SoConId is released.
SoAd_RequestIpAddrAssignment By this API service the local IP address assignment which shall be
used for the socket connection specified by SoConId is initiated.
SoAd_SetRemoteAddr By this API service the remote address (IP address and port) of the
specified socket connection shall be set.
SoAd_SetUniqueRemoteAddr This API service shall either return the socket connection index of
the SoAdSocketConnectionGroup where the specified remote
address (IP address and port) is set or assign the remote address to
an unused socket connection from the same
SoAdSocketConnectionGroup.
SoAd_TpCancelReceive Requests cancellation of an ongoing reception of a PDU in a lower
layer transport protocol module.
SoAd_TpCancelTransmit Requests cancellation of an ongoing transmission of a PDU in a
lower layer communication module.
SoAd_TpTransmit Requests transmission of a PDU.
70 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
SoAd_WriteDhcpHostNameOption By this API service an upper layer of the SoAd can set the
hostname, i.e. FQDN option in the DHCP submodule of the TCP/IP
stack.
⌋ ()
This chapter defines all interfaces which are required by the DoIP module to fulfill an
optional functionality of the DoIP module.
[SWS_DoIP_00045] ⌈
API function Description
Det_ReportError Service to report development errors.
PduR_DoIPIfTxConfirmation The lower layer communication interface module confirms the
transmission of a PDU, or the failure to transmit a PDU.
⌋ ()
In this chapter all interfaces are listed where the target function could be configured.
The target function is usually a call-back function. The names of these kind of
interfaces is not fixed because they are configurable.
8.6.3.1 <User>_DoIPGetPowerModeCallback
[SWS_DoIP_00047] ⌈
Service name: <User>_DoIPGetPowerModeCallback
Syntax: Std_ReturnType <User>_DoIPGetPowerModeCallback(
DoIP_PowerStateType* PowerStateReady
)
Service ID[hex]: 0x00
Sync/Async: Synchronous
Reentrancy: Don't care
Parameters (in): None
Parameters None
(inout):
PowerStateReady Pointer containing the information of the PowerModeStatus.
Parameters (out):
Only valid if the return value equals E_OK.
Std_ReturnType E_OK: PowerStateReady contains valid information
Return value:
E_NOT_OK: PowerStateReady contains no valid information
Description: Callback function to check if the PowerMode of the DoIP entity is ready or not.
⌋ (SRS_Eth_00080)
8.6.3.2 <User>_DoIPRoutingActivationConfirmation
[SWS_DoIP_00048] ⌈
Service name: <User>_DoIPRoutingActivationConfirmation
Syntax: Std_ReturnType <User>_DoIPRoutingActivationConfirmation(
boolean* Confirmed,
const uint8* ConfirmationReqData,
uint8* ConfirmationResData
)
Service ID[hex]: 0x00
Sync/Async: Synchronous/Asynchronous
Reentrancy: Don't care
ConfirmationReqData Pointer to OEM specific bytes for Routing activation request.
Parameters (in): Only needed if
DoIPRoutingActivationConfirmationReqLength is not 0.
Parameters None
(inout):
Confirmed Pointer containing the information if Confirmation was
successful (TRUE) or not (FALSE). Only valid if the return
value equals E_OK.
Parameters (out): ConfirmationResData Pointer to OEM specific bytes for Response on Routing
activation. Only needed if
DoIPRoutingActivationConfirmationResLength if not 0.
Contains valid data if function return with E_OK.
Std_ReturnType E_OK: Confirmed and ConfirmationResData contain valid
Data.
DOIP_E_PENDING: Confirmation still running. Call next
Return value:
DoIP_MainFunction cycle again.
E_NOT_OK: Confirmed and/or ConfirmationResData do not
contain valid information.
Description: Callback function to get the confirmation for the Routing Activation.
⌋ (SRS_Eth_00084)
8.6.3.3 <User>_DoIPRoutingActivationAuthentication
[SWS_DoIP_00049] ⌈
Service name: <User>_DoIPRoutingActivationAuthentication
Syntax: Std_ReturnType <User>_DoIPRoutingActivationAuthentication(
boolean* Authentified,
const uint8* AuthenticationReqData,
uint8* AuthenticationResData
)
Service ID[hex]: 0x00
Sync/Async: Synchronous/Asynchronous
Reentrancy: Don't care
AuthenticationReqData Pointer to OEM specific bytes for Routing activation
Parameters (in): request. Only needed if
DoIPRoutingActivationAuthenticationReqLength is not 0.
Parameters None
(inout):
Authentified Pointer containing the information if Confirmation was
successful (TRUE) or not (FALSE). Only valid if the return
value equals E_OK.
Parameters (out): AuthenticationResData Pointer to OEM specific bytes for Response on Routing
activation. Only needed if
DoIPRoutingActivationAuthenticationResLength if not 0.
Contains valid data if function return with E_OK.
Std_ReturnType E_OK: Authentified and AuthenticationResData contain
valid Data.
DOIP_E_PENDING: Authentication still running. Call next
Return value:
DoIP_MainFunction cycle again.
E_NOT_OK: Authentified and/or AuthenticationResData
do not contain valid information.
Description: Callback function to get the confirmation for the Routing Activation.
⌋ (SRS_Eth_00084)
72 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
8.6.3.4 <User>_DoIPTriggerGidSyncCallback
[SWS_DoIP_00050] ⌈
Service name: <User>_DoIPTriggerGidSyncCallback
Syntax: Std_ReturnType <User>_DoIPTriggerGidSyncCallback(
void
)
Service ID[hex]: 0x00
Sync/Async: Synchronous/Asynchronous
Reentrancy: Don't care
Parameters (in): None
Parameters None
(inout):
Parameters (out): None
Std_ReturnType E_OK: GroupIdentifier Synchronization was triggered
Return value: E_NOT_OK: GroupIdentifier Synchronization could not be
triggered so try again next MainFunction
Description: Function is used in the case that DoIPVinGIDMaster is set to true and a container
DoIPTriggerGidSyncCallback is configured to trigger the synchronization process
of the GroupIdentifier.
⌋ (SRS_Eth_00026)
8.6.3.5 <User>_DoIPGetGidCallback
[SWS_DoIP_00051] ⌈
Service name: <User>_DoIPGetGidCallback
Syntax: Std_ReturnType <User>_DoIPGetGidCallback(
uint8* GroupId
)
Service ID[hex]: 0x00
Sync/Async: Synchronous/Asynchronous
Reentrancy: Don't care
Parameters (in): None
Parameters None
(inout):
Parameters (out): GroupId Pointer to GroupIdentifier
Std_ReturnType E_OK: GroupId contains a valid value
Return value:
E_NOT_OK: GroupId does not contain a valid value
Description: Function is used in the case that DoIPVinGIDMaster is set to false and
DoIPGetGidCallback is configured to get on a vehicle identification the GID. If the
return value is not E_OK the DoIP shall use the default GID.
⌋ (SRS_Eth_00026)
8.6.3.6 <User>_DoIPGetFurtherActionByteCallback
[SWS_DoIP_00288] ⌈
Service name: <User>_DoIPGetFurtherActionByteCallback
Syntax: Std_ReturnType <User>_DoIPGetFurtherActionByteCallback(
DoIP_FurtherActionByteType* FurtherActionByte
)
Service ID[hex]: 0x00
Sync/Async: Synchronous
Reentrancy: Don't care
Parameters (in): None
Parameters None
(inout):
FurtherActionByte Pointer containing the information of the FurtherActionByte.
Parameters (out):
Only valid if the return value equals E_OK.
The following section describes the DoIP service representation and the condition for
which configuration Services have to be requested and provided by the DoIP module.
[SWS_DoIP_00052]⌈
A DoIP Service Component with the ShortName DoIP shall be provided based on the
configuration of the DoIP module.
⌋ ()
[SWS_DoIP_00054] ⌈
Name CallbackGetPowerMode
Comment --
IsService true
{ecuc(DoIP/DoIPGeneral/DoIPPowerModeCallback/DoIPPowerModeDirect)} ==
Variation
NULL
0 E_OK
Possible
Errors
1 E_NOT_OK
Operations
GetPowerMode
Comments --
Variation --
Comment --
Type DoIP_PowerStateType
Parameters PowerStateReady
Variation --
Direction OUT
The DoIP Service Component shall be equipped with a service port as described
below to request the value of the Power mode for DoIP diagnostic power mode
handling.
[SWS_DoIP_00261] ⌈
Name CBGetPowerMode
Description --
The DoIP Service Component shall provide the service port interface
<NameOfRoutingActivation>_RoutingActivation as described below for each
DoIPRoutingActivation that has at least DoIPRoutingActivationConfirmationCallback
or DoIPRoutingActivationAuthenticationCallback configured without direct Callback
functions.
[SWS_DoIP_00055] ⌈
Name {Name}_RoutingActivation
Comment --
IsService true
(({ecuc(DoIP/DoIPConfigSet/DoIPRoutingActivation/
DoIPRoutingActivationAuthenticationCallback)} != null) && ({ecuc(DoIP/DoIPConfigSet/
DoIPRoutingActivation/DoIPRoutingActivationAuthenticationCallback/
DoIPRoutingActivationAuthenticationFunc)} == "")) || (({ecuc(DoIP/DoIPConfigSet/
Variation DoIPRoutingActivation/DoIPRoutingActivationConfirmationCallback)} != null) &&
({ecuc(DoIP/DoIPConfigSet/DoIPRoutingActivation/
DoIPRoutingActivationConfirmationCallback/DoIPRoutingActivationConfirmationFunc)}
== ""))
Name = {ecuc(DoIP/DoIPConfigSet/DoIPRoutingActivation.SHORT-NAME)}
0 E_OK
Possible
1 E_NOT_OK
Errors
16 DOIP_E_PENDING
Operations
RoutingActivationAuthentication
Comments --
(({ecuc(DoIP/DoIPConfigSet/DoIPRoutingActivation/
DoIPRoutingActivationAuthenticationCallback)} != NULL) && ({ecuc(DoIP/
Variation
DoIPConfigSet/DoIPRoutingActivation/DoIPRoutingActivationAuthenticationCallback/
DoIPRoutingActivationAuthenticationFunc)} ==NULL))
Comment --
Type boolean
Authentified
Variation --
Direction OUT
Comment --
Type AuthenticationReqDataType_{Name}
{ecuc(DoIP/DoIPConfigSet/
DoIPRoutingActivation/
AuthenticationReqData DoIPRoutingActivationAuthenticationCallback.
Variation DoIPRoutingActivationAuthenticationReqLength)}
>0
Parameters Name = {ecuc(DoIP/DoIPConfigSet/
DoIPRoutingActivation.SHORT-NAME)}
Direction IN
Comment --
Type AuthenticationResDataType_{Name}
{ecuc(DoIP/DoIPConfigSet/
DoIPRoutingActivation/
AuthenticationResData DoIPRoutingActivationAuthenticationCallback.
Variation DoIPRoutingActivationAuthenticationResLength)}
>0
Name = {ecuc(DoIP/DoIPConfigSet/
DoIPRoutingActivation.SHORT-NAME)}
Direction OUT
RoutingActivationConfirmation
Comments --
(({ecuc(DoIP/DoIPConfigSet/DoIPRoutingActivation/
DoIPRoutingActivationConfirmationCallback)} != NULL) && ({ecuc(DoIP/
Variation
DoIPConfigSet/DoIPRoutingActivation/DoIPRoutingActivationConfirmationCallback/
DoIPRoutingActivationConfirmationFunc)} ==NULL))
Comment --
Type boolean
Parameters Confirmed
Variation --
Direction OUT
Comment --
Type ConfirmationReqDataType_{Name}
{ecuc(DoIP/DoIPConfigSet/
DoIPRoutingActivation/
ConfirmedReqData DoIPRoutingActivationConfirmationCallback.
Variation DoIPRoutingActivationConfirmationReqLength)}
>0
Name = {ecuc(DoIP/DoIPConfigSet/
DoIPRoutingActivation.SHORT-NAME)}
Direction IN
Comment --
Type ConfirmationResDataType_{Name}
{ecuc(DoIP/DoIPConfigSet/
DoIPRoutingActivation/
ConfirmedResData DoIPRoutingActivationConfirmationCallback.
Variation DoIPRoutingActivationConfirmationResLength)} >
0
Name = {ecuc(DoIP/DoIPConfigSet/
DoIPRoutingActivation.SHORT-NAME)}
Direction OUT
The DoIP Service Component shall be equipped with a service port as described
below for each DoIPRoutingActivation that has at least
DoIPRoutingActivationConfirmationCallback or
DoIPRoutingActivationAuthenticationCallback configured without direct Callback
functions.
[SWS_DoIP_00262] ⌈
Name CB{Name}RoutingActivation
Description --
The DoIP Service Component shall provide the service port interface
CallbackTriggerGIDSyncronization as described below if the container
DoIPTriggerGIDSyncCallback is configured without direct Callback function.
77 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
[SWS_DoIP_00056] ⌈
Name CallbackTriggerGIDSynchronization
Comment --
IsService true
0 E_OK
Possible
Errors
1 E_NOT_OK
Operations
TriggerGIDSynchronization
Comments --
Variation --
The DoIP Service Component shall be equipped with a service port as described
below if the container DoIPTriggerGIDSyncCallback is configured without direct
Callback function.
[SWS_DoIP_00263] ⌈
Name CBTriggerGIDSynchronization
Description --
The DoIP Service Component shall provide the service port interface
CallbackGetGID as described below to request the GID if the container
DoIPGetGidCallback is configured without direct Callback function.
[SWS_DoIP_00057] ⌈
Name CallbackGetGID
Comment --
IsService true
0 E_OK
Possible
Errors
1 E_NOT_OK
Operations
GetGID
Comments --
Variation --
Comment --
Type uint8
Parameters Data
Variation --
Direction OUT
The DoIP Service Component shall provide the service port as described below to
request the GID if the container DoIPGetGidCallback is configured without direct
Callback function
[SWS_DoIP_00264] ⌈
Name CBGetGID
Description --
[SWS_DoIP_00242] ⌈
Name DoIPActivationLineStatus
Comment --
IsService true
Variation --
[SWS_DoIP_00265] ⌈
Name DoIPActivationLineSwitchNotification
Description --
Variation --
⌋ ()
[SWS_DoIP_00290] ⌈
Name CallbackGetFurtherActionByte
Comment --
IsService true
{ecuc(DoIP/DoIPGeneral/DoIPFurtherActionByteCallback/
Variation
DoIPFurtherActionByteDirect)} == NULL
0 E_OK
Possible
Errors
1 E_NOT_OK
Operations
GetFurtherActionByte
Comments --
Variation --
Comment --
Type DoIP_FurtherActionByteType
Parameters FurtherActionByte
Variation --
Direction OUT
Errors information.
The DoIP Service Component shall be equipped with a service port as described
below to request the value of the Further Action Byte for DoIP diagnostic vehicle
identification response/vehicle announcement.
[SWS_DoIP_00289] ⌈
Name CBGetfurtherActionByte
Description --
{ecuc(DoIP/DoIPGeneral/DoIPFurtherActionByteCallback/
Variation
DoIPFurtherActionByteDirect)} == NULL
⌋ (SRS_Eth_00026)
9 Sequence diagrams
«module» «module»
DoIP SoAd
DoIP_SoAdIfRxIndication()
DoIP_MainFunction()
Process DoIP
Message
SoAd_IfTransmit()
DoIP_SoAdIfTxConfirmation()
DoIP_SoAdTpStartOfReception()
DoIP_SoAdTpCopyRxData()
PduR_DoIPStartOfReception()
PduR_DoIPCopyRxData()
PduR_DoIPRxIndication()
DoIP_SoAdTpRxIndication()
Note that more than one CopyRxData could provide the data of one request, but to
reduce complexity this detail was omitted.
83 of 119 Document ID 418: AUTOSAR_SWS_DiagnosticOverIP
- AUTOSAR confidential -
Specification of Diagnostic over IP
AUTOSAR CP Release 4.3.1
alt
DoIP_TpTransmit()
SoAd_TpTransmit()
SoAd_TpTransmit()
SoAd_MainFunction()
DoIP_SoAdTpCopyTxData()
PduR_DoIPCopyTxData()
DoIP_SoAdTpTxConfirmation()
PduR_DoIPTxConfirmation()
DoIP_ActivationLineSwitchActive()
SoAd_GetSoConId()
SoAd_RequestIpAddrAssignment()
SoAd_OpenSoCon()
DoIP_LocalIpAddrAssignmentChg()
DoIP_SoConModeChg()
Communication on
socket allowed
DoIP_ActivationLineSwitchInactive()
SoAd_CloseSoCon()
DoIP_SoConModeChg()
SoAd_GetSoConId()
SoAd_ReleaseIpAddrAssignment()
DoIP_LocalIpAddrAssignmentChg()
10 Configuration specification
In general, this chapter defines configuration parameters and their clustering into
containers. In order to support the specification, Chapter 10.1 describes
fundamentals. It also specifies a template (table) you shall use for the parameter
specification. We intend to leave Chapter 10.1 in the specification to guarantee
comprehension.
Chapter 10.2 specifies the structure (containers) and the parameters of the module
DoIP.
10.2.1 Variants
10.2.2 DoIP
Included Containers
Container Name Multiplicity Scope / Dependency
This container contains the configuration parameters and sub
DoIPConfigSet 1
containers of the AUTOSAR DoIP module.
This container specifies the general configuration parameters
DoIPGeneral 1
of the DoIP module.
DoIPGetGidCallback : DoIPGetGidDirect :
+subContainer EcucParamConfContainerDef +parameter EcucFunctionNameDef
DoIPTriggerGidSyncCallback : DoIPTriggerGidSyncDirect :
+subContainer EcucParamConfContainerDef +parameter EcucFunctionNameDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = 1
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = 1
DoIPConfigSet :
+container EcucParamConfContainerDef
10.2.3 DoIPGeneral
Type EcucIntegerParamDef
Range 0 .. 255
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
Range ]0 .. INF[
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
Name DoIPMaxTesterConnections
Parent Container DoIPGeneral
Description Maximum ammount of tester connections that shall be maintained at one
time before alive check is performed.
Multiplicity 1
Type EcucIntegerParamDef
Range 1 .. 255
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
Post-build time --
Scope / Dependency scope: local
Multiplicity 1
Type EcucFloatParamDef
Range [0 .. INF]
Default value --
Post-Build Variant Value false
Value Configuration Class Pre-compile time X All Variants
Link time --
Post-build time --
Scope / Dependency scope: local
Included Containers
Container Name Multiplicity Scope / Dependency
This container describes the Callbackfunction to get the
Further Action byte. If this container is not configured no
Callbackfunction will be used.
DoIPFurtherActionByteCallbac
0..1 If the DoIPFurtherActionByteDirect parameter is not present,
k
the DoIP module will use an RPort of ServiceInterface
CallbackGetFurtherActionByte with the name
"CBGetFurtherActionByte".
This container describes the usage of a callback function to
DoIPGetGidCallback 0..1 get the GID. (If this container is not present no callback
function shall be used by DoIP module to retrive the GID.)
This container describes the usage of a callback function to
DoIPPowerModeCallback 1 retrieve the current power mode. This container shall always
be present.
This container describes the usage of a callback function to
trigger the GID synchronization. (If this container does not
DoIPTriggerGidSyncCallback 0..1
exist no callback function shall be used by DoIP module to
trigger the GID synchronization.)
DoIPVersionInfoApi :
+parameter
EcucBooleanParamDef
min = 0
max = INF DoIPGeneralInactivityTime :
+parameter EcucFloatParamDef
min = 0
DoIPAliveCheckResponseTimeout : max = INF
+parameter EcucFloatParamDef
min = 0 DoIPInitialInactivityTime :
max = INF EcucFloatParamDef
+parameter
min = 0
DoIPVehicleAnnouncementCount : max = INF
+parameter EcucIntegerParamDef
min = 1
max = 255 DoIPMaxTesterConnections :
+parameter EcucIntegerParamDef
min = 1
+parameter DoIPUseMacAddressForIdentification : max = 255
EcucBooleanParamDef
+parameter DoIPUseVehicleIdentificationSyncStatus :
EcucBooleanParamDef
+parameter DoIPVinGidMaster :
EcucBooleanParamDef
DoIPMaxRequestBytes :
EcucIntegerParamDef
+parameter
min = 1
lowerMultiplicity = 1
upperMultiplicity = 1
DoIPNodeType :
+literal DOIP_GATEWAY :
EcucEnumerationParamDef
EcucEnumerationLiteralDef
+parameter
+literal DOIP_NODE :
EcucEnumerationLiteralDef
+parameter DoIPHeaderFileInclusion :
EcucStringParamDef
DoIPVinInvalidityPattern : lowerMultiplicity = 0
EcucIntegerParamDef upperMultiplicity = *
+parameter
min = 0
max = 255
lowerMultiplicity = 1 DoIPGIDInvalidityPattern :
upperMultiplicity = 1 EcucIntegerParamDef
+parameter
min = 0
max = 255
+parameter DoIPEntityStatusMaxByteFieldUse : lowerMultiplicity = 1
EcucBooleanParamDef upperMultiplicity = 1
+parameter DoIPDhcpOptionVinUse :
EcucBooleanParamDef
DoIPHostNameSizeMax :
+parameter EcucIntegerParamDef
DoIPMaxUDPRequestPerMessage :
min = 5 EcucIntegerParamDef
max = 255
+parameter min = 1
max = 255
10.2.4 DoIPFurtherActionByteCallback
No Included Containers
10.2.5 DoIPGetGidCallback
Default value --
maxLength --
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity Configuration Pre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local
No Included Containers
10.2.6 DoIPPowerModeCallback
No Included Containers
10.2.7 DoIPTriggerGidSyncCallback
No Included Containers
10.2.8 DoIPConfigSet
Included Containers
Container Name Multiplicity Scope / Dependency
DoIPChannel 1..65536 Configuration of one DoIPChannel.
Container contains all lower layer connection specific
DoIPConnections 1 information, i.e. the single Pdu References and Handle IDs to
the SoAd.
This container describes the routing activation possibilities by
representing for each container a possible routing activation
DoIPRoutingActivation 0..255
request message to the DoIP entity and the according
references to the activated diagnostic messages.
This container describes the properties of the possible
DoIPTester 1..255
connectable Tester for the DoIP entity.
DoIPConfigSet : DoIPRoutingActivation :
EcucParamConfContainerDef EcucParamConfContainerDef
+subContainer
lowerMultiplicity = 0
upperMultiplicity = 255
DoIPTester :
EcucParamConfContainerDef
+subContainer
lowerMultiplicity = 1
upperMultiplicity = 255
DoIPConnections :
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 1
DoIPChannel :
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 1
upperMultiplicity = 65536
DoIPLogicalAddress :
EcucIntegerParamDef
+parameter
min = 0
max = 65535
lowerMultiplicity = 1
upperMultiplicity = 1
DoIPEid :EcucIntegerParamDef
+parameter
min = 0
max = 281474976710655
lowerMultiplicity = 0
upperMultiplicity = 1
DoIPGid :EcucIntegerParamDef
+parameter
min = 0
max = 281474976710655
lowerMultiplicity = 0
upperMultiplicity = 1
10.2.9 DoIPChannel
Included Containers
Container Name Multiplicity Scope / Dependency
This container contains the Rx Pdus to connect with the Rx
DoIPPduRRxPdu 0..1
Pdus of the PduR.
This container contains the Tx Pdus to connect with the Tx
DoIPPduRTxPdu 0..1 Pdus of the PduR. If the parameter is not configured the
channel is for functional addressing.
DoIPConfigSet :
DoIPTester : DoIPTargetAddress :
EcucParamConfContainerDef
EcucParamConfContainerDef EcucParamConfContainerDef
+subContainer
lowerMultiplicity = 1 lowerMultiplicity = 1
upperMultiplicity = 255 upperMultiplicity = 255
+destination
+destination
DoIPChannelSARef :
DoIPChannel : EcucReferenceDef
EcucParamConfContainerDef +reference
lowerMultiplicity = 1
lowerMultiplicity = 1 upperMultiplicity = 1 DoIPChannelTARef :
upperMultiplicity = 65536
+reference EcucReferenceDef
lowerMultiplicity = 1
upperMultiplicity = 1
+reference Pdu :
DoIPPduRRxPduRef : +destination
EcucReferenceDef EcucParamConfContainerDef
+subContainer
lowerMultiplicity = 0
upperMultiplicity = *
DoIPPduRTxPdu : +reference DoIPPduRTxPduRef : +destination
EcucParamConfContainerDef EcucReferenceDef
+subContainer
lowerMultiplicity = 0 (from EcucPdu)
upperMultiplicity = 1
DoIPPduRTxPduId :EcucIntegerParamDef
+parameter
min = 0
max = 65535
symbolicNameValue = true
+parameter
lowerMultiplicity = 0
upperMultiplicity = 1
defaultValue = DOIP_TPPDU
+literal DOIP_TPPDU :
EcucEnumerationLiteralDef
10.2.10 DoIPPduRRxPdu
No Included Containers
10.2.11 DoIPPduRTxPdu
No Included Containers
10.2.12 DoIPConnections
Configuration Parameters
Included Containers
Container Name Multiplicity Scope / Dependency
This container describes a possible
DoIPTargetAddress 1..255
TargetAddress that is supported by DoIP.
This container describes a TCP connection to the
DoIPTcpConnection 2..255
lower layer SoAd module.
This Container describes a Udp connection to
DoIPUdpConnection 1..255
the lower layer SoAd module.
DoIPUdpVehicleAnnouncementConnectio This container describes the UDP multicast
1..255
n connections to the lower layer SoAd module.
+reference
DoIPSoAdTcpRxPduRef :
+destination
EcucReferenceDef Pdu :
+subContainer EcucParamConfContainerDef
lowerMultiplicity = 0
upperMultiplicity = *
DoIPSoAdTcpTxPdu : +reference DoIPSoAdTcpTxPduRef : +destination
EcucParamConfContainerDef EcucReferenceDef
lowerMultiplicity = 1
upperMultiplicity = 1
+subContainer
DoIPSoAdTcpTxPduId :EcucIntegerParamDef
+parameter
min = 0
max = 65535
symbolicNameValue = true
DoIPUdpConnection :
EcucParamConfContainerDef DoIPSoAdUdpRxPdu :
DoIPSoAdUdpRxPduId :EcucIntegerParamDef
EcucParamConfContainerDef
lowerMultiplicity = 1 +parameter
upperMultiplicity = 255 min = 0
lowerMultiplicity = 1
+subContainer max = 65535
upperMultiplicity = 1
symbolicNameValue = true
lowerMultiplicity = 1
+subContainer
upperMultiplicity = 1
DoIPSoAdUdpTxPduId :EcucIntegerParamDef
+parameter
+destination
(from EcucPdu)
min = 0
max = 65535
symbolicNameValue = true
DoIPTargetAddress :
DoIPTargetAddressValue :
EcucParamConfContainerDef
+parameter EcucIntegerParamDef
+subContainer lowerMultiplicity = 1
min = 0
upperMultiplicity = 255
max = 65535
DoIPSoAdUdpVehicleAnnouncementTxPdu : DoIPSoAdUdpVehicleAnnouncementTxPduId :
DoIPUdpVehicleAnnouncementConnection : EcucIntegerParamDef
EcucParamConfContainerDef
EcucParamConfContainerDef +parameter
lowerMultiplicity = 1 min = 0
lowerMultiplicity = 1 max = 4294967295
upperMultiplicity = 1
+subContainer upperMultiplicity = 255 +subContainer
symbolicNameValue = true
+reference DoIPSoAdUdpVehicleAnnouncementTxPduRef :
EcucReferenceDef
10.2.13 DoIPTargetAddress
Type EcucIntegerParamDef
Range 0 .. 65535
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local
No Included Containers
10.2.14 DoIPTcpConnection
Included Containers
Container Name Multiplicity Scope / Dependency
This container describes a Rx PDU received via SoAd over
DoIPSoAdTcpRxPdu 1
TCP
DoIPSoAdTcpTxPdu 1 This container describes a Tx PDU sent via SoAd over TCP
10.2.15 DoIPSoAdTcpRxPdu
No Included Containers
10.2.16 DoIPSoAdTcpTxPdu
No Included Containers
10.2.17 DoIPUdpConnection
Included Containers
Container Name Multiplicity Scope / Dependency
This container describes a Rx PDU received via SoAd over
DoIPSoAdUdpRxPdu 1
UDP.
DoIPSoAdUdpTxPdu 1 This container describes a Tx PDU sent via SoAd over UDP.
10.2.18 DoIPSoAdUdpRxPdu
No Included Containers
10.2.19 DoIPSoAdUdpTxPdu
No Included Containers
10.2.20 DoIPUdpVehicleAnnouncementConnection
Included Containers
Container Name Multiplicity Scope / Dependency
DoIPSoAdUdpVehicleAnnouncementTxPd This container describes the vehicle
1
u announcement TxPdu sent via the SoAd.
10.2.21 DoIPSoAdUdpVehicleAnnouncementTxPdu
No Included Containers
10.2.22 DoIPRoutingActivation
Included Containers
Container Name Multiplicity Scope / Dependency
Container describes the Callbackfunction to
call on a Routing Activation Request for
Authentication. If this container is configured
but the
DoIPRoutingActivationAuthenticationFunc
DoIPRoutingActivationAuthenticationCallbac parameter is not present, the DoIP module will
0..1
k use an RPort of ServiceInterface
<RoutingActivation>_RoutingActivation with
the name
"CB<RoutingActivation>RoutingActivation".
<RoutingActivation> is the ShortName of the
DoIPRoutingActiviation container.
Container describes the Callbackfunction to
call on a Routing Activation Request for
Confirmation. If this container is configured but
the DoIPRoutingActivationConfirmationFunc
parameter is not present the DoIP module will
DoIPRoutingActivationConfirmationCallback 0..1 use an RPort of ServiceInterface
<RoutingActivation>_RoutingActivation with
the name
"CB<RoutingActivation>RoutingActivation".
<RoutingActivation> is the ShortName of the
DoIPRoutingActiviation container.
DoIPRoutingActivationNumber :
DoIPRoutingActivation :
+parameter EcucIntegerParamDef
EcucParamConfContainerDef
min = 0
lowerMultiplicity = 0
max = 255
upperMultiplicity = 255
DoIPTargetAddressRef : DoIPTargetAddress :
+reference EcucReferenceDef +destination EcucParamConfContainerDef
lowerMultiplicity = 1 lowerMultiplicity = 1
upperMultiplicity = 255 upperMultiplicity = 255
DoIPRoutingActivationConfirmationCallback : DoIPRoutingActivationConfirmationFunc :
EcucParamConfContainerDef +parameter EcucFunctionNameDef
lowerMultiplicity = 0 lowerMultiplicity = 0
upperMultiplicity = 1 upperMultiplicity = 1
+subContainer DoIPRoutingActivationConfirmationReqLength :
+parameter EcucIntegerParamDef
min = 0
max = 4
+parameter DoIPRoutingActivationConfirmationResLength :
EcucIntegerParamDef
min = 0
max = 4
DoIPRoutingActivationAuthenticationCallback :
EcucParamConfContainerDef DoIPRoutingActivationAuthenticationFunc :
+parameter EcucFunctionNameDef
lowerMultiplicity = 0
upperMultiplicity = 1 lowerMultiplicity = 0
upperMultiplicity = 1
+subContainer
DoIPRoutingActivationAuthenticationReqLength :
+parameter EcucIntegerParamDef
min = 0
max = 4
+parameter DoIPRoutingActivationAuthenticationResLength :
EcucIntegerParamDef
min = 0
max = 4
10.2.23 DoIPRoutingActivationAuthenticationCallback
minLength --
regularExpression --
Post-Build Variant
false
Multiplicity
Post-Build Variant Value false
Multiplicity Configuration Pre-compile time X VARIANT-PRE-COMPILE
Class Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME, VARIANT-POST-
BUILD
Post-build time --
Scope / Dependency scope: local
No Included Containers
10.2.24 DoIPRoutingActivationConfirmationCallback
No Included Containers
10.2.25 DoIPTester
Type EcucIntegerParamDef
Range 0 .. 65535
Default value --
Post-Build Variant Value true
Value Configuration Class Pre-compile time X VARIANT-PRE-COMPILE
Link time X VARIANT-LINK-TIME
Post-build time X VARIANT-POST-BUILD
Scope / Dependency scope: local
No Included Containers
min = 0
lowerMultiplicity = 1 max = 4294967295
upperMultiplicity = 255
DoIPTesterSA :EcucIntegerParamDef
+parameter
min = 0
max = 65535
DoIPRoutingActivation :
DoIPRoutingActivationRef : EcucParamConfContainerDef
+reference EcucReferenceDef +destination
lowerMultiplicity = 0
lowerMultiplicity = 1 upperMultiplicity = 255
upperMultiplicity = 255