DEENESPTFRRUARHIKOZHNL

E2E Transformer (E2EXf)

ModulE2EXf (E2E Transformer)
BSW-Modul-ID176
Standard-Header#include "E2EXf.h"
SWS-SpezifikationAUTOSAR_CP_SWS_E2ETransformer.pdf, AUTOSAR_SWS_E2ETransformer.pdf
Umfang118 Records · 0 Snippets
ClusterKommunikationsdienste (COM)

E2E Transformer (E2EXf)

AUTOSAR Classic Communication Services-Modul E2E Transformer (E2EXf, Spezifikation: AUTOSAR_CP_SWS_E2ETransformer.pdf, AUTOSAR_SWS_E2ETransformer.pdf).

Funktionen — Übersicht

Typen — Übersicht

Anforderungen — Übersicht

Funktionen & Typen — Detailansicht

دالة E2EXf_Init [SWS_E2EXf_00035] 📄 PDF

void E2EXf_Init(const E2EXf_ConfigType* config);

Initializes the state of the E2E Transformer. The main part of it is the initialization of the E2E library state structures, which is done by calling all init-functions from E2E library.

نوع E2EXf_CSTransactionHandleType [SWS_E2EXf_00026] 📄 PDF

Transaction handle for the C/S method call. - Used to tunnel the E2E Source ID and the E2E Counter from the request to the response at the server side via the RTE.

نوع E2EXf_ConfigType [SWS_E2EXf_00030] 📄 PDF

Parent container for the configuration of E2E Transformer. The content is implementation-specific.

requirement SWS_E2EXf_00009 [SWS_E2EXf_00009] 📄 PDF

The runtime errors detected by E2EXf_Inv_<transformerId> function and errors in the protected E2E communication shall be reported as return value to the caller (i.e. to RTE).

requirement SWS_E2EXf_00011 [SWS_E2EXf_00011] 📄 PDF

The E2E Transformer shall generate the following data struc- ture, to store the configuration of E2E Transformer module: E2EXf_ConfigStruct_<v>(of type E2EXf_ConfigType)

requirement SWS_E2EXf_00018 [SWS_E2EXf_00018] 📄 PDF

{DRAFT} In case E2E_PXXProtect() or E2E_PXXForward() returns E2E_E_OK, then E2EXf_<transformerId> shall return E_OK, otherwise E2EXf_<transformerId> shall return E_SAFETY_HARD_RUNTIMEERROR.

requirement SWS_E2EXf_00020 [SWS_E2EXf_00020] 📄 PDF

The function E2EXf_<transformerId> shall be generated for each sent E2E-protected data element and each protected C/S operation (<trans- formerId>).

requirement SWS_E2EXf_00021 [SWS_E2EXf_00021] 📄 PDF

The E2EXf_Init() function shall initialize the following external state data resources managed by E2E transformer (see SWS_E2EXf_00125) as fol- lows: • Initialization of state data resources of type E2E_PXXProtectStateType by calling corresponding E2E_PXXProtectInit() methods, • Initialization of state data resources of type E2E_PXXCheckStateType by calling corresponding E2E_PXXCheckInit() methods, • Initialization of state data resources of type E2E_SMCheckStateType by calling corresponding E2E_SMCheckInit() methods.

requirement SWS_E2EXf_00023 [SWS_E2EXf_00023] 📄 PDF

In all E2E Transformer variants, the generated state objects may be left uninitialized (i.e. without providing explicit initialization values).

requirement SWS_E2EXf_00024 [SWS_E2EXf_00024] 📄 PDF

In post-build-selectable variant, E2EXf_Init() shall check that Config pointer (received as function parameter) points to one of the configuration vari- ants E2EXf_ConfigStruct_<v>.If this is the case, then E2EXf_Init() shall select the passed configuration variant, and it shall set the module initialization state to TRUE according to SWS_E2EXf_00130.

requirement SWS_E2EXf_00025 [SWS_E2EXf_00025] 📄 PDF

The function E2EXf_Inv_<transformerId> shall be generated for each received E2E-protected data element and each protected C/S operation (<transformerId>).

requirement SWS_E2EXf_00027 [SWS_E2EXf_00027] 📄 PDF

If E2E_SMCheck() returns E2E_E_OK and disableEndToEnd StateMachine is FALSE, then: • the high nibble of the return of the function E2EXf_Inv_<transformerId>shall be set to the low nibble of the state of the state machine (member SMState of object of type E2E_SMStateType that is associated with <transformerId>, see [SWS_ E2EXf_00125]). • The low nibble of the return of the function E2EXf_Inv_<transformerId> shall be set to the low nibble of the profile-independent check status of type E2E_PCheck StatusType. If E2E_SMCheck() does not return E2E_E_OK, the return value shall be E_SAFETY_ SOFT_RUNTIMEERROR.

requirement SWS_E2EXf_00028 [SWS_E2EXf_00028] 📄 PDF

The function E2EXf_Inv_<transformerId> shall invoke the E2E_SMCheck() function, passing to that function the configuration object of type E2E_SMConfigType (see [SWS_E2EXf_00126] and [SWS_E2EXf_00088])and state object of type E2E_SMCheckStateType (see [SWS_E2EXf_00125]) that are associ- ated with <transformerId>, plus the profile-independent check status that was com- puted by E2E_PXXMapStatusToSM() in SWS_E2EXf_00029.

requirement SWS_E2EXf_00029 [SWS_E2EXf_00029] 📄 PDF

The function E2EXf_Inv_<transformerId> shall invoke E2E_ PXXMapStatusToSM(), passing to that function the return value of E2E_PXXCheck and the profile's check Status (variable Status of state object of type E2E_PXXCheck StateType, see [SWS_E2EXf_00125]), to obtain the profile-independent check status. For P1/P2 mapping functions, there is an additional call parameter profileBehavior: • if configuration parameter profileBehavior is R4_2, then E2E_PXXMapStatusTo SM() shall be invoked with the call parameter profileBehavior = 1 • if configuration parameter profileBehavior is PRE_R4_2, then E2E_PXXMapSta- tusToSM() shall be invoked with call parameter profileBehavior = 0

requirement SWS_E2EXf_00037 [SWS_E2EXf_00037] 📄 PDF

E2E_P01Check E2E.h Checks the Data received using the E2E profile 1. This includes CRC calculation, handling of Counter and Data ID. E2E_P01CheckInit E2E.h Initializes the check state E2E_P01Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 01. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P01MapStatusToSM E2E.h The function maps the check status of Profile 1 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 1 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P01Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 1. This includes checksum calculation, handling of counter and Data ID. E2E_P01ProtectInit E2E.h Initializes the protection state. E2E_P02Check E2E.h Check the array/buffer using the E2E profile 2. This includes checksum calculation, handling of sequence counter and Data ID. E2E_P02CheckInit E2E.h Initializes the check state E2E_P02Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 02. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P02MapStatusToSM E2E.h The function maps the check status of Profile 2 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 2 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P02Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 2. This includes checksum calculation, handling of sequence counter and Data ID. E2E_P02ProtectInit E2E.h Initializes the protection state. E2E_P04Check E2E.h Checks the Data received using the E2E profile 4. This includes CRC calculation, handling of Counter and Data ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P04CheckInit E2E.h Initializes the check state E2E_P04Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 04. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P04MapStatusToSM E2E.h The function maps the check status of Profile 4 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 4 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P04mCheckInit E2E.h Initializes the check state API Function Header File Description E2E_P04mForward (draft) E2E.h Protects data which is forwarded by using the E2E profile 4m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P04mMapStatusToSM E2E.h The function maps the check status of Profile 4m to a generic check status, which can be used by E2E state machine check function. The E2E Profile 4m delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P04mProtect E2E.h Protects the array/buffer to be transmitted using the E2E profile 4m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. E2E_P04mProtectInit E2E.h Initializes the protection state. E2E_P04mSinkCheck E2E.h Checks the Data received using the E2E profile 4m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data sink (i.e., in case of C/S communication at the server). E2E_P04mSourceCheck E2E.h Checks the Data received using the E2E profile 4m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data source (i.e., in case of C/S communication at the client). E2E_P04Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 4. This includes checksum calculation, handling of counter and Data ID. E2E_P04ProtectInit E2E.h Initializes the protection state. E2E_P05Check E2E.h Checks the Data received using the E2E profile 5. This includes CRC calculation, handling of Counter. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P05CheckInit E2E.h Initializes the check state E2E_P05Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 05. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P05MapStatusToSM E2E.h The function maps the check status of Profile 5 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 5 delivers a more fine-granular status, but this is not relevant for the E2E state machine. API Function Header File Description E2E_P05Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 5. This includes checksum calculation, handling of counter. E2E_P05ProtectInit E2E.h Initializes the protection state. E2E_P06Check E2E.h Checks the Data received using the E2E profile 6. This includes CRC calculation, handling of Counter. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P06CheckInit E2E.h Initializes the check state E2E_P06Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 06. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P06MapStatusToSM E2E.h The function maps the check status of Profile 6 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 6 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P06Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 6. This includes checksum calculation, handling of counter. E2E_P06ProtectInit E2E.h Initializes the protection state. E2E_P07Check E2E.h Checks the Data received using the E2E profile 7. This includes CRC calculation, handling of Counter and Data ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P07CheckInit E2E.h Initializes the check state E2E_P07Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 07. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P07MapStatusToSM E2E.h The function maps the check status of Profile 7 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 7 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P07mCheckInit E2E.h Initializes the check state E2E_P07mForward (draft) E2E.h Protects data which is forwarded by using the E2E profile 7m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P07mMapStatusToSM E2E.h The function maps the check status of Profile 7m to a generic check status, which can be used by E2E state machine check function. The E2E Profile 7m delivers a more fine-granular status, but this is not relevant for the E2E state machine. API Function Header File Description E2E_P07mProtect E2E.h Protects the array/buffer to be transmitted using the E2E profile 7m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. E2E_P07mProtectInit E2E.h Initializes the protection state. E2E_P07mSinkCheck E2E.h Checks the Data received using the E2E profile 7m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data sink (i.e., in case of C/S communication at the server). E2E_P07mSourceCheck E2E.h Checks the Data received using the E2E profile 7m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data source (i.e., in case of C/S communication at the client). E2E_P07Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 7. This includes checksum calculation, handling of counter and Data ID. E2E_P07ProtectInit E2E.h Initializes the protection state. E2E_P08Check E2E.h Checks the Data received using the E2E profile 08. This includes CRC calculation, handling of Counter and Data ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P08CheckInit E2E.h Initializes the check state E2E_P08Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 08. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P08MapStatusToSM E2E.h The function maps the check status of Profile 08 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 08 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P08mCheckInit E2E.h Initializes the check state E2E_P08mForward (draft) E2E.h Protects data which is forwarded by using the E2E profile 08m. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P08mMapStatusToSM E2E.h The function maps the check status of Profile 08m to a generic check status, which can be used by E2E state machine check function. The E2E Profile 08m delivers a more fine-granular status, but this is not relevant for the E2E state machine. API Function Header File Description E2E_P08mProtect E2E.h Protects the array/buffer to be transmitted using the E2E profile 08m. This includes CRC calculation, handling of counter, Data ID, Message Type, Message Result and Source ID. E2E_P08mProtectInit E2E.h Initializes the protection state. E2E_P08mSinkCheck E2E.h Checks the Data received using the E2E profile 8m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data sink (i.e., in case of C/S communication at the server). E2E_P08mSourceCheck E2E.h Checks the Data received using the E2E profile 8m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data source (i.e., in case of C/S communication at the client). E2E_P08Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 08. This includes checksum calculation, handling of counter and Data ID. E2E_P08ProtectInit E2E.h Initializes the protection state. E2E_P11Check E2E.h Checks the Data received using the E2E profile 11. This includes CRC calculation, handling of Counter. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P11CheckInit E2E.h Initializes the check state E2E_P11Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 11. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P11MapStatusToSM E2E.h The function maps the check status of Profile 11 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 11 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P11Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 11. This includes checksum calculation, handling of counter. E2E_P11ProtectInit E2E.h Initializes the protection state. E2E_P22Check E2E.h Checks the Data received using the E2E profile 22. This includes CRC calculation, handling of Counter. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P22CheckInit E2E.h Initializes the check state E2E_P22Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 22. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft API Function Header File Description E2E_P22MapStatusToSM E2E.h The function maps the check status of Profile 22 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 22 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P22Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 22. This includes checksum calculation, handling of counter. E2E_P22ProtectInit E2E.h Initializes the protection state. E2E_P44Check E2E.h Checks the Data received using the E2E profile 44. This includes CRC calculation, handling of Counter and Data ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P44CheckInit E2E.h Initializes the check state. E2E_P44Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 44. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P44MapStatusToSM E2E.h The function maps the check status of Profile 44 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 44 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P44mCheckInit E2E.h Initializes the check state E2E_P44mForward (draft) E2E.h Protects data which is forwarded by using the E2E profile 44m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P44mMapStatusToSM E2E.h The function maps the check status of Profile 44m to a generic check status, which can be used by E2E state machine check function. The E2E Profile 44m delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P44mProtectInit E2E.h Initializes the protection state. E2E_P44mSinkCheck E2E.h Checks the Data received using the E2E profile 44m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data sink (i.e., in case of C/S communication at the server). E2E_P44mSourceCheck E2E.h Checks the Data received using the E2E profile 44m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data source (i.e., in case of C/S communication at the client). E2E_P44Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 44. This includes checksum calculation, handling of counter and Data ID. API Function Header File Description E2E_P44ProtectInit E2E.h Initializes the protection state. E2E_SMCheck E2E.h Checks the communication channel. It determines if the data can be used for safety-related application, based on history of checks performed by a corresponding E2E_P0XCheck() function. E2E_SMCheckInit E2E.h Initializes the state machine.

requirement SWS_E2EXf_00047 [SWS_E2EXf_00047] 📄 PDF

