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

模块指南人工智能生成

收集传感器的安全事件,对其进行过滤并将合格事件转发至接收端。
AI 生成 未审核 模型: claude-opus-5-5 · 推理强度: high · 温度: 不可控 · 提示词: cd24ae65ba9c 来源 未决问题(2)
因果锚点:R20-11 自 R20-11 起有效 为此规范版本重新合成。
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

收集传感器的安全事件,对其进行过滤并将合格事件转发至接收端。

IdsM 收集由 BSW 模块、CDD 和 SW-C 报告的 Security Event,对其进行缓冲并在 IdsM_MainFunction 中进行异步处理 [SWS_IdsM_00702]。Reporting Mode 以及由 Block-State、Sampling、Aggregation 和阈值过滤器组成的过滤链将其转换为合格事件 [SWS_IdsM_01004]。这些事件通过 PduR 发送至 IdsR,或存储在 DEM/Sem 中。时间戳、签名和诊断访问是可选的。IdsM 不评估上下文数据的含义;对攻击的响应位于模块外部。

IdsM 接收来自安全传感器的 Security Event(SEv),即来自 BSW 模块、CDD 和 SW-C。它通过过滤链将其转换为 Qualified Security Event(QSEv)[SWS_IdsM_00902]。它通过 PduR 将 QSEv 发送至 IdsR,存储在 DEM/Sem 中,或两者兼有 [SWS_IdsM_01202] [SWS_IdsM_01600]。它不评估上下文数据的含义。对攻击的响应位于模块外部,例如在 SOC 中 [SWS_IdsM_CONSTR_00001]。

kontext sensoren 传感器 (BSW、CDD、通过 RTE 的 SW-C) 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 (其他 ECU) pdur->idsr IDS-Nachricht

上下文图:IdsM 连接报告传感器与接收端 PduR/IdsR 及 DEM/Sem。BswM、StbM、CSM、DCM 和 NvM 为可选连接。来源:SWS IdsM 第20页、[SWS_IdsM_91023]

传感器通过 IdsM_SetSecurityEvent 或带有上下文数据(最多 1500 字节)、计数器和时间戳的五种变体之一进行报告 [SWS_IdsM_00300] [SWS_IdsM_00404] [SWS_IdsM_00501]。在此过程中,它们始终使用 IdsMEvent 的符号名称 [SWS_IdsM_00607]。报告服务仅缓冲 SEv。实际处理在 IdsM_MainFunction 中异步运行 [SWS_IdsM_00702]。若缺少空闲的 Event Buffer,只要进行了配置,IdsM 就会触发一个内部 SEv [SWS_IdsM_00703]。

限定始于 Reporting Mode。可能的值包括 OFF、BRIEF、DETAILED 以及绕过过滤器的变体 [SWS_IdsM_01002] [SWS_IdsM_91013]。随后活动过滤器按固定顺序运行:Block State、Forward Every n-th、Aggregation、Threshold [SWS_IdsM_01004]。若过滤器丢弃了 SEv,则评估结束 [SWS_IdsM_01005]。在发送至 IdsR 之前,速率和流量限制也会生效 [SWS_IdsM_01070]。这些限制大概率也适用于绕过模式(解读)。 问题 (未决)

