DEENESPTFRRUARHIKOZHNL

Intrusion Detection System Manager (IdsM)

ModulIdsM (Intrusion Detection System Manager)
BSW-Modul-ID108
Standard-Header#include "IdsM.h"
SWS-SpezifikationAUTOSAR_SWS_IntrusionDetectionSystemManager.pdf
ClusterSecurity & Intrusion Detection

Module guideAI-GENERATED

Collects security events from sensors, filters them, and forwards qualified events to sinks.
AI-GENERATED unreviewed Model: claude-opus-5-5 · Effort: high · Temperature: not controllable · Prompt: cd24ae65ba9c Provenance Open questions (2)
Causal anchor: R20-11 Valid from R20-11 Synthesized for this specification release.
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Collects security events from sensors, filters them, and forwards qualified events to sinks.

IdsM collects security events reported by BSW modules, CDDs, and SW-Cs, buffers them, and processes them asynchronously in IdsM_MainFunction [SWS_IdsM_00702]. Reporting mode and a filter chain of block state, sampling, aggregation, and threshold filters turn them into qualified events [SWS_IdsM_01004]. These are sent via PduR to an IdsR or stored in DEM/Sem. Timestamps, signature, and diagnostic access are optional. IdsM does not evaluate the meaning of context data; the response to attacks is outside the module.

IdsM receives Security Events (SEv) from security sensors, that is, from BSW modules, CDDs, and SW-Cs. Via a filter chain, it turns them into Qualified Security Events (QSEv) [SWS_IdsM_00902]. It sends QSEvs via PduR to an IdsR, stores them in DEM/Sem, or both [SWS_IdsM_01202] [SWS_IdsM_01600]. It does not evaluate the meaning of context data. The response to attacks is outside the module, for example in an SOC [SWS_IdsM_CONSTR_00001].

kontext sensoren Sensors (BSW, CDD, SW-C via RTE) idsm IdsM sensoren->idsm IdsM_SetSecurityEvent… bswm BswM bswm->idsm IdsM_BswM_StateChanged dcm Dcm dcm->idsm IdsM_Dcm_…ReportingMode… stbm StbM idsm->stbm StbM_GetCurrentTime swc SW-C (CustomTimestamp) idsm->swc IdsM_CustomTimestamp.Get csm Csm idsm->csm Csm_SignatureGenerate nvm NvM idsm->nvm NvM_WriteBlock pdur PduR idsm->pdur PduR_IdsMTransmit dem Dem / Sem (DRAFT) idsm->dem QSEv speichern det Det idsm->det Det_ReportError csm->idsm IdsM_CsmNotification pdur->idsm IdsM_CopyTxData, IdsM_TxConfirmation, IdsM_TpTxConfirmation idsr IdsR (other ECU) pdur->idsr IDS-Nachricht

Context diagram: IdsM connects the reporting sensors with the sinks PduR/IdsR and DEM/Sem. BswM, StbM, CSM, DCM, and NvM are optionally connected. Sources: SWS IdsM p. 20, [SWS_IdsM_91023]

Sensors report via IdsM_SetSecurityEvent or one of five variants with context data (up to 1500 bytes), counter, and timestamp [SWS_IdsM_00300] [SWS_IdsM_00404] [SWS_IdsM_00501]. In doing so, they always use the symbolic name of the IdsMEvent [SWS_IdsM_00607]. The reporting service only buffers the SEv. The actual processing runs asynchronously in IdsM_MainFunction [SWS_IdsM_00702]. If a free event buffer is missing, IdsM triggers an internal SEv provided this is configured [SWS_IdsM_00703].

Qualification begins with the reporting mode. Possible values are OFF, BRIEF, DETAILED, and the variants that bypass the filters [SWS_IdsM_01002] [SWS_IdsM_91013]. Thereafter, the active filters run in a fixed order: Block State, Forward Every n-th, Aggregation, Threshold [SWS_IdsM_01004]. If a filter discards the SEv, evaluation ends [SWS_IdsM_01005]. Prior to transmission to the IdsR, rate and traffic limitation additionally take effect [SWS_IdsM_01070]. These are likely to apply to the bypass modes as well (interpretation). Question (open)

filterkette a SEv from event buffer (IdsM_MainFunction) rm Reporting Mode? (IdsMReportingModeFilter) a->rm bs Block State Filter: aktueller Zustand in IdsMBlockState? rm->bs BRIEF / DETAILED drop SEv verworfen rm->drop OFF q QSEv rm->q BRIEF_ / DETAILED_ BYPASSING_FILTERS fn Forward Every n-th Filter: weiterzuleitendes Ereignis? bs->fn no bs->drop yes ag Event Aggregation Filter: Intervallende erreicht? fn->ag yes fn->drop no coll Collected in aggregation interval (counter summed) ag->coll no th Event Threshold Filter: Summe mindestens IdsMEventThresholdNumber? ag->th yes, total counter th->drop no th->q yes sink Konfigurierte Senken q->sink lim Rate limitation, then traffic limitation sink->lim IdsMSinkIdsR (interpretation: also upon bypass) dem Dem / Sem (DRAFT) sink->dem IdsMSinkDem lim->drop Limit exceeded idsr PduR an IdsR lim->idsr Within limits

Activity diagram: First reporting mode, then the filter chain, finally the instance limits before the IdsR. Sources: SWS IdsM p. 35, [SWS_IdsM_01004], [SWS_IdsM_01070]

Optionally, further functions can be enabled [SWS_IdsM_01100] [SWS_IdsM_01204] [SWS_IdsM_01901] [SWS_IdsM_01702]:

  • Timestamp from StbM or from the application
  • Signature via the CSM
  • Reading and changing the reporting mode via the DCM, with NvM persistence and rollback in case of errors

The IdsM reports development errors to the DET only when IdsMDevErrorDetect is active [SWS_IdsM_02003]. The DEM/Sem sink has the status DRAFT in R20-11 [SWS_IdsM_01601].

Role: from reported security event to qualified event

The Intrusion Detection System Manager (IdsM) collects security events (SEvs). These are detected and reported by security sensors, i.e., BSW modules, complex device drivers, or SW-Cs SWS IdsM p. 10. The IdsM checks each SEv against a configurable sequence of filters, the filter chain. If the SEv passes this check, it becomes a qualified security event (QSEv) [SWS_IdsM_00902]. Only QSEvs are processed further. They are passed via the PduR to an IdsR on another ECU, stored in DEM/Sem, or both [SWS_IdsM_01202] [SWS_IdsM_01600] SWS IdsM p. 35.

The system boundary is drawn narrowly. The IdsM does not know the meaning of the context data and therefore does not decide itself whether a system is compromised. Detection and response lie outside the module, for example in an SOC [SWS_IdsM_CONSTR_00001]. There are no mandatory interfaces to other modules [SWS_IdsM_91023]. Each coupling is enabled via the configuration. This is shown by the conditional header inclusions:

  • Det.h in case of IdsMDevErrorDetect
  • Dem.h in case of IdsMSinkDem
  • Dcm.h in case of IdsMDiagnosticSupport
  • NvM.h in case of IdsMNvmBlockDescriptor
  • PduR.h in case of IdsMSinkIdsR

Evidence for these inclusions: [SWS_IdsM_00101] to [SWS_IdsM_00105].