Module Header File Imported Type E2E.h E2E_P01CheckStateType E2E.h E2E_P01CheckStatusType E2E.h E2E_P01ConfigType E2E.h E2E_P01DataIDMode E2E.h E2E_P01ProtectStateType E2E.h E2E_P02CheckStateType E2E.h E2E_P02CheckStatusType E2E.h E2E_P02ConfigType E2E.h E2E_P02ProtectStateType E2E.h E2E_P04CheckStateType E2E.h E2E_P04CheckStatusType E2E.h E2E_P04ConfigType E2E.h E2E_P04ProtectStateType E2E.h E2E_P04mCheckStateType E2E.h E2E_P04mCheckStatusType E2E.h E2E_P04mConfigType E2E.h E2E_P04mProtectStateType E2E.h E2E_P05CheckStateType E2E.h E2E_P05CheckStatusType E2E.h E2E_P05ConfigType E2E.h E2E_P05ProtectStateType E2E.h E2E_P06CheckStateType E2E.h E2E_P06CheckStatusType E2E.h E2E_P06ConfigType E2E.h E2E_P06ProtectStateType E2E.h E2E_P07CheckStateType E2E.h E2E_P07CheckStatusType E2E.h E2E_P07ConfigType E2E.h E2E_P07ProtectStateType E2E.h E2E_P07mCheckStateType E2E.h E2E_P07mCheckStatusType E2E.h E2E_P07mConfigType E2E.h E2E_P07mProtectStateType E2E.h E2E_P08CheckStateType E2E E2E.h E2E_P08CheckStatusType Module Header File Imported Type E2E.h E2E_P08ConfigType E2E.h E2E_P08ProtectStateType E2E.h E2E_P08mCheckStateType E2E.h E2E_P08mCheckStatusType E2E.h E2E_P08mConfigType E2E.h E2E_P08mProtectStateType E2E.h E2E_P11CheckStateType E2E.h E2E_P11CheckStatusType E2E.h E2E_P11ConfigType E2E.h E2E_P11DataIDMode E2E.h E2E_P11ProtectStateType E2E.h E2E_P22CheckStateType E2E.h E2E_P22CheckStatusType E2E.h E2E_P22ConfigType E2E.h E2E_P22ProtectStateType E2E.h E2E_P44CheckStateType E2E.h E2E_P44CheckStatusType E2E.h E2E_P44ConfigType E2E.h E2E_P44ProtectStateType E2E.h E2E_P44mCheckStateType E2E.h E2E_P44mCheckStatusType E2E.h E2E_P44mConfigType E2E.h E2E_P44mProtectStateType E2E.h E2E_PCheckStatusType E2E.h E2E_SMCheckStateType E2E.h E2E_SMConfigType E2E.h E2E_SMStateType Std_Types.h Std_ExtractProtocolHeaderFieldsType Std_Types.h Std_MessageResultType Std_Types.h Std_MessageTypeType Std_Types.h Std_ReturnType Std_Types.h Std_TransformerForwardCode (draft) Std Std_Types.h Std_VersionInfoType

requirement SWS_E2EXf_00048 [SWS_E2EXf_00048] 📄 PDF

The generated configuration object of type E2E_P01Config Type shall be initialized according to the following: • DataID = EndToEndTransformationISignalProps.dataID • DataLength = EndToEndTransformationISignalProps.dataLength • CounterOffset = EndToEndTransformationDescription.counterOffset • CRCOffset = EndToEndTransformationDescription.crcOffset • DataIDNibbleOffset = EndToEndTransformationDescription.dataIdNibbleOffset • DataIDMode shall be set to – E2E_P01_DATAID_BOTH if EndToEndTransformationDescription.dataID- Mode == all16Bit – E2E_P01_DATAID_ALT if EndToEndTransformationDescription.dataID- Mode == alternating8Bit – E2E_P01_DATAID_LOW if EndToEndTransformationDescription.data IDMode == lower8Bit – E2E_P01_DATAID_NIBBLE if EndToEndTransformationDescription.dataID- Mode == nibble • MaxDeltaCounterInit = EndToEndTransformationComSpecProps.maxDelta Counter-1 or EndToEndTransformationDescription.maxDeltaCounter-1 • MaxNoNewOrRepeatedData = EndToEndTransformationComSpecProps.maxNo NewOrRepeatedData or EndToEndTransformationDescription.maxNoNewOrRe- peatedData • SyncCounterInit = EndToEndTransformationComSpecProps.syncCounterInit or EndToEndTransformationDescription.syncCounterInit.

requirement SWS_E2EXf_00087 [SWS_E2EXf_00087] 📄 PDF

The generated configuration object of type E2E_P04Config Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

requirement SWS_E2EXf_00088 [SWS_E2EXf_00088] 📄 PDF

The generated config structure of type E2E_SMConfig Type,shall be initialized according to the following (one-to-one mapping): • WindowSize = EndToEndTransformationComSpecProps.windowSize or EndTo EndTransformationDescription.windowSize • MinOkStateInit = EndToEndTransformationComSpecProps.minOkStateInit or EndToEndTransformationDescription.minOkStateInit • MaxErrorStateInit = EndToEndTransformationComSpecProps.maxErrorStateInit or EndToEndTransformationDescription.maxErrorStateInit • MinOkStateValid = EndToEndTransformationComSpecProps.minOkStateValid or EndToEndTransformationDescription.minOkStateValid • MaxErrorStateValid = EndToEndTransformationComSpecProps.maxErrorState Valid or EndToEndTransformationDescription.maxErrorStateValid • MinOkStateInvalid = EndToEndTransformationComSpecProps.minOkStateIn- valid or EndToEndTransformationDescription.minOkStateInvalid • MaxErrorStateInvalid = EndToEndTransformationComSpecProps.maxErrorState Invalid or EndToEndTransformationDescription.maxErrorStateInvalid

requirement SWS_E2EXf_00089 [SWS_E2EXf_00089] 📄 PDF

In case of link-time configuration, there is just one variant, this means: <v>= emtpy (NULL string).

requirement SWS_E2EXf_00090 [SWS_E2EXf_00090] 📄 PDF

In case of post-build-selectable configuration, the variants shall be named according to the configuration attribute PredefinedVariant.shortName. This means: <v> = PredefinedVariant.shortName.

requirement SWS_E2EXf_00096 [SWS_E2EXf_00096] 📄 PDF

The configuration object E2EXf_ConfigStruct_<v> (see SWS_ E2EXf_00011) shall be initialized to contain or to reference the config structures that were instantiated in above requirements of this section.

requirement SWS_E2EXf_00102 [SWS_E2EXf_00102] 📄 PDF

In-place E2EXf_<transformerId> shall perform the following two precondition checks, without continuing further processing: 1. (buffer == NULL) || (buffer != NULL && inputBufferLength < EndToEndTransformationDescrip- tion.upperHeaderBitsToShift/8u) 2. bufferLength == NULL. If any of above conditions is TRUE, then the function shall return E_SAFETY_HARD_ RUNTIMEERROR.

requirement SWS_E2EXf_00103 [SWS_E2EXf_00103] 📄 PDF

Out-of-place E2EXf_Inv_<transformerId> shall perform the fol- lowing three precondition checks, without continuing further processing: 1. (inputBuffer == NULL && inputBufferLength != 0) || (inputBuffer != NULL && inputBufferLength < BufferProperties.headerLength/8u + EndToEndTransformationDescription.upperHeaderBitsToShift/8u) 2. If (bufferLength == NULL) 3. If (buffer == NULL). If any of above conditions is TRUE, then the function shall return E_SAFETY_HARD_ RUNTIMEERROR.

requirement SWS_E2EXf_00104 [SWS_E2EXf_00104] 📄 PDF

For PXX = 04, 05, 06, 07, 11, 22: the function E2EXf_ Inv_<transformerId> shall invoke E2E_PXXCheck(), passing to that function: • config, • state, • data length: inputBufferLength pointer to data:inputBuffer (out-of-place version) or buffer (in-place version).

requirement SWS_E2EXf_00105 [SWS_E2EXf_00105] 📄 PDF

In-place E2EXf_Inv_<transformerId> shall perform the follow- ing two precondition checks, without continuing further processing: 1. (buffer == NULL && inputBufferLength != 0) || (buffer != NULL && inputBufferLength < BufferProperties.headerLength/8u + End ToEndTransformationDescription.upperHeaderBitsToShift/8u) 2. bufferLength == NULL. If any of above conditions is TRUE, then the function shall return E_SAFETY_HARD_ RUNTIMEERROR.

requirement SWS_E2EXf_00106 [SWS_E2EXf_00106] 📄 PDF

Out-of-place E2EXf_<transformerId> shall perform the follow- ing three precondition checks, without continuing further processing: 1. (inputBuffer == NULL) || (inputBuffer != NULL && inputBufferLength < EndToEndTransformationDescrip- tion.upperHeaderBitsToShift/8u) 2. bufferLength == NULL 3. buffer == NULL If any of above conditions is TRUE, then the function shall return E_SAFETY_HARD_ RUNTIMEERROR.

requirement SWS_E2EXf_00107 [SWS_E2EXf_00107] 📄 PDF

{DRAFT} If DataTransformationStatusForwarding is set to no TransformerStatusForwarding and PXX is P01 ,P02 ,P04 ,P05 ,P06 ,P07 ,P08 ,P11 ,P22 or P44, the function E2EXf_<transformerId>() shall invoke E2E_PXXProtect(), passing to that function the appropriate Config and State structures (see [SWS_ E2EXf_00125] and [SWS_E2EXf_00126]) that are associated with <transformerId>, as well as buffer and bufferLength (only for P04, P05, P06, P07, P08 ,P11 ,P22 and P44) that were updated in above requirements SWS_E2EXf_00108, SWS_E2EXf_00109, SWS_E2EXf_00115, SWS_E2EXf_00111.

requirement SWS_E2EXf_00108 [SWS_E2EXf_00108] 📄 PDF

If (EndToEndTransformationDescription.upperHeaderBitsTo Shift > 0), in-place E2EXf_<transformerId> shall copy the amount upper HeaderBits ToShiftbits, in parameter buffer, with starting offset of BufferProperties.headerLength, in direction left by "distance" of BufferProperties.headerLength.

requirement SWS_E2EXf_00109 [SWS_E2EXf_00109] 📄 PDF

If (EndToEndTransformationDescription.upperHeaderBitsTo Shift > 0), out-of-place E2EXf_<transformerId> shall copy the first upper HeaderBits ToShiftbits from inputBuffer to buffer, and then copy the remaining part of inputBuffer (i.e. starting with offset upperHeaderBitsToShift) to parameter buffer starting with the destination offset of (upperHeaderBitsToShift+ BufferProperties.headerLength).

requirement SWS_E2EXf_00111 [SWS_E2EXf_00111] 📄 PDF

E2EXf_<transformerId> shall set *bufferLength = inputBuffer Length + BufferProperties.headerLength/8.

requirement SWS_E2EXf_00112 [SWS_E2EXf_00112] 📄 PDF

If (buffer != NULL &&EndToEndTransformationDescrip- tion.upperHeaderBitsToShift> 0), in-place E2EXf_Inv_<transformerId> shall copy the first upper HeaderBitsToShiftbits, in parameter buffer, in direction right by "distance" of BufferProperties.headerLength.

requirement SWS_E2EXf_00113 [SWS_E2EXf_00113] 📄 PDF

If (inputBuffer != NULL &&EndToEndTransformationDescrip- tion.upperHeaderBitsToShift> 0), out-of-place E2EXf_Inv_<transformerId> shall copy the first upper HeaderBitsToShiftbits from inputBuffer to buffer, and then copy the re- maining part of inputBuffer skipping E2E header (i.e. starting with offset upperHeader BitsToShift+BufferProperties.headerLength) to parameter buffer starting with the des- tination offset of (upperHeaderBitsToShift).

requirement SWS_E2EXf_00114 [SWS_E2EXf_00114] 📄 PDF

If inputBufferLength == 0, then E2EXf_Inv_<transformerId> shall set *bufferLength = 0, otherwise it shall set *bufferLength = inputBufferLength - BufferProperties.headerLength/8.

requirement SWS_E2EXf_00115 [SWS_E2EXf_00115] 📄 PDF

If (EndToEndTransformationDescription.upperHeaderBitsTo Shift == 0), out-of-place E2EXf_<transformerId> shall copy inputBuffer to buffer start- ing with the destination offset of BufferProperties.headerLength.

requirement SWS_E2EXf_00116 [SWS_E2EXf_00116] 📄 PDF

If (inputBuffer != NULL &&EndToEndTransformationDescrip- tion.upperHeaderBitsToShift == 0), out-of-place E2EXf_Inv_<transformerId> shall copy inputBuffer starting with the offset of BufferProperties.headerLength, to buffer.

requirement SWS_E2EXf_00118 [SWS_E2EXf_00118] 📄 PDF

The generated configuration object of type E2E_P02Config Type shall be initialized according to the following: • DataIDList= EndToEndTransformationISignalProps.dataID (array) • DataLength = EndToEndTransformationISignalProps.dataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounterInit = EndToEndTransformationComSpecProps.maxDelta Counter-1 or EndToEndTransformationDescription.maxDeltaCounter-1 • MaxNoNewOrRepeatedData = EndToEndTransformationComSpecProps.maxNo NewOrRepeatedData or EndToEndTransformationDescription.maxNoNewOrRe- peatedData • SyncCounterInit = EndToEndTransformationComSpecProps.syncCounterInit or EndToEndTransformationDescription. syncCounterInit.

requirement SWS_E2EXf_00119 [SWS_E2EXf_00119] 📄 PDF

The generated configuration object of type E2E_P05Config Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • DataLength = EndToEndTransformationISignalProps.dataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

