IPDU Multiplexer (IpduM)
AUTOSAR Classic Communication Services-Modul IPDU Multiplexer (IpduM, Spezifikation: AUTOSAR_CP_SWS_IPDUMultiplexer.pdf, AUTOSAR_SWS_IPDUM.pdf, AUTOSAR_SWS_IPDUMultiplexer.pdf).
Funktionen — Übersicht
void IpduM_Init (const IpduM_ConfigType* config);Initializes the I-PDU Multiplexer.void IpduM_GetVersionInfo (Std_VersionInfoType* versioninfo);Service returns the version information of this module.void IpduM_RxIndication (PduIdType RxPduId, const PduInfoType* PduInfoPtr);Indication of a received PDU from a lower layer communication interface module.Std_ReturnType IpduM_Transmit (PduIdType TxPduId, const PduInfoType* PduInfoPtr);Requests transmission of a PDU.void IpduM_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.Std_ReturnType IpduM_TriggerTransmit (PduIdType TxPduId, PduInfoType* PduInfoPtr);Within this API, the upper layer module (called module) shall check whether the available data fits into the buffer size...void IpduM_MainFunctionRx (void);This function performs the processing of the reception activities that are not directly handled within the calls from PduR.void IpduM_MainFunctionTx (void);This function performs the processing of the transmission activities that are not directly handled within the calls from PduR.
Typen — Übersicht
struct IpduM_ConfigTypeThis is the type of the data structure containing the initialization data for the I-PDU multiplexer.
Anforderungen — Übersicht
SWS_IpduM_00011The number of values used of the selector field, i.SWS_IpduM_00015For a multiplexed I-PDU IpduM shall merge the corresponding two COM I-PDUs representing the associated static part and the...SWS_IpduM_00017The function IpduM_Transmit shall assemble the mul- tiplexed I-PDU, using the related static and dynamic part, and transmit it...SWS_IpduM_00021The IpduM module shall be configurable to send a transmission request for the new multiplexed I-PDU to the PDU Router because...SWS_IpduM_00022If the IpduM receives a TxConfirmation for a specific IpduM I-PDU, it shall translate this confirmation into the corresponding...SWS_IpduM_00026API servi ce called with wrong parameter: error code: IPDUM_E_PARAM value [hex]: 0x10SWS_IpduM_00028If IpduMDevErrorDetect is configured to TRUE, all IpduM APIs shall check their input parameters and report detected errors to...SWS_IpduM_00033The function IpduM_Init shall initialize all module-related global variables.SWS_IpduM_00041If there is a static part configured in a multiplexed SDU received from the PDU Router, the function IpduM_RxIndication...SWS_IpduM_00042When a multiplexed I-PDU is received from the PDU Router the function IpduM_RxIndication uses the incoming I-PDU ID and the...SWS_IpduM_00067The IpduM shall initialize its internal transmit buffers with the configured pattern IpduMIPduUnusedAreasDefault.SWS_IpduM_00068The initial signal values of the initial dynamic part shall be set according to initial values of the referenced COM I-PDU (...SWS_IpduM_00084The behavior of the IpduM is unspecified until a correct call to IpduM_Init is made.SWS_IpduM_00086The function IpduM_RxIndication shall be callable in inter- rupt context, e.SWS_IpduM_00087The function IpduM_TxConfirmation shall be callable in in- terrupt context, e.SWS_IpduM_00088The function IpduM_TxConfirmation shall translate the confirmation received from the PDU Router into confirmations for the...SWS_IpduM_00089The function IpduM_TriggerTransmit shall be callable in interrupt context.SWS_IpduM_00090Within the function IpduM_TriggerTransmit , the IpduM shall copy the contents of its I-PDU transmit buffer to the PDU buffer...SWS_IpduM_00091The IpduM shall take care about the data consistency during providing the data.SWS_IpduM_00097The IpduM shall be implemented so that no other modules depend on it and that it is be possible to build a system without the...SWS_IpduM_00098The IpduM module shall not set the selector field.SWS_IpduM_00102Module Header File Imported Type ComStack_Types.SWS_IpduM_00104Det_ReportRuntimeError Det.SWS_IpduM_00105Det_ReportError Det.SWS_IpduM_00107The IpduM shall not directly access the AUTOSAR OS.SWS_IpduM_00140It shall be allowed to optimize the Rx- and Tx-Confirmation path from the IpduM module via the PDU Router module to the COM...SWS_IpduM_00143The initial signal values of the static part shall be set ac- cording to the intial values of the referenced COM I-PDU (...SWS_IpduM_00152As long as no transmission confirmation for the IpduM I-PDU is received (regardless of the result), the function...SWS_IpduM_00153API service (except IpduM_MainFunctionTx, IpduM_MainFunctionRx and IpduM_GetVersionInfo) used without module initializ a- tion...SWS_IpduM_00162NULL pointer checking error code: IPDUM_E_PARAM_POINTER value [hex]: 0x11SWS_IpduM_00168In case the transmission of a multiplexed I-PDU is triggered by the update of one part and IpduMJitUpdate is configured to...SWS_IpduM_00169In case the contents of a multiplexed I-PDU is requested via IpduM_TriggerTransmit , the IpduM module shall update all parts...SWS_IpduM_00171In case the transmission of a multiplexed I-PDU is triggered by the update of one part and IpduMJitUpdate is configured to...SWS_IpduM_00172In case the contents of a multiplexed I-PDU is requested via IpduM_TriggerTransmit and IpduMJitUpdate is configured to true...SWS_IpduM_00173The IpduM shall respect the IpduMByteOrder when interpreting the selector field value.SWS_IpduM_00174Invalid configuration set selection error code: IPDUM_E_I NIT_FAILED value [hex]: 0x21SWS_IpduM_00175{DRAFT} Inside a dynamic Container PDU IpduM shall place the header of a contained I-PDU in front of the contained I-PDU.SWS_IpduM_00177Each I-PDU header shall consist of ID field and length field in the byte order determined by IpduMHeaderByteOrder.SWS_IpduM_00178{DRAFT} Placing of headers and payloads of contained I-PDUs inside a dynamic Container PDU shall be contiguous without any gap.SWS_IpduM_00179When a contained I-PDU with IpduMContainedTxPduCol- lectionSemantics set to IPDUM_COLLECT_QUEUED (see [ECUC_IpduM_00198]) is...SWS_IpduM_00180When assigning a transmission request of a contained I-PDU to a Container PDU that has not been triggered yet, and if the...SWS_IpduM_00181When assigning a transmission request of a contained I-PDU to a Container PDU which has not been triggered yet, and if...SWS_IpduM_00182If a contained I-PDU has IpduMContainedTxPduCollec- tionSemantics set to IPDUM_COLLECT_QUEUED (see [ECUC_IpduM_00198]), the...SWS_IpduM_00183If a contained I-PDU has IpduMContainedTxPduCollec- tionSemantics set to IPDUM_COLLECT_QUEUED (see [ECUC_IpduM_00198]), the...SWS_IpduM_00184When assigning the first transmission request of a contained I-PDU to a Container PDU and either IpduMContainerTxSendTimeout...SWS_IpduM_00185When a transmission request of a contained I-PDU is assigned to a Container PDU, the transmission timer of the Container PDU...SWS_IpduM_00186When the transmission timer of the Container PDU defined by [SWS_IpduM_00184] has elapsed, the Container PDU shall be triggered.SWS_IpduM_00187If a Container PDU is assembled (see [SWS_IpduM_00188] and [SWS_IpduM_00256]), IpduM shall calculate the overall size of the...SWS_IpduM_00188When a Container PDU is triggered and IpduMContain- erTxTriggerMode is set to IPDUM_DIRECT , IpduM shall assemble the...SWS_IpduM_00189The IpduM shall wait for the transmission confirmation (regard- less of the result) of a Container PDU before invoking...SWS_IpduM_00190In case the transmission confirmation for that Container PDU was received, the IpduM shall invoke PduR_IpduMTransmit for the...SWS_IpduM_00191In case IpduMContainerTxTriggerMode is set to IP- DUM_DIRECT, and PduR_IpduMTransmit returns E_OK for that Container PDU, Ip-...SWS_IpduM_00192If a Container PDU has IpduMContainerTxTriggerMode set to IPDUM_DIRECT and this Container PDU has been assembled and is passed...SWS_IpduM_00193If IpduMContainerTxTriggerMode is set to IPDUM_TRIG- GERTRANSMIT , IpduM shall keep and provide buffered data until it is...SWS_IpduM_00194If IpduMContainerTxTriggerMode is set to IPDUM_TRIGGER- TRANSMIT , IpduM_TriggerTransmit shall copy the oldest Container PDU...SWS_IpduM_00195If PduR_IpduMTransmit has returned E_NOT_OK , the same transmit request shall be repeated during the next call to...SWS_IpduM_00196If the IpduM receives a transmission confirmation for a specific Container PDU, it shall translate this confirmation into the...SWS_IpduM_00199If creating a new instance of a Container PDU would exceed IpduMContainerQueueSize the oldest instance shall be discarded.SWS_IpduM_00200If IpduMContainerTxTriggerMode is set to IPDUM_TRIG- GERTRANSMIT , a Container PDU instance shall be dropped from the queue if...SWS_IpduM_00201When assigning a transmission request of a contained I-PDU to a Container PDU with the parameter...SWS_IpduM_00202If IpduMContainerPduProcessing is set to IPDUM_PRO- CESSING_IMMEDIATE , the processing of the received Container PDUs shall be...SWS_IpduM_00203If by a call of IpduM_RxIndication a Container PDU is re- ceived, the contained I-PDUs shall be extracted.SWS_IpduM_00204For each contained I-PDU of a received Container PDU where the IpduMContainerRxPdu has IpduMContainerRxAcceptContainedPdu =...SWS_IpduM_00205If for the received Container PDU the configuration parame- ter IpduMContainerRxAcceptContainedPdu is set to...SWS_IpduM_00206For a received Container PDU with IpduMContainerRxAc- ceptContainedPdu =IPDUM_ACCEPT_ALL, IpduM shall expect and match only...SWS_IpduM_00207If a contained I-PDU of a received IpduMContainerRxPdu with IpduMContainerRxAcceptContainedPdu = IPDUM_ACCEPT_ALL can not be...SWS_IpduM_00208For each contained I-PDU the length given in its header shall be used as the length of the corresponding I-PDU.SWS_IpduM_00209Each contained I-PDU shall be notified to PduR via PduR_IpduMRxIndication.SWS_IpduM_00210When processing a received Container PDU and detecting a header containing the ID 0 the processing for this Container PDU...SWS_IpduM_00211If a Container PDU is received and IpduMContainer- PduProcessing is set to IPDUM_PROCESSING_DEFERRED , the Container PDU shall...SWS_IpduM_00212If receiving a new instance of a Container PDU would exceed IpduMContainerQueueSize the oldest instance shall be discarded and...SWS_IpduM_00213When processing a received Container PDU and detecting a header where the payload length exceeds the remaining bytes of the...SWS_IpduM_00214If the remaining bytes in a Container PDU are less than the configured IpduMContainerHeaderSize ([ECUC_IpduM_00183]) the...SWS_IpduM_00215Erroneous header detected error code: IPDUM_E_HEADER value [hex]: 0x30SWS_IpduM_00216Container Queue ove r flow error code: IPDUM_E_QUEUEOVFL value [hex]: 0x31SWS_IpduM_00217When a Container PDU is received from the PDU Router, the function IpduM_RxIndication forwards the contained I-PDUs via the...SWS_IpduM_00219IpduM shall reject configurations in which the transmit proper- ties (see [ECUC_IpduM_00198]:...SWS_IpduM_00220For contained I-PDUs, with IpduMContainedTxPduCol- lectionSemantics set to IPDUM_COLLECT_LAST_IS_BEST , IpduM shall use...SWS_IpduM_00221When a transmission request of a contained I-PDU is assigned to a Container PDU, the contained I-PDU has...SWS_IpduM_00222If a contained I-PDU has IpduMContainedTxPduCollec- tionSemantics IPDUM_COLLECT_LAST_IS_BEST , the Container PDU is assem-...SWS_IpduM_00223In case the IpduM shall update the dynamic part just-in-time, the latest dynamic part sent by the upper layer shall be updated...SWS_IpduM_00224All static and dynamic parts shall be configured to allocate ex- actly the same bits in the multiplexed and the de-multiplexed...SWS_IpduM_00225If IpduMTxTriggerMode is configured to a different value than NONE, the IpduM shall use the MetaData of the triggering part...SWS_IpduM_00226If IpduMTxTriggerMode is configured to NONE, the IpduM shall use the MetaData of the last updated part for sending of the...SWS_IpduM_00227On receiver side the IpduM shall forward the received Meta- Data along with all demultiplexed parts.SWS_IpduM_00228In case a Container PDU supports MetaData, the IpduM shall use the MetaData last collected from the contained I-PDUs when...SWS_IpduM_00229In case the IpduM receives a Container PDU with MetaData, the IpduM shall forward the MetaData of the Container PDU along with...SWS_IpduM_00230IpduM shall reject configurations in which contained I-PDU supporting MetaData have a different MetaDataType from the...SWS_IpduM_00231If a contained I-PDU has IpduMContainedTxPduCollec- tionSemantics set to IPDUM_COLLECT_LAST_IS_BEST , the transmission request...SWS_IpduM_00232{DRAFT} If the IpduMContainerHeaderSize is set to IP- DUM_HEADERTYPE_NONE , the IpduM module shall statically place the...SWS_IpduM_00233{DRAFT} In case a Static Container has a configured Ipdu- MUnusedAreasDefault , the IpduM shall ensure that all not updated...SWS_IpduM_00234{DRAFT} For Container PDUs with static container layout and IpduMContainerTxTriggerMode is set to IPDUM_DIRECT , the IpduM...SWS_IpduM_00235{DRAFT} In case a contained I-PDU has a configured IpduMUp- dateBitPosition, the IpduM shall ensure that the update bit of...SWS_IpduM_00236{DRAFT} In case a received contained I-PDU has a configured update bit, the IpduM module shall only process and indicate it to...SWS_IpduM_00237{DRAFT} When processing a received Container PDU with Ip- duMContainerHeaderSize set to IPDUM_HEADERTYPE_NONE , the IpduM...SWS_IpduM_00238{DRAFT} For a Container PDU with IpduMContainerHead- erSize set to IPDUM_HEADERTYPE_NONE , all contained I-PDUs shall have...SWS_IpduM_00240{DRAFT} Contained I-PDUs with a configured IpduMPduUp- dateBitPosition shall only be assigned to Container PDUs with...SWS_IpduM_00241{DRAFT} For a Container PDU with IpduMContainerHead- erSize set to IPDUM_HEADERTYPE_NONE , all contained I-PDUs shall have a...SWS_IpduM_00242{DRAFT} For a Container PDU with IpduMContainerHead- erSize set to IPDUM_HEADERTYPE_NONE and IpduMUnusedAreasDefault not set,...SWS_IpduM_00245{DRAFT} All IpduMPduUpdateBitPositions shall be configured to their own not otherwise occupied bit position.SWS_IpduM_00246{DRAFT} Only the last contained IPdu (according to IpduM- ContainedPduOffset ) of a ContainerIPdu with static container layout (i.SWS_IpduM_00247Partly or erroneous container received error code: IPDUM_E_CONTAINER value [hex]: 0x32SWS_IpduM_00248All contained I-Pdus with Collection Semantic IPDUM_- COLLECT_LAST_IS_BEST and IpduMContainedTxPduPriorityHandling is set to...SWS_IpduM_00249When transmission requests of contained I-PDUs are as- signed to a Container PDU, the contained I-PDUs with IpduMContainedTxP-...SWS_IpduM_00250For an IpduMContainerRxPdu with IpduMContainerRxAc- ceptContainedPdu = IPDUM_ACCEPT_CONFIGURED and IpduMContainerHead- erSize...SWS_IpduM_00251All IpduMContainedRxPdus with no IpduMContainedRxInCon- tainerPduRef and a defined IpduMContainedRxPduLongHeaderId or IpduM-...SWS_IpduM_00252{DRAFT} IpduM Container Pdus shall be processed within the MainFunction, which is referenced by the Container Pdu...SWS_IpduM_00253When sending a Static Container PDU, the IPduM shall reduce the size of the Container PDU by omitting not updated data behind...SWS_IpduM_00254When a Container PDU is triggered and IpduMContain- erTxTriggerMode is set to IPDUM_TRIGGERTRANSMIT, IpduM shall invoke...SWS_IpduM_00256When a Container PDU has been triggered and IpduMCon- tainerTxTriggerMode is set to IPDUM_TRIGGERTRANSMIT , IpduM shall...SWS_IpduM_00257If a Container PDU has IpduMContainerTxTriggerMode set to IPDUM_TRIGGERTRANSMIT and this Container PDU has been assembled in...SWS_IpduM_00258If a container PDU is assembled and the contained PDUs have IpduMContainedTxPduCollectionSemantics set to IPDUM_COLLECT_LAST_-...SWS_IpduM_00259If a container PDU is assembled, the contained PDUs have IpduMContainedTxPduCollectionSemantics set to IPDUM_COLLECT_LAST_-...SWS_IpduM_00260IpduM shall reject configurations in which contained I-PDUs have IpduMContainedTxPduCollectionSemantics set to IPDUM_COLLECT_-...SWS_IpduM_00261If a PDU Container is queued for transmission, and IpduM- ContainerQueueSize is not set (or set to 1), IpduM shall call...SWS_IpduM_00262If a PDU Container is queued for transmission, and IpduM- ContainerQueueSize is > 1, IpduM shall call store the Container...SWS_IpduM_00265[SWS_IpduM_00265] Handling of discarded container PDUs Upstream requirements: SRS_IpduM_02820 ⌈If an instance of a container...SWS_IpduM_91003Type of error Related error code Error value API service called with wrong parameter IPDUM_E_PARAM 0x10 NULL pointer checking...SWS_IpduM_91004Type of error Related error code Error value Erroneous header detected IPDUM_E_HEADER 0x30 Container Queue overflow...SWS_IpduM_CONSTR_00263The IpduMContainedTxPduPriorityHan- dling shall be set to TRUE , if at least one IpduMContainerTxPdu is referenced by at least...SWS_IpduM_NAThese requirements are not applicable to this specification.
Funktionen & Typen — Detailansicht
फ़ंक्शन IpduM_Init [SWS_IpduM_00032] 📄 PDF
void IpduM_Init(const IpduM_ConfigType* config);
Initializes the I-PDU Multiplexer. In configurations, in which IpduM is assigned to more than one partition (i.e. IpduM_Main Functions are mapped to partitions), IpduM may provide one init function per partition.
फ़ंक्शन IpduM_GetVersionInfo [SWS_IpduM_00037] 📄 PDF
void IpduM_GetVersionInfo(Std_VersionInfoType* versioninfo);
Service returns the version information of this module.
फ़ंक्शन IpduM_RxIndication [SWS_IpduM_00040] 📄 PDF
void IpduM_RxIndication(PduIdType RxPduId, const PduInfoType* PduInfoPtr);
Indication of a received PDU from a lower layer communication interface module.
फ़ंक्शन IpduM_Transmit [SWS_IpduM_00043] 📄 PDF
Std_ReturnType IpduM_Transmit(PduIdType TxPduId, const PduInfoType* PduInfoPtr);
Requests transmission of a PDU.
फ़ंक्शन IpduM_TxConfirmation [SWS_IpduM_00044] 📄 PDF
void IpduM_TxConfirmation(PduIdType TxPduId, Std_ReturnType result);
The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.
फ़ंक्शन IpduM_TriggerTransmit [SWS_IpduM_00060] 📄 PDF
Std_ReturnType IpduM_TriggerTransmit(PduIdType TxPduId, PduInfoType* PduInfoPtr);
Within this API, the upper layer module (called module) shall check whether the available data fits into the buffer size reported by PduInfoPtr->SduLength. If it fits, it shall copy its data into the buffer provided by PduInfoPtr->SduDataPtr and update the length of the actual copied data in PduInfoPtr->SduLength. If not, it returns E_NOT_OK without changing PduInfoPtr.
फ़ंक्शन IpduM_MainFunctionRx [SWS_IpduM_91001] 📄 PDF
void IpduM_MainFunctionRx(void);
This function performs the processing of the reception activities that are not directly handled within the calls from PduR. Per configured IpduMMainFunctionRx instance one IpduM_MainFunctionRx_<shortName> shall be implemented. Hereby <shortName> is the short name of the IpduMMainFunctionRx configuration container in the ECU configuration.
फ़ंक्शन IpduM_MainFunctionTx [SWS_IpduM_91002] 📄 PDF
void IpduM_MainFunctionTx(void);
This function performs the processing of the transmission activities that are not directly handled within the calls from PduR. Per configured IpduMMainFunctionTx instance one IpduM_MainFunctionTx_<shortName> shall be implemented. Hereby <shortName> is the short name of the IpduMMainFunctionTx configuration container in the ECU configuration.
टाइप IpduM_ConfigType [SWS_IpduM_00159] 📄 PDF
This is the type of the data structure containing the initialization data for the I-PDU multiplexer.
requirement SWS_IpduM_00011 [SWS_IpduM_00011] 📄 PDF
The number of values used of the selector field, i.e. values used to distinguish between different I-PDU layouts, does not have to be the whole range of possible values.
requirement SWS_IpduM_00015 [SWS_IpduM_00015] 📄 PDF
For a multiplexed I-PDU IpduM shall merge the corresponding two COM I-PDUs representing the associated static part and the last received dynamic part into one single IpduM I-PDU with a new unique I-PDU ID. IpduM shall send out this new IpduM I-PDU to the PDU Router module.
requirement SWS_IpduM_00017 [SWS_IpduM_00017] 📄 PDF
The function IpduM_Transmit shall assemble the mul- tiplexed I-PDU, using the related static and dynamic part, and transmit it ac- cording to the trigger conditions/ modes as defined in [SWS_IpduM_00021] and [ECUC_IpduM_00125].
requirement SWS_IpduM_00021 [SWS_IpduM_00021] 📄 PDF
The IpduM module shall be configurable to send a transmission request for the new multiplexed I-PDU to the PDU Router because of the following trigger conditions/modes: • receiving a static part • receiving a dynamic part • receiving a static or a dynamic part • does not trigger transmission because of receiving anything of this I-PDU ( Ip- duMTxTriggerMode None) in case of TriggerTransmit For configuration, see [ECUC_IpduM_00052].
requirement SWS_IpduM_00022 [SWS_IpduM_00022] 📄 PDF
If the IpduM receives a TxConfirmation for a specific IpduM I-PDU, it shall translate this confirmation into the corresponding confirmations for the COM I-PDUs, which were contained in the last sent out multiplexed IpduM I-PDU.
requirement SWS_IpduM_00026 [SWS_IpduM_00026] 📄 PDF
API servi ce called with wrong parameter: error code: IPDUM_E_PARAM value [hex]: 0x10
requirement SWS_IpduM_00028 [SWS_IpduM_00028] 📄 PDF
If IpduMDevErrorDetect is configured to TRUE, all IpduM APIs shall check their input parameters and report detected errors to [9, DET] via Det_ReportError . IPDUM_E_PARAM shall be reported for normal parameters and IPDUM_E_PARAM_POINTER for pointer parameters.
requirement SWS_IpduM_00033 [SWS_IpduM_00033] 📄 PDF
The function IpduM_Init shall initialize all module-related global variables.
requirement SWS_IpduM_00041 [SWS_IpduM_00041] 📄 PDF
If there is a static part configured in a multiplexed SDU received from the PDU Router, the function IpduM_RxIndication transforms the incoming I- PDU ID into the correct I-PDU ID for the static part's destination and then forwards the SDU via the PDU Router, see PduR_IpduMRxIndication in the [10, SWS PDU Router].
requirement SWS_IpduM_00042 [SWS_IpduM_00042] 📄 PDF
When a multiplexed I-PDU is received from the PDU Router the function IpduM_RxIndication uses the incoming I-PDU ID and the selector field to find out the correct I-PDU ID for the dynamic part's destination and then forwards the I-PDU via the PDU Router, see PduR_IpduMRxIndication in the [10, SWS PDU Router].
requirement SWS_IpduM_00067 [SWS_IpduM_00067] 📄 PDF
The IpduM shall initialize its internal transmit buffers with the configured pattern IpduMIPduUnusedAreasDefault .
requirement SWS_IpduM_00068 [SWS_IpduM_00068] 📄 PDF
The initial signal values of the initial dynamic part shall be set according to initial values of the referenced COM I-PDU ( IpduMInitialDy- namicPart -> IpduMTxDynamicPart -> IpduMTxDynamicPduRef ).
requirement SWS_IpduM_00084 [SWS_IpduM_00084] 📄 PDF
The behavior of the IpduM is unspecified until a correct call to IpduM_Init is made.
requirement SWS_IpduM_00086 [SWS_IpduM_00086] 📄 PDF
The function IpduM_RxIndication shall be callable in inter- rupt context, e.g. from receive interrupt.
requirement SWS_IpduM_00087 [SWS_IpduM_00087] 📄 PDF
The function IpduM_TxConfirmation shall be callable in in- terrupt context, e.g. from a transmit interrupt.
requirement SWS_IpduM_00088 [SWS_IpduM_00088] 📄 PDF
The function IpduM_TxConfirmation shall translate the confirmation received from the PDU Router into confirmations for the I-PDUs which where contained in the sent multiplexed I-PDU or Container PDU.
requirement SWS_IpduM_00089 [SWS_IpduM_00089] 📄 PDF
The function IpduM_TriggerTransmit shall be callable in interrupt context.
requirement SWS_IpduM_00090 [SWS_IpduM_00090] 📄 PDF
Within the function IpduM_TriggerTransmit , the IpduM shall copy the contents of its I-PDU transmit buffer to the PDU buffer given by PduIn- foPtr ->SduDataPtr and update PduInfoPtr ->SduLength with length of the copied data accordingly.
requirement SWS_IpduM_00091 [SWS_IpduM_00091] 📄 PDF
The IpduM shall take care about the data consistency during providing the data.
requirement SWS_IpduM_00097 [SWS_IpduM_00097] 📄 PDF
The IpduM shall be implemented so that no other modules depend on it and that it is be possible to build a system without the IpduM module if it is not needed.
requirement SWS_IpduM_00098 [SWS_IpduM_00098] 📄 PDF
The IpduM module shall not set the selector field.
requirement SWS_IpduM_00102 [SWS_IpduM_00102] 📄 PDF
Module Header File Imported Type ComStack_Types.h PduIdType ComStack_Types.h PduInfoType ComStack_Types ComStack_Types.h PduLengthType Std_Types.h Std_ReturnType Std Std_Types.h Std_VersionInfoType
requirement SWS_IpduM_00104 [SWS_IpduM_00104] 📄 PDF
Det_ReportRuntimeError Det.h Service to report runtime errors. If a callout has been configured then this callout shall be called.
requirement SWS_IpduM_00105 [SWS_IpduM_00105] 📄 PDF
Det_ReportError Det.h Service to report development errors. PduR_IpduMRxIndication PduR_IpduM.h Indication of a received PDU from a lower layer communication interface module. PduR_IpduMTransmit PduR_IpduM.h Requests transmission of a PDU. PduR_IpduMTriggerTransmit PduR_IpduM.h Within this API, the upper layer module (called module) shall check whether the available data fits into the buffer size reported by PduInfoPtr->Sdu Length. If it fits, it shall copy its data into the buffer provided by PduInfoPtr->SduDataPtr and update the length of the actual copied data in PduInfoPtr->Sdu Length. If not, it returns E_NOT_OK without changing PduInfoPtr. PduR_IpduMTxConfirmation PduR_IpduM.h The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.
requirement SWS_IpduM_00107 [SWS_IpduM_00107] 📄 PDF
The IpduM shall not directly access the AUTOSAR OS.
requirement SWS_IpduM_00140 [SWS_IpduM_00140] 📄 PDF
It shall be allowed to optimize the Rx- and Tx-Confirmation path from the IpduM module via the PDU Router module to the COM layer to call the COM API directly from the IpduM module without including the PDU Router. This shall be indicated by setting the published parameter IpduMRxDirectComInvocation to TRUE, see [ECUC_IpduM_00142].
requirement SWS_IpduM_00143 [SWS_IpduM_00143] 📄 PDF
The initial signal values of the static part shall be set ac- cording to the intial values of the referenced COM I-PDU ( IpduMTxStaticPart -> IpduMTxStaticPduRef ).
requirement SWS_IpduM_00152 [SWS_IpduM_00152] 📄 PDF
As long as no transmission confirmation for the IpduM I-PDU is received (regardless of the result), the function IpduM_Transmit shall return E_- NOT_OK for any new transmission request from the upper layer with a COM I-PDU belonging to the same IpduM I-PDU.
requirement SWS_IpduM_00153 [SWS_IpduM_00153] 📄 PDF
API service (except IpduM_MainFunctionTx, IpduM_MainFunctionRx and IpduM_GetVersionInfo) used without module initializ a- tion error code: IPDUM_E_UNINIT value [hex]: 0x20
requirement SWS_IpduM_00162 [SWS_IpduM_00162] 📄 PDF
NULL pointer checking error code: IPDUM_E_PARAM_POINTER value [hex]: 0x11
requirement SWS_IpduM_00168 [SWS_IpduM_00168] 📄 PDF
In case the transmission of a multiplexed I-PDU is triggered by the update of one part and IpduMJitUpdate is configured to true for the second part, the IpduM module shall update the second part via PduR_IpduMTriggerTransmit before the multiplexed I-PDU is sent out via PduR_IpduMTransmit .
requirement SWS_IpduM_00169 [SWS_IpduM_00169] 📄 PDF
In case the contents of a multiplexed I-PDU is requested via IpduM_TriggerTransmit , the IpduM module shall update all parts which have Ip- duMJitUpdate configured to true before returning the contents of the multiplexed I-PDU.
requirement SWS_IpduM_00171 [SWS_IpduM_00171] 📄 PDF
In case the transmission of a multiplexed I-PDU is triggered by the update of one part and IpduMJitUpdate is configured to true for the sec- ond part, the multiplexed I-PDU shall not be send if the JIT-update request via PduR_IpduMTriggerTransmit returns E_NOT_OK .
requirement SWS_IpduM_00172 [SWS_IpduM_00172] 📄 PDF
In case the contents of a multiplexed I-PDU is requested via IpduM_TriggerTransmit and IpduMJitUpdate is configured to true for any mul- tiplexed part, IpduM_TriggerTransmit shall return E_NOT_OK if any of the JIT- update requests via PduR_IpduMTriggerTransmit return E_NOT_OK .
requirement SWS_IpduM_00173 [SWS_IpduM_00173] 📄 PDF
The IpduM shall respect the IpduMByteOrder when interpreting the selector field value.
requirement SWS_IpduM_00174 [SWS_IpduM_00174] 📄 PDF
Invalid configuration set selection error code: IPDUM_E_I NIT_FAILED value [hex]: 0x21
requirement SWS_IpduM_00175 [SWS_IpduM_00175] 📄 PDF
{DRAFT} Inside a dynamic Container PDU IpduM shall place the header of a contained I-PDU in front of the contained I-PDU.
requirement SWS_IpduM_00177 [SWS_IpduM_00177] 📄 PDF
Each I-PDU header shall consist of ID field and length field in the byte order determined by IpduMHeaderByteOrder .
requirement SWS_IpduM_00178 [SWS_IpduM_00178] 📄 PDF
{DRAFT} Placing of headers and payloads of contained I-PDUs inside a dynamic Container PDU shall be contiguous without any gap.
requirement SWS_IpduM_00179 [SWS_IpduM_00179] 📄 PDF
When a contained I-PDU with IpduMContainedTxPduCol- lectionSemantics set to IPDUM_COLLECT_QUEUED (see [ECUC_IpduM_00198]) is passed to IpduM via IpduM_Transmit , IpduM shall identify the associated Con- tainer PDU and append the contained I-PDU to its payload even if a previous instance of the contained I-PDU is already present in that Container PDU.
requirement SWS_IpduM_00180 [SWS_IpduM_00180] 📄 PDF
When assigning a transmission request of a contained I-PDU to a Container PDU that has not been triggered yet, and if the resulting payload of this Container PDU is bigger than IpduMContainerTxSizeThreshold , then the Container PDU shall be triggered.
requirement SWS_IpduM_00181 [SWS_IpduM_00181] 📄 PDF
When assigning a transmission request of a contained I-PDU to a Container PDU which has not been triggered yet, and if IpduMContainedTx- PduTrigger is set to IPDUM_TRIGGER_ALWAYS, the Container PDU shall be trig- gered immediately.
requirement SWS_IpduM_00182 [SWS_IpduM_00182] 📄 PDF
If a contained I-PDU has IpduMContainedTxPduCollec- tionSemantics set to IPDUM_COLLECT_QUEUED (see [ECUC_IpduM_00198]), the IpduMContainerTxTriggerMode is set to IPDUM_DIRECT and adding this con- tained I-PDU would exceed the maximum size of the Container I-PDU, first the Con- tainer PDU shall be triggered. The contained I-PDU shall be added to a new instance of the Container PDU.
requirement SWS_IpduM_00183 [SWS_IpduM_00183] 📄 PDF
If a contained I-PDU has IpduMContainedTxPduCollec- tionSemantics set to IPDUM_COLLECT_QUEUED (see [ECUC_IpduM_00198]), the IpduMContainerTxTriggerMode is set to IPDUM_TRIGGERTRANSMIT and adding this contained I-PDU would exceed maximum size of the Container PDU, first the Con- tainer PDU shall be queued. Then the contained I-PDU shall be added to a new in- stance of the Container PDU.
requirement SWS_IpduM_00184 [SWS_IpduM_00184] 📄 PDF
When assigning the first transmission request of a contained I-PDU to a Container PDU and either IpduMContainerTxSendTimeout of the Con- tainer PDU or IpduMContainedTxPduSendTimeout of the contained I-PDU is con- figured greater than zero, the IpduM module shall start the transmission timer of the Container PDU. The timer shall be initialized with the smaller non zero value of IpduM- ContainerTxSendTimeout and IpduMContainedTxPduSendTimeout .
requirement SWS_IpduM_00185 [SWS_IpduM_00185] 📄 PDF
When a transmission request of a contained I-PDU is assigned to a Container PDU, the transmission timer of the Container PDU shall be updated with the contained I-PDU's timeout ( IpduMContainedTxPduSendTimeout ) if it is less than the remaining time of the Container PDU.
requirement SWS_IpduM_00186 [SWS_IpduM_00186] 📄 PDF
When the transmission timer of the Container PDU defined by [SWS_IpduM_00184] has elapsed, the Container PDU shall be triggered.
requirement SWS_IpduM_00187 [SWS_IpduM_00187] 📄 PDF
If a Container PDU is assembled (see [SWS_IpduM_00188] and [SWS_IpduM_00256]), IpduM shall calculate the overall size of the Container PDU. The total size builds up by the total of all payloads of the contained I-PDUs plus the total length of the corresponding headers. The result shall be the payload size of the Container PDU.
requirement SWS_IpduM_00188 [SWS_IpduM_00188] 📄 PDF
When a Container PDU is triggered and IpduMContain- erTxTriggerMode is set to IPDUM_DIRECT , IpduM shall assemble the Container PDU and handle the transmission process with respect to the configuration for the transmission queue (please refer to [SWS_IpduM_00261] and [SWS_IpduM_00262]).
requirement SWS_IpduM_00189 [SWS_IpduM_00189] 📄 PDF
The IpduM shall wait for the transmission confirmation (regard- less of the result) of a Container PDU before invoking PduR_IpduMTransmit for the next instance of that Container PDU.
requirement SWS_IpduM_00190 [SWS_IpduM_00190] 📄 PDF
In case the transmission confirmation for that Container PDU was received, the IpduM shall invoke PduR_IpduMTransmit for the next oldest in- stance of that Container PDU during the next call to IpduM_MainFunctionTx at the latest.
requirement SWS_IpduM_00191 [SWS_IpduM_00191] 📄 PDF
In case IpduMContainerTxTriggerMode is set to IP- DUM_DIRECT, and PduR_IpduMTransmit returns E_OK for that Container PDU, Ip- duM shall remove that instance from the queue.
requirement SWS_IpduM_00192 [SWS_IpduM_00192] 📄 PDF
If a Container PDU has IpduMContainerTxTriggerMode set to IPDUM_DIRECT and this Container PDU has been assembled and is passed to PduR, the Parameter PduInfoPtr shall contain a pointer to the assembled Con- tainer PDU in SduDataPtr and the total length (according to [SWS_IpduM_00187]) in SduLength .
requirement SWS_IpduM_00193 [SWS_IpduM_00193] 📄 PDF
If IpduMContainerTxTriggerMode is set to IPDUM_TRIG- GERTRANSMIT , IpduM shall keep and provide buffered data until it is fetched by a call to IpduM_TriggerTransmit .
requirement SWS_IpduM_00194 [SWS_IpduM_00194] 📄 PDF
If IpduMContainerTxTriggerMode is set to IPDUM_TRIGGER- TRANSMIT , IpduM_TriggerTransmit shall copy the oldest Container PDU instance in the queue. If the queue is empty/non-existent, the current instance of the Container PDU is copied. If the current instance of the Container PDU is empty/non-existent as well, E_NOT_OK is returned by IpduM_TriggerTransmit .
requirement SWS_IpduM_00195 [SWS_IpduM_00195] 📄 PDF
If PduR_IpduMTransmit has returned E_NOT_OK , the same transmit request shall be repeated during the next call to IpduM_MainFunctionTx up to IpduMMaxTransmitRetries times. The instance of that Container PDU is queued in the meantime.
requirement SWS_IpduM_00196 [SWS_IpduM_00196] 📄 PDF
If the IpduM receives a transmission confirmation for a specific Container PDU, it shall translate this confirmation into the corresponding confirmations for those contained I-PDUs having IpduMContainedTxPduConfirmation set to TRUE and were contained in the last transmission of this specific Container PDU. This shall result in multiple TxConfirmations, if the same contained I-PDU was present more than once in this transmitted specific Container PDU.
requirement SWS_IpduM_00199 [SWS_IpduM_00199] 📄 PDF
If creating a new instance of a Container PDU would exceed IpduMContainerQueueSize the oldest instance shall be discarded. If IpduMCon- tainerQueueSize is not configured the local instance shall be discarded. In both cases IPDUM_E_QUEUEOVFL shall be reported to [9, DET] via Det_ReportRun- timeError .
requirement SWS_IpduM_00200 [SWS_IpduM_00200] 📄 PDF
If IpduMContainerTxTriggerMode is set to IPDUM_TRIG- GERTRANSMIT , a Container PDU instance shall be dropped from the queue if it is fetched by IpduM_TriggerTransmit .
requirement SWS_IpduM_00201 [SWS_IpduM_00201] 📄 PDF
When assigning a transmission request of a contained I-PDU to a Container PDU with the parameter IpduMContainerTxFirstContainedP- duTrigger set to TRUE, the Container PDU shall be queued for transmission.
requirement SWS_IpduM_00202 [SWS_IpduM_00202] 📄 PDF
If IpduMContainerPduProcessing is set to IPDUM_PRO- CESSING_IMMEDIATE , the processing of the received Container PDUs shall be exe- cuted in the context of IpduM_RxIndication . Otherwise, it is deferred to the next call to IpduM_MainFunctionRx . All deferred Container PDUs shall be processed in the order of their reception.
requirement SWS_IpduM_00203 [SWS_IpduM_00203] 📄 PDF
If by a call of IpduM_RxIndication a Container PDU is re- ceived, the contained I-PDUs shall be extracted.
requirement SWS_IpduM_00204 [SWS_IpduM_00204] 📄 PDF
For each contained I-PDU of a received Container PDU where the IpduMContainerRxPdu has IpduMContainerRxAcceptContainedPdu = IPDUM_ACCEPT_ALL the ID from the PDU header shall be used to identify the cor- responding contained I-PDU: • If the received Container PDU uses long or short header ( IpduMContainer- HeaderSize = IPDUM_HEADERTYPE_LONG or IPDUM_HEADERTYPE_SHORT , respectively) the ID shall be compared with the IpduMContainedRxPduLong- HeaderId or IpduMContainedRxPduShortHeaderId , respectively, in the set of IpduMContainedRxPdus which do not have an IpduMContainedRxInCon- tainerPduRef defined.
requirement SWS_IpduM_00205 [SWS_IpduM_00205] 📄 PDF
If for the received Container PDU the configuration parame- ter IpduMContainerRxAcceptContainedPdu is set to IPDUM_ACCEPT_CONFIG- URED , IpduM shall expect and match only contained I-PDUs ( IpduMContainedRx- Pdu ) that reference the IpduMContainerRxPdu in IpduMContainedRxInCon- tainerPduRef .
requirement SWS_IpduM_00206 [SWS_IpduM_00206] 📄 PDF
For a received Container PDU with IpduMContainerRxAc- ceptContainedPdu =IPDUM_ACCEPT_ALL, IpduM shall expect and match only Ip- duMContainedRxPdus which do not have an IpduMContainedRxInContainerP- duRef defined.
requirement SWS_IpduM_00207 [SWS_IpduM_00207] 📄 PDF
If a contained I-PDU of a received IpduMContainerRxPdu with IpduMContainerRxAcceptContainedPdu = IPDUM_ACCEPT_ALL can not be matched according to [SWS_IpduM_00206] then this contained I-PDU shall be dis- carded silently.
requirement SWS_IpduM_00208 [SWS_IpduM_00208] 📄 PDF
For each contained I-PDU the length given in its header shall be used as the length of the corresponding I-PDU.
requirement SWS_IpduM_00209 [SWS_IpduM_00209] 📄 PDF
Each contained I-PDU shall be notified to PduR via PduR_IpduMRxIndication . IpduM shall indicate the contained I-PDUs in the same order as the I-PDUs are located inside the Container PDU.
requirement SWS_IpduM_00210 [SWS_IpduM_00210] 📄 PDF
When processing a received Container PDU and detecting a header containing the ID 0 the processing for this Container PDU shall be stopped and the remaining bytes shall be ignored.
requirement SWS_IpduM_00211 [SWS_IpduM_00211] 📄 PDF
If a Container PDU is received and IpduMContainer- PduProcessing is set to IPDUM_PROCESSING_DEFERRED , the Container PDU shall be queued.
requirement SWS_IpduM_00212 [SWS_IpduM_00212] 📄 PDF
If receiving a new instance of a Container PDU would exceed IpduMContainerQueueSize the oldest instance shall be discarded and IPDUM_E_- QUEUEOVFL shall be reported to [9, DET] via Det_ReportRuntimeError .
requirement SWS_IpduM_00213 [SWS_IpduM_00213] 📄 PDF
When processing a received Container PDU and detecting a header where the payload length exceeds the remaining bytes of the container the processing for this Container PDU shall be stopped and the remaining bytes shall be ignored. Furthermore, IPDUM_E_HEADER shall be reported to [9, DET] via Det_- ReportRuntimeError .
requirement SWS_IpduM_00214 [SWS_IpduM_00214] 📄 PDF
If the remaining bytes in a Container PDU are less than the configured IpduMContainerHeaderSize ([ECUC_IpduM_00183]) the remain- ing bytes shall be ignored.
requirement SWS_IpduM_00215 [SWS_IpduM_00215] 📄 PDF
Erroneous header detected error code: IPDUM_E_HEADER value [hex]: 0x30
requirement SWS_IpduM_00216 [SWS_IpduM_00216] 📄 PDF
Container Queue ove r flow error code: IPDUM_E_QUEUEOVFL value [hex]: 0x31
requirement SWS_IpduM_00217 [SWS_IpduM_00217] 📄 PDF
When a Container PDU is received from the PDU Router, the function IpduM_RxIndication forwards the contained I-PDUs via the PDU Router, using PduR_IpduMRxIndication (see [SWS_IpduM_00105]).
requirement SWS_IpduM_00219 [SWS_IpduM_00219] 📄 PDF
IpduM shall reject configurations in which the transmit proper- ties (see [ECUC_IpduM_00198]: IpduMContainedTxPduCollectionSemantics ) of the contained I-PDUs which are assigned to a specific Container PDU are mixed. A Container PDU shall contain either solely I-PDUs with IPDUM_COLLECT_LAST_- IS_BEST or solely I-PDUs with IPDUM_COLLECT_QUEUED semantic.
requirement SWS_IpduM_00220 [SWS_IpduM_00220] 📄 PDF
For contained I-PDUs, with IpduMContainedTxPduCol- lectionSemantics set to IPDUM_COLLECT_LAST_IS_BEST , IpduM shall use PduR_IpduMTriggerTransmit to fetch the PDU data from its upper layer imme- diately before it transfers the container I-PDU to the lower layer.
requirement SWS_IpduM_00221 [SWS_IpduM_00221] 📄 PDF
When a transmission request of a contained I-PDU is assigned to a Container PDU, the contained I-PDU has IpduMContainedTxPduCollection- Semantics set to IPDUM_COLLECT_LAST_IS_BEST and IpduMContainedTx- PduPriorityHandling is set to FALSE, the IpduM shall retain the order in which the transmission requests are passed to IpduM. That is, the contained I-PDU of the first passed transmission request is placed at the beginning at the container and so on.If a transmission request of the same contained I-PDU is passed multiple times, the IpduM shall store it only once at the position matching its first occurrence.
requirement SWS_IpduM_00222 [SWS_IpduM_00222] 📄 PDF
If a contained I-PDU has IpduMContainedTxPduCollec- tionSemantics IPDUM_COLLECT_LAST_IS_BEST , the Container PDU is assem- bled and if a PduR_IpduMTriggerTransmit returns E_NOT_OK for a contained I- PDU, IpduM shall omit this contained I-PDU silently and proceed with the assembly of the Container PDU.
requirement SWS_IpduM_00223 [SWS_IpduM_00223] 📄 PDF
In case the IpduM shall update the dynamic part just-in-time, the latest dynamic part sent by the upper layer shall be updated or the dynamic part referenced by IpduMInitialDynamicPart if no dynamic part was sent before.
requirement SWS_IpduM_00224 [SWS_IpduM_00224] 📄 PDF
All static and dynamic parts shall be configured to allocate ex- actly the same bits in the multiplexed and the de-multiplexed I-PDUs.
requirement SWS_IpduM_00225 [SWS_IpduM_00225] 📄 PDF
If IpduMTxTriggerMode is configured to a different value than NONE, the IpduM shall use the MetaData of the triggering part for sending of the multiplexed I-PDU.
requirement SWS_IpduM_00226 [SWS_IpduM_00226] 📄 PDF
If IpduMTxTriggerMode is configured to NONE, the IpduM shall use the MetaData of the last updated part for sending of the multiplexed I-PDU.
requirement SWS_IpduM_00227 [SWS_IpduM_00227] 📄 PDF
On receiver side the IpduM shall forward the received Meta- Data along with all demultiplexed parts.
requirement SWS_IpduM_00228 [SWS_IpduM_00228] 📄 PDF
In case a Container PDU supports MetaData, the IpduM shall use the MetaData last collected from the contained I-PDUs when sending the Con- tainer PDU.
requirement SWS_IpduM_00229 [SWS_IpduM_00229] 📄 PDF
In case the IpduM receives a Container PDU with MetaData, the IpduM shall forward the MetaData of the Container PDU along with all contained I-PDU that support MetaData.
requirement SWS_IpduM_00230 [SWS_IpduM_00230] 📄 PDF
IpduM shall reject configurations in which contained I-PDU supporting MetaData have a different MetaDataType from the MetaDataType of the Container PDU.
requirement SWS_IpduM_00231 [SWS_IpduM_00231] 📄 PDF
If a contained I-PDU has IpduMContainedTxPduCollec- tionSemantics set to IPDUM_COLLECT_LAST_IS_BEST , the transmission request is updated and the total length of the payloads plus the corresponding headers of all contained I-PDUs which are requested for transmission would exceed the maximum size of the Container PDU, then the Container PDU shall be triggered.
requirement SWS_IpduM_00232 [SWS_IpduM_00232] 📄 PDF
{DRAFT} If the IpduMContainerHeaderSize is set to IP- DUM_HEADERTYPE_NONE , the IpduM module shall statically place the contained I- PDUs within the Container PDU according to their configured IpduMContainedTxP- duOffset.
requirement SWS_IpduM_00233 [SWS_IpduM_00233] 📄 PDF
{DRAFT} In case a Static Container has a configured Ipdu- MUnusedAreasDefault , the IpduM shall ensure that all not updated areas of the Container are set to the value of IpduMUnusedAreasDefault before the Container PDU is sent.
requirement SWS_IpduM_00234 [SWS_IpduM_00234] 📄 PDF
{DRAFT} For Container PDUs with static container layout and IpduMContainerTxTriggerMode is set to IPDUM_DIRECT , the IpduM shall trig- ger the Container PDU when all contained I-PDUs were updated by the upper layer.
requirement SWS_IpduM_00235 [SWS_IpduM_00235] 📄 PDF
{DRAFT} In case a contained I-PDU has a configured IpduMUp- dateBitPosition, the IpduM shall ensure that the update bit of this contained I-PDU is set if and only if the contained I-PDU was successfully updated.
requirement SWS_IpduM_00236 [SWS_IpduM_00236] 📄 PDF
{DRAFT} In case a received contained I-PDU has a configured update bit, the IpduM module shall only process and indicate it to the upper layer if its received update-bit is set.
requirement SWS_IpduM_00237 [SWS_IpduM_00237] 📄 PDF
{DRAFT} When processing a received Container PDU with Ip- duMContainerHeaderSize set to IPDUM_HEADERTYPE_NONE , the IpduM shall ignore all contained PDUs that are according to their configuration not or not completely con- tained in the received Container PDU. Such contained I-PDUs shall not be indicated to the upper layer. If Development Error Detection is configured ([ECUC_IpduM_00132]) IPDUM_E_CONTAINER shall be reported to [9, DET] via Det_ReportError .
requirement SWS_IpduM_00238 [SWS_IpduM_00238] 📄 PDF
{DRAFT} For a Container PDU with IpduMContainerHead- erSize set to IPDUM_HEADERTYPE_NONE , all contained I-PDUs shall have IpduM- ContainedTxPduCollectionSemantics set to IPDUM_COLLECT_LAST_IS_- BEST .
requirement SWS_IpduM_00240 [SWS_IpduM_00240] 📄 PDF
{DRAFT} Contained I-PDUs with a configured IpduMPduUp- dateBitPosition shall only be assigned to Container PDUs with IpduMContain- erHeaderSize set to IPDUM_HEADERTYPE_NONE .
requirement SWS_IpduM_00241 [SWS_IpduM_00241] 📄 PDF
{DRAFT} For a Container PDU with IpduMContainerHead- erSize set to IPDUM_HEADERTYPE_NONE , all contained I-PDUs shall have a config- ured IpduMContainedTxPduOffset.
requirement SWS_IpduM_00242 [SWS_IpduM_00242] 📄 PDF
{DRAFT} For a Container PDU with IpduMContainerHead- erSize set to IPDUM_HEADERTYPE_NONE and IpduMUnusedAreasDefault not set, all contained I-PDUs shall have a configured IpduMPduUpdateBitPosition .
requirement SWS_IpduM_00245 [SWS_IpduM_00245] 📄 PDF
{DRAFT} All IpduMPduUpdateBitPositions shall be configured to their own not otherwise occupied bit position.
requirement SWS_IpduM_00246 [SWS_IpduM_00246] 📄 PDF
{DRAFT} Only the last contained IPdu (according to IpduM- ContainedPduOffset ) of a ContainerIPdu with static container layout (i.e. Ip- duMContainerHeaderSize set to IPDUM_HEADERTYPE_NONE ) may be a dynamic length PDU (i.e, a PDU that at runtime may exhibit a length different from the one stat- ically configured via Pdu.length of the respective Pdu). All other contained PDUs of a ContainerIPdu with static container layout have to be static length PDUs.
requirement SWS_IpduM_00247 [SWS_IpduM_00247] 📄 PDF
Partly or erroneous container received error code: IPDUM_E_CONTAINER value [hex]: 0x32
requirement SWS_IpduM_00248 [SWS_IpduM_00248] 📄 PDF
All contained I-Pdus with Collection Semantic IPDUM_- COLLECT_LAST_IS_BEST and IpduMContainedTxPduPriorityHandling is set to TRUE, shall have an IpduMContainedTxPduPriority . If the IpduMCon- tainedTxPduPriority is not configured, the IpduMContainedTxPduPriority shall be set to default value 255 (lowest available priority).
requirement SWS_IpduM_00249 [SWS_IpduM_00249] 📄 PDF
When transmission requests of contained I-PDUs are as- signed to a Container PDU, the contained I-PDUs with IpduMContainedTxP- duCollectionSemantics set to IPDUM_COLLECT_LAST_IS_BEST and IpduM- ContainedTxPduPriorityHandling is set to TRUE, the IpduM shall collect the transmission request in respect to the IpduMContainedTxPduPriority (highest priority first and so on). Transmission requests of contained I-PDUs with the same IpduMContainedTxPduPriority shall be collected in the order the transmission request occurred.
requirement SWS_IpduM_00250 [SWS_IpduM_00250] 📄 PDF
For an IpduMContainerRxPdu with IpduMContainerRxAc- ceptContainedPdu = IPDUM_ACCEPT_CONFIGURED and IpduMContainerHead- erSize = IPDUM_HEADERTYPE_LONG or IPDUM_HEADERTYPE_SHORT the following constraint applies: • IpduMContainedRxPdus with an IpduMContainedRxInContainerPduRef to that specific IpduMContainerRxPdu shall have unique IpduMContainedRx- PduLongHeaderId or IpduMContainedRxPduShortHeaderId , respectively, defined in the context of that IpduMContainerRxPdu .
requirement SWS_IpduM_00251 [SWS_IpduM_00251] 📄 PDF
All IpduMContainedRxPdus with no IpduMContainedRxInCon- tainerPduRef and a defined IpduMContainedRxPduLongHeaderId or IpduM- ContainedRxPduShortHeaderId , shall have a unique IpduMContainedRxPdu- LongHeaderId or IpduMContainedRxPduShortHeaderId , respectively.
requirement SWS_IpduM_00252 [SWS_IpduM_00252] 📄 PDF
{DRAFT} IpduM Container Pdus shall be processed within the MainFunction, which is referenced by the Container Pdu configuration parameters (i.e. IpduMContainerRxPdu and IpduMContainerTxPdu ).
requirement SWS_IpduM_00253 [SWS_IpduM_00253] 📄 PDF
When sending a Static Container PDU, the IPduM shall reduce the size of the Container PDU by omitting not updated data behind the last updated PDU and the last update bit.
requirement SWS_IpduM_00254 [SWS_IpduM_00254] 📄 PDF
When a Container PDU is triggered and IpduMContain- erTxTriggerMode is set to IPDUM_TRIGGERTRANSMIT, IpduM shall invoke PduR_IpduMTransmit with SduDataPtr set to NULL and SduLength according to the following preconditions: • For static Container PDUs the SduLength shall be calculated with respect to Ip- duMUpdateBitPosition (see [SWS_IpduM_00241]), IpduMContainedTxPduOffset (see [SWS_IpduM_00242]) and length of last contained I-PDU, if having dynamic PDU length configured (see [SWS_IpduM_00246]). • For dynamic Container PDUs the SduLength shall be calculated as specified in [SWS_IpduM_00187].
requirement SWS_IpduM_00256 [SWS_IpduM_00256] 📄 PDF
When a Container PDU has been triggered and IpduMCon- tainerTxTriggerMode is set to IPDUM_TRIGGERTRANSMIT , IpduM shall assemble the Container PDU in the context of the API call IpduM_TriggerTransmit .
requirement SWS_IpduM_00257 [SWS_IpduM_00257] 📄 PDF
If a Container PDU has IpduMContainerTxTriggerMode set to IPDUM_TRIGGERTRANSMIT and this Container PDU has been assembled in the context of the IpduM_TriggerTransmit call, the Parameter PduInfoPtr shall be updated with the total length (according to [SWS_IpduM_00187]) in SduLength .
requirement SWS_IpduM_00258 [SWS_IpduM_00258] 📄 PDF
If a container PDU is assembled and the contained PDUs have IpduMContainedTxPduCollectionSemantics set to IPDUM_COLLECT_LAST_- IS_BEST , the IpduM shall place the contained I-PDUs in the container I-PDU with respect to the configuration and resulting order according to [SWS_IpduM_00221] and [SWS_IpduM_00249].
requirement SWS_IpduM_00259 [SWS_IpduM_00259] 📄 PDF
If a container PDU is assembled, the contained PDUs have IpduMContainedTxPduCollectionSemantics set to IPDUM_COLLECT_LAST_- IS_BEST and placing a contained I-PDU would exceed maximum size of the Container PDU, the IpduM shall finish the assembly process and keep the remaining transmission requests for the next transmission.
requirement SWS_IpduM_00260 [SWS_IpduM_00260] 📄 PDF
IpduM shall reject configurations in which contained I-PDUs have IpduMContainedTxPduCollectionSemantics set to IPDUM_COLLECT_- LAST_IS_BEST and the according Container PDU has queue ( IpduMContain- erQueueSize is available) configured.
requirement SWS_IpduM_00261 [SWS_IpduM_00261] 📄 PDF
If a PDU Container is queued for transmission, and IpduM- ContainerQueueSize is not set (or set to 1), IpduM shall call PduR_IpduMTransmit .
requirement SWS_IpduM_00262 [SWS_IpduM_00262] 📄 PDF
If a PDU Container is queued for transmission, and IpduM- ContainerQueueSize is > 1, IpduM shall call store the Container PDU in a queue.
requirement SWS_IpduM_00265 [SWS_IpduM_00265] 📄 PDF
[SWS_IpduM_00265] Handling of discarded container PDUs Upstream requirements: SRS_IpduM_02820 ⌈If an instance of a container PDU was discarded (see [SWS_IpduM_00199]), then PduR_IpduMTxConfirmation shall be called with result E_NOT_OK for every con- tained PDU that has IpduMContainedTxPduConfirmation enabled within that re- spective instance.⌋
requirement SWS_IpduM_91003 [SWS_IpduM_91003] 📄 PDF
Type of error Related error code Error value API service called with wrong parameter IPDUM_E_PARAM 0x10 NULL pointer checking IPDUM_E_PARAM_POINTER 0x11 API service (except IpduM_MainFunctionTx,Ipdu M_MainFunctionRx and IpduM_GetVersionInfo) used without module initialization IPDUM_E_UNINIT 0x20 Invalid configuration set selection IPDUM_E_INIT_FAILED 0x21
requirement SWS_IpduM_91004 [SWS_IpduM_91004] 📄 PDF
Type of error Related error code Error value Erroneous header detected IPDUM_E_HEADER 0x30 Container Queue overflow IPDUM_E_QUEUEOVFL 0x31 Partly or erroneous container received IPDUM_E_CONTAINER 0x32
requirement SWS_IpduM_CONSTR_00263 [SWS_IpduM_CONSTR_00263] 📄 PDF
The IpduMContainedTxPduPriorityHan- dling shall be set to TRUE , if at least one IpduMContainerTxPdu is referenced by at least two IpduMContainedTxPdu via IpduMContainedTxInContain- erPduRef and the configured IpduMContainedTxPduPriority of those IpduMContainedTxPdu differ from each other.
requirement SWS_IpduM_NA [SWS_IpduM_NA] 📄 PDF
These requirements are not applicable to this specification.
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_IpduM- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_IpduM@rel:R20-11#6a5f6ed3- Content hash
6a5f6ed3- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_IPDUMultiplexer.pdf#nameddest=SWS_IpduM_00032