kontext sensoren Sensors (BSW, CDD, SW-C via RTE) idsm IdsM sensoren->idsm IdsM_SetSecurityEvent… bswm BswM bswm->idsm IdsM_BswM_StateChanged dcm Dcm dcm->idsm IdsM_Dcm_…ReportingMode… stbm StbM idsm->stbm StbM_GetCurrentTime swc SW-C (CustomTimestamp) idsm->swc IdsM_CustomTimestamp.Get csm Csm idsm->csm Csm_SignatureGenerate nvm NvM idsm->nvm NvM_WriteBlock pdur PduR idsm->pdur PduR_IdsMTransmit dem Dem / Sem (DRAFT) idsm->dem QSEv speichern det Det idsm->det Det_ReportError csm->idsm IdsM_CsmNotification pdur->idsm IdsM_CopyTxData, IdsM_TxConfirmation, IdsM_TpTxConfirmation idsr IdsR (other ECU) pdur->idsr IDS-Nachricht

Context diagram: The IdsM is positioned between the reporting sensors and the sinks PduR/IdsR as well as DEM/Sem. BswM, StbM, CSM, DCM, and NvM provide operating state, time, signature, and diagnostic access. Sources: SWS IdsM p. 20, SWS IdsM p. 14, [SWS_IdsM_01022], [SWS_IdsM_01104], [SWS_IdsM_01206], [SWS_IdsM_01701]

Start, event identity, and reporting interfaces

IdsM_Init initializes all internal variables and sets the module to the state \"initialized\" [SWS_IdsM_00202] [SWS_IdsM_91001]. Only IdsM_Init and IdsM_GetVersionInfo may be called before this point in time SWS IdsM p. 21. Calling IdsM_Init again does not initialize the module a second time [SWS_IdsM_00204].

lebenszyklus start Start uninit Not initialized start->uninit uninit->uninit API other than IdsM_Init / IdsM_GetVersionInfo: Det_ReportError IDSM_E_UNINIT (only with IdsMDevErrorDetect) init Initialisiert uninit->init IdsM_Init(configPtr): all internal variables initialized init->init IdsM_Init again: no re-initialization, Det_ReportError IDSM_E_ALREADY_INITIALIZED (only with IdsMDevErrorDetect) init->init IdsM_MainFunction, Melde-Dienste, Callbacks

State diagram: The module has two states. Erroneous calls in both states report an error to the DET only when development error detection is active. Sources: [SWS_IdsM_00202], [SWS_IdsM_00203], [SWS_IdsM_00204], SWS IdsM p. 21

Each SEv is identified by three identifiers and the event name [SWS_IdsM_00600]:

Sensors report exclusively via the symbolic name of the IdsMEvent container. They must not rely on the internal value [SWS_IdsM_00602] [SWS_IdsM_00607]. Six services are available for reporting:

ServiceAdditional dataReference
IdsM_SetSecurityEventnone[SWS_IdsM_00300]
IdsM_SetSecurityEventWithContextDataContext Data[SWS_IdsM_00301]
IdsM_SetSecurityEventWithCountCounter (Smart Sensor)[SWS_IdsM_00401]
IdsM_SetSecurityEventWithCountContextDataCounter, context data[SWS_IdsM_00402]
IdsM_SetSecurityEventWithTimestampCountTimestamp, counter[SWS_IdsM_00403]
IdsM_SetSecurityEventWithTimestampCountContextDataTimestamp, counter, context data[SWS_IdsM_00404]

The sensor passes context data as a pointer to a byte array. Up to 1500 bytes are supported [SWS_IdsM_00501] [SWS_IdsM_00502]. Those having a timestamp but no own counter report with count = 1 [SWS_IdsM_00405].

SW-Cs with external IDs in the range 0x8000–0xFFFE reach the IdsM via the service interfaces IdsMService_{EventName} or IdsMSmartSensorService_{EventName}. Which interface applies depends on IdsMAdditionalParameterOption (None, Count, CountTimestamp) [SWS_IdsM_91027] [SWS_IdsM_91028] [SWS_IdsM_01301] [SWS_IdsM_01303]. In R20-11, these services are normative. Later releases mark them as OBSOLETE SWS IdsM p. 67.

Buffering and asynchronous processing in IdsM_MainFunction

The reporting services do not process an SEv immediately. The IdsM initially stores it in an event buffer. Filtering and forwarding take place later and asynchronously in the cyclically called IdsM_MainFunction [SWS_IdsM_00702] [SWS_IdsM_00901] [SWS_IdsM_91000]. The number of event buffers (IdsMNumberOfEventBuffers) is configurable [SWS_IdsM_00701]. As a guideline, the specification recommends the number of aggregation filter instances plus the upper limit of concurrently processed events SWS IdsM p. 24.

Reporting and asynchronous processing of an SEvSensorIdsMBswDefaultTaskStbMsink (PduR / Dem)Use Case: Reporting in context of sensorIdsM_SetSecurityEvent(securityEventId)or one of the five variantsSEv in Event Buffer ablegenLink context data buffer if applicableReturn (void)Use Case: Zyklische VerarbeitungIdsM_MainFunction()optIdsMTimestampOption = AUTOSAR, kein Zeitstempel gemeldetStbM_GetCurrentTime()aktuelle ZeitAll buffered SEvs: reporting mode,Filterkette, Zeitstempel zuordnenoptSEv als QSEv qualifiziertQSEv an konfigurierte Senken

Sequence diagram: The notification returns immediately after buffering. Timestamping, filtering, and forwarding only follow in IdsM_MainFunction. Sources: SWS IdsM p. 86, [SWS_IdsM_00702], [SWS_IdsM_00901], [SWS_IdsM_01107]

Context data resides in dedicated context data buffers with a configurable size of up to 1500 bytes [SWS_IdsM_00704] SWS IdsM p. 122. The IdsM selects a buffer of equal or next larger size and links it to the event buffer [SWS_IdsM_00705] [SWS_IdsM_00706]. An SEv without context data does not occupy such a buffer [SWS_IdsM_00709]. Dedicated, separate buffers exist for the internal SEvs of the IdsM itself [SWS_IdsM_00802].

puffer a Receive SEv via reporting service b Event Buffer frei? a->b c Interner SEv IDSM_INTERNAL_EVENT_NO_EVENT_BUFFER_AVAILABLE (falls konfiguriert) b->c no d SEv in Event Buffer speichern b->d yes x SEv cannot be handled c->x e Kontextdaten gemeldet? d->e f Context data buffer of same or next larger size available? e->f yes i Continue processing SEv without context data e->i no g Link context data buffer to event buffer f->g yes h Interner SEv IDSM_INTERNAL_EVENT_NO_CONTEXT_DATA_BUFFER_AVAILABLE (falls konfiguriert) f->h no j Asynchrone Verarbeitung in IdsM_MainFunction g->j h->i i->j

Activity diagram: How buffers are allocated upon receipt of an SEv. If a context buffer is missing, the SEv is processed without context data. If an event buffer is missing, the SEv cannot be handled. Sources: [SWS_IdsM_00703], [SWS_IdsM_00705], [SWS_IdsM_00707], [SWS_IdsM_00708], [SWS_IdsM_91015], SWS IdsM p. 27

Qualification: reporting mode, filter chain, and instance limits

First, the IdsM evaluates the reporting mode. Each SEv has exactly one reporting mode filter. This filter is mandatory, is attached directly to the SEv, and does not belong to the filter chain [SWS_IdsM_01010] [SWS_IdsM_01011]. The initial value originates from IdsMReportingModeFilter [SWS_IdsM_01012]. The filter chain follows only afterwards [SWS_IdsM_01002]. IdsM_Filters_ReportingModeType supports these modes [SWS_IdsM_91013]:

  • IDSM_REPORTING_MODE_OFF: The event is not reported.
  • IDSM_REPORTING_MODE_BRIEF: Reporting without context data.
  • IDSM_REPORTING_MODE_DETAILED: Reporting with context data.
  • The two variants …_BYPASSING_FILTERS: Reporting as in BRIEF or DETAILED, but unfiltered.