requirement SWS_E2EXf_00120 [SWS_E2EXf_00120] 📄 PDF

The generated configuration object of type E2E_P06Config Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

requirement SWS_E2EXf_00122 [SWS_E2EXf_00122] 📄 PDF

The runtime errors detected by the E2EXf_<transformerId> function shall be reported as return value to the caller (i.e. to RTE).

requirement SWS_E2EXf_00123 [SWS_E2EXf_00123] 📄 PDF

For PXX = 01 or 02 (i.e. for profiles 1 and 2), the out-of-place function E2EXf_Inv_<transformerId> shall invoke E2E_PXXCheck(), passing to that function: • Config, • State, • Data Concerning pointer to Data: if(inputBuffer == NULL and inputBufferLength == 0), then it shall pass a pointer to a 1-byte variable of E2E transformer, otherwise it shall pass inputBuffer.

requirement SWS_E2EXf_00124 [SWS_E2EXf_00124] 📄 PDF

For PXX = 01 or 02 (i.e. for profiles 1 and 2), the in-place function E2EXf_Inv_<transformerId> shall invoke E2E_PXXCheck(), passing to that function: • Config, • State, • Data Concerning pointer to Data: if(buffer == NULL and inputBufferLength == 0), then it shall pass a pointer to a 1-byte variable of E2E transformer, otherwise it shall pass buffer.

requirement SWS_E2EXf_00125 [SWS_E2EXf_00125] 📄 PDF

The E2E Transformer shall derive the required number of in- dependent state data resources of types E2E_PXXProtectStateType, E2E_PXXCheck StateType, and E2E_SMCheckStateType to perform E2E Protection within the E2E Transformer module from the number of E2E-protected data uniquely identified with <transformerId>, protected by profile PXX.

requirement SWS_E2EXf_00126 [SWS_E2EXf_00126] 📄 PDF

The E2E Transformer shall derive the required number of inde- pendent statically initialized configuration objects of types E2E_PXXConfigType, E2E_ SMConfigType and (if required) additional information (e.g. the Source ID on client side for profiles P04m, P07m, P08m, P44m) to perform E2E Protection within the E2E Transformer, from: 1. the number of E2E-protected data uniquely identified with <transformerId>, pro- tected by profile PXX, and 2. the number of configuration variants (post-build selectable only).

requirement SWS_E2EXf_00130 [SWS_E2EXf_00130] 📄 PDF

The E2E Transformer shall maintain a boolean information (Ini- tialization state) that is only set to TRUE, if the module has been successfully initialized via a call to E2EXf_Init(). Otherwise, it is set to FALSE.

requirement SWS_E2EXf_00132 [SWS_E2EXf_00132] 📄 PDF

In case of deinitialization (invocation of E2EXf_DeInit()), the module initialization state shall be set to FALSE.

requirement SWS_E2EXf_00133 [SWS_E2EXf_00133] 📄 PDF

If the E2E Transformer has not been correctly initialized (which means that E2EXf_Init() was not successfully called before), then all gener- ated E2E Transformer APIs shall return E_SAFETY_HARD_RUNTIMEERROR.

requirement SWS_E2EXf_00134 [SWS_E2EXf_00134] 📄 PDF

The configuration options in EndToEndTransformationCom SpecProps shall have precedence over the options in EndToEndTransformationDe- scription and EndToEndTransformationISignalProps.

requirement SWS_E2EXf_00137 [SWS_E2EXf_00137] 📄 PDF

Type of error Related error code Error value Error code if any other API service, except Get VersionInfo is called before the transformer module was initialized with Init or after a call to De Init E2EXF_E_UNINIT 0x01 Error code if an invalid configuration set was selected E2EXF_E_INIT_FAILED 0x02 API service called with wrong parameter E2EXF_E_PARAM 0x03 API service called with invalid pointer E2EXF_E_PARAM_POINTER 0x04

requirement SWS_E2EXf_00139 [SWS_E2EXf_00139] 📄 PDF

For PXX = 01 or 02, the function E2EXf_<transformerId>() shall perform a check of the *bufferLength (after the computation of *bufferLength): If (*bufferLength != config->DataLength/8), then the function shall return E_SAFETY_ HARD_RUNTIMEERROR, i.e. without calling an E2E Library function.

requirement SWS_E2EXf_00140 [SWS_E2EXf_00140] 📄 PDF

For PXX = 01 or 02 (i.e. for profile 1 and 2), the out-of-place function E2EXf_Inv_<transformerId> shall 1. if(inputBuffer == NULL and inputBufferLength == 0), then • variable NewDataAvailable of state object of type E2E_PXXCheckStateType (see [SWS_E2EXf_00125]) associated with <transformerId> shall be set to FALSE. 2. else if (inputBufferLength == config->DataLength/8), then • variable NewDataAvailable of state object of type E2E_PXXCheckState Type (see [SWS_E2EXf_00125]) associated with <transformerId> shall be set to TRUE. 3. else return E_SAFETY_HARD_RUNTIMEERROR.

requirement SWS_E2EXf_00141 [SWS_E2EXf_00141] 📄 PDF

For PXX = 01 or 02 (i.e. for profiles 1 and 2), the in-place function E2EXf_Inv_<transformerId> shall 1. If(buffer == NULL and inputBufferLength == 0), then • variable NewDataAvailable of state object of type E2E_PXXCheckStateType (see [SWS_E2EXf_00125]) associated with <transformerId> shall be set to FALSE. 2. Else if (inputBufferLength == config->DataLength/8), then • variable NewDataAvailable of state object of type E2E_PXXCheckState Type (see [SWS_E2EXf_00125]) associated with <transformerId> shall be set to TRUE. 3. Else return E_SAFETY_HARD_RUNTIMEERROR.

requirement SWS_E2EXf_00142 [SWS_E2EXf_00142] 📄 PDF

If configuration parameter profileBehavior is PRE_R4_2, then for PXX = 01 or 02, E2EXf_Inv_<transformerId> () shall set the variable MaxDelta Counter of the state object to the value of variable MaxDeltaCounterInit of the corre- sponding configuration object.

requirement SWS_E2EXf_00144 [SWS_E2EXf_00144] 📄 PDF

If the XfrmDevErrorDetect switch is enabled and the configu- ration variant is VARIANT-POST-BUILD, the function E2EXf_Init shall check if a NULL pointer is passed for the ConfigPtr parameter. In this case the remaining function shall not be executed and the function E2EXf_Init shall report development error code E2EXF_E_PARAM_POINTER to the Det_ReportError service of the Default Error Tracer.

requirement SWS_E2EXf_00145 [SWS_E2EXf_00145] 📄 PDF

If the XfrmDevErrorDetect switch is enabled and the configura- tion variant is VARIANT-POST-BUILD, the function E2EXf_Init shall check the contents of the given configuration set for being within the allowed boundaries. If the func- tion E2EXf_Init detects an error, then it shall skip the initialization of the E2E Trans- former, keep the module internal state as uninitialized and it shall report development error code E2EXF_E_INIT_FAILED to the Det_ReportError service of the Default Error Tracer.

requirement SWS_E2EXf_00146 [SWS_E2EXf_00146] 📄 PDF

If the configuration parameter XfrmDevErrorDetect is enabled, the function E2EXf_DeInit shall check if the E2E transformer is initialized. If not initial- ized, the function E2EXf_DeInit shall return without any effect and shall report the error to the Default Error Tracer with the error code E2EXF_E_UNINIT.

requirement SWS_E2EXf_00149 [SWS_E2EXf_00149] 📄 PDF

If the XfrmDevErrorDetect switch is enabled, the function E2EXf_GetVersionInfo shall check if a NULL pointer is passed for the VersionInfo pa- rameter. In this case of an error the remaining function E2EXf_GetVersionInfo shall not be executed and the function E2EXf_GetVersionInfo shall report development er- ror code E2EXF_E_PARAM_POINTER to the Det_ReportError service of the Default Error Tracer and return.

requirement SWS_E2EXf_00150 [SWS_E2EXf_00150] 📄 PDF

If the configuration parameter XfrmDevErrorDetect is enabled, all parameters of API E2EXf_<transformerId> (see SWS_E2EXf_00032) shall be checked for being in the allowed range. In case of an error the mode switch shall not be executed, an the error shall be reported to the Default Error Tracer with either value E2EXF_E_PARAM (parameter out of range) resp. E2EXF_E_PARAM_POINTER in case of a pointer argument (NULL pointer) and the routine shall return the value E_ SAFETY_HARD_RUNTIMEERROR.

requirement SWS_E2EXf_00151 [SWS_E2EXf_00151] 📄 PDF

If the configuration parameter XfrmDevErrorDetect is enabled, the API E2EXf_<transformerId> (see SWS_E2EXf_00032) shall check if the E2E Transformer is initialized. In case of an error, the error code E2EXF_E_UNINIT shall be reported to the Default Error Tracer and the routine shall return the value E_SAFETY_ HARD_RUNTIMEERROR.

requirement SWS_E2EXf_00152 [SWS_E2EXf_00152] 📄 PDF

If the configuration parameter XfrmDevErrorDetect is enabled, all parameters of API E2EXf_Inv_<transformerId> (see SWS_E2EXf_00034) shall be checked for being in the allowed range. In case of an error the mode switch shall not be executed, the error shall be reported to the Default Error Tracer with the value E2EXF_ E_PARAM resp. E2EXF_E_PARAM_POINTER in case of a pointer argument (NULL pointer) and the routine shall return the value E_SAFETY_HARD_RUNTIMEERROR.

requirement SWS_E2EXf_00153 [SWS_E2EXf_00153] 📄 PDF

If the configuration parameter XfrmDevErrorDetect is enabled, the API E2EXf_Inv_<transformerId> (see SWS_E2EXf_00034) shall check if the E2E Transformer is initialized. In case of an error the routine shall not be executed, the error shall be reported to the Default Error Tracer with the error code E2EXF_E_UNINIT and the routine shall return the value E_SAFETY_HARD_RUNTIMEERROR.

requirement SWS_E2EXf_00154 [SWS_E2EXf_00154] 📄 PDF

If configuration option EndToEndTransformationComSpec Props.disableEndToEndCheck is set for a given <transformerId>, then E2E Trans- former shall skip the invocation of the E2E Library - it shall only perform buffer pro- cessing (e.g. copying from inputBuffer to buffer). Return value shall be E_OK.

requirement SWS_E2EXf_00155 [SWS_E2EXf_00155] 📄 PDF

{DRAFT} If (((PXX = 01 &&dataIDMode != nibble) || (PXX == 02) || (PXX = 11 &&dataIDMode != nibble) || (PXX == 22)) && BufferProperties.header Length == 16 [bits]), the function E2EXf_<transformerId>() shall, before calling E2E_ PXXProtect() or E2E_PXXForward(), set 0xF in buffer at the bit offset (EndToEndTrans- formationDescription.crcOffset+12 for profiles P01 and P11 and EndToEndTransforma- tionDescription.offset+12 for profiles P02 and P22).

requirement SWS_E2EXf_00156 [SWS_E2EXf_00156] 📄 PDF

The apiServicePrefix of the E2E Transformer's EcuC shall be set to E2EXf.

requirement SWS_E2EXf_00158 [SWS_E2EXf_00158] 📄 PDF

The E2EXf_Init() function shall initialize the internal state data resources of E2E functions forward, protect check and state machine of E2E trans- former.

requirement SWS_E2EXf_00159 [SWS_E2EXf_00159] 📄 PDF

In case of post-build configuration, E2EXf_Init() function shall initialize the E2E transformer for a driving cycle.

requirement SWS_E2EXf_00161 [SWS_E2EXf_00161] 📄 PDF

The E2E transformer defined in this document shall be used as a transformer if 1. the attribute protocol of the TransformationTechnology is set to E2E 2. and the attribute version of the TransformationTechnology is set to 1.0.0 3. and the attribute transformerClass of the TransformationTechnology is set to safety

requirement SWS_E2EXf_00162 [SWS_E2EXf_00162] 📄 PDF

The generated configuration object of type E2E_P11Config Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • DataLength = EndToEndTransformationISignalProps.dataLength • CounterOffset = EndToEndTransformationDescription.counterOffset • CRCOffset = EndToEndTransformationDescription.crcOffset • DataIDNibbleOffset = EndToEndTransformationDescription.dataIdNibbleOffset • DataIDMode shall be set to – E2E_P11_DATAID_BOTH if EndToEndTransformationDescription.dataID- Mode == all16Bit – E2E_P11_DATAID_NIBBLE if EndToEndTransformationDescription.dataID- Mode == nibble • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

requirement SWS_E2EXf_00163 [SWS_E2EXf_00163] 📄 PDF

The generated configuration object of type E2E_P07Config Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

requirement SWS_E2EXf_00164 [SWS_E2EXf_00164] 📄 PDF

The generated configuration object of type E2E_P22Config Type shall be initialized according to the following: • DataIDList = EndToEndTransformationISignalProps.dataID (array) • DataLength = EndToEndTransformationISignalProps.dataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

requirement SWS_E2EXf_00165 [SWS_E2EXf_00165] 📄 PDF

If E2E-Transformer is used for a response in a Client-Server Communication and Profile is P02 or P22 the sequence counter used for protecting the response shall be set to requestCounter -1.

requirement SWS_E2EXf_00166 [SWS_E2EXf_00166] 📄 PDF

If E2E-Transformer is used in a Client-Server Communication and Profile is P01, P04, P04m, P05, P06, P07, P07m, P08, P08m, P11, P44 or P44m the sequence counter for protecting the response shall be set to requestCounter.

requirement SWS_E2EXf_00167 [SWS_E2EXf_00167] 📄 PDF

In case of Client/Server-Communication on the server side, if the return value ret equals to E_SAFETY_*_ERR, the value shall be overwritten to E_ E2E_HARD_SAFETY_ERR .

