General
前文介绍过SecOC 需要和Crypto Stack 一起使用用于数据的加密与验证,对于SecOC 模块和Crypto Stack 都存在同步和异步的处理方式,本文将对于同步与异步的策略进行分析
Crypto Stack Process
对应SecOC属性:SecOcCsmMode
SYNCHRONOUS
对于数据加密与校验以同步方式完成,从请求到完成整个过程都是同步的
ASYNCHRONOUS
对于数据加密与校验以异步方式完成,需要受到Csm_Mainfunction/Crypto_Mainfunction的调度周期影响,当完成数据加密或校验是通过CALLBACK 方式通知App Layer
SecOC Process
对应SecOC属性:SecOCTxSyncPduProcessing/ SecOCRxSyncPduProcessing
SYNCHRONOUS TX Message
整个流程都是同步完成的,不需要SecOC_Mainfunction的介入,需要结合SecOcCsmMode: Synchronous使用, TX Message :当PduR_ComTranmit 被触发时,整个Secure TX Message Process 将以同步的形式完成(ComàPDURàSecOCàPDURàCanIf)
比如:针对Secure TX Message 分为如下步骤,当选择同步方式处理,之后这些步骤将同步完成,即使中间出现构建Freshness Value重试,其也完全由同步方式完成
RX Message
整个流程都是同步完成的,不需要SecOC_Mainfunction的介入,需要结合SecOcCsmMode: Synchronous使用, 当PduR_CanIfRxIndication 被触发时,整个Secure RX Message Process 将以同步的形式完成(CanIfàPDURàSecOCàPDURàCOM)
比如:针对Secure RX Message 分为如下步骤,当选择同步方式处理,之后这些步骤将同步完成,即使中间出现构建Freshness Value重试, 或者MAC Verify 的重新校验,其也完全由同步方式完成
ASYNCHRONOUS TX Message
PDUR 与SecOC的交互是异步的,需要SecOC_Mainfunction的介入, 但SecOC 针对Secure TX message 的整个处理都是同步(或者部分同步。依赖于Csm Operation Mode)
当SecOcCsmMode == Synchronous 时,SecOC_Mainfunction可能需要介入多次,如通知SecOC 开始Secure Tx Message Process,Freshness Value 构建失败重试,都需要SecOC_Mainfunction的介入。
当SecOcCsmMode == ASynchronous 时,由于Csm 对于数据加密是异步完成, 其受到CSM_Mainfunction/Crypto Mainfunction的调度周期影响,因此使用异步方式完成Secure Onboard communication transmission 是无法保证 Message 按照既定周期进行精准周期发送的
RX Message
PDUR 与SecOC的交互是异步的,需要SecOC_MainfunctionRx的介入, 但SecOC 针对Secure RX message 的整个处理都是同步(或者部分同步。依赖于Csm Operation Mode)
当SecOcCsmMode == Synchronous 时,SecOC_MainfunctionRx可能需要介入多次,如通知SecOC 开始Secure Rx Message Process,Freshness Value 构建失败重试,MAC 校验重试,都需要SecOC_MainfunctionRx的介入。
当SecOcCsmMode == ASynchronous 时,由于Csm 对于数据加密是异步完成, 其受到CSM_Mainfunction/Crypto Mainfunction的调度周期影响,因此使用异步方式完成Secure Onboard communication 是无法保证 Message 可以以较少的tolerance 被收到
Conclusion TX Message
SecOcCsmMode
TxSyncPduProcess
Recommend?
Comment
Synchronous
TRUE
Yes
优点: 整个流程都是同步完成,对于周期类型的对于实时性有严格要求的建议采用这个方式,
缺点:可能导致单点RT 过高,需要在OS 设计时考虑
Synchronous
FALSE
Yes
优点: 整个流程几乎都是同步完成,如果构建Authentication data不会失败(0 or 1),和第一种方案几乎无差别
缺点:可能导致单点RT 过高,需要在OS 设计时考虑
第一种对比:
如果Authentication data构建逻辑简单,保证不会失败,那么此种方案更加合理,单点RT比第一种会减少, 但是如果Authentication data构建逻辑复杂,其存在失败的可能性,用此种方案可能会导致报文周期不稳定
ASynchronous
FALSE
No
由于Csm 对于数据加密是异步完成, 其受到CSM_Mainfunction/Crypto Mainfunction的调度周期影响,因此使用异步方式完成Secure Onboard communication transmission 是无法保证 Message 按照既定周期进行精准周期发送的
ASynchronous
TRUE
–
不存在此种组合
RX Message
SecOcCsmMode
RxSyncPduProcess
Recommend?
Comment
Synchronous
TRUE
Yes
优点: 整个流程都是同步完成,对于周期类型的对于实时性有严格要求的建议采用这个方式,
缺点:可能导致单点RT 过高,需要在OS 设计时考虑
Synchronous
FALSE
Yes
优点: 整个流程几乎都是同步完成,如果构建Authentication data不会失败(0 or 1),或者MAC Verify 重试次数(0 or 1)和第一种方案几乎无差别
缺点:可能导致单点RT 过高,需要在OS 设计时考虑
第一种对比:
如果构建Authentication data不会失败(0 or 1),或者MAC Verify 重试次数(0 or 1),那么此种方案更加合理,单点RT比第一种会减少, 但是如果Authentication data构建逻辑复杂,其存在失败的可能性,用此种方案可能会导致报文周期不稳定
ASynchronous
FALSE
No
由于Csm 对于数据加密是异步完成, 其受到CSM_Mainfunction/Crypto Mainfunction的调度周期影响,因此使用异步方式完成Secure Onboard communication transmission 是无法保证 Message 可以以较少的tolerance 被收到
ASynchronous
TRUE
–
不存在此种组合