The filter chain is assigned to the SEv [SWS_IdsM_01001] [SWS_IdsM_00903]. Each IdsMFilterChain requires at least one filter [SWS_IdsM_CONSTR_00002]. The active filters execute in a fixed order [SWS_IdsM_01004]. If a filter discards the SEv, the evaluation terminates immediately. Otherwise, the SEv is passed to the next filter [SWS_IdsM_00904] [SWS_IdsM_00905] [SWS_IdsM_01005]. The four filters in this order:

  1. Block State: The BswM reports the current state via IdsM_BswM_StateChanged as a bitmask of type IdsM_Filters_BlockStateType. If this state is referenced in IdsMBlockState, the filter discards the SEv [SWS_IdsM_01022] [SWS_IdsM_01023] [SWS_IdsM_91017]. A filter can reference up to 16 states SWS IdsM p. 85.
  2. Forward Every n-th: The first SEv is forwarded, and thereafter every n-th according to IdsMNthParameter. The data remains unchanged in the process [SWS_IdsM_01031] [SWS_IdsM_01032] [SWS_IdsM_01033].
  3. Event Aggregation: During the interval, the filter forwards nothing. At the end of the interval, a single SEv is produced with the cumulative counter [SWS_IdsM_01043] [SWS_IdsM_01046]. Context data and timestamp originate from the first or last SEv of the interval, depending on IdsMContextDataSourceSelector [SWS_IdsM_01047] [SWS_IdsM_01049]. An example is shown in SWS IdsM p. 40.
  4. Event Threshold: The filter discards SEvs as long as the counter sum in the current interval is below IdsMEventThresholdNumber. When the interval expires, the sum is reset [SWS_IdsM_01061] [SWS_IdsM_01062] [SWS_IdsM_01063]. An example is shown in SWS IdsM p. 41.

All intervals are multiples of IdsMMainFunctionPeriod. The aggregation and threshold intervals run from the first call of the main function [SWS_IdsM_01050] [SWS_IdsM_01051] [SWS_IdsM_01065].

Prior to transmission to the IdsR, two limits take effect for the entire IdsM instance [SWS_IdsM_01070]:

Internal SEvs of the IdsM do not pass through these instance filters. However, they may have event-specific filters [SWS_IdsM_00803] [SWS_IdsM_00804]. Interpretation: The bypass modes only bypass the filter chain. Question (open) Rate and traffic limiting are likely to apply to them as well, because [SWS_IdsM_01070] requires these limits prior to each transmission to the IdsR.

filterkette a SEv from event buffer (IdsM_MainFunction) rm Reporting Mode? (IdsMReportingModeFilter) a->rm bs Block State Filter: aktueller Zustand in IdsMBlockState? rm->bs BRIEF / DETAILED drop SEv verworfen rm->drop OFF q QSEv rm->q BRIEF_ / DETAILED_ BYPASSING_FILTERS fn Forward Every n-th Filter: weiterzuleitendes Ereignis? bs->fn no bs->drop yes ag Event Aggregation Filter: Intervallende erreicht? fn->ag yes fn->drop no coll Collected in aggregation interval (counter summed) ag->coll no th Event Threshold Filter: Summe mindestens IdsMEventThresholdNumber? ag->th yes, total counter th->drop no th->q yes sink Konfigurierte Senken q->sink lim Rate limitation, then traffic limitation sink->lim IdsMSinkIdsR (interpretation: also upon bypass) dem Dem / Sem (DRAFT) sink->dem IdsMSinkDem lim->drop Limit exceeded idsr PduR an IdsR lim->idsr Within limits

Activity diagram: First reporting mode, then the filters in fixed order, finally the instance limits before the IdsR. Filters that are not configured are omitted. Sources: SWS IdsM p. 35, [SWS_IdsM_01002], [SWS_IdsM_01004], [SWS_IdsM_01070], [SWS_IdsM_91013]

Timestamp, IDS message, and sinks

The timestamp is optional and controlled globally via IdsMTimestampOption [SWS_IdsM_01100]:

If the sensor itself provides a timestamp, this takes precedence [SWS_IdsM_01108]. The IdsM truncates it to the 62 least significant bits [SWS_IdsM_01110]. According to the sequence diagrams, the IdsM determines the timestamp in the main function for all buffered events SWS IdsM p. 87.

zeitstempel a QSEv aufbereiten opt IdsMTimestampOption? a->opt none No timestamp; reported timestamp is ignored opt->none None given Timestamp reported by sensor? opt->given AUTOSAR / Custom trunc Truncate to 62 least significant bits and use given->trunc yes src Source according to option? given->src no add Zeitstempel in QSEv aufnehmen trunc->add stbm StbM_GetCurrentTime() src->stbm AUTOSAR cust IdsM_CustomTimestamp, operation Get via port CustomTimestamp src->cust Custom stbm->add cust->add

Activity diagram: How the timestamp source is selected depending on IdsMTimestampOption. Sources: [SWS_IdsM_01106], [SWS_IdsM_01107], [SWS_IdsM_01108], [SWS_IdsM_01109], [SWS_IdsM_01110], SWS IdsM p. 86

A QSEv has the same structure regardless of which sink it is sent to [SWS_IdsM_01200]. The IDS message consists of the event frame and optionally timestamp, context data, and signature PRS IDS p. 11. Which sinks an event uses is defined by the configuration of the IdsMEvent [SWS_IdsM_01201].

The signature is optional. It becomes globally active as soon as IdsMCsmJobReference is configured. It is triggered via Csm_SignatureGenerate. For synchronous jobs, the signature is available immediately; for asynchronous jobs, IdsM_CsmNotification reports the result [SWS_IdsM_01204] [SWS_IdsM_01206] [SWS_IdsM_01207] [SWS_IdsM_01208].

For the IdsR sink, the IdsM transmits via PduR_IdsMTransmit [SWS_IdsM_01498]. If the message fits into a bus PDU, it uses an IF PDU, otherwise a TP PDU [SWS_IdsM_01400] [SWS_IdsM_01401]. A new transmission request only follows after confirmation of the previous one [SWS_IdsM_01499]. The DEM/Sem sink stores the complete IDS message. It has the status DRAFT in R20-11 [SWS_IdsM_01601] [SWS_IdsM_01602].

Signature and transmission of a QSEv to the IdsRIdsMCsmPduRUse Case: Optional: Signatur (IdsMCsmJobReference konfiguriert)Csm_SignatureGenerate()altsynchroner Csm-JobReturn: Signature immediately availableasynchroner Csm-JobIdsM_CsmNotification()Use Case: Transmission (IdsMSinkIdsR)PduR_IdsMTransmit()altIDS message fits into a bus PDU (IdsMIfTxPdu)IdsM_TxConfirmation(TxPduId, result)otherwise segmented (IdsMTpTxPdu)loopuntil PDU is completely copiedIdsM_CopyTxData(id, info, retry, availableDataPtr)BufReq_ReturnTypeIdsM_TpTxConfirmation(id, result)Kein weiteres PduR_IdsMTransmitbefore confirmation

Sequence diagram: First the optional signature via CSM, then the transmission as an IF PDU or segmented TP PDU with confirmation. Sources: [SWS_IdsM_01207], [SWS_IdsM_01208], [SWS_IdsM_01500], [SWS_IdsM_01501], [SWS_IdsM_01502], SWS IdsM p. 49