requirement SWS_E2EXf_00168 [SWS_E2EXf_00168] 📄 PDF

{DRAFT} If DataTransformationStatusForwarding is set to transformerStatusForwarding and PXX is P01, P02, P04, P05, P06, P07, P08, P11, P22 or P44 the function E2EXf_<transformerId>() shall invoke E2E_PXXForward(), passing to that function the appropriate Config and State structures (see [SWS_ E2EXf_00125] and [SWS_E2EXf_00126]) that are associated with <transformerId>, as well as buffer and bufferLength (only for P04, P05, P06, P07, P08, P11, P22 and P44) that were updated in above requirements SWS_E2EXf_00108, SWS_E2EXf_00109, SWS_E2EXf_00115, SWS_E2EXf_00111. In addition, the E2E status shall be passed on to the E2E_PXXForward() func- tion based on the parameter forwardedCode provided by the RTE. This param- eter is associated with the optional IN parameter forwardedCode from Rte_Write (SWS_Rte_01071), Rte_Send (SWS_Rte_01072), Rte_IWrite (SWS_Rte_03744) and Rte_IWriteRef (SWS_Rte_05509). The forwardedCode must be mapped to the match- ing E2E status (see Table 7.1).

requirement SWS_E2EXf_00169 [SWS_E2EXf_00169] 📄 PDF

If disableEndToEndStateMachine is to TRUE, • The high nibble of the return of the function E2EXf_Inv_<transformerId> shall be set to 0x6. • The low nibble of the return of the function E2EXf_Inv_<transformerId> shall be set to the low nibble of the profile-independent check status of type E2E_PCheck StatusType.

requirement SWS_E2EXf_00170 [SWS_E2EXf_00170] 📄 PDF

If E2EXf_<transformerId> is used in a Client-Server Commu- nication on the client-side and Profile is P02 or P22, state->Counter shall be stored to as requestCounter to be accessed by the E2EXf_Inv_<transformerId> for checking the response.

requirement SWS_E2EXf_00171 [SWS_E2EXf_00171] 📄 PDF

If E2EXf_<transformerId> is used in a Client-Server Commu- nication on the client-side and Profile is P01, P04, P05, P06, P07, P08, P11, P44, P04m, P07m, P08m, P44m state->Counter -1 shall be stored as requestCounter to be accessed by the E2EXf_Inv_<transformerId> for checking the response.

requirement SWS_E2EXf_00172 [SWS_E2EXf_00172] 📄 PDF

In case of Client/Server Communication on the client side and Profile is P01 or P02, state->LastValidCounter of E2EXf_Inv_<transformer_Id> shall be set to the requestCounter-1.

requirement SWS_E2EXf_00173 [SWS_E2EXf_00173] 📄 PDF

In case of Client/Server Communication on the client side and Profile is P04, P05, P06, P07, P08, P11, P22 or P44, P04m, P07m, P08m, P44m state->Counter of E2EXf_Inv_<transformerId> shall be set to the requestCounter-1.

requirement SWS_E2EXf_00175 [SWS_E2EXf_00175] 📄 PDF

In case of Client/Server Communication on the client side, if the E2E_PXXCheck function returns a value different from E2E_P_OK, the status shall be set to E2E_P_ERR.

requirement SWS_E2EXf_00176 [SWS_E2EXf_00176] 📄 PDF

The generated configuration object of type E2E_P44Config Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

requirement SWS_E2EXf_00177 [SWS_E2EXf_00177] 📄 PDF

The generated configuration object of type E2E_P08Config Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

requirement SWS_E2EXf_00178 [SWS_E2EXf_00178] 📄 PDF

The generated configuration object of type E2E_P04mConfig Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

requirement SWS_E2EXf_00179 [SWS_E2EXf_00179] 📄 PDF

The generated configuration object of type E2E_P07mConfig Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

requirement SWS_E2EXf_00180 [SWS_E2EXf_00180] 📄 PDF

For profiles P04m, P07m, P08m and P44m both the in-place and the out-of-place E2EXf_<transformerId> shall perform the following additional pre- condition checks, without continuing further processing: 1. extractProtocolHeaderFields == NULL 2. csTransactionHandle == NULL. If any of above conditions is TRUE, then the function shall return E_SAFETY_HARD_ RUNTIMEERROR.

requirement SWS_E2EXf_00181 [SWS_E2EXf_00181] 📄 PDF

For profiles P04m, P07m, P08m and P44m the in-place E2EXf_<transformerId> on the client-side shall call the extractProtocolHeaderFields() function passing the buffer, the bufferLength, the address of local messageType vari- able, and the address of a local messageResult variable as parameters.

requirement SWS_E2EXf_00182 [SWS_E2EXf_00182] 📄 PDF

For profiles P04m, P07m, P08m and P44m the out-of-place E2EXf_<transformerId> on the client-side shall call the extractProtocolHeaderFields() function passing the inputBuffer, the inputBufferLength, the address of a local variable named messageType, and the address of a local variable named messageResult as parameters.

requirement SWS_E2EXf_00183 [SWS_E2EXf_00183] 📄 PDF

If extractProtocolHeaderFields() returns something different from E_OK, E2EXf_<transformerId> shall return E_SAFETY_HARD_RUNTIMEER- ROR.

requirement SWS_E2EXf_00184 [SWS_E2EXf_00184] 📄 PDF

For profiles P04m, P07m, P08m and P44m both the in-place and the out-of-place E2EXf_<transformerId> on the client-side shall set a local variable sourceID to the sourceID stored in the configuration (see SWS_E2EXf_00126).

requirement SWS_E2EXf_00185 [SWS_E2EXf_00185] 📄 PDF

For profiles P04m, P07m, P08m and P44m the in-place E2EXf_<transformerId> on the server-side shall call the extractProtocolHeaderFields() function passing the buffer, the bufferLength, the address of local messageType vari- able, and the address of a local messageResult variable as parameters.

requirement SWS_E2EXf_00186 [SWS_E2EXf_00186] 📄 PDF

For profiles P04m, P07m, P08m and P44m the out-of-place E2EXf_<transformerId> on the server-side shall call the extractProtocolHeaderFields() function passing the inputBuffer, the inputBufferLength, the address of local message Type variable, and the address of a local messageResult variable as parameters.

requirement SWS_E2EXf_00187 [SWS_E2EXf_00187] 📄 PDF

If extractProtocolHeaderFields() returns something different from E_OK, E2EXf_<transformerId> shall return E_SAFETY_HARD_RUNTIMEER- ROR.

requirement SWS_E2EXf_00188 [SWS_E2EXf_00188] 📄 PDF

For profiles P04m, P07m, P08m and P44m both the in-place and the out-of-place E2EXf_<transformerId> on the server-side shall set a local vari- able sourceID to the value of the e2eSourceId element of the csTransactionHandle.

requirement SWS_E2EXf_00189 [SWS_E2EXf_00189] 📄 PDF

For profiles P04m, P07m, P08m and P44m both the in-place and the out-of-place E2EXf_<transformerId> on the server-side shall set a local vari- able named requestCounter to the value of the e2eCounter element of the csTransac- tionHandle.

requirement SWS_E2EXf_00190 [SWS_E2EXf_00190] 📄 PDF

If DataTransformationStatusForwarding is set to noTrans- formerStatusForwarding and PXX = P04m, P07m, P08m or P44m the function E2EXf_<transformerId>() shall invoke E2E_PXXProtect(), passing to that function: • the appropriate Config structure (see [SWS_E2EXf_00125]), • the appropriate State structure (see [SWS_E2EXf_00126]), • the local variables sourceID, messageType, and messageResult • buffer + EndToEndTransformationDescription.upperHeaderBitsToShift • bufferLength - EndToEndTransformationDescription.upperHeaderBitsToShift Hereby buffer and bufferLength were updated according to the above re- quirements SWS_E2EXf_00108, SWS_E2EXf_00109, SWS_E2EXf_00115, SWS_ E2EXf_00111.

requirement SWS_E2EXf_00191 [SWS_E2EXf_00191] 📄 PDF

If DataTransformationStatusForwarding is set to transformer StatusForwarding and PXX = P04m, P07m, P08m or P44m: The function E2EXf_<transformerId>() shall invoke E2E_PXXForward(), passing to that function: • the appropriate Config structure (see [SWS_E2EXf_00125]), • the appropriate State structure (see [SWS_E2EXf_00126]), • the local variables sourceID, messageType, and messageResult • buffer + EndToEndTransformationDescription.upperHeaderBitsToShift • bufferLength - EndToEndTransformationDescription.upperHeaderBitsToShift Hereby buffer and bufferLength were updated according to the above re- quirements SWS_E2EXf_00108, SWS_E2EXf_00109, SWS_E2EXf_00115, SWS_ E2EXf_00111.

requirement SWS_E2EXf_00192 [SWS_E2EXf_00192] 📄 PDF

For profiles P04m, P07m, P08m and P44m both the in-place and the out-of-place E2EXf_Inv_<transformerId> shall perform the following additional precondition checks, without continuing further processing: 1. extractProtocolHeaderFields == NULL 2. csTransactionHandle == NULL. If any of above conditions is TRUE, then the function shall return E_SAFETY_HARD_ RUNTIMEERROR.

requirement SWS_E2EXf_00193 [SWS_E2EXf_00193] 📄 PDF

For profiles P04m, P07m, P08m and P44m the in-place E2EXf_Inv_<transformerId> on the client-side shall call the extractProtocolHeader Fields() function passing the buffer, the bufferLength, the address of local message Type variable, and the address of a local messageResult variable as parameters.

requirement SWS_E2EXf_00194 [SWS_E2EXf_00194] 📄 PDF

For profiles P04m, P07m, P08m and P44m the out-of-place E2EXf_Inv_<transformerId> on the client-side shall call the extractProtocolHeader Fields() function passing the inputBuffer, the inputBufferLength, the address of a lo- cal variable named messageType, and the address of a local variable named message Result as parameters.

requirement SWS_E2EXf_00196 [SWS_E2EXf_00196] 📄 PDF

For profiles P04m, P07m, P08m and P44m both the in- place and the out-of-place E2EXf_Inv_<transformerId> on the client-side shall set a local variable sourceID to the sourceID stored in the configuration (see SWS_ E2EXf_00126).

requirement SWS_E2EXf_00197 [SWS_E2EXf_00197] 📄 PDF

For profiles P04m, P07m, P08m and P44m the in-place E2EXf_Inv_<transformerId> on the server-side shall call the extractProtocolHeader Fields() function passing the buffer, the bufferLength, the address of local message Type variable, and the address of a local messageResult variable as parameters.

requirement SWS_E2EXf_00198 [SWS_E2EXf_00198] 📄 PDF

For profiles P04m, P07m, P08m and P44m the out-of-place E2EXf_Inv_<transformerId> on the server-side shall call the extractProtocolHeader Fields() function passing the inputBuffer, the inputBufferLength, the address of local messageType variable, and the address of a local messageResult variable as param- eters.

requirement SWS_E2EXf_00199 [SWS_E2EXf_00199] 📄 PDF

If extractProtocolHeaderFields() returns something differ- ent from E_OK, E2EXf_Inv_<transformerId> shall return E_SAFETY_HARD_RUN- TIMEERROR.

requirement SWS_E2EXf_00200 [SWS_E2EXf_00200] 📄 PDF

For PXX = P04m, P07m, P08m and P44m: the function E2EXf_ Inv_<transformerId> on the client-side shall invoke E2E_PXXSourceCheck(), passing to that function: • config, • state, • the local variables messageType, messageResult, and the local variable source ID • data length: inputBufferLength - EndToEndTransformationDescription.upper HeaderBitsToShift • pointer to data: – inputBuffer + EndToEndTransformationDescription.upperHeaderBitsToShift (out-of-place version) or – buffer + EndToEndTransformationDescription.upperHeaderBitsToShift (in- place version).

requirement SWS_E2EXf_00201 [SWS_E2EXf_00201] 📄 PDF

For PXX = P04m, P07m, P08m and P44m: the function E2EXf_ Inv_<transformerId> on the server-side shall invoke E2E_PXXSinkCheck(), passing to that function: • config, • state, • the local variables messageType, messageResult, and the address of the local variable sourceID • data length: inputBufferLength - EndToEndTransformationDescription.upper HeaderBitsToShift • pointer to data: – inputBuffer + EndToEndTransformationDescription.upperHeaderBitsToShift (out-of-place version) or – buffer + EndToEndTransformationDescription.upperHeaderBitsToShift (in- place version).

requirement SWS_E2EXf_00202 [SWS_E2EXf_00202] 📄 PDF

For profiles P04m, P07m, P08m and P44m both the in-place and the out-of-place E2EXf_Inv_<transformerId> on the server-side shall set the e2e SourceId element of the csTransactionHandle to the value of the local variable source ID.

requirement SWS_E2EXf_00203 [SWS_E2EXf_00203] 📄 PDF

For profiles P04m, P07m, P08m and P44m both the in-place and the out-of-place E2EXf_Inv_<transformerId> on the server-side shall set the e2e Counter element of the csTransactionHandle to the value of the local variable received RequestCounter.

requirement SWS_E2EXf_00204 [SWS_E2EXf_00204] 📄 PDF

The generated configuration object of type E2E_P08mConfig Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

requirement SWS_E2EXf_00205 [SWS_E2EXf_00205] 📄 PDF

The generated configuration object of type E2E_P44mConfig Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

requirement SWS_E2EXf_00206 [SWS_E2EXf_00206] 📄 PDF

In case of Client/Server Communication on the client side and Profile is P01 or P02, the receivedRequestCounter shall be set to state- >LastValidCounter of E2EXf_Inv_<transformerId>.

requirement SWS_E2EXf_00207 [SWS_E2EXf_00207] 📄 PDF