filterkette a 来自事件缓冲区的 SEv (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 不 bs->drop 是 ag Event Aggregation Filter: Intervallende erreicht? fn->ag 是 fn->drop 不 coll 在聚合时间间隔内 收集(计数器累加) ag->coll 不 th Event Threshold Filter: Summe mindestens IdsMEventThresholdNumber? ag->th 是,总和计数器 th->drop 不 th->q 是 sink Konfigurierte Senken q->sink lim 速率限制(Rate Limitation), 随后流量限制(Traffic Limitation) sink->lim IdsMSinkIdsR (解释:绕过时亦同) dem Dem / Sem (DRAFT) sink->dem IdsMSinkDem lim->drop 超出限制 idsr PduR an IdsR lim->idsr 在限制范围内

活动图:先是 Reporting Mode,然后是过滤链,最后是 IdsR 之前的实例限制。来源:SWS IdsM 第35页、[SWS_IdsM_01004]、[SWS_IdsM_01070]

可选地可以启用其他功能 [SWS_IdsM_01100] [SWS_IdsM_01204] [SWS_IdsM_01901] [SWS_IdsM_01702]:

  • 来自 StbM 或来自应用程序的时间戳
  • 通过 CSM 进行签名
  • 通过 DCM 读取和修改 Reporting Mode,具备 NvM 持久化并在出错时回滚

IdsM 仅在 IdsMDevErrorDetect 处于激活状态时才向 DET 报告开发错误 [SWS_IdsM_02003]。接收端 DEM/Sem 在 R20-11 中的状态为 DRAFT [SWS_IdsM_01601]。

角色:从上报的安全事件到合格事件

Intrusion Detection System Manager (IdsM) 收集安全事件(SEv)。这些事件由安全传感器检测并上报,即 BSW 模块、Complex Device Driver 或 SW-C SWS IdsM 第10页。IdsM 会根据可配置的过滤器序列(即过滤链)检查每个 SEv。若 SEv 通过该检查,则转变为合格安全事件(QSEv)[SWS_IdsM_00902]。只有 QSEv 会被进一步处理。它们通过 PduR 发送到另一台控制器上的 IdsR,存储在 DEM/Sem 中,或者两者兼有 [SWS_IdsM_01202] [SWS_IdsM_01600] SWS IdsM 第35页。

系统边界划分得很窄。IdsM 不了解上下文数据的含义,因此不会自行判断系统是否受到损害。检测与响应位于该模块外部,例如在 SOC 中 [SWS_IdsM_CONSTR_00001]。与其他模块之间不存在强制接口 [SWS_IdsM_91023]。所有耦合均通过配置启用。条件头文件包含体现了这一点:

  • Det.h 在 IdsMDevErrorDetect 下
  • Dem.h 在 IdsMSinkDem 下
  • Dcm.h 在 IdsMDiagnosticSupport 下
  • NvM.h 在 IdsMNvmBlockDescriptor 下
  • PduR.h 在 IdsMSinkIdsR 下

这些包含关系的依据:[SWS_IdsM_00101] 至 [SWS_IdsM_00105]。

kontext sensoren 传感器 (BSW、CDD、通过 RTE 的 SW-C) 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 (其他 ECU) pdur->idsr IDS-Nachricht

上下文图:IdsM 位于上报传感器与接收端 PduR/IdsR 以及 DEM/Sem 之间。BswM、StbM、CSM、DCM 和 NvM 提供运行状态、时间、签名及诊断访问。来源:SWS IdsM 第20页、SWS IdsM 第14页、[SWS_IdsM_01022]、[SWS_IdsM_01104]、[SWS_IdsM_01206]、[SWS_IdsM_01701]

启动、事件标识与上报接口

IdsM_Init 初始化所有内部变量,并将模块置于“已初始化”状态 [SWS_IdsM_00202] [SWS_IdsM_91001]。在此时间点之前,仅允许调用 IdsM_Init 和 IdsM_GetVersionInfo SWS IdsM 第21页。再次调用 IdsM_Init 不会对模块进行二次初始化 [SWS_IdsM_00204]。

lebenszyklus start 开始 uninit 未初始化 start->uninit uninit->uninit 除 IdsM_Init / IdsM_GetVersionInfo 之外的其他 API: Det_ReportError IDSM_E_UNINIT (仅在启用 IdsMDevErrorDetect 时) init Initialisiert uninit->init IdsM_Init(configPtr): 所有内部变量已初始化 init->init 再次调用 IdsM_Init:不进行重新初始化, Det_ReportError IDSM_E_ALREADY_INITIALIZED (仅在启用 IdsMDevErrorDetect 时) init->init IdsM_MainFunction, Melde-Dienste, Callbacks

状态图:该模块具有两个状态。在两种状态下的错误调用,仅在开发错误检测处于激活状态时才会向 DET 报告错误。来源:[SWS_IdsM_00202]、[SWS_IdsM_00203]、[SWS_IdsM_00204]、SWS IdsM 第21页

每个 SEv 由三个标识符和事件名称来标识 [SWS_IdsM_00600]:

传感器仅通过 IdsMEvent 容器的符号名称进行上报。不得依赖其内部值 [SWS_IdsM_00602] [SWS_IdsM_00607]。提供了六个用于上报的服务:

服务附加数据出处
IdsM_SetSecurityEvent无[SWS_IdsM_00300]
IdsM_SetSecurityEventWithContextData上下文数据[SWS_IdsM_00301]
IdsM_SetSecurityEventWithCount计数器(智能传感器)[SWS_IdsM_00401]
IdsM_SetSecurityEventWithCountContextData计数器、上下文数据[SWS_IdsM_00402]
IdsM_SetSecurityEventWithTimestampCount时间戳、计数器[SWS_IdsM_00403]
IdsM_SetSecurityEventWithTimestampCountContextData时间戳、计数器、上下文数据[SWS_IdsM_00404]

传感器将上下文数据作为指向字节数组的指针传递。支持最多 1500 字节 [SWS_IdsM_00501] [SWS_IdsM_00502]。具有时间戳但没有独立计数器的实体,使用 count = 1 进行上报 [SWS_IdsM_00405]。

外部 ID 在 0x8000–0xFFFE 范围内的 SW-C 通过服务接口 IdsMService_{EventName} 或 IdsMSmartSensorService_{EventName} 访问 IdsM。适用哪个接口取决于 IdsMAdditionalParameterOption(None、Count、CountTimestamp)[SWS_IdsM_91027] [SWS_IdsM_91028] [SWS_IdsM_01301] [SWS_IdsM_01303]。在 R20-11 中,这些服务具有规范性。后续版本将其标记为 OBSOLETE SWS IdsM 第67页。

IdsM_MainFunction 中的缓冲与异步处理

上报服务不会立即处理 SEv。IdsM 首先将其存放在 Event Buffer 中。过滤与传递在周期性调用的 IdsM_MainFunction 中稍后异步执行 [SWS_IdsM_00702] [SWS_IdsM_00901] [SWS_IdsM_91000]。Event Buffer 的数量(IdsMNumberOfEventBuffers)是可配置的 [SWS_IdsM_00701]。作为参考值,规范建议采用聚合过滤器实例数加上并行处理事件上限的总和 SWS IdsM 第24页。

报告并异步处理 SEvSensorIdsMBswDefaultTaskStbM接收器(PduR / Dem)Use Case: 在传感器上下文中报告IdsM_SetSecurityEvent(securityEventId)或五种变体之一SEv in Event Buffer ablegen必要时关联 Context Data Buffer返回 (void)Use Case: Zyklische VerarbeitungIdsM_MainFunction()optIdsMTimestampOption = AUTOSAR, kein Zeitstempel gemeldetStbM_GetCurrentTime()aktuelle Zeit所有已缓冲的 SEv:Reporting Mode,Filterkette, Zeitstempel zuordnenoptSEv als QSEv qualifiziertQSEv an konfigurierte Senken

时序图:上报在缓冲后立即返回。时间戳、过滤和传递直到 IdsM_MainFunction 中才执行。来源:SWS IdsM 第86页、[SWS_IdsM_00702]、[SWS_IdsM_00901]、[SWS_IdsM_01107]

上下文数据存放在大小可配置(最大 1500 字节)的专用 Context Data Buffer 中 [SWS_IdsM_00704] SWS IdsM 第122页。IdsM 选择相同或下一个更大尺寸的缓冲区,并将其与 Event Buffer 关联 [SWS_IdsM_00705] [SWS_IdsM_00706]。不带上下文数据的 SEv 不会占用此类缓冲区 [SWS_IdsM_00709]。对于 IdsM 自身的内部 SEv,设有专门且独立的缓冲区 [SWS_IdsM_00802]。

puffer a 通过报告服务接收 SEv b Event Buffer frei? a->b c Interner SEv IDSM_INTERNAL_EVENT_NO_EVENT_BUFFER_AVAILABLE (falls konfiguriert) b->c 不 d SEv in Event Buffer speichern b->d 是 x SEv 无法处理 c->x e Kontextdaten gemeldet? d->e f 相同或下一个更大尺寸的 Context Data Buffer 是否空闲? e->f 是 i 在无上下文数据的情况下继续处理 SEv e->i 不 g 将 Context Data Buffer 与 Event Buffer 关联 f->g 是 h Interner SEv IDSM_INTERNAL_EVENT_NO_CONTEXT_DATA_BUFFER_AVAILABLE (falls konfiguriert) f->h 不 j Asynchrone Verarbeitung in IdsM_MainFunction g->j h->i i->j

活动图:SEv 到达时缓冲区的分配方式。如果缺少上下文缓冲区,则在不带上下文数据的情况下处理 SEv。如果缺少 Event Buffer,则无法处理该 SEv。来源:[SWS_IdsM_00703]、[SWS_IdsM_00705]、[SWS_IdsM_00707]、[SWS_IdsM_00708]、[SWS_IdsM_91015]、SWS IdsM 第27页

合格化:Reporting Mode、过滤链与实例限制

IdsM 首先评估 Reporting Mode。每个 SEv 恰好具有一个 Reporting Mode 过滤器。该过滤器为必选,直接挂接在 SEv 上,不属于过滤链 [SWS_IdsM_01010] [SWS_IdsM_01011]。起始值来自 IdsMReportingModeFilter [SWS_IdsM_01012]。过滤链在此之后才起作用 [SWS_IdsM_01002]。IdsM_Filters_ReportingModeType 支持以下模式 [SWS_IdsM_91013]:

  • IDSM_REPORTING_MODE_OFF:不报告该事件。
  • IDSM_REPORTING_MODE_BRIEF:不带上下文数据进行上报。
  • IDSM_REPORTING_MODE_DETAILED:带上下文数据进行上报。
  • 两种 …_BYPASSING_FILTERS 变体:像 BRIEF 或 DETAILED 那样上报,但不过滤。

过滤链分配给 SEv [SWS_IdsM_01001] [SWS_IdsM_00903]。每个 IdsMFilterChain 至少需要一个过滤器 [SWS_IdsM_CONSTR_00002]。活动的过滤器按固定顺序执行 [SWS_IdsM_01004]。一旦某个过滤器丢弃了该 SEv,评估立即终止。否则,SEv 将传递给下一个过滤器 [SWS_IdsM_00904] [SWS_IdsM_00905] [SWS_IdsM_01005]。按此顺序排列的四个过滤器:

  1. Block State:BswM 通过 IdsM_BswM_StateChanged 以类型为 IdsM_Filters_BlockStateType 的位掩码形式报告当前状态。若该状态在 IdsMBlockState 中被引用,则过滤器丢弃该 SEv [SWS_IdsM_01022] [SWS_IdsM_01023] [SWS_IdsM_91017]。一个过滤器最多可引用 16 个状态 SWS IdsM 第85页。
  2. Forward Every n-th:转发第一个 SEv,此后根据 IdsMNthParameter 转发每第 n 个。在此期间数据保持不变 [SWS_IdsM_01031] [SWS_IdsM_01032] [SWS_IdsM_01033]。
  3. Event Aggregation:在时间间隔内,过滤器不转发任何内容。在时间间隔结束时,生成一个带有累计计数器 [SWS_IdsM_01043] 的单一 SEv [SWS_IdsM_01046]。上下文数据和时间戳来自该间隔内的第一个或最后一个 SEv,具体取决于 IdsMContextDataSourceSelector [SWS_IdsM_01047] [SWS_IdsM_01049]。示例见 SWS IdsM 第40页。
  4. Event Threshold:只要当前间隔内的计数器总和低于 IdsMEventThresholdNumber,过滤器就会丢弃 SEv。随着间隔期满,总和将被重置 [SWS_IdsM_01061] [SWS_IdsM_01062] [SWS_IdsM_01063]。示例见 SWS IdsM 第41页。

所有间隔均为 IdsMMainFunctionPeriod 的整数倍。聚合和阈值间隔自 Main Function 首次调用起开始运行 [SWS_IdsM_01050] [SWS_IdsM_01051] [SWS_IdsM_01065]。

在发送给 IdsR 之前,针对整个 IdsM 实例会有两项限制生效 [SWS_IdsM_01070]:

IdsM 的内部 SEv 不经过这些实例过滤器。但它们允许拥有特定于事件的过滤器 [SWS_IdsM_00803] [SWS_IdsM_00804]。解释:Bypass 模式仅绕过过滤链。 问题 (未决)速率和流量限制大概率也适用于它们,因为 [SWS_IdsM_01070] 要求在向 IdsR 进行每次传输之前都执行这些限制。

filterkette a 来自事件缓冲区的 SEv (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 不 bs->drop 是 ag Event Aggregation Filter: Intervallende erreicht? fn->ag 是 fn->drop 不 coll 在聚合时间间隔内 收集(计数器累加) ag->coll 不 th Event Threshold Filter: Summe mindestens IdsMEventThresholdNumber? ag->th 是,总和计数器 th->drop 不 th->q 是 sink Konfigurierte Senken q->sink lim 速率限制(Rate Limitation), 随后流量限制(Traffic Limitation) sink->lim IdsMSinkIdsR (解释:绕过时亦同) dem Dem / Sem (DRAFT) sink->dem IdsMSinkDem lim->drop 超出限制 idsr PduR an IdsR lim->idsr 在限制范围内

活动图:先是 Reporting Mode,然后是按固定顺序的过滤器,最后是在 IdsR 之前的实例限制。未配置的过滤器将被省略。来源:SWS IdsM 第35页、[SWS_IdsM_01002]、[SWS_IdsM_01004]、[SWS_IdsM_01070]、[SWS_IdsM_91013]

时间戳、IDS 报文与接收端

时间戳是可选的,通过 IdsMTimestampOption 进行全局控制 [SWS_IdsM_01100]:

若传感器自身提供了时间戳,则优先使用该时间戳 [SWS_IdsM_01108]。IdsM 将其截断为低 62 位 [SWS_IdsM_01110]。根据时序流程图,IdsM 在 Main Function 中为所有已缓冲事件确定时间戳 SWS IdsM 第87页。

zeitstempel a QSEv aufbereiten opt IdsMTimestampOption? a->opt none 无时间戳; 忽略一并上报的时间戳 opt->none None given 传感器是否一并上报了 时间戳? opt->given AUTOSAR / Custom trunc 截断至 62 个低有效位 并使用 given->trunc 是 src 按选项确定的来源? given->src 不 add Zeitstempel in QSEv aufnehmen trunc->add stbm StbM_GetCurrentTime() src->stbm AUTOSAR cust IdsM_CustomTimestamp,操作 Get 通过端口 CustomTimestamp src->cust Custom stbm->add cust->add

活动图:如何根据 IdsMTimestampOption 选择时间戳来源。来源:[SWS_IdsM_01106]、[SWS_IdsM_01107]、[SWS_IdsM_01108]、[SWS_IdsM_01109]、[SWS_IdsM_01110]、SWS IdsM 第86页

无论发送至哪个接收端,QSEv 都具有相同的结构 [SWS_IdsM_01200]。IDS 报文由 Event Frame 以及可选的 Timestamp、Context Data 和 Signature 组成 PRS IDS 第11页。事件使用哪些接收端由 IdsMEvent 的配置决定 [SWS_IdsM_01201]。

签名是可选的。一旦配置了 IdsMCsmJobReference,它就会全局激活。它通过 Csm_SignatureGenerate 触发。对于同步任务,签名立即可用;对于异步任务,IdsM_CsmNotification 会报告结果 [SWS_IdsM_01204] [SWS_IdsM_01206] [SWS_IdsM_01207] [SWS_IdsM_01208]。

对于接收端 IdsR,IdsM 通过 PduR_IdsMTransmit 发送 [SWS_IdsM_01498]。若报文能容纳在总线 PDU 中,则使用 IF-PDU,否则使用 TP-PDU [SWS_IdsM_01400] [SWS_IdsM_01401]。只有在前一个发送请求确认之后,才会发起新的发送请求 [SWS_IdsM_01499]。接收端 DEM/Sem 存储完整的 IDS 报文。它在 R20-11 中的状态为 DRAFT [SWS_IdsM_01601] [SWS_IdsM_01602]。

QSEv 向 IdsR 的签名和传输IdsMCsmPduRUse Case: Optional: Signatur (IdsMCsmJobReference konfiguriert)Csm_SignatureGenerate()altsynchroner Csm-Job返回:签名立即可用asynchroner Csm-JobIdsM_CsmNotification()Use Case: 传输 (IdsMSinkIdsR)PduR_IdsMTransmit()altIDS 报文适配总线 PDU (IdsMIfTxPdu)IdsM_TxConfirmation(TxPduId, result)否则分段 (IdsMTpTxPdu)loop直至 PDU 完全复制完毕IdsM_CopyTxData(id, info, retry, availableDataPtr)BufReq_ReturnTypeIdsM_TpTxConfirmation(id, result)Kein weiteres PduR_IdsMTransmit确认之前

时序图:首先是通过 CSM 进行可选签名,然后作为 IF-PDU 或分段的 TP-PDU 进行带确认的传输。来源:[SWS_IdsM_01207]、[SWS_IdsM_01208]、[SWS_IdsM_01500]、[SWS_IdsM_01501]、[SWS_IdsM_01502]、SWS IdsM 第49页

诊断重配置与 Reporting Mode 的持久化

诊断访问是可选的,通过 IdsMDiagnosticSupport 启用 [SWS_IdsM_01800]。

成功修改后,IdsM 触发 NvM_WriteBlock [SWS_IdsM_01701]。若持久化失败,它将恢复先前的值并报告 DCM_E_GENERALPROGRAMMINGFAILURE [SWS_IdsM_01702] [SWS_IdsM_01904] [SWS_IdsM_01905]。

启动时,IdsM 使用持久化的值。若不存在,则配置生效 [SWS_IdsM_01703] [SWS_IdsM_01704]。NvM 块必须包含在 NvM_ReadAll 中,其名称为 IdsM_NvMRamBlockData 或 IdsM_NvMRomBlockData [SWS_IdsM_01705] [SWS_IdsM_01706] [SWS_IdsM_01707]。推测 DCM 是通过使用 OpStatus 的重复调用获知持久化结果的 DCM_PENDING。 问题 Q-65ac99385a597b7d (未决)后续版本为此指定了 DCM_E_BUSYREPEATREQUEST SWS IdsM 第75页。

通过诊断更改并读取 Reporting ModeDcmIdsMNvMUse Case: 更改 Reporting ModeIdsM_Dcm_SetReportingMode_Start(In_SecurityEventId,In_SensorInstanceId, In_ReportingMode, OpStatus, ErrorCode)altReporting Mode 或事件 ID 无效E_NOT_OK, DCM_E_REQUESTOUTOFRANGE参数有效更改 IdsMReportingModeFilterNvM_WriteBlock()解释:持久化结果通过带有 OpStatus DCM_PENDING 的调用返回altPersistierung fehlgeschlagen回滚至先前的 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

时序图:具有 NvM 持久化和回滚的 Reporting Mode 修改以及两阶段读取。来源:[SWS_IdsM_01901]、[SWS_IdsM_01904]、[SWS_IdsM_01905]、[SWS_IdsM_91007]、SWS IdsM 第74页。持久化的反馈路径被标记为解释。

发生错误时的行为

IdsM 仅在 IdsMDevErrorDetect 处于激活状态时才向 DET 报告开发错误。错误代码见 [SWS_IdsM_02003]:

注意命名:[SWS_IdsM_00203] 将该代码命名为 IDSM_E_PARAM_UNINIT,而错误表将其列为 IDSM_E_UNINIT (0x0D) [SWS_IdsM_02003]。

如果已配置,IdsM 会将资源瓶颈作为自身的内部 SEv 进行报告 [SWS_IdsM_91015]:

如果过滤器丢弃了某个 SEv,这是正常行为,而非错误 [SWS_IdsM_00904]。发送错误在确认中以 E_NOT_OK 的形式返回 [SWS_IdsM_91009]。带有 IdsMTransmissionRetryDelay 的重试规则直到 R25-11 才引入 SWS IdsM 第51页。

进一步详细证据

基于有效载荷中规范摘录由 AI 生成的指南(AUTOSAR Classic Platform R20-11)。唯有链接的 Demand 具有规范性。标记为解释的陈述未完全被来源覆盖。

Intrusion Detection System Manager (IdsM)

Collects and reports onboard security events to detect threats.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 27dab8d4c20f 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步且不可重入的接口 IdsM_Init 用于根据 [SWS_IdsM_91001] 对模块 IdsM 进行基本初始化。调用时,该服务会初始化所有内部变量,并将 IdsM 转换到已初始化状态([SWS_IdsM_00202])。通过输入参数 configPtr,该函数接收指向模块特定配置结构的指针([SWS_IdsM_91001])。

执行 IdsM_Init 构成了模块运行的强制性功能前提条件。如果在尚未初始化的状态下调用了除 IdsM_Init 或 IdsM_GetVersionInfo 以外的 IdsM API,当开发错误检测(IdsMDevErrorDetect)激活时,模块会通过 Det_ReportError 报告错误 IDSM_E_PARAM_UNINIT([SWS_IdsM_00203],另见 [SWS_IdsM_02003] 下的错误代码 0x0D)。

对于错误处理和调用上下文,适用特定的行为规则:

  • 如果在模块已处于已初始化状态时调用 IdsM_Init,则不会对内部变量进行重新初始化([SWS_IdsM_00204])。
  • 相反,在启用 IdsMDevErrorDetect 的情况下,模块会通过 Det_ReportError 报告数值为 0x0E 的开发错误 IDSM_E_ALREADY_INITIALIZED([SWS_IdsM_00204],[SWS_IdsM_02003])。
  • 该函数无返回值,并被定义为不可重入([SWS_IdsM_91001])。因此,在系统中不得并发调用该函数,也不得由中断上下文多次同时调用该函数。

本说明由 AI 基于 AUTOSAR 规范 R20-11 生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 74bdc1b72d90 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与调用上下文

函数 IdsM_MainFunction 会被周期性调用,并可通过头文件 IdsM.h 获取 [SWS_IdsM_91000]。其签名格式为 void IdsM_MainFunction(void),不接收任何参数,也没有返回值 [SWS_IdsM_91000]。该函数本身的调用是同步的,但用于异步处理先前在同步 API 调用期间排入队列的安全事件(Security Event,SEv)[SWS_IdsM_91000]。周期性触发通常由 BSW 调度器或循环操作系统任务执行。 问题 Q-86e2e870c3496bad (未决)

并发性与限制

根据规范,IdsM_MainFunction 被归类为不可重入(Non Reentrant)[SWS_IdsM_91000]。因此,调用系统环境必须确保该函数在任何时间点仅在一个单实例中执行,且不发生重叠调用。

事件处理中的协同交互

循环处理框架下的主要任务包括以下方面:

  • 事件缓冲区:接收到 SEv 后,IdsM 将其保存在 Event Buffer 中;这些缓冲区在 IdsM_MainFunction 的框架下进行异步管理和过滤 [SWS_IdsM_00702]。
  • 上下文数据缓冲区:若接收到带有上下文数据的 SEv,IdsM 将使用来自 Context Data Buffer Pool 的合适缓冲区;这些缓冲区也在 IdsM_MainFunction 中进行异步处理和过滤 [SWS_IdsM_00705]。
  • 合格化:异步处理保存在 Event Buffer 中的 SEv,以将其识别为合格安全事件(QSEv)[SWS_IdsM_00901]。

此文本由 AI 基于 R20-11 规范生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 5f2ff6078796 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

该回调函数以同步且可重入的方式被调用,以检索 I-PDU(N-PDU)分段的发送数据 [SWS_IdsM_91010]。它通过头文件 IdsM_Cbk.h 提供,并对应服务 ID 0x43 [SWS_IdsM_91010]。

通过 id 识别要传输的 I-PDU [SWS_IdsM_91010]。参数 info 传递目标缓冲区(SduDataPtr)以及请求的字节长度(SduLength);对于 SduLength,值为 0(其中 SduDataPtr 可以是 NULL_PTR)用于参数 retry 中的状态更改或查询剩余数据 [SWS_IdsM_91010]。通过 availableDataPtr,该函数返回 Tx 缓冲区中剩余的数据量,这使得具有动态有效负载长度的传输协议(例如 FrIsoTp)能够确定后续 Consecutive Frame 的大小 [SWS_IdsM_91010]。

如果 retry 为 NULL_PTR,则允许在复制过程之后立即从缓冲区中释放已复制的数据 [SWS_IdsM_91010]。否则,RetryInfoType 控制错误处理:在 TP_CONFPENDING 的情况下,先前复制的数据保留在 TP 缓冲区中,而 TP_DATACONF 确认并释放在本次调用之前复制的所有数据 [SWS_IdsM_91010]。如果 TpDataState 设为 TP_DATARETRY,该函数将从 TxTpDataCnt 指定的字节偏移量处重新复制先前传输的数据 [SWS_IdsM_91010]。

在成功完成完全复制时,该函数返回 BUFREQ_OK [SWS_IdsM_91010]。如果没有足够的发送数据可用,则不会复制任何数据并返回 BUFREQ_E_BUSY,下层模块随后可以重试该调用 [SWS_IdsM_91010]。如果请求失败,则返回 BUFREQ_E_NOT_OK 且不接收任何数据 [SWS_IdsM_91010]。

本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: b7f6437d402e 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 IdsM_SetSecurityEvent 用作应用程序向模块 IdsM(Intrusion Detection System Manager)报告安全事件的接口 [SWS_IdsM_91002]。

用法与调用上下文

调用通过头文件 IdsM.h 同步进行,服务 ID 为 0x03 [SWS_IdsM_91002]。安全事件的标识符作为唯一的传入参数传递:

  • securityEventId(IN,IdsM_SecurityEventIdType):所报告安全事件的唯一标识符 [SWS_IdsM_91002]。

该函数没有返回值(void)[SWS_IdsM_91002]。

错误处理

如果开发错误检测(IdsMDevErrorDetect)已激活,模块会针对已配置的安全事件检查参数 securityEventId [SWS_IdsM_02101]。如果传递了未在 IdsMEvent 中配置的未知事件 ID,IdsM 会报告开发错误 IDSM_E_PARAM_INVALID [SWS_IdsM_02101]。

并发性与限制

该函数被指定为不可重入(Non Reentrant)[SWS_IdsM_91002]。因此,调用者必须同步或避免来自不同上下文的并发或中断调用。

本使用说明基于版本 R20-11 中 AUTOSAR Classic 平台的规范。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: f5f82ae60185 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 IdsM_SetSecurityEventWithContextData 用作应用接口,用于将安全事件连同可选上下文数据同步报告给 Intrusion Detection System Manager([SWS_IdsM_91003])。它没有返回值。

参数与使用

  • securityEventId:所报告安全事件的唯一标识符([SWS_IdsM_91003])。
  • contextData:指向可选上下文数据的指针;若无可用上下文数据,则应传递 NULL_PTR([SWS_IdsM_91003])。
  • contextDataSize:所提供上下文数据的大小(以字节为单位)([SWS_IdsM_91003])。

错误处理

在启用开发错误检测(IdsMDevErrorDetect)时,IdsM 模块会执行以下检查:

  • 若传入的 securityEventId 并非来自在 IdsMEvent 中配置的安全事件,则会报告开发错误 IDSM_E_PARAM_INVALID([SWS_IdsM_02102])。
  • 若 contextDataSize 超过了配置的上下文数据最大缓冲区大小(通过参数化 IdsMContextDataBufferSize 的最大值定义),则会报告开发错误 IDSM_E_PARAM_LENGTH([SWS_IdsM_02107])。

并发与集成

该接口被指定为不可重入(Non Reentrant)([SWS_IdsM_91003])。因此,调用方必须确保避免并发调用或进行相应同步。其声明可通过头文件 IdsM.h 获取([SWS_IdsM_91003])。

本段文本由人工智能系统基于 AUTOSAR 规范 R20-11 生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 1b4c7b27b68c 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步函数 IdsM_SetSecurityEventWithCount(服务 ID 0x05)代表 Smart Sensor 的应用接口,用于将安全事件 (Security Events, SEvs) 连同计数值一起传输至 IdsM [SWS_IdsM_91018], [SWS_IdsM_00401]。由此,IdsM 能够接收带有由传感器预先计算的计数器的事件 [SWS_IdsM_00401]。函数声明通过头文件 IdsM.h 提供 [SWS_IdsM_91018]。

调用时,该函数需要两个输入参数:

该函数不返回任何返回值,也不定义输出参数 [SWS_IdsM_91018]。在并发性和调用上下文方面,该函数被声明为不可重入 (Non Reentrant) [SWS_IdsM_91018];因此必须在软件端避免并发调用。

关于错误处理规定,在开发错误检测 (IdsMDevErrorDetect) 激活时,IdsM 会检查参数 securityEventId 和 count [SWS_IdsM_02103]。若传递了未知的 Event-ID 或 count 的值为 0,则报告开发错误 IDSM_E_PARAM_INVALID [SWS_IdsM_02103]。

本使用说明由 AI 基于 AUTOSAR 规范自动生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 2006a1c85bf9 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 IdsM_SetSecurityEventWithCountContextData 用作智能传感器的应用接口,用于将带有计数值和可选上下文数据的安全事件同步报告给 [SWS_IdsM_91019]。

用法与参数

调用以同步方式进行,并被指定为不可重入(Non Reentrant)[SWS_IdsM_91019]:

错误处理

在启用开发错误检测(IdsMDevErrorDetect)时,模块会监控传入参数的有效性:

  • 如果传递了未知的 securityEventId 或 count 的值为 0,则会报告开发错误 IDSM_E_PARAM_INVALID [SWS_IdsM_02104]。
  • 如果 contextDataSize 超过了配置的最大缓冲区大小(由配置的最大 IdsMContextDataBufferSize 决定),IdsM 将报告开发错误 IDSM_E_PARAM_LENGTH [SWS_IdsM_02108]。

该函数不返回任何返回值 [SWS_IdsM_91019];在发生错误时,错误响应可能主要基于通过 DET 进行的报告。 问题 Q-135f4b865790f34d (未决)

本段文本由人工智能基于 AUTOSAR 规范 R20-11 生成。

实现者指南即将推出(复杂度 I2)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 2451b7e4c502 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步接口 IdsM_SetSecurityEventWithTimestampCount 用于 Smart Sensor 向 IdsM 报告带有时间戳和计数值的安全事件 [SWS_IdsM_91020]。该函数没有返回值,并通过头文件 IdsM.h 可用 [SWS_IdsM_91020]。

将处理以下输入参数:

  • securityEventId:所报告安全事件的特定标识符 [SWS_IdsM_91020]。
  • timestamp:用于该事件时间引用的时间戳 [SWS_IdsM_91020]。如果时间戳特性处于活动状态且传递了时间戳,IdsM 将使用它来存储或传输合格安全事件 (QSEv) [SWS_IdsM_01108]。相反,如果在该特性处于活动状态时报告事件且不带时间戳,IdsM 将在传输或存储之前将协议头中的时间戳选项位设置为 0 [SWS_IdsM_01112]。
  • count:作为安全事件起始值的计数值 [SWS_IdsM_91020]。若事先不存在计算出的计数器,则可以使用值 1 调用该函数 [SWS_IdsM_00405]。

在开发错误检测 (IdsMDevErrorDetect) 激活时,IdsM 会校验实参 securityEventId 和 count。如果传递了未知的 Event-ID 或 count 的值为 0,模块将报告开发错误 IDSM_E_PARAM_INVALID [SWS_IdsM_02105]。

关于并发性,该函数被指定为不可重入 (Non Reentrant) [SWS_IdsM_91020]。

本文本根据 AUTOSAR 规范自动生成。

实现者指南即将推出(复杂度 I2)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: a1b69abd8805 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

具有服务 ID 0x08 的函数 IdsM_SetSecurityEventWithTimestampCountContextData 用作 Smart Sensor 的标准化应用接口,以将安全事件连同时间戳、起始计数值以及可选上下文数据报告给 Intrusion Detection System Manager (IdsM) [SWS_IdsM_91021]。该接口的声明通过头文件 IdsM.h 提供 [SWS_IdsM_91021]。

该调用同步执行,且仅使用输入参数,不存在输入/输出参数或输出参数 [SWS_IdsM_91021]。调用时须传递以下参数 [SWS_IdsM_91021]:

  • securityEventId:要传输给 IdsM 的特定安全事件的标识符 [SWS_IdsM_91021]。
  • timestamp:充当所发生安全事件的时间引用的时间戳值 [SWS_IdsM_91021]。
  • count:计数值,IdsM 将其用作相应安全事件的起始值 [SWS_IdsM_91021]。
  • contextData:指向事件可选上下文数据的指针;若没有可用数据,则必须传递 NULL_PTR [SWS_IdsM_91021]。
  • contextDataSize:所传递上下文数据大小的数值说明 [SWS_IdsM_91021]。

关于执行行为,该函数被归类为不可重入 (Non Reentrant),且没有返回值 (void) [SWS_IdsM_91021]。因此,调用的 Smart Sensor 必须确保不会发生该接口的并发或重叠调用 [SWS_IdsM_91021]。

该文本由 AI 生成,用作参考指引。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 16285d55bd09 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

回调函数 IdsM_BswM_StateChanged([SWS_IdsM_91005])由 BswM 调用,以向 Intrusion Detection System Manager (IdsM) 通知当前 ECU 状态的更改([SWS_IdsM_91005])。它在头文件 IdsM_Cbk.h 中声明,且服务 ID 为 0x0F([SWS_IdsM_91005])。

该接口具有签名 void IdsM_BswM_StateChanged (IdsM_Filters_BlockStateType state)([SWS_IdsM_91005])。输入参数 state(类型为 IdsM_Filters_BlockStateType)用作唯一的传入值,表示当前 ECU 状态([SWS_IdsM_91005])。既未提供输入/输出参数,也未提供输出参数,并且该函数不返回任何返回值([SWS_IdsM_91005])。调用同步执行,并被归类为可重入([SWS_IdsM_91005])。

在功能交互中,该通知服务用于让 BswM 持续向 IdsM 通报当前状态([SWS_IdsM_01022])。接收到的状态信息保存在 IdsM 中,并在主函数(main function)框架内稍后对块状态过滤器(block state filter)进行异步处理时进行评估([SWS_IdsM_01022])。在规范范围内,未针对此调用定义特定的错误代码、返回值或向开发错误管理(DET)或诊断事件管理(DEM)的报告。

本使用说明为自动生成,并基于 AUTOSAR Classic R20-11 的规范要求。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 127e922f9325 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

回调函数 IdsM_TpTxConfirmation 作为同步且可重入的服务通过头文件 IdsM_Cbk.h 声明 [SWS_IdsM_91011]。根据 [SWS_IdsM_01502],模块 IdsM 通过该服务接收来自模块 PduR 关于分段 PDU 传输的确认。一旦相关 I-PDU 在底层网络上传输完毕,即发生该调用 [SWS_IdsM_91011]。

该接口具有服务 ID 0x48,且不提供返回值(void)[SWS_IdsM_91011]。在调用时传递两个输入参数:

  • id(类型 PduIdType):已传输 I-PDU 的唯一标识 [SWS_IdsM_91011]。
  • result(类型 Std_ReturnType):传递 I-PDU 传输的结果,并指示发送过程是成功还是失败 [SWS_IdsM_91011]。

规范中未为此调用定义特定的错误代码以及 DET 或 DEM 消息。由于指定了可重入性,调用层可以针对不同的 I-PDU 并行调用该函数 [SWS_IdsM_91011]。解释:模块 IdsM 可能会评估状态参数 result,以更新分段 PDU 的内部传输状态并在完成后释放占用的发送缓冲区。 问题 Q-9179efcbf744346d (未决)

本文档由 AI 生成,且完全基于 AUTOSAR R20-11 规范。

实现者指南即将推出(复杂度 I2)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 2d20d4e11a8b 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

使用

回调函数 IdsM_TxConfirmation ([SWS_IdsM_91009]) 由底层通信接口模块调用,以确认 PDU 的成功发送或传输失败。它被定义为同步的,在 IdsM_Cbk.h 中声明,且没有返回值。它接收以下参数:

  • TxPduId:已传输 PDU 的标识符 ([SWS_IdsM_91009])。
  • result:传输结果,发送成功时为 E_OK,发生错误时为 E_NOT_OK ([SWS_IdsM_91009])。

并发性与限制

该函数对于不同的 PDU-ID 是可重入的,但对于相同的 TxPduId 则不可重入 ([SWS_IdsM_91009])。

相互协作与顺序条件

对于传输顺序存在严格的顺序条件:根据 [SWS_IdsM_01499],IdsM 仅在先前调用了 IdsM_TxConfirmation 或 IdsM_TpTxConfirmation 之后,才允许再次调用发送函数 PduR_IdsMTransmit。Interpretation:确认的到达预计在 IdsM 中用作完成传输并允许后续调用的触发器。 问题 Q-dd4013520e85370c (未决)

错误处理

PDU 传输失败直接通过参数 result = E_NOT_OK 报告 ([SWS_IdsM_91009])。接口规范中未指明具体的 DET 或 DEM 错误码。

本文本基于 AUTOSAR CP R20-11 规范自动生成。

实现者指南即将推出(复杂度 I1)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 671f0dddec56 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

用法与调用上下文

同步函数 IdsM_Dcm_GetReportingMode_RequestResults(服务 ID 0x0D,头文件 IdsM_Cbk.h)由 Diagnostic Communication Manager (DCM) 调用,以查询先前通过 IdsM_Dcm_GetReportingMode_Start() 发起的请求的例程结果 [SWS_IdsM_91007]。当前操作状态通过传入参数 OpStatus 进行传递 [SWS_IdsM_91007]。成功完成时,该函数返回 E_OK,并通过输出指针 Out_ReportingMode 输出所请求 Security Event 的确定 Reporting 模式 [SWS_IdsM_91007]。若处理尚未完成,则通过返回值 DCM_E_PENDING 进行指示 [SWS_IdsM_91007]。

错误处理

若查询失败,函数将返回 E_NOT_OK [SWS_IdsM_91007]。在这种情况下,必须通过参数 ErrorCode 设置一个具体的 Negative Response Code (Dcm_NegativeResponseCodeType);若未设置,DCM 将发送错误码 0x22 [SWS_IdsM_91007]。针对该服务未指明具体的 DET 或 DEM 事件 [SWS_IdsM_91007]。

并发性与交互

该函数被指定为可重入的 [SWS_IdsM_91007]。关于调用顺序,它强制要求该例程先前已通过 IdsM_Dcm_GetReportingMode_Start() 触发 [SWS_IdsM_91007]。Interpretation:在返回 DCM_E_PENDING 后的重复查询中,参数 OpStatus 预计由 DCM 用于协调诊断操作的进度。 问题 Q-c268fab018a1f5b3 (未决)

此使用说明由 AI 基于 AUTOSAR R20-11 规范生成。

实现者指南即将推出(复杂度 I2)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 78410b323fc8 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

函数 IdsM_Dcm_GetReportingMode_Start 由诊断模块(DCM)调用,以便在入侵检测系统管理器(Intrusion Detection System Manager,IdsM)中启动用于查询特定安全事件(SEv)当前上报模式的例程执行 [SWS_IdsM_91006]、[SWS_IdsM_02001]。该接口在头文件 IdsM_Cbk.h 中声明,具有服务 ID 0x0C,并被指定为同步且可重入 [SWS_IdsM_91006]。

在调用时,DCM 传递安全事件的外部 ID(In_SecurityEventId)、传感器的实例 ID(In_SensorInstanceId)和操作状态(OpStatus)[SWS_IdsM_91006]。该函数返回 Std_ReturnType 作为返回值:

在发生错误时(E_NOT_OK),IdsM 有义务通过输出参数 ErrorCode 提供具体的否定响应码(NRC);若未提供,DCM 默认发送 NRC 0x22(Conditions Not Correct)[SWS_IdsM_91006]。

该函数仅触发例程;所确定结果的实际读取随后通过函数 IdsM_Dcm_GetReportingMode_RequestResults 执行 [SWS_IdsM_91007]。

本使用说明为自动生成。所有陈述均完全基于 AUTOSAR Classic R20-11 规范。

实现者指南即将推出(复杂度 I2)

函数 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 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: ecdd252e141c 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

同步且可重入的函数 IdsM_Dcm_SetReportingMode_Start 由诊断模块 (DCM) 调用,以启动用于在 Intrusion Detection System Manager 中更改特定安全事件报告模式 (IdsMReportingModeFilter) 的例程 [SWS_IdsM_91008], [SWS_IdsM_01901]。该声明通过头文件 IdsM_Cbk.h 提供 [SWS_IdsM_91008]。

调用时会传递外部事件 ID (In_SecurityEventId)、传感器实例 ID (In_SensorInstanceId)、要新设置的报告模式 (In_ReportingMode) 以及操作状态 (OpStatus) [SWS_IdsM_91008], [SWS_IdsM_01901]。该函数提供以下返回值:

  • E_OK:操作的执行已成功完成 [SWS_IdsM_91008]。
  • DCM_E_PENDING:处理尚未完成,将异步继续进行 [SWS_IdsM_91008]。
  • E_NOT_OK:操作失败;在此情况下,必须通过输出参数 ErrorCode 设置一个具体的 Negative Response Code (NRC),否则 DCM 将传递 NRC 0x22 [SWS_IdsM_91008]。

若因使用了无效的 Security Event Definition ID 而导致事件 ID 验证失败,则函数返回 E_NOT_OK,并强制将错误码 ErrorCode 设置为 DCM_E_REQUESTOUTOFRANGE [SWS_IdsM_01903]。

本使用说明由自动生成,基于 AUTOSAR 规范。

实现者指南即将推出(复杂度 I2)

类型 IdsM_Filters_BlockStateType [SWS_IdsM_91017] 📄 PDF

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

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 71b3951aed67 来源 未决问题(1)
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

根据 [SWS_IdsM_91017],数据类型 IdsM_Filters_BlockStateType 用于为 Intrusion Detection System Manager (IdsM) 的所谓“Block State”过滤器定义位掩码。该类型派生自 uint16,覆盖 0 到 65535 的整数值范围,并通过头文件 IdsM_Filters_Types.h 对软件模块可用 ([SWS_IdsM_91017])。

主要用途是与 Basic Software Mode Manager (BswM) 协同工作。当系统或 ECU 状态发生更改时,BswM 会调用回调函数 IdsM_BswM_StateChanged,并通过该类型的参数 state 传递当前的 ECU 状态 ([SWS_IdsM_91005])。该回调接口在 IdsM_Cbk.h 中声明,没有返回值,并被指定为同步且可重入的 ([SWS_IdsM_91005])。

Interpretation:由于该类型被设计为过滤器的位掩码,IdsM 预计会将传递的 ECU 状态值与配置的过滤状态进行比对,以根据 ECU 状态过滤安全事件的记录或阻塞。 问题 Q-00b355cc5ec6383f (未决)该数据类型不存在具有特定错误码、DET 或 DEM 消息的独立错误处理。

本提示由 AI 生成,且仅基于 AUTOSAR CP R20-11 的规范数据。

实现者指南即将推出(复杂度 I1)

类型 IdsM_Filters_ReportingModeType [SWS_IdsM_91013] 📄 PDF

Reporting modes used by the reporting mode filter

AI 生成 未审核 模型: gemini-3.8-flash-medium · 推理强度: medium · 温度: 不可控 · 提示词: 4e0ba45d0047 来源
译自德文指南gemini-3.8-flash-low · 2026-10-13 · 德文原文

数据类型 IdsM_Filters_ReportingModeType 基于基本类型 uint8,并通过头文件 IdsM_Types.h 为软件组件提供 [SWS_IdsM_91013]。它描述了在 Intrusion Detection System Manager (IdsM) 内的 Reporting-Mode 过滤器中用于有针对性地处理和转发安全事件的标准化报告模式 [SWS_IdsM_91013]。

通过定义的枚举值,精确控制是否报告某个事件以及报告时采用何种详细程度 [SWS_IdsM_91013]:

  • IDSM_REPORTING_MODE_OFF (0x00):该事件被抑制,不向上一级实例报告 [SWS_IdsM_91013]。
  • IDSM_REPORTING_MODE_BRIEF (0x01):该事件在没有附加上下文数据的情况下以紧凑形式报告 [SWS_IdsM_91013]。
  • IDSM_REPORTING_MODE_DETAILED (0x02):该事件在包含所有相关上下文数据的情况下详细报告 [SWS_IdsM_91013]。
  • IDSM_REPORTING_MODE_BRIEF_BYPASSING_FILTERS (0x03):该事件绕过后续过滤级,并在无上下文数据的情况下未过滤地报告 [SWS_IdsM_91013]。
  • IDSM_REPORTING_MODE_DETAILED_BYPASSING_FILTERS (0x04):该事件绕过后续过滤级,并在包含所有上下文数据的情况下未过滤地报告 [SWS_IdsM_91013]。
  • IDSM_REPORTING_MODE_INVALID (0xFF):标识值范围内的无效报告模式 [SWS_IdsM_91013]。

因此,这些值结合了两个功能控制维度:通过上下文数据的详细程度,以及通过绕过 (bypassing) 有针对性地绕过常规过滤机制 [SWS_IdsM_91013]。这使得 IdsM 能够根据严重度和过滤器配置对安全事件进行差异化处理 [SWS_IdsM_91013]。

此文本由 AI 基于 R20-11 规范生成。

实现者指南即将推出(复杂度 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#ae5de603
Content hash
ae5de603
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_IntrusionDetectionSystemManager.pdf#nameddest=SWS_IdsM_91001

初始化与状态

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

void IdsM_GetVersionInfo (const Std_VersionInfoType* versionInfo);
IdsM_Init 函数

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

void IdsM_Init (const IdsM_ConfigType* configPtr);

服务

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);

回调

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);

周期性

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

void IdsM_MainFunction (void);

类型

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