Diagnostic reconfiguration and persistence of the reporting mode

Diagnostic access is optional and activated via IdsMDiagnosticSupport [SWS_IdsM_01800].

After a successful change, the IdsM triggers NvM_WriteBlock [SWS_IdsM_01701]. If persistence fails, it restores the previous value and reports DCM_E_GENERALPROGRAMMINGFAILURE [SWS_IdsM_01702] [SWS_IdsM_01904] [SWS_IdsM_01905].

At startup, the IdsM uses the persisted values. If they are missing, the configuration applies [SWS_IdsM_01703] [SWS_IdsM_01704]. The NvM block must be included in NvM_ReadAll and is named IdsM_NvMRamBlockData or IdsM_NvMRomBlockData [SWS_IdsM_01705] [SWS_IdsM_01706] [SWS_IdsM_01707]. Presumably, the DCM learns the persistence result via repeated calls with OpStatus DCM_PENDING. Question Q-65ac99385a597b7d (open) A later version specifies DCM_E_BUSYREPEATREQUEST for this SWS IdsM p. 75.

Change and read reporting mode via diagnosticsDcmIdsMNvMUse Case: Change reporting modeIdsM_Dcm_SetReportingMode_Start(In_SecurityEventId,In_SensorInstanceId, In_ReportingMode, OpStatus, ErrorCode)altReporting mode or event ID invalidE_NOT_OK, DCM_E_REQUESTOUTOFRANGEParameter validChange IdsMReportingModeFilterNvM_WriteBlock()Interpretation: Result of persistence isreported back via calls with OpStatus DCM_PENDINGaltPersistierung fehlgeschlagenRollback to previous reporting modeE_NOT_OK, DCM_E_GENERALPROGRAMMINGFAILUREPersistierung erfolgreichE_OKUse Case: Reporting Mode lesenIdsM_Dcm_GetReportingMode_Start(In_SecurityEventId,In_SensorInstanceId, OpStatus, ErrorCode)E_OK / DCM_E_PENDING / E_NOT_OKIdsM_Dcm_GetReportingMode_RequestResults(OpStatus,Out_ReportingMode, ErrorCode)Out_ReportingMode

Sequence diagram: Changing the reporting mode with NvM persistence and rollback as well as two-stage reading. Sources: [SWS_IdsM_01901], [SWS_IdsM_01904], [SWS_IdsM_01905], [SWS_IdsM_91007], SWS IdsM p. 74. The feedback path of the persistence is marked as an interpretation.

Behavior in the event of an error

The IdsM reports development errors to the DET only when IdsMDevErrorDetect is active. The error codes are listed in [SWS_IdsM_02003]:

Attention regarding naming: [SWS_IdsM_00203] names the code IDSM_E_PARAM_UNINIT, while the error table lists it as IDSM_E_UNINIT (0x0D) [SWS_IdsM_02003].

The IdsM reports resource bottlenecks as its own internal SEvs, provided these are configured [SWS_IdsM_91015]:

If a filter discards an SEv, this is regular behavior and not an error [SWS_IdsM_00904]. A transmission error arrives as E_NOT_OK in the confirmation [SWS_IdsM_91009]. A retry rule with IdsMTransmissionRetryDelay exists only starting in R25-11 SWS IdsM p. 51.

Further detailed evidence

AI-generated guide based on the specification excerpts in the payload (AUTOSAR Classic Platform R20-11). Only the linked requirements are normative. Statements marked as interpretations are not fully covered by the sources.

Intrusion Detection System Manager (IdsM)

Collects and reports onboard security events to detect threats.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function IdsM_Init [SWS_IdsM_91001] 📄 PDF

void IdsM_Init (const IdsM_ConfigType* configPtr);

Service to initialize the module IdsM. It initializes all variables and sets the module state to initialized.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 27dab8d4c20f Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous and non-reentrant interface IdsM_Init serves the fundamental initialization of the module IdsM according to [SWS_IdsM_91001]. When called, the service initializes all internal variables and transitions the IdsM to the initialized state ([SWS_IdsM_00202]). Via the input parameter configPtr, the function accepts a pointer to the module-specific configuration structure ([SWS_IdsM_91001]).

The execution of IdsM_Init represents an indispensable functional precondition for the operation of the module. If an API of the IdsM other than IdsM_Init or IdsM_GetVersionInfo is called in the still uninitialized state, the module reports the error IDSM_E_PARAM_UNINIT via Det_ReportError when development detection (IdsMDevErrorDetect) is enabled ([SWS_IdsM_00203], see also error code 0x0D under [SWS_IdsM_02003]).

Specific behavioral rules apply to error handling and the call context:

  • If IdsM_Init is called while the module is already in the initialized state, reinitialization of the internal variables does not take place ([SWS_IdsM_00204]).
  • Instead, with IdsMDevErrorDetect enabled, the module reports the development error IDSM_E_ALREADY_INITIALIZED with the numeric value 0x0E via Det_ReportError ([SWS_IdsM_00204], [SWS_IdsM_02003]).
  • The function has no return value and is defined as non-reentrant ([SWS_IdsM_91001]). It must therefore not be called concurrently or multiple times simultaneously by preempting contexts in the system.

This note was generated by an AI based on the AUTOSAR specification R20-11.

Implementer's Guide to follow (complexity I1)

function IdsM_MainFunction [SWS_IdsM_91000] 📄 PDF

void IdsM_MainFunction (void);

This function is called periodically. It processes security events asynchronously which are queued during API function calls.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 74bdc1b72d90 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Call Context

The function IdsM_MainFunction is called periodically and is available via the header file IdsM.h [SWS_IdsM_91000]. It has the signature void IdsM_MainFunction(void), takes no parameters, and has no return value [SWS_IdsM_91000]. The call of the function itself is synchronous, but serves for the asynchronous processing of security events (SEv) that were previously queued during synchronous API calls [SWS_IdsM_91000]. The periodic triggering is typically expected to be performed by the BSW scheduler or a cyclic operating system task. Question Q-86e2e870c3496bad (open)

Concurrency and Limitations

According to the specification, IdsM_MainFunction is classified as non-reentrant (Non Reentrant) [SWS_IdsM_91000]. The calling system environment must therefore ensure that the function is executed in only a single instance at any time and that no overlapping calls take place.

Interaction during Event Processing

The main task within the cyclic processing comprises the following aspects:

  • Event buffer: After receiving an SEv, the IdsM stores it in an event buffer; these buffers are managed and filtered asynchronously within IdsM_MainFunction [SWS_IdsM_00702].
  • Context data buffer: If an SEv with context data is received, the IdsM uses suitable buffers from a context data buffer pool; these buffers are also handled and filtered asynchronously in IdsM_MainFunction [SWS_IdsM_00705].
  • Qualification: The SEvs stored in the event buffers are processed asynchronously to identify them as qualified security events (QSEv) [SWS_IdsM_00901].

This text was generated by an AI based on the R20-11 specification.

Implementer's Guide to follow (complexity I1)

function IdsM_CopyTxDataManager [SWS_IdsM_91010] 📄 PDF

BufReq_ReturnType IdsM_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);

This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to this function provides the next part of the I-PDU data unless retry->TpDataState is TP_ DATARETRY. In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry->TxTpDataCnt. The size of the remaining data is written to the position indicated by availableDataPtr.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 5f2ff6078796 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The callback function is called synchronously and reentrantly to retrieve transmit data for segments of an I-PDU (N-PDU) [SWS_IdsM_91010]. It is available via the header IdsM_Cbk.h and serves the service ID 0x43 [SWS_IdsM_91010].