In case of Client/Server Communication on the client side and Profile is P04, P05, P06, P07, P08, P11, P22, P44, P04m, P07m, P08m or P44m the receivedRequestCounter shall be set to state->Counter of E2EXf_Inv_<transformerId>.

requirement SWS_E2EXf_00208 [SWS_E2EXf_00208] 📄 PDF

The function E2EXf_MapCodeToStatus shall return the values depending on the value of forwardedCode:

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/CP_MOD_E2EXf
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_E2EXf@rel:R20-11#32298f39
Content hash
32298f39
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_E2ETransformer.pdf#nameddest=SWS_E2EXf_00032

خريطة المواضيع

التهيئة والحالة

3

المتطلبات

111
SWS_E2EXf_00009SWS_E2EXf_00011SWS_E2EXf_00018SWS_E2EXf_00020SWS_E2EXf_00021SWS_E2EXf_00023SWS_E2EXf_00024SWS_E2EXf_00025SWS_E2EXf_00027SWS_E2EXf_00028SWS_E2EXf_00029SWS_E2EXf_00037SWS_E2EXf_00047SWS_E2EXf_00048SWS_E2EXf_00087SWS_E2EXf_00088SWS_E2EXf_00089SWS_E2EXf_00090SWS_E2EXf_00096SWS_E2EXf_00102SWS_E2EXf_00103SWS_E2EXf_00104SWS_E2EXf_00105SWS_E2EXf_00106SWS_E2EXf_00107SWS_E2EXf_00108SWS_E2EXf_00109SWS_E2EXf_00111SWS_E2EXf_00112SWS_E2EXf_00113SWS_E2EXf_00114SWS_E2EXf_00115SWS_E2EXf_00116SWS_E2EXf_00118SWS_E2EXf_00119SWS_E2EXf_00120SWS_E2EXf_00122SWS_E2EXf_00123SWS_E2EXf_00124SWS_E2EXf_00125SWS_E2EXf_00126SWS_E2EXf_00130SWS_E2EXf_00132SWS_E2EXf_00133SWS_E2EXf_00134SWS_E2EXf_00137SWS_E2EXf_00139SWS_E2EXf_00140SWS_E2EXf_00141SWS_E2EXf_00142SWS_E2EXf_00144SWS_E2EXf_00145SWS_E2EXf_00146SWS_E2EXf_00148SWS_E2EXf_00149SWS_E2EXf_00150SWS_E2EXf_00151SWS_E2EXf_00152SWS_E2EXf_00153SWS_E2EXf_00154SWS_E2EXf_00155SWS_E2EXf_00156SWS_E2EXf_00158SWS_E2EXf_00159SWS_E2EXf_00161SWS_E2EXf_00162SWS_E2EXf_00163SWS_E2EXf_00164SWS_E2EXf_00165SWS_E2EXf_00166SWS_E2EXf_00167SWS_E2EXf_00168SWS_E2EXf_00169SWS_E2EXf_00170SWS_E2EXf_00171SWS_E2EXf_00172SWS_E2EXf_00173SWS_E2EXf_00175SWS_E2EXf_00176SWS_E2EXf_00177SWS_E2EXf_00178SWS_E2EXf_00179SWS_E2EXf_00180SWS_E2EXf_00181SWS_E2EXf_00182SWS_E2EXf_00183SWS_E2EXf_00184SWS_E2EXf_00185SWS_E2EXf_00186SWS_E2EXf_00187SWS_E2EXf_00188SWS_E2EXf_00189SWS_E2EXf_00190SWS_E2EXf_00191SWS_E2EXf_00192SWS_E2EXf_00193SWS_E2EXf_00194SWS_E2EXf_00196SWS_E2EXf_00197SWS_E2EXf_00198SWS_E2EXf_00199SWS_E2EXf_00200SWS_E2EXf_00201SWS_E2EXf_00202SWS_E2EXf_00203SWS_E2EXf_00204SWS_E2EXf_00205SWS_E2EXf_00206SWS_E2EXf_00207SWS_E2EXf_00208SWS_E2EXf_NA_00001

عرض التفاصيل

اختر عنصرًا من المخطط.

التهيئة والحالة

E2EXf_DeInit دالة

Deinitializes the E2E transformer.

void E2EXf_DeInit(void);

Returns the version information of this module.

void E2EXf_GetVersionInfo(Std_VersionInfoType* versioninfo);
E2EXf_Init دالة

Initializes the state of the E2E Transformer. The main part of it is the initialization of the E2E library state structures, which is done by calling all init-functions from E2E library.

void E2EXf_Init(const E2EXf_ConfigType* config);

الخدمات

Checks the received data. If the data can be used by the caller, then the function returns E_OK.

uint8 E2EXf_Inv_<transformerId>([Std_ExtractProtocolHeaderFieldsType extractProtocolHeaderFields], [E2EXf_CSTransactionHandleType* csTransactionHandle], uint8* buffer, uint32* bufferLength, [const uint8* inputBuffer], uint32 inputBufferLength);

Protects the array/buffer to be transmitted, using the in-place transformation.

uint8 E2EXf_<transformerId>([Std_TransformerForwardCode forwardedCode], [Std_ExtractProtocolHeaderFieldsType extractProtocolHeaderFields], [const E2EXf_CSTransactionHandleType* csTransactionHandle], uint8* buffer, uint32* bufferLength, [const uint8* inputBuffer], uint32 inputBufferLength);

الأنواع

Parent container for the configuration of E2E Transformer. The content is implementation-specific.

Transaction handle for the C/S method call. - Used to tunnel the E2E Source ID and the E2E Counter from the request to the response at the server side via the RTE.

المتطلبات

SWS_E2EXf_00009 requirement

The runtime errors detected by E2EXf_Inv_<transformerId> function and errors in the protected E2E communication shall be reported as return value to the caller (i.e. to RTE).

SWS_E2EXf_00011 requirement

The E2E Transformer shall generate the following data struc- ture, to store the configuration of E2E Transformer module: E2EXf_ConfigStruct_<v>(of type E2EXf_ConfigType)

SWS_E2EXf_00018 requirement

{DRAFT} In case E2E_PXXProtect() or E2E_PXXForward() returns E2E_E_OK, then E2EXf_<transformerId> shall return E_OK, otherwise E2EXf_<transformerId> shall return E_SAFETY_HARD_RUNTIMEERROR.

SWS_E2EXf_00020 requirement

The function E2EXf_<transformerId> shall be generated for each sent E2E-protected data element and each protected C/S operation (<trans- formerId>).

SWS_E2EXf_00021 requirement

The E2EXf_Init() function shall initialize the following external state data resources managed by E2E transformer (see SWS_E2EXf_00125) as fol- lows: • Initialization of state data resources of type E2E_PXXProtectStateType by calling corresponding E2E_PXXProtectInit() methods, • Initialization of state data resources of type E2E_PXXCheckStateType by calling corresponding E2E_PXXCheckInit() methods, • Initialization of state data resources of type E2E_SMCheckStateType by calling corresponding E2E_SMCheckInit() methods.

SWS_E2EXf_00023 requirement

In all E2E Transformer variants, the generated state objects may be left uninitialized (i.e. without providing explicit initialization values).

SWS_E2EXf_00024 requirement

In post-build-selectable variant, E2EXf_Init() shall check that Config pointer (received as function parameter) points to one of the configuration vari- ants E2EXf_ConfigStruct_<v>.If this is the case, then E2EXf_Init() shall select the passed configuration variant, and it shall set the module initialization state to TRUE according to SWS_E2EXf_00130.

SWS_E2EXf_00025 requirement

The function E2EXf_Inv_<transformerId> shall be generated for each received E2E-protected data element and each protected C/S operation (<transformerId>).

SWS_E2EXf_00027 requirement

If E2E_SMCheck() returns E2E_E_OK and disableEndToEnd StateMachine is FALSE, then: • the high nibble of the return of the function E2EXf_Inv_<transformerId>shall be set to the low nibble of the state of the state machine (member SMState of object of type E2E_SMStateType that is associated with <transformerId>, see [SWS_ E2EXf_00125]). • The low nibble of the return of the function E2EXf_Inv_<transformerId> shall be set to the low nibble of the profile-independent check status of type E2E_PCheck StatusType. If E2E_SMCheck() does not return E2E_E_OK, the return value shall be E_SAFETY_ SOFT_RUNTIMEERROR.

SWS_E2EXf_00028 requirement

The function E2EXf_Inv_<transformerId> shall invoke the E2E_SMCheck() function, passing to that function the configuration object of type E2E_SMConfigType (see [SWS_E2EXf_00126] and [SWS_E2EXf_00088])and state object of type E2E_SMCheckStateType (see [SWS_E2EXf_00125]) that are associ- ated with <transformerId>, plus the profile-independent check status that was com- puted by E2E_PXXMapStatusToSM() in SWS_E2EXf_00029.

SWS_E2EXf_00029 requirement

The function E2EXf_Inv_<transformerId> shall invoke E2E_ PXXMapStatusToSM(), passing to that function the return value of E2E_PXXCheck and the profile's check Status (variable Status of state object of type E2E_PXXCheck StateType, see [SWS_E2EXf_00125]), to obtain the profile-independent check status. For P1/P2 mapping functions, there is an additional call parameter profileBehavior: • if configuration parameter profileBehavior is R4_2, then E2E_PXXMapStatusTo SM() shall be invoked with the call parameter profileBehavior = 1 • if configuration parameter profileBehavior is PRE_R4_2, then E2E_PXXMapSta- tusToSM() shall be invoked with call parameter profileBehavior = 0

SWS_E2EXf_00037 requirement

E2E_P01Check E2E.h Checks the Data received using the E2E profile 1. This includes CRC calculation, handling of Counter and Data ID. E2E_P01CheckInit E2E.h Initializes the check state E2E_P01Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 01. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P01MapStatusToSM E2E.h The function maps the check status of Profile 1 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 1 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P01Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 1. This includes checksum calculation, handling of counter and Data ID. E2E_P01ProtectInit E2E.h Initializes the protection state. E2E_P02Check E2E.h Check the array/buffer using the E2E profile 2. This includes checksum calculation, handling of sequence counter and Data ID. E2E_P02CheckInit E2E.h Initializes the check state E2E_P02Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 02. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P02MapStatusToSM E2E.h The function maps the check status of Profile 2 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 2 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P02Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 2. This includes checksum calculation, handling of sequence counter and Data ID. E2E_P02ProtectInit E2E.h Initializes the protection state. E2E_P04Check E2E.h Checks the Data received using the E2E profile 4. This includes CRC calculation, handling of Counter and Data ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P04CheckInit E2E.h Initializes the check state E2E_P04Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 04. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P04MapStatusToSM E2E.h The function maps the check status of Profile 4 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 4 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P04mCheckInit E2E.h Initializes the check state API Function Header File Description E2E_P04mForward (draft) E2E.h Protects data which is forwarded by using the E2E profile 4m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P04mMapStatusToSM E2E.h The function maps the check status of Profile 4m to a generic check status, which can be used by E2E state machine check function. The E2E Profile 4m delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P04mProtect E2E.h Protects the array/buffer to be transmitted using the E2E profile 4m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. E2E_P04mProtectInit E2E.h Initializes the protection state. E2E_P04mSinkCheck E2E.h Checks the Data received using the E2E profile 4m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data sink (i.e., in case of C/S communication at the server). E2E_P04mSourceCheck E2E.h Checks the Data received using the E2E profile 4m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data source (i.e., in case of C/S communication at the client). E2E_P04Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 4. This includes checksum calculation, handling of counter and Data ID. E2E_P04ProtectInit E2E.h Initializes the protection state. E2E_P05Check E2E.h Checks the Data received using the E2E profile 5. This includes CRC calculation, handling of Counter. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P05CheckInit E2E.h Initializes the check state E2E_P05Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 05. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P05MapStatusToSM E2E.h The function maps the check status of Profile 5 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 5 delivers a more fine-granular status, but this is not relevant for the E2E state machine. API Function Header File Description E2E_P05Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 5. This includes checksum calculation, handling of counter. E2E_P05ProtectInit E2E.h Initializes the protection state. E2E_P06Check E2E.h Checks the Data received using the E2E profile 6. This includes CRC calculation, handling of Counter. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P06CheckInit E2E.h Initializes the check state E2E_P06Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 06. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P06MapStatusToSM E2E.h The function maps the check status of Profile 6 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 6 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P06Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 6. This includes checksum calculation, handling of counter. E2E_P06ProtectInit E2E.h Initializes the protection state. E2E_P07Check E2E.h Checks the Data received using the E2E profile 7. This includes CRC calculation, handling of Counter and Data ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P07CheckInit E2E.h Initializes the check state E2E_P07Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 07. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P07MapStatusToSM E2E.h The function maps the check status of Profile 7 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 7 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P07mCheckInit E2E.h Initializes the check state E2E_P07mForward (draft) E2E.h Protects data which is forwarded by using the E2E profile 7m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P07mMapStatusToSM E2E.h The function maps the check status of Profile 7m to a generic check status, which can be used by E2E state machine check function. The E2E Profile 7m delivers a more fine-granular status, but this is not relevant for the E2E state machine. API Function Header File Description E2E_P07mProtect E2E.h Protects the array/buffer to be transmitted using the E2E profile 7m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. E2E_P07mProtectInit E2E.h Initializes the protection state. E2E_P07mSinkCheck E2E.h Checks the Data received using the E2E profile 7m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data sink (i.e., in case of C/S communication at the server). E2E_P07mSourceCheck E2E.h Checks the Data received using the E2E profile 7m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data source (i.e., in case of C/S communication at the client). E2E_P07Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 7. This includes checksum calculation, handling of counter and Data ID. E2E_P07ProtectInit E2E.h Initializes the protection state. E2E_P08Check E2E.h Checks the Data received using the E2E profile 08. This includes CRC calculation, handling of Counter and Data ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P08CheckInit E2E.h Initializes the check state E2E_P08Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 08. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P08MapStatusToSM E2E.h The function maps the check status of Profile 08 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 08 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P08mCheckInit E2E.h Initializes the check state E2E_P08mForward (draft) E2E.h Protects data which is forwarded by using the E2E profile 08m. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P08mMapStatusToSM E2E.h The function maps the check status of Profile 08m to a generic check status, which can be used by E2E state machine check function. The E2E Profile 08m delivers a more fine-granular status, but this is not relevant for the E2E state machine. API Function Header File Description E2E_P08mProtect E2E.h Protects the array/buffer to be transmitted using the E2E profile 08m. This includes CRC calculation, handling of counter, Data ID, Message Type, Message Result and Source ID. E2E_P08mProtectInit E2E.h Initializes the protection state. E2E_P08mSinkCheck E2E.h Checks the Data received using the E2E profile 8m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data sink (i.e., in case of C/S communication at the server). E2E_P08mSourceCheck E2E.h Checks the Data received using the E2E profile 8m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data source (i.e., in case of C/S communication at the client). E2E_P08Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 08. This includes checksum calculation, handling of counter and Data ID. E2E_P08ProtectInit E2E.h Initializes the protection state. E2E_P11Check E2E.h Checks the Data received using the E2E profile 11. This includes CRC calculation, handling of Counter. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P11CheckInit E2E.h Initializes the check state E2E_P11Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 11. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P11MapStatusToSM E2E.h The function maps the check status of Profile 11 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 11 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P11Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 11. This includes checksum calculation, handling of counter. E2E_P11ProtectInit E2E.h Initializes the protection state. E2E_P22Check E2E.h Checks the Data received using the E2E profile 22. This includes CRC calculation, handling of Counter. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P22CheckInit E2E.h Initializes the check state E2E_P22Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 22. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft API Function Header File Description E2E_P22MapStatusToSM E2E.h The function maps the check status of Profile 22 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 22 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P22Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 22. This includes checksum calculation, handling of counter. E2E_P22ProtectInit E2E.h Initializes the protection state. E2E_P44Check E2E.h Checks the Data received using the E2E profile 44. This includes CRC calculation, handling of Counter and Data ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. E2E_P44CheckInit E2E.h Initializes the check state. E2E_P44Forward (draft) E2E.h Protects data which is forwarded by using the E2E profile 44. This includes checksum calculation, handling of counter and Data ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P44MapStatusToSM E2E.h The function maps the check status of Profile 44 to a generic check status, which can be used by E2E state machine check function. The E2E Profile 44 delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P44mCheckInit E2E.h Initializes the check state E2E_P44mForward (draft) E2E.h Protects data which is forwarded by using the E2E profile 44m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. Detected Errors of received message will be reconstruct on output data. Tags: atp.Status=draft E2E_P44mMapStatusToSM E2E.h The function maps the check status of Profile 44m to a generic check status, which can be used by E2E state machine check function. The E2E Profile 44m delivers a more fine-granular status, but this is not relevant for the E2E state machine. E2E_P44mProtectInit E2E.h Initializes the protection state. E2E_P44mSinkCheck E2E.h Checks the Data received using the E2E profile 44m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data sink (i.e., in case of C/S communication at the server). E2E_P44mSourceCheck E2E.h Checks the Data received using the E2E profile 44m. This includes CRC calculation, handling of Counter, Data ID, Message Type, Message Result, and Source ID. The function checks only one single data in one cycle, it does not determine/compute the accumulated state of the communication link. This function is intended for usage at the data source (i.e., in case of C/S communication at the client). E2E_P44Protect E2E.h Protects the array/buffer to be transmitted using the E2E profile 44. This includes checksum calculation, handling of counter and Data ID. API Function Header File Description E2E_P44ProtectInit E2E.h Initializes the protection state. E2E_SMCheck E2E.h Checks the communication channel. It determines if the data can be used for safety-related application, based on history of checks performed by a corresponding E2E_P0XCheck() function. E2E_SMCheckInit E2E.h Initializes the state machine.