The I-PDU to be transmitted is identified via id [SWS_IdsM_91010]. The parameter info passes the destination buffer (SduDataPtr) as well as the requested byte length (SduLength); a value of 0 for SduLength (where SduDataPtr may be a NULL_PTR) serves for state changes in the parameter retry or for querying remaining data [SWS_IdsM_91010]. Via availableDataPtr, the function reports back the data amount remaining in the Tx buffer, which allows transport protocols with dynamic payload lengths (e.g., FrIsoTp) to determine the size of subsequent consecutive frames [SWS_IdsM_91010].

If retry is a NULL_PTR, copied data may be released from the buffer immediately after the copying process [SWS_IdsM_91010]. Otherwise, RetryInfoType controls the error handling: With TP_CONFPENDING, previously copied data remains in the TP buffer, whereas TP_DATACONF acknowledges and releases all data copied prior to this call [SWS_IdsM_91010]. If TpDataState is set to TP_DATARETRY, the function copies previously transmitted data again starting from the byte offset specified by TxTpDataCnt [SWS_IdsM_91010].

The function returns BUFREQ_OK upon successful complete copying [SWS_IdsM_91010]. If insufficient transmit data is available, no data is copied and BUFREQ_E_BUSY is returned, whereupon the lower-layer module can retry the call [SWS_IdsM_91010]. If the request fails, BUFREQ_E_NOT_OK is returned without data adoption [SWS_IdsM_91010].

This text was generated by an AI based on the AUTOSAR specification R20-11.

Implementer's Guide to follow (complexity I1)

function IdsM_SetSecurityEvent [SWS_IdsM_91002] 📄 PDF

void IdsM_SetSecurityEvent (IdsM_SecurityEventIdType securityEventId);

This API is the application interface to report security events to the IdsM.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: b7f6437d402e Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function IdsM_SetSecurityEvent serves as an interface for applications to report security events to the IdsM (Intrusion Detection System Manager) module [SWS_IdsM_91002].

Usage and Call Context

The call is made synchronously via the header file IdsM.h with the Service ID 0x03 [SWS_IdsM_91002]. As the sole passed parameter, the identifier of the security event is passed:

  • securityEventId (IN, IdsM_SecurityEventIdType): Unique identifier of the reported security event [SWS_IdsM_91002].

The function has no return value (void) [SWS_IdsM_91002].

Error handling

If the detection of development errors (IdsMDevErrorDetect) is enabled, the module checks the parameter securityEventId against the configured security events [SWS_IdsM_02101]. If an unknown event ID is passed that was not configured in IdsMEvent, the IdsM reports the development error IDSM_E_PARAM_INVALID [SWS_IdsM_02101].

Concurrency and Limitations

The function is specified as non-reentrant (Non Reentrant) [SWS_IdsM_91002]. Concurrent or preempting calls from different contexts must therefore be synchronized or avoided by the caller.

This usage note is based on the specifications of the AUTOSAR Classic Platform in Release R20-11.

Implementer's Guide to follow (complexity I1)

function IdsM_SetSecurityEventWithContextData [SWS_IdsM_91003] 📄 PDF

void IdsM_SetSecurityEventWithContextData (IdsM_SecurityEventIdType securityEventId, const uint8* contextData, uint16 contextDataSize);

This API is the application interface to report security events with context data to the IdsM.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: f5f82ae60185 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function IdsM_SetSecurityEventWithContextData serves as an application interface for synchronously reporting security events along with optional context data to the Intrusion Detection System Manager ([SWS_IdsM_91003]). It has no return value.

Parameters and usage

  • securityEventId: Unique identifier of the reported security event ([SWS_IdsM_91003]).
  • contextData: Pointer to optional context data; if no context data is available, NULL_PTR must be passed ([SWS_IdsM_91003]).
  • contextDataSize: Size of the provided context data in bytes ([SWS_IdsM_91003]).

Error handling

When development error detection (IdsMDevErrorDetect) is enabled, the IdsM module performs the following checks:

  • If the passed securityEventId does not originate from the security events configured in IdsMEvent, the development error IDSM_E_PARAM_INVALID is reported ([SWS_IdsM_02102]).
  • If contextDataSize exceeds the maximum configured buffer size for context data (defined via the largest parameterized value of IdsMContextDataBufferSize), the development error IDSM_E_PARAM_LENGTH is reported ([SWS_IdsM_02107]).

Concurrency and Integration

The interface is specified as non-reentrant (Non Reentrant) ([SWS_IdsM_91003]). Callers must therefore ensure that concurrent calls are avoided or appropriately synchronized. The declaration is available via the header IdsM.h ([SWS_IdsM_91003]).

This text was generated by an AI system based on the AUTOSAR specification R20-11.

Implementer's Guide to follow (complexity I1)

function IdsM_SetSecurityEventWithCount [SWS_IdsM_91018] 📄 PDF

void IdsM_SetSecurityEventWithCount (IdsM_SecurityEventIdType securityEventId, uint16 count);

This API is the application interface for Smart Sensors to report security events with a count value to the IdsM.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 1b4c7b27b68c Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous function IdsM_SetSecurityEventWithCount (Service ID 0x05) represents the application interface for Smart Sensors to transmit security events (SEvs) together with a count value to the IdsM [SWS_IdsM_91018], [SWS_IdsM_00401]. This allows the IdsM to receive events with a counter precomputed by the sensor [SWS_IdsM_00401]. The function declaration is provided via the header file IdsM.h [SWS_IdsM_91018].

Upon invocation, the function expects two input parameters:

  • securityEventId: Identifier of the security event of type IdsM_SecurityEventIdType [SWS_IdsM_91018].
  • count: Count value of type uint16, which originates from the sensor and serves as initial start value for the event [SWS_IdsM_91018], [SWS_IdsM_00401].

The function provides no return value and defines no output parameters [SWS_IdsM_91018]. With respect to concurrency and call context, the function is declared as non-reentrant (Non Reentrant) [SWS_IdsM_91018]; parallel calls must therefore be avoided on the software side.

For error handling, it is specified that the IdsM verifies the parameters securityEventId and count when development detection (IdsMDevErrorDetect) is enabled [SWS_IdsM_02103]. If an unknown event ID is passed or count has the value 0, the development error IDSM_E_PARAM_INVALID is reported [SWS_IdsM_02103].

This usage note was generated automatically by an AI based on the AUTOSAR specification.

Implementer's Guide to follow (complexity I1)

function IdsM_SetSecurityEventWithCountContextData [SWS_IdsM_91019] 📄 PDF

void IdsM_SetSecurityEventWithCountContextData (IdsM_SecurityEventIdType securityEventId, uint16 count, const uint8* contextData, uint16 contextDataSize);

This API is the application interface for Smart Sensors to report security events with a count value and context data to the IdsM.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 2006a1c85bf9 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function IdsM_SetSecurityEventWithCountContextData serves as an application interface for smart sensors to synchronously report security events with count value and optional context data to the [SWS_IdsM_91019].

Usage and Parameters

The call is synchronous and specified as non-reentrant (Non Reentrant) [SWS_IdsM_91019]:

  • securityEventId: Unique identifier of the security event [SWS_IdsM_91019].
  • count: Count value used as start value for the security event [SWS_IdsM_91019].
  • contextData: Pointer to a byte array containing the context data to be provided [SWS_IdsM_00502]. If no context data is present, NULL_PTR must be passed [SWS_IdsM_91019].
  • contextDataSize: Size of the passed context data in bytes [SWS_IdsM_91019]. The function supports a maximum length of up to 1500 bytes [SWS_IdsM_00501].

Error handling

When development error detection (IdsMDevErrorDetect) is enabled, the module monitors the passed arguments for validity:

  • The development error IDSM_E_PARAM_INVALID is reported if an unknown securityEventId is passed or count has the value 0 [SWS_IdsM_02104].
  • If contextDataSize exceeds the maximum configured buffer size (determined by the largest configured IdsMContextDataBufferSize), the IdsM reports the development error IDSM_E_PARAM_LENGTH [SWS_IdsM_02108].

The function returns no return value [SWS_IdsM_91019]; an error response in case of error is likely based primarily on reporting via the DET. Question Q-135f4b865790f34d (open)

This text was generated by an AI based on the AUTOSAR specification R20-11.

Implementer's Guide to follow (complexity I2)

function IdsM_SetSecurityEventWithTimestampCount [SWS_IdsM_91020] 📄 PDF

void IdsM_SetSecurityEventWithTimestampCount (IdsM_SecurityEventIdType securityEventId, IdsM_TimestampType timestamp, uint16 count);

This API is the application interface for Smart Sensors to report security events with a timestamp and a count value to the IdsM.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 2451b7e4c502 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous interface IdsM_SetSecurityEventWithTimestampCount serves Smart Sensors to report security events with a timestamp and count value to the IdsM [SWS_IdsM_91020]. The function has no return value and is available via the header file IdsM.h [SWS_IdsM_91020].

The following input parameters are processed:

  • securityEventId: Specific identifier of the reported security event [SWS_IdsM_91020].
  • timestamp: Timestamp for the temporal referencing of the event [SWS_IdsM_91020]. If the timestamp feature is active and a timestamp is passed, the IdsM uses it for the storage or transmission of the qualified security event (QSEv) [SWS_IdsM_01108]. If, however, the event is reported without a timestamp when the feature is active, the IdsM sets the option bit for the timestamp in the protocol header to 0 prior to transmission or storage [SWS_IdsM_01112].
  • count: Count value as start value for the security event [SWS_IdsM_91020]. If no precomputed counter is available beforehand, the function can be called with the value 1 [SWS_IdsM_00405].

When development detection (IdsMDevErrorDetect) is enabled, the IdsM validates the arguments securityEventId and count. If an unknown event ID is passed or count has the value 0, the module reports the development error IDSM_E_PARAM_INVALID [SWS_IdsM_02105].

Regarding concurrency, the function is specified as non-reentrant (Non Reentrant) [SWS_IdsM_91020].

This text was automatically generated on the basis of the AUTOSAR specification.

Implementer's Guide to follow (complexity I2)

function IdsM_SetSecurityEventWithTimestampCountContextDataManager [SWS_IdsM_91021] 📄 PDF

void IdsM_SetSecurityEventWithTimestampCountContextData (IdsM_SecurityEventIdType securityEventId, IdsM_TimestampType timestamp, uint16 count, const uint8* contextData, uint16 contextDataSize);

This API is the application interface for Smart Sensors to report security events with a timestamp, a count value and context data to the IdsM.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: a1b69abd8805 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function IdsM_SetSecurityEventWithTimestampCountContextData with service ID 0x08 serves as a standardized application interface for smart sensors to report security events together with a timestamp, a start count value, and optional context data to the Intrusion Detection System Manager (IdsM) [SWS_IdsM_91021]. The declaration of this interface is provided via header IdsM.h [SWS_IdsM_91021].

The call is executed synchronously and uses input parameters exclusively, while neither input/output parameters nor output parameters exist [SWS_IdsM_91021]. The following parameters must be passed during the call [SWS_IdsM_91021]:

  • securityEventId: Identifier of the specific security event to be transmitted to the IdsM [SWS_IdsM_91021].
  • timestamp: Timestamp value acting as the temporal reference of the occurred security event [SWS_IdsM_91021].
  • count: Count value used by the IdsM as the initial value for the respective security event [SWS_IdsM_91021].
  • contextData: Pointer to optional context data for the event; if no data is available, NULL_PTR must be passed [SWS_IdsM_91021].
  • contextDataSize: Numerical specification of the size of the passed context data [SWS_IdsM_91021].

Regarding execution behavior, the function is classified as non-reentrant (Non Reentrant) and has no return value (void) [SWS_IdsM_91021]. Calling smart sensors must therefore ensure that no concurrent or overlapping calls to the interface occur [SWS_IdsM_91021].

This text was generated by an AI and serves as guidance.

Implementer's Guide to follow (complexity I1)

function IdsM_BswM_StateChanged [SWS_IdsM_91005] 📄 PDF

void IdsM_BswM_StateChanged (IdsM_Filters_BlockStateType state);

This callback function is invoked by the BswM to indicate ECU state changes.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 16285d55bd09 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The callback function IdsM_BswM_StateChanged ([SWS_IdsM_91005]) is called by the BswM to signal changes in the current ECU state to the Intrusion Detection System Manager (IdsM) ([SWS_IdsM_91005]). It is declared in the header file IdsM_Cbk.h and has the Service ID 0x0F ([SWS_IdsM_91005]).

The interface has the signature void IdsM_BswM_StateChanged (IdsM_Filters_BlockStateType state) ([SWS_IdsM_91005]). The input parameter state of type IdsM_Filters_BlockStateType, which represents the current ECU state ([SWS_IdsM_91005]), serves as the sole passed value. Neither input/output parameters nor output parameters are provided, and the function returns no return value ([SWS_IdsM_91005]). The call is executed synchronously and is classified as reentrant ([SWS_IdsM_91005]).

In functional interaction, this notification service serves to continuously inform the IdsM about the current state via the BswM ([SWS_IdsM_01022]). The received state information is retained in the IdsM and evaluated during subsequent asynchronous processing of block state filters (block state filter) within the main function (main function) ([SWS_IdsM_01022]). No specific error codes, return values, or notifications to the Development Error Tracer (DET) or Diagnostic Event Manager (DEM) are defined for this call within the scope of the specification.

This usage note was generated automatically and is based on the specification requirements of AUTOSAR Classic R20-11.

Implementer's Guide to follow (complexity I1)

function IdsM_TpTxConfirmation [SWS_IdsM_91011] 📄 PDF

void IdsM_TpTxConfirmation (PduIdType id, Std_ReturnType result);

This function is called after the I-PDU has been transmitted on its network, the result indicates whether the transmission was successful or not.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 127e922f9325 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The callback function IdsM_TpTxConfirmation is declared as a synchronous and reentrant service via the header file IdsM_Cbk.h [SWS_IdsM_91011]. According to [SWS_IdsM_01502], the module IdsM receives the confirmation from the module PduR for the transmission of a segmented PDU via this service. The call occurs as soon as the respective I-PDU has been transmitted on the underlying network [SWS_IdsM_91011].

The interface has the service ID 0x48 and returns no value (void) [SWS_IdsM_91011]. Two input parameters are passed upon the call:

  • id (type PduIdType): Unique identification of the transmitted I-PDU [SWS_IdsM_91011].
  • result (type Std_ReturnType): Transmits the result of the I-PDU transmission and indicates whether the transmission was successful or failed [SWS_IdsM_91011].

Specific error codes as well as DET or DEM notifications are not defined for this call in the specification. Thanks to the specified reentrancy, the function can be called by the calling layer in parallel for different I-PDUs [SWS_IdsM_91011]. Interpretation: The module IdsM is likely to evaluate the status parameter result in order to update the internal transmission status of the segmented PDU and release occupied transmit buffers upon completion. Question Q-9179efcbf744346d (open)