SWS_E2EXf_00047 requirement

Module Header File Imported Type E2E.h E2E_P01CheckStateType E2E.h E2E_P01CheckStatusType E2E.h E2E_P01ConfigType E2E.h E2E_P01DataIDMode E2E.h E2E_P01ProtectStateType E2E.h E2E_P02CheckStateType E2E.h E2E_P02CheckStatusType E2E.h E2E_P02ConfigType E2E.h E2E_P02ProtectStateType E2E.h E2E_P04CheckStateType E2E.h E2E_P04CheckStatusType E2E.h E2E_P04ConfigType E2E.h E2E_P04ProtectStateType E2E.h E2E_P04mCheckStateType E2E.h E2E_P04mCheckStatusType E2E.h E2E_P04mConfigType E2E.h E2E_P04mProtectStateType E2E.h E2E_P05CheckStateType E2E.h E2E_P05CheckStatusType E2E.h E2E_P05ConfigType E2E.h E2E_P05ProtectStateType E2E.h E2E_P06CheckStateType E2E.h E2E_P06CheckStatusType E2E.h E2E_P06ConfigType E2E.h E2E_P06ProtectStateType E2E.h E2E_P07CheckStateType E2E.h E2E_P07CheckStatusType E2E.h E2E_P07ConfigType E2E.h E2E_P07ProtectStateType E2E.h E2E_P07mCheckStateType E2E.h E2E_P07mCheckStatusType E2E.h E2E_P07mConfigType E2E.h E2E_P07mProtectStateType E2E.h E2E_P08CheckStateType E2E E2E.h E2E_P08CheckStatusType Module Header File Imported Type E2E.h E2E_P08ConfigType E2E.h E2E_P08ProtectStateType E2E.h E2E_P08mCheckStateType E2E.h E2E_P08mCheckStatusType E2E.h E2E_P08mConfigType E2E.h E2E_P08mProtectStateType E2E.h E2E_P11CheckStateType E2E.h E2E_P11CheckStatusType E2E.h E2E_P11ConfigType E2E.h E2E_P11DataIDMode E2E.h E2E_P11ProtectStateType E2E.h E2E_P22CheckStateType E2E.h E2E_P22CheckStatusType E2E.h E2E_P22ConfigType E2E.h E2E_P22ProtectStateType E2E.h E2E_P44CheckStateType E2E.h E2E_P44CheckStatusType E2E.h E2E_P44ConfigType E2E.h E2E_P44ProtectStateType E2E.h E2E_P44mCheckStateType E2E.h E2E_P44mCheckStatusType E2E.h E2E_P44mConfigType E2E.h E2E_P44mProtectStateType E2E.h E2E_PCheckStatusType E2E.h E2E_SMCheckStateType E2E.h E2E_SMConfigType E2E.h E2E_SMStateType Std_Types.h Std_ExtractProtocolHeaderFieldsType Std_Types.h Std_MessageResultType Std_Types.h Std_MessageTypeType Std_Types.h Std_ReturnType Std_Types.h Std_TransformerForwardCode (draft) Std Std_Types.h Std_VersionInfoType

SWS_E2EXf_00048 requirement

The generated configuration object of type E2E_P01Config Type shall be initialized according to the following: • DataID = EndToEndTransformationISignalProps.dataID • DataLength = EndToEndTransformationISignalProps.dataLength • CounterOffset = EndToEndTransformationDescription.counterOffset • CRCOffset = EndToEndTransformationDescription.crcOffset • DataIDNibbleOffset = EndToEndTransformationDescription.dataIdNibbleOffset • DataIDMode shall be set to – E2E_P01_DATAID_BOTH if EndToEndTransformationDescription.dataID- Mode == all16Bit – E2E_P01_DATAID_ALT if EndToEndTransformationDescription.dataID- Mode == alternating8Bit – E2E_P01_DATAID_LOW if EndToEndTransformationDescription.data IDMode == lower8Bit – E2E_P01_DATAID_NIBBLE if EndToEndTransformationDescription.dataID- Mode == nibble • MaxDeltaCounterInit = EndToEndTransformationComSpecProps.maxDelta Counter-1 or EndToEndTransformationDescription.maxDeltaCounter-1 • MaxNoNewOrRepeatedData = EndToEndTransformationComSpecProps.maxNo NewOrRepeatedData or EndToEndTransformationDescription.maxNoNewOrRe- peatedData • SyncCounterInit = EndToEndTransformationComSpecProps.syncCounterInit or EndToEndTransformationDescription.syncCounterInit.

SWS_E2EXf_00087 requirement

The generated configuration object of type E2E_P04Config Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

SWS_E2EXf_00088 requirement

The generated config structure of type E2E_SMConfig Type,shall be initialized according to the following (one-to-one mapping): • WindowSize = EndToEndTransformationComSpecProps.windowSize or EndTo EndTransformationDescription.windowSize • MinOkStateInit = EndToEndTransformationComSpecProps.minOkStateInit or EndToEndTransformationDescription.minOkStateInit • MaxErrorStateInit = EndToEndTransformationComSpecProps.maxErrorStateInit or EndToEndTransformationDescription.maxErrorStateInit • MinOkStateValid = EndToEndTransformationComSpecProps.minOkStateValid or EndToEndTransformationDescription.minOkStateValid • MaxErrorStateValid = EndToEndTransformationComSpecProps.maxErrorState Valid or EndToEndTransformationDescription.maxErrorStateValid • MinOkStateInvalid = EndToEndTransformationComSpecProps.minOkStateIn- valid or EndToEndTransformationDescription.minOkStateInvalid • MaxErrorStateInvalid = EndToEndTransformationComSpecProps.maxErrorState Invalid or EndToEndTransformationDescription.maxErrorStateInvalid

SWS_E2EXf_00089 requirement

In case of link-time configuration, there is just one variant, this means: <v>= emtpy (NULL string).

SWS_E2EXf_00090 requirement

In case of post-build-selectable configuration, the variants shall be named according to the configuration attribute PredefinedVariant.shortName. This means: <v> = PredefinedVariant.shortName.

SWS_E2EXf_00096 requirement

The configuration object E2EXf_ConfigStruct_<v> (see SWS_ E2EXf_00011) shall be initialized to contain or to reference the config structures that were instantiated in above requirements of this section.

SWS_E2EXf_00102 requirement

In-place E2EXf_<transformerId> shall perform the following two precondition checks, without continuing further processing: 1. (buffer == NULL) || (buffer != NULL && inputBufferLength < EndToEndTransformationDescrip- tion.upperHeaderBitsToShift/8u) 2. bufferLength == NULL. If any of above conditions is TRUE, then the function shall return E_SAFETY_HARD_ RUNTIMEERROR.

SWS_E2EXf_00103 requirement

Out-of-place E2EXf_Inv_<transformerId> shall perform the fol- lowing three precondition checks, without continuing further processing: 1. (inputBuffer == NULL && inputBufferLength != 0) || (inputBuffer != NULL && inputBufferLength < BufferProperties.headerLength/8u + EndToEndTransformationDescription.upperHeaderBitsToShift/8u) 2. If (bufferLength == NULL) 3. If (buffer == NULL). If any of above conditions is TRUE, then the function shall return E_SAFETY_HARD_ RUNTIMEERROR.

SWS_E2EXf_00104 requirement

For PXX = 04, 05, 06, 07, 11, 22: the function E2EXf_ Inv_<transformerId> shall invoke E2E_PXXCheck(), passing to that function: • config, • state, • data length: inputBufferLength pointer to data:inputBuffer (out-of-place version) or buffer (in-place version).

SWS_E2EXf_00105 requirement

In-place E2EXf_Inv_<transformerId> shall perform the follow- ing two precondition checks, without continuing further processing: 1. (buffer == NULL && inputBufferLength != 0) || (buffer != NULL && inputBufferLength < BufferProperties.headerLength/8u + End ToEndTransformationDescription.upperHeaderBitsToShift/8u) 2. bufferLength == NULL. If any of above conditions is TRUE, then the function shall return E_SAFETY_HARD_ RUNTIMEERROR.

SWS_E2EXf_00106 requirement

Out-of-place E2EXf_<transformerId> shall perform the follow- ing three precondition checks, without continuing further processing: 1. (inputBuffer == NULL) || (inputBuffer != NULL && inputBufferLength < EndToEndTransformationDescrip- tion.upperHeaderBitsToShift/8u) 2. bufferLength == NULL 3. buffer == NULL If any of above conditions is TRUE, then the function shall return E_SAFETY_HARD_ RUNTIMEERROR.

SWS_E2EXf_00107 requirement

{DRAFT} If DataTransformationStatusForwarding is set to no TransformerStatusForwarding and PXX is P01 ,P02 ,P04 ,P05 ,P06 ,P07 ,P08 ,P11 ,P22 or P44, the function E2EXf_<transformerId>() shall invoke E2E_PXXProtect(), passing to that function the appropriate Config and State structures (see [SWS_ E2EXf_00125] and [SWS_E2EXf_00126]) that are associated with <transformerId>, as well as buffer and bufferLength (only for P04, P05, P06, P07, P08 ,P11 ,P22 and P44) that were updated in above requirements SWS_E2EXf_00108, SWS_E2EXf_00109, SWS_E2EXf_00115, SWS_E2EXf_00111.

SWS_E2EXf_00108 requirement

If (EndToEndTransformationDescription.upperHeaderBitsTo Shift > 0), in-place E2EXf_<transformerId> shall copy the amount upper HeaderBits ToShiftbits, in parameter buffer, with starting offset of BufferProperties.headerLength, in direction left by "distance" of BufferProperties.headerLength.

SWS_E2EXf_00109 requirement

If (EndToEndTransformationDescription.upperHeaderBitsTo Shift > 0), out-of-place E2EXf_<transformerId> shall copy the first upper HeaderBits ToShiftbits from inputBuffer to buffer, and then copy the remaining part of inputBuffer (i.e. starting with offset upperHeaderBitsToShift) to parameter buffer starting with the destination offset of (upperHeaderBitsToShift+ BufferProperties.headerLength).