This text was created by an AI and is based exclusively on the specifications of AUTOSAR R20-11.

Implementer's Guide to follow (complexity I2)

function IdsM_TxConfirmation [SWS_IdsM_91009] 📄 PDF

void IdsM_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.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 2d20d4e11a8b Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

use

The callback function IdsM_TxConfirmation ([SWS_IdsM_91009]) is called by an underlying communication interface module to confirm the successful sending of a PDU or the failure of the transmission. It is defined synchronously, declared in IdsM_Cbk.h, and has no return value. It accepts the following parameters:

  • TxPduId: Identifier of the transmitted PDU ([SWS_IdsM_91009]).
  • result: Transmission result with E_OK upon successful transmission or E_NOT_OK if an error occurred ([SWS_IdsM_91009]).

Concurrency and Limitations

The function is reentrant for different PDU IDs, but non-reentrant for the same TxPduId ([SWS_IdsM_91009]).

Interplay and Sequence Conditions

A strict sequence condition applies to the transmission sequence: According to [SWS_IdsM_01499], the IdsM may call the send function PduR_IdsMTransmit again only after IdsM_TxConfirmation or IdsM_TpTxConfirmation has been called beforehand. Interpretation: The arrival of the confirmation likely serves in the IdsM as a trigger to complete the transmission and enable subsequent calls. Question Q-dd4013520e85370c (open)

Error handling

A failure of the PDU transmission is reported directly via the parameter result = E_NOT_OK ([SWS_IdsM_91009]). Specific DET or DEM error codes are not designated in the interface specification.

This text was automatically generated based on the specification AUTOSAR CP R20-11.

Implementer's Guide to follow (complexity I1)

function IdsM_Dcm_GetReportingMode_RequestResults [SWS_IdsM_91007] 📄 PDF

Std_ReturnType IdsM_Dcm_GetReportingMode_RequestResults (Dcm_OpStatusType OpStatus, uint8* Out_ReportingMode, Dcm_NegativeResponseCodeType* ErrorCode);

This function is a request from DCM to the IdsM to read the routine results triggered by function IdsM_Dcm_GetReportingMode_Start().

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 671f0dddec56 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Usage and Call Context

The synchronous function IdsM_Dcm_GetReportingMode_RequestResults (Service ID 0x0D, header IdsM_Cbk.h) is called by the Diagnostic Communication Manager (DCM) to query the routine results of a request previously initiated via IdsM_Dcm_GetReportingMode_Start() [SWS_IdsM_91007]. Via the input parameter OpStatus, the current operation status is transmitted [SWS_IdsM_91007]. Upon successful completion, the function returns E_OK and outputs the determined reporting mode of the requested security event via the output pointer Out_ReportingMode [SWS_IdsM_91007]. If processing is not yet completed, it signals this via the return value DCM_E_PENDING [SWS_IdsM_91007].

Error handling

If the query fails, the function returns E_NOT_OK [SWS_IdsM_91007]. In this case, a specific Negative Response Code (Dcm_NegativeResponseCodeType) must be set via the parameter ErrorCode; if this remains unset, the DCM sends the error code 0x22 [SWS_IdsM_91007]. Specific DET or DEM events are not designated for this service [SWS_IdsM_91007].

Concurrency and Interaction

The function is specified as reentrant [SWS_IdsM_91007]. With regard to the call sequence, it strictly requires that the routine was previously triggered via IdsM_Dcm_GetReportingMode_Start() [SWS_IdsM_91007]. Interpretation: Parameter OpStatus is likely used by the DCM during repeated queries after DCM_E_PENDING has been returned to coordinate the progress of the diagnostic operation. Question Q-c268fab018a1f5b3 (open)

This usage note was generated by an AI based on the AUTOSAR R20-11 specification.

Implementer's Guide to follow (complexity I2)

function IdsM_Dcm_GetReportingMode_Start [SWS_IdsM_91006] 📄 PDF

Std_ReturnType IdsM_Dcm_GetReportingMode_Start (uint16 In_SecurityEventId, uint8 In_SensorInstanceId, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function is a request from DCM to the IdsM to start the routine execution to request the current reporting mode of a specific Security Event ID.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 78410b323fc8 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The function IdsM_Dcm_GetReportingMode_Start is called by the diagnostic module (DCM) to start the execution of a routine in the Intrusion Detection System Manager (IdsM) to query the current reporting mode of a specific security event (SEv) [SWS_IdsM_91006], [SWS_IdsM_02001]. The interface is declared in the header IdsM_Cbk.h, has the service ID 0x0C, and is specified as synchronous as well as reentrant [SWS_IdsM_91006].

Upon invocation, the DCM passes the external ID of the security event (In_SecurityEventId), the instance ID of the sensor (In_SensorInstanceId), and the operation status (OpStatus) [SWS_IdsM_91006]. As a return value, the function provides Std_ReturnType:

In case of an error (E_NOT_OK), the IdsM is required to provide a specific Negative Response Code (NRC) via the output parameter ErrorCode; if this does not occur, the DCM sends the NRC 0x22 (Conditions Not Correct) by default [SWS_IdsM_91006].

The function merely initiates the routine; the actual reading of the determined results is subsequently performed via the function IdsM_Dcm_GetReportingMode_RequestResults [SWS_IdsM_91007].

This usage note was generated automatically. All statements are based exclusively on the AUTOSAR Classic R20-11 specification.

Implementer's Guide to follow (complexity I2)

function IdsM_Dcm_SetReportingMode_Start [SWS_IdsM_91008] 📄 PDF

Std_ReturnType IdsM_Dcm_SetReportingMode_Start (uint16 In_SecurityEventId, uint8 In_SensorInstanceId, uint8 In_ReportingMode, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function is a request from DCM to the IdsM to start the routine execution to set the reporting mode of a specific Security Event ID.

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: ecdd252e141c Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The synchronous and reentrant function IdsM_Dcm_SetReportingMode_Start is called by the diagnostic module (DCM) to start the routine for changing the reporting mode (IdsMReportingModeFilter) for a specific security event in the Intrusion Detection System Manager [SWS_IdsM_91008], [SWS_IdsM_01901]. The declaration is provided via the header file IdsM_Cbk.h [SWS_IdsM_91008].

Upon invocation, the external event ID (In_SecurityEventId), the sensor instance ID (In_SensorInstanceId), the reporting mode to be set newly (In_ReportingMode), and the operation status (OpStatus) are passed [SWS_IdsM_91008], [SWS_IdsM_01901]. The function provides the following return values:

  • E_OK: The execution of the operation was completed successfully [SWS_IdsM_91008].
  • DCM_E_PENDING: The processing is not yet completed and is continued asynchronously [SWS_IdsM_91008].
  • E_NOT_OK: The operation has failed; in this case, a concrete Negative Response Code (NRC) must be set via the output parameter ErrorCode, since the DCM will otherwise transmit the NRC 0x22 [SWS_IdsM_91008].

If the validation of the event ID fails because an invalid Security Event Definition ID was used, the function returns E_NOT_OK and strictly sets the error code ErrorCode to DCM_E_REQUESTOUTOFRANGE [SWS_IdsM_01903].

This usage note was generated automatically and is based on the AUTOSAR specifications.

Implementer's Guide to follow (complexity I2)

type IdsM_Filters_BlockStateType [SWS_IdsM_91017] 📄 PDF

Data type used for "Block State" filter values (bit masks)

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 71b3951aed67 Provenance Open questions (1)
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The data type IdsM_Filters_BlockStateType serves to define bitmasks for so-called “Block State” filters of the Intrusion Detection System Manager (IdsM) according to [SWS_IdsM_91017]. The type is derived from uint16, covers the integer value range from 0 to 65535, and is made available to software modules via the header IdsM_Filters_Types.h ([SWS_IdsM_91017]).

The primary usage occurs in interaction with the Basic Software Mode Manager (BswM). Upon changes to the system or ECU state, the BswM calls the callback function IdsM_BswM_StateChanged and passes the current ECU state via parameter state of this type ([SWS_IdsM_91005]). This callback interface is declared in IdsM_Cbk.h, has no return values, and is specified as synchronous and reentrant ([SWS_IdsM_91005]).

Interpretation: Since the type is designed as a bitmask for filters, the IdsM likely compares the passed ECU state value with configured filter states to filter the capturing or blocking of security events depending on the ECU state. Question Q-00b355cc5ec6383f (open) Independent error handling with specific error codes, DET, or DEM notifications does not exist for this data type.

This note was generated by an AI and relies exclusively on the specification data from AUTOSAR CP R20-11.

Implementer's Guide to follow (complexity I1)

type IdsM_Filters_ReportingModeType [SWS_IdsM_91013] 📄 PDF

Reporting modes used by the reporting mode filter

AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 4e0ba45d0047 Provenance
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

The data type IdsM_Filters_ReportingModeType is based on the base type uint8 and is provided for software components via the header file IdsM_Types.h [SWS_IdsM_91013]. It describes the standardized reporting modes that are applied within the reporting mode filter in the Intrusion Detection System Manager (IdsM) for the targeted processing and forwarding of security events [SWS_IdsM_91013].

The defined enumeration values control precisely whether an event is reported and which level of detail is used in the process [SWS_IdsM_91013]:

  • IDSM_REPORTING_MODE_OFF (0x00): The event is suppressed and not reported to higher-level entities [SWS_IdsM_91013].
  • IDSM_REPORTING_MODE_BRIEF (0x01): The event is reported in compact form without additional context data [SWS_IdsM_91013].
  • IDSM_REPORTING_MODE_DETAILED (0x02): The event is reported in detail, including all relevant context data [SWS_IdsM_91013].
  • IDSM_REPORTING_MODE_BRIEF_BYPASSING_FILTERS (0x03): The event bypasses subsequent filter stages and is reported unfiltered without context data [SWS_IdsM_91013].
  • IDSM_REPORTING_MODE_DETAILED_BYPASSING_FILTERS (0x04): The event bypasses subsequent filter stages and is reported unfiltered including all context data [SWS_IdsM_91013].
  • IDSM_REPORTING_MODE_INVALID (0xFF): Designates an invalid reporting mode within the range of values [SWS_IdsM_91013].

The values thus combine two functional control dimensions: the level of detail via the context data, as well as the deliberate circumvention of regular filtering mechanisms through bypassing [SWS_IdsM_91013]. This enables the IdsM to handle security incidents in a differentiated manner depending on criticality and filter configuration [SWS_IdsM_91013].

This text was generated by an AI based on the R20-11 specification.

Implementer's Guide to follow (complexity I1)

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

Record
AUTOSAR/AP/record/CP_MOD_IdsM
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_IdsM@rel:R20-11#37048766
Content hash
37048766
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_IntrusionDetectionSystemManager.pdf#nameddest=SWS_IdsM_91001

Initialization and status

Returns version information, vendor ID and AUTOSAR module ID of the component.

void IdsM_GetVersionInfo (const Std_VersionInfoType* versionInfo);
IdsM_Init function

Service to initialize the module IdsM. It initializes all variables and sets the module state to initialized.

void IdsM_Init (const IdsM_ConfigType* configPtr);

Services

This callback function is invoked by the BswM to indicate ECU state changes.

void IdsM_BswM_StateChanged (IdsM_Filters_BlockStateType state);

This function is a request from DCM to the IdsM to read the routine results triggered by function IdsM_Dcm_GetReportingMode_Start().

Std_ReturnType IdsM_Dcm_GetReportingMode_RequestResults (Dcm_OpStatusType OpStatus, uint8* Out_ReportingMode, Dcm_NegativeResponseCodeType* ErrorCode);

This function is a request from DCM to the IdsM to start the routine execution to request the current reporting mode of a specific Security Event ID.

Std_ReturnType IdsM_Dcm_GetReportingMode_Start (uint16 In_SecurityEventId, uint8 In_SensorInstanceId, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This function is a request from DCM to the IdsM to start the routine execution to set the reporting mode of a specific Security Event ID.

Std_ReturnType IdsM_Dcm_SetReportingMode_Start (uint16 In_SecurityEventId, uint8 In_SensorInstanceId, uint8 In_ReportingMode, Dcm_OpStatusType OpStatus, Dcm_NegativeResponseCodeType* ErrorCode);

This API is the application interface to report security events to the IdsM.

void IdsM_SetSecurityEvent (IdsM_SecurityEventIdType securityEventId);

This API is the application interface to report security events with context data to the IdsM.

void IdsM_SetSecurityEventWithContextData (IdsM_SecurityEventIdType securityEventId, const uint8* contextData, uint16 contextDataSize);

This API is the application interface for Smart Sensors to report security events with a count value to the IdsM.

void IdsM_SetSecurityEventWithCount (IdsM_SecurityEventIdType securityEventId, uint16 count);

This API is the application interface for Smart Sensors to report security events with a count value and context data to the IdsM.

void IdsM_SetSecurityEventWithCountContextData (IdsM_SecurityEventIdType securityEventId, uint16 count, const uint8* contextData, uint16 contextDataSize);

This API is the application interface for Smart Sensors to report security events with a timestamp and a count value to the IdsM.

void IdsM_SetSecurityEventWithTimestampCount (IdsM_SecurityEventIdType securityEventId, IdsM_TimestampType timestamp, uint16 count);

This API is the application interface for Smart Sensors to report security events with a timestamp, a count value and context data to the IdsM.

void IdsM_SetSecurityEventWithTimestampCountContextData (IdsM_SecurityEventIdType securityEventId, IdsM_TimestampType timestamp, uint16 count, const uint8* contextData, uint16 contextDataSize);

Callbacks

This function is called to acquire the transmit data of an I-PDU segment (N-PDU). Each call to this function provides the next part of the I-PDU data unless retry->TpDataState is TP_ DATARETRY. In this case the function restarts to copy the data beginning at the offset from the current position indicated by retry->TxTpDataCnt. The size of the remaining data is written to the position indicated by availableDataPtr.

BufReq_ReturnType IdsM_CopyTxData (PduIdType id, const PduInfoType* info, const RetryInfoType* retry, PduLengthType* availableDataPtr);

This function is called after the I-PDU has been transmitted on its network, the result indicates whether the transmission was successful or not.

void IdsM_TpTxConfirmation (PduIdType id, Std_ReturnType result);

The lower layer communication interface module confirms the transmission of a PDU, or the failure to transmit a PDU.

void IdsM_TxConfirmation (PduIdType TxPduId, Std_ReturnType result);

Cyclic

This function is called periodically. It processes security events asynchronously which are queued during API function calls.

void IdsM_MainFunction (void);

Types

Configuration data structure of IdsM module.

Data type used for "Block State" filter values (bit masks)

Reporting modes used by the reporting mode filter

Data type used for local IdsM Security Event IDs

Data type for IdsM timestamps