SWS_E2EXf_00111 requirement

E2EXf_<transformerId> shall set *bufferLength = inputBuffer Length + BufferProperties.headerLength/8.

SWS_E2EXf_00112 requirement

If (buffer != NULL &&EndToEndTransformationDescrip- tion.upperHeaderBitsToShift> 0), in-place E2EXf_Inv_<transformerId> shall copy the first upper HeaderBitsToShiftbits, in parameter buffer, in direction right by "distance" of BufferProperties.headerLength.

SWS_E2EXf_00113 requirement

If (inputBuffer != NULL &&EndToEndTransformationDescrip- tion.upperHeaderBitsToShift> 0), out-of-place E2EXf_Inv_<transformerId> shall copy the first upper HeaderBitsToShiftbits from inputBuffer to buffer, and then copy the re- maining part of inputBuffer skipping E2E header (i.e. starting with offset upperHeader BitsToShift+BufferProperties.headerLength) to parameter buffer starting with the des- tination offset of (upperHeaderBitsToShift).

SWS_E2EXf_00114 requirement

If inputBufferLength == 0, then E2EXf_Inv_<transformerId> shall set *bufferLength = 0, otherwise it shall set *bufferLength = inputBufferLength - BufferProperties.headerLength/8.

SWS_E2EXf_00115 requirement

If (EndToEndTransformationDescription.upperHeaderBitsTo Shift == 0), out-of-place E2EXf_<transformerId> shall copy inputBuffer to buffer start- ing with the destination offset of BufferProperties.headerLength.

SWS_E2EXf_00116 requirement

If (inputBuffer != NULL &&EndToEndTransformationDescrip- tion.upperHeaderBitsToShift == 0), out-of-place E2EXf_Inv_<transformerId> shall copy inputBuffer starting with the offset of BufferProperties.headerLength, to buffer.

SWS_E2EXf_00118 requirement

The generated configuration object of type E2E_P02Config Type shall be initialized according to the following: • DataIDList= EndToEndTransformationISignalProps.dataID (array) • DataLength = EndToEndTransformationISignalProps.dataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounterInit = EndToEndTransformationComSpecProps.maxDelta Counter-1 or EndToEndTransformationDescription.maxDeltaCounter-1 • MaxNoNewOrRepeatedData = EndToEndTransformationComSpecProps.maxNo NewOrRepeatedData or EndToEndTransformationDescription.maxNoNewOrRe- peatedData • SyncCounterInit = EndToEndTransformationComSpecProps.syncCounterInit or EndToEndTransformationDescription. syncCounterInit.

SWS_E2EXf_00119 requirement

The generated configuration object of type E2E_P05Config Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • DataLength = EndToEndTransformationISignalProps.dataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

SWS_E2EXf_00120 requirement

The generated configuration object of type E2E_P06Config Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

SWS_E2EXf_00122 requirement

The runtime errors detected by the E2EXf_<transformerId> function shall be reported as return value to the caller (i.e. to RTE).

SWS_E2EXf_00123 requirement

For PXX = 01 or 02 (i.e. for profiles 1 and 2), the out-of-place function E2EXf_Inv_<transformerId> shall invoke E2E_PXXCheck(), passing to that function: • Config, • State, • Data Concerning pointer to Data: if(inputBuffer == NULL and inputBufferLength == 0), then it shall pass a pointer to a 1-byte variable of E2E transformer, otherwise it shall pass inputBuffer.

SWS_E2EXf_00124 requirement

For PXX = 01 or 02 (i.e. for profiles 1 and 2), the in-place function E2EXf_Inv_<transformerId> shall invoke E2E_PXXCheck(), passing to that function: • Config, • State, • Data Concerning pointer to Data: if(buffer == NULL and inputBufferLength == 0), then it shall pass a pointer to a 1-byte variable of E2E transformer, otherwise it shall pass buffer.

SWS_E2EXf_00125 requirement

The E2E Transformer shall derive the required number of in- dependent state data resources of types E2E_PXXProtectStateType, E2E_PXXCheck StateType, and E2E_SMCheckStateType to perform E2E Protection within the E2E Transformer module from the number of E2E-protected data uniquely identified with <transformerId>, protected by profile PXX.

SWS_E2EXf_00126 requirement

The E2E Transformer shall derive the required number of inde- pendent statically initialized configuration objects of types E2E_PXXConfigType, E2E_ SMConfigType and (if required) additional information (e.g. the Source ID on client side for profiles P04m, P07m, P08m, P44m) to perform E2E Protection within the E2E Transformer, from: 1. the number of E2E-protected data uniquely identified with <transformerId>, pro- tected by profile PXX, and 2. the number of configuration variants (post-build selectable only).

SWS_E2EXf_00130 requirement

The E2E Transformer shall maintain a boolean information (Ini- tialization state) that is only set to TRUE, if the module has been successfully initialized via a call to E2EXf_Init(). Otherwise, it is set to FALSE.

SWS_E2EXf_00132 requirement

In case of deinitialization (invocation of E2EXf_DeInit()), the module initialization state shall be set to FALSE.

SWS_E2EXf_00133 requirement

If the E2E Transformer has not been correctly initialized (which means that E2EXf_Init() was not successfully called before), then all gener- ated E2E Transformer APIs shall return E_SAFETY_HARD_RUNTIMEERROR.

SWS_E2EXf_00134 requirement

The configuration options in EndToEndTransformationCom SpecProps shall have precedence over the options in EndToEndTransformationDe- scription and EndToEndTransformationISignalProps.

SWS_E2EXf_00137 requirement

Type of error Related error code Error value Error code if any other API service, except Get VersionInfo is called before the transformer module was initialized with Init or after a call to De Init E2EXF_E_UNINIT 0x01 Error code if an invalid configuration set was selected E2EXF_E_INIT_FAILED 0x02 API service called with wrong parameter E2EXF_E_PARAM 0x03 API service called with invalid pointer E2EXF_E_PARAM_POINTER 0x04

SWS_E2EXf_00139 requirement

For PXX = 01 or 02, the function E2EXf_<transformerId>() shall perform a check of the *bufferLength (after the computation of *bufferLength): If (*bufferLength != config->DataLength/8), then the function shall return E_SAFETY_ HARD_RUNTIMEERROR, i.e. without calling an E2E Library function.

SWS_E2EXf_00140 requirement

For PXX = 01 or 02 (i.e. for profile 1 and 2), the out-of-place function E2EXf_Inv_<transformerId> shall 1. if(inputBuffer == NULL and inputBufferLength == 0), then • variable NewDataAvailable of state object of type E2E_PXXCheckStateType (see [SWS_E2EXf_00125]) associated with <transformerId> shall be set to FALSE. 2. else if (inputBufferLength == config->DataLength/8), then • variable NewDataAvailable of state object of type E2E_PXXCheckState Type (see [SWS_E2EXf_00125]) associated with <transformerId> shall be set to TRUE. 3. else return E_SAFETY_HARD_RUNTIMEERROR.

SWS_E2EXf_00141 requirement

For PXX = 01 or 02 (i.e. for profiles 1 and 2), the in-place function E2EXf_Inv_<transformerId> shall 1. If(buffer == NULL and inputBufferLength == 0), then • variable NewDataAvailable of state object of type E2E_PXXCheckStateType (see [SWS_E2EXf_00125]) associated with <transformerId> shall be set to FALSE. 2. Else if (inputBufferLength == config->DataLength/8), then • variable NewDataAvailable of state object of type E2E_PXXCheckState Type (see [SWS_E2EXf_00125]) associated with <transformerId> shall be set to TRUE. 3. Else return E_SAFETY_HARD_RUNTIMEERROR.

SWS_E2EXf_00142 requirement

If configuration parameter profileBehavior is PRE_R4_2, then for PXX = 01 or 02, E2EXf_Inv_<transformerId> () shall set the variable MaxDelta Counter of the state object to the value of variable MaxDeltaCounterInit of the corre- sponding configuration object.

SWS_E2EXf_00144 requirement

If the XfrmDevErrorDetect switch is enabled and the configu- ration variant is VARIANT-POST-BUILD, the function E2EXf_Init shall check if a NULL pointer is passed for the ConfigPtr parameter. In this case the remaining function shall not be executed and the function E2EXf_Init shall report development error code E2EXF_E_PARAM_POINTER to the Det_ReportError service of the Default Error Tracer.

SWS_E2EXf_00145 requirement

If the XfrmDevErrorDetect switch is enabled and the configura- tion variant is VARIANT-POST-BUILD, the function E2EXf_Init shall check the contents of the given configuration set for being within the allowed boundaries. If the func- tion E2EXf_Init detects an error, then it shall skip the initialization of the E2E Trans- former, keep the module internal state as uninitialized and it shall report development error code E2EXF_E_INIT_FAILED to the Det_ReportError service of the Default Error Tracer.

SWS_E2EXf_00146 requirement

If the configuration parameter XfrmDevErrorDetect is enabled, the function E2EXf_DeInit shall check if the E2E transformer is initialized. If not initial- ized, the function E2EXf_DeInit shall return without any effect and shall report the error to the Default Error Tracer with the error code E2EXF_E_UNINIT.

SWS_E2EXf_00148 requirement

E2EXf_DeInit() shall set the module initialization state to FALSE.

SWS_E2EXf_00149 requirement

If the XfrmDevErrorDetect switch is enabled, the function E2EXf_GetVersionInfo shall check if a NULL pointer is passed for the VersionInfo pa- rameter. In this case of an error the remaining function E2EXf_GetVersionInfo shall not be executed and the function E2EXf_GetVersionInfo shall report development er- ror code E2EXF_E_PARAM_POINTER to the Det_ReportError service of the Default Error Tracer and return.

SWS_E2EXf_00150 requirement

If the configuration parameter XfrmDevErrorDetect is enabled, all parameters of API E2EXf_<transformerId> (see SWS_E2EXf_00032) shall be checked for being in the allowed range. In case of an error the mode switch shall not be executed, an the error shall be reported to the Default Error Tracer with either value E2EXF_E_PARAM (parameter out of range) resp. E2EXF_E_PARAM_POINTER in case of a pointer argument (NULL pointer) and the routine shall return the value E_ SAFETY_HARD_RUNTIMEERROR.

SWS_E2EXf_00151 requirement

If the configuration parameter XfrmDevErrorDetect is enabled, the API E2EXf_<transformerId> (see SWS_E2EXf_00032) shall check if the E2E Transformer is initialized. In case of an error, the error code E2EXF_E_UNINIT shall be reported to the Default Error Tracer and the routine shall return the value E_SAFETY_ HARD_RUNTIMEERROR.

SWS_E2EXf_00152 requirement

If the configuration parameter XfrmDevErrorDetect is enabled, all parameters of API E2EXf_Inv_<transformerId> (see SWS_E2EXf_00034) shall be checked for being in the allowed range. In case of an error the mode switch shall not be executed, the error shall be reported to the Default Error Tracer with the value E2EXF_ E_PARAM resp. E2EXF_E_PARAM_POINTER in case of a pointer argument (NULL pointer) and the routine shall return the value E_SAFETY_HARD_RUNTIMEERROR.

SWS_E2EXf_00153 requirement

If the configuration parameter XfrmDevErrorDetect is enabled, the API E2EXf_Inv_<transformerId> (see SWS_E2EXf_00034) shall check if the E2E Transformer is initialized. In case of an error the routine shall not be executed, the error shall be reported to the Default Error Tracer with the error code E2EXF_E_UNINIT and the routine shall return the value E_SAFETY_HARD_RUNTIMEERROR.

SWS_E2EXf_00154 requirement

If configuration option EndToEndTransformationComSpec Props.disableEndToEndCheck is set for a given <transformerId>, then E2E Trans- former shall skip the invocation of the E2E Library - it shall only perform buffer pro- cessing (e.g. copying from inputBuffer to buffer). Return value shall be E_OK.

SWS_E2EXf_00155 requirement

{DRAFT} If (((PXX = 01 &&dataIDMode != nibble) || (PXX == 02) || (PXX = 11 &&dataIDMode != nibble) || (PXX == 22)) && BufferProperties.header Length == 16 [bits]), the function E2EXf_<transformerId>() shall, before calling E2E_ PXXProtect() or E2E_PXXForward(), set 0xF in buffer at the bit offset (EndToEndTrans- formationDescription.crcOffset+12 for profiles P01 and P11 and EndToEndTransforma- tionDescription.offset+12 for profiles P02 and P22).

SWS_E2EXf_00156 requirement

The apiServicePrefix of the E2E Transformer's EcuC shall be set to E2EXf.

SWS_E2EXf_00158 requirement

The E2EXf_Init() function shall initialize the internal state data resources of E2E functions forward, protect check and state machine of E2E trans- former.

SWS_E2EXf_00159 requirement

In case of post-build configuration, E2EXf_Init() function shall initialize the E2E transformer for a driving cycle.

SWS_E2EXf_00161 requirement

The E2E transformer defined in this document shall be used as a transformer if 1. the attribute protocol of the TransformationTechnology is set to E2E 2. and the attribute version of the TransformationTechnology is set to 1.0.0 3. and the attribute transformerClass of the TransformationTechnology is set to safety

SWS_E2EXf_00162 requirement

The generated configuration object of type E2E_P11Config Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • DataLength = EndToEndTransformationISignalProps.dataLength • CounterOffset = EndToEndTransformationDescription.counterOffset • CRCOffset = EndToEndTransformationDescription.crcOffset • DataIDNibbleOffset = EndToEndTransformationDescription.dataIdNibbleOffset • DataIDMode shall be set to – E2E_P11_DATAID_BOTH if EndToEndTransformationDescription.dataID- Mode == all16Bit – E2E_P11_DATAID_NIBBLE if EndToEndTransformationDescription.dataID- Mode == nibble • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

SWS_E2EXf_00163 requirement

The generated configuration object of type E2E_P07Config Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

SWS_E2EXf_00164 requirement

The generated configuration object of type E2E_P22Config Type shall be initialized according to the following: • DataIDList = EndToEndTransformationISignalProps.dataID (array) • DataLength = EndToEndTransformationISignalProps.dataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

SWS_E2EXf_00165 requirement

If E2E-Transformer is used for a response in a Client-Server Communication and Profile is P02 or P22 the sequence counter used for protecting the response shall be set to requestCounter -1.

SWS_E2EXf_00166 requirement

If E2E-Transformer is used in a Client-Server Communication and Profile is P01, P04, P04m, P05, P06, P07, P07m, P08, P08m, P11, P44 or P44m the sequence counter for protecting the response shall be set to requestCounter.

SWS_E2EXf_00167 requirement

In case of Client/Server-Communication on the server side, if the return value ret equals to E_SAFETY_*_ERR, the value shall be overwritten to E_ E2E_HARD_SAFETY_ERR .

SWS_E2EXf_00168 requirement

{DRAFT} If DataTransformationStatusForwarding is set to transformerStatusForwarding and PXX is P01, P02, P04, P05, P06, P07, P08, P11, P22 or P44 the function E2EXf_<transformerId>() shall invoke E2E_PXXForward(), passing to that function the appropriate Config and State structures (see [SWS_ E2EXf_00125] and [SWS_E2EXf_00126]) that are associated with <transformerId>, as well as buffer and bufferLength (only for P04, P05, P06, P07, P08, P11, P22 and P44) that were updated in above requirements SWS_E2EXf_00108, SWS_E2EXf_00109, SWS_E2EXf_00115, SWS_E2EXf_00111. In addition, the E2E status shall be passed on to the E2E_PXXForward() func- tion based on the parameter forwardedCode provided by the RTE. This param- eter is associated with the optional IN parameter forwardedCode from Rte_Write (SWS_Rte_01071), Rte_Send (SWS_Rte_01072), Rte_IWrite (SWS_Rte_03744) and Rte_IWriteRef (SWS_Rte_05509). The forwardedCode must be mapped to the match- ing E2E status (see Table 7.1).

SWS_E2EXf_00169 requirement

If disableEndToEndStateMachine is to TRUE, • The high nibble of the return of the function E2EXf_Inv_<transformerId> shall be set to 0x6. • The low nibble of the return of the function E2EXf_Inv_<transformerId> shall be set to the low nibble of the profile-independent check status of type E2E_PCheck StatusType.

SWS_E2EXf_00170 requirement

If E2EXf_<transformerId> is used in a Client-Server Commu- nication on the client-side and Profile is P02 or P22, state->Counter shall be stored to as requestCounter to be accessed by the E2EXf_Inv_<transformerId> for checking the response.

SWS_E2EXf_00171 requirement

If E2EXf_<transformerId> is used in a Client-Server Commu- nication on the client-side and Profile is P01, P04, P05, P06, P07, P08, P11, P44, P04m, P07m, P08m, P44m state->Counter -1 shall be stored as requestCounter to be accessed by the E2EXf_Inv_<transformerId> for checking the response.

SWS_E2EXf_00172 requirement

In case of Client/Server Communication on the client side and Profile is P01 or P02, state->LastValidCounter of E2EXf_Inv_<transformer_Id> shall be set to the requestCounter-1.

SWS_E2EXf_00173 requirement

In case of Client/Server Communication on the client side and Profile is P04, P05, P06, P07, P08, P11, P22 or P44, P04m, P07m, P08m, P44m state->Counter of E2EXf_Inv_<transformerId> shall be set to the requestCounter-1.

SWS_E2EXf_00175 requirement

In case of Client/Server Communication on the client side, if the E2E_PXXCheck function returns a value different from E2E_P_OK, the status shall be set to E2E_P_ERR.

SWS_E2EXf_00176 requirement

The generated configuration object of type E2E_P44Config Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

SWS_E2EXf_00177 requirement

The generated configuration object of type E2E_P08Config Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

SWS_E2EXf_00178 requirement

The generated configuration object of type E2E_P04mConfig Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

SWS_E2EXf_00179 requirement

The generated configuration object of type E2E_P07mConfig Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

SWS_E2EXf_00180 requirement

For profiles P04m, P07m, P08m and P44m both the in-place and the out-of-place E2EXf_<transformerId> shall perform the following additional pre- condition checks, without continuing further processing: 1. extractProtocolHeaderFields == NULL 2. csTransactionHandle == NULL. If any of above conditions is TRUE, then the function shall return E_SAFETY_HARD_ RUNTIMEERROR.

SWS_E2EXf_00181 requirement

For profiles P04m, P07m, P08m and P44m the in-place E2EXf_<transformerId> on the client-side shall call the extractProtocolHeaderFields() function passing the buffer, the bufferLength, the address of local messageType vari- able, and the address of a local messageResult variable as parameters.

SWS_E2EXf_00182 requirement

For profiles P04m, P07m, P08m and P44m the out-of-place E2EXf_<transformerId> on the client-side shall call the extractProtocolHeaderFields() function passing the inputBuffer, the inputBufferLength, the address of a local variable named messageType, and the address of a local variable named messageResult as parameters.

SWS_E2EXf_00183 requirement

If extractProtocolHeaderFields() returns something different from E_OK, E2EXf_<transformerId> shall return E_SAFETY_HARD_RUNTIMEER- ROR.

SWS_E2EXf_00184 requirement

For profiles P04m, P07m, P08m and P44m both the in-place and the out-of-place E2EXf_<transformerId> on the client-side shall set a local variable sourceID to the sourceID stored in the configuration (see SWS_E2EXf_00126).

SWS_E2EXf_00185 requirement

For profiles P04m, P07m, P08m and P44m the in-place E2EXf_<transformerId> on the server-side shall call the extractProtocolHeaderFields() function passing the buffer, the bufferLength, the address of local messageType vari- able, and the address of a local messageResult variable as parameters.

SWS_E2EXf_00186 requirement

For profiles P04m, P07m, P08m and P44m the out-of-place E2EXf_<transformerId> on the server-side shall call the extractProtocolHeaderFields() function passing the inputBuffer, the inputBufferLength, the address of local message Type variable, and the address of a local messageResult variable as parameters.

SWS_E2EXf_00187 requirement

If extractProtocolHeaderFields() returns something different from E_OK, E2EXf_<transformerId> shall return E_SAFETY_HARD_RUNTIMEER- ROR.

SWS_E2EXf_00188 requirement

For profiles P04m, P07m, P08m and P44m both the in-place and the out-of-place E2EXf_<transformerId> on the server-side shall set a local vari- able sourceID to the value of the e2eSourceId element of the csTransactionHandle.

SWS_E2EXf_00189 requirement

For profiles P04m, P07m, P08m and P44m both the in-place and the out-of-place E2EXf_<transformerId> on the server-side shall set a local vari- able named requestCounter to the value of the e2eCounter element of the csTransac- tionHandle.

SWS_E2EXf_00190 requirement

If DataTransformationStatusForwarding is set to noTrans- formerStatusForwarding and PXX = P04m, P07m, P08m or P44m the function E2EXf_<transformerId>() shall invoke E2E_PXXProtect(), passing to that function: • the appropriate Config structure (see [SWS_E2EXf_00125]), • the appropriate State structure (see [SWS_E2EXf_00126]), • the local variables sourceID, messageType, and messageResult • buffer + EndToEndTransformationDescription.upperHeaderBitsToShift • bufferLength - EndToEndTransformationDescription.upperHeaderBitsToShift Hereby buffer and bufferLength were updated according to the above re- quirements SWS_E2EXf_00108, SWS_E2EXf_00109, SWS_E2EXf_00115, SWS_ E2EXf_00111.

SWS_E2EXf_00191 requirement

If DataTransformationStatusForwarding is set to transformer StatusForwarding and PXX = P04m, P07m, P08m or P44m: The function E2EXf_<transformerId>() shall invoke E2E_PXXForward(), passing to that function: • the appropriate Config structure (see [SWS_E2EXf_00125]), • the appropriate State structure (see [SWS_E2EXf_00126]), • the local variables sourceID, messageType, and messageResult • buffer + EndToEndTransformationDescription.upperHeaderBitsToShift • bufferLength - EndToEndTransformationDescription.upperHeaderBitsToShift Hereby buffer and bufferLength were updated according to the above re- quirements SWS_E2EXf_00108, SWS_E2EXf_00109, SWS_E2EXf_00115, SWS_ E2EXf_00111.

SWS_E2EXf_00192 requirement

For profiles P04m, P07m, P08m and P44m both the in-place and the out-of-place E2EXf_Inv_<transformerId> shall perform the following additional precondition checks, without continuing further processing: 1. extractProtocolHeaderFields == NULL 2. csTransactionHandle == NULL. If any of above conditions is TRUE, then the function shall return E_SAFETY_HARD_ RUNTIMEERROR.

SWS_E2EXf_00193 requirement

For profiles P04m, P07m, P08m and P44m the in-place E2EXf_Inv_<transformerId> on the client-side shall call the extractProtocolHeader Fields() function passing the buffer, the bufferLength, the address of local message Type variable, and the address of a local messageResult variable as parameters.

SWS_E2EXf_00194 requirement

For profiles P04m, P07m, P08m and P44m the out-of-place E2EXf_Inv_<transformerId> on the client-side shall call the extractProtocolHeader Fields() function passing the inputBuffer, the inputBufferLength, the address of a lo- cal variable named messageType, and the address of a local variable named message Result as parameters.

SWS_E2EXf_00196 requirement

For profiles P04m, P07m, P08m and P44m both the in- place and the out-of-place E2EXf_Inv_<transformerId> on the client-side shall set a local variable sourceID to the sourceID stored in the configuration (see SWS_ E2EXf_00126).

SWS_E2EXf_00197 requirement

For profiles P04m, P07m, P08m and P44m the in-place E2EXf_Inv_<transformerId> on the server-side shall call the extractProtocolHeader Fields() function passing the buffer, the bufferLength, the address of local message Type variable, and the address of a local messageResult variable as parameters.

SWS_E2EXf_00198 requirement

For profiles P04m, P07m, P08m and P44m the out-of-place E2EXf_Inv_<transformerId> on the server-side shall call the extractProtocolHeader Fields() function passing the inputBuffer, the inputBufferLength, the address of local messageType variable, and the address of a local messageResult variable as param- eters.

SWS_E2EXf_00199 requirement

If extractProtocolHeaderFields() returns something differ- ent from E_OK, E2EXf_Inv_<transformerId> shall return E_SAFETY_HARD_RUN- TIMEERROR.

SWS_E2EXf_00200 requirement

For PXX = P04m, P07m, P08m and P44m: the function E2EXf_ Inv_<transformerId> on the client-side shall invoke E2E_PXXSourceCheck(), passing to that function: • config, • state, • the local variables messageType, messageResult, and the local variable source ID • data length: inputBufferLength - EndToEndTransformationDescription.upper HeaderBitsToShift • pointer to data: – inputBuffer + EndToEndTransformationDescription.upperHeaderBitsToShift (out-of-place version) or – buffer + EndToEndTransformationDescription.upperHeaderBitsToShift (in- place version).

SWS_E2EXf_00201 requirement

For PXX = P04m, P07m, P08m and P44m: the function E2EXf_ Inv_<transformerId> on the server-side shall invoke E2E_PXXSinkCheck(), passing to that function: • config, • state, • the local variables messageType, messageResult, and the address of the local variable sourceID • data length: inputBufferLength - EndToEndTransformationDescription.upper HeaderBitsToShift • pointer to data: – inputBuffer + EndToEndTransformationDescription.upperHeaderBitsToShift (out-of-place version) or – buffer + EndToEndTransformationDescription.upperHeaderBitsToShift (in- place version).

SWS_E2EXf_00202 requirement

For profiles P04m, P07m, P08m and P44m both the in-place and the out-of-place E2EXf_Inv_<transformerId> on the server-side shall set the e2e SourceId element of the csTransactionHandle to the value of the local variable source ID.

SWS_E2EXf_00203 requirement

For profiles P04m, P07m, P08m and P44m both the in-place and the out-of-place E2EXf_Inv_<transformerId> on the server-side shall set the e2e Counter element of the csTransactionHandle to the value of the local variable received RequestCounter.

SWS_E2EXf_00204 requirement

The generated configuration object of type E2E_P08mConfig Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

SWS_E2EXf_00205 requirement

The generated configuration object of type E2E_P44mConfig Type shall be initialized according to the following (one-to-one mapping): • DataID = EndToEndTransformationISignalProps.dataID • MinDataLength = EndToEndTransformationISignalProps.minDataLength • MaxDataLength = EndToEndTransformationISignalProps.maxDataLength • Offset = EndToEndTransformationDescription.offset • MaxDeltaCounter = EndToEndTransformationComSpecProps.maxDeltaCounter or EndToEndTransformationDescription.maxDeltaCounter

SWS_E2EXf_00206 requirement

In case of Client/Server Communication on the client side and Profile is P01 or P02, the receivedRequestCounter shall be set to state- >LastValidCounter of E2EXf_Inv_<transformerId>.

SWS_E2EXf_00207 requirement

In case of Client/Server Communication on the client side and Profile is P04, P05, P06, P07, P08, P11, P22, P44, P04m, P07m, P08m or P44m the receivedRequestCounter shall be set to state->Counter of E2EXf_Inv_<transformerId>.

SWS_E2EXf_00208 requirement

The function E2EXf_MapCodeToStatus shall return the values depending on the value of forwardedCode:

SWS_E2EXf_NA_00001 requirement

These requirements are not applicable to this specifica- tion.