【翻译】【SOMEIP-SD】Page79 - Page84

文章目录

        • [5.1.4.5 SOME/IP-SD 机制和错误处理](#5.1.4.5 SOME/IP-SD 机制和错误处理)
        • [5.1.4.6 错误处理](#5.1.4.6 错误处理)
5.1.4.5 SOME/IP-SD 机制和错误处理

本节介绍SOME/IP-SD的机制设计原因和错误处理
Soft State Protocol:SOME/IP-SD被设计软件状态协议,因此设计了TTL机制。软件状态需要按时刷新以保持其有效性,可以在配置中将TTL设置成最大值用于关闭这个功能。

Initial Wait Phase:

引入Initial Wait Phase有两个原因:1、为了缓解全车ECU启动时造成的通信压力。2、允许ECU接收SD消息中的多个Entry。

Repetition Phase:

引入Repetition Phase是为了快速同步服务端和客户端。如论客户端和服务端谁先启动都能快速同步。Repetition Phase采用指数方式增加发送消息的间隔事件是为了避免系统消息过载。

Main Phase:

引入Main Phase的目的是SD试图保持一个稳定状态,在这个状态下服务端和客户端不在试图快速同步通信(以较低的固定频率同步信息)。

Request-Response-Delay:

之所以引入 Request-Response-Delay,以在组播场景延迟应答消息。是为了避免在规模大的系统中有多个ECU要回复同一个请求,造成被应答者的网络压力过大。

5.1.4.6 错误处理


[PRS_SOMEIPSD_00125]

SOME/IP-SD消息至少包含12byte的数据,如果收到小于12byte的数据应该抛弃,不应再有下一步 操作。


[PRS_SOMEIPSD_00126]

如果收到一个非Subscribe Eventgroup Entry的Entry,其包含未知的Service ID该Entry应被忽略。[PRS_SOMEIPSD_00393]中提到大的Negative Acknowledgement除外。


[PRS_SOMEIPSD_00127]

如果收到一个非Subscribe Eventgroup Entry的Entry,其包含未知的Instance ID该Entry应被忽略。[PRS_SOMEIPSD_00393]中提到大的Negative Acknowledgement除外。


[PRS_SOMEIPSD_00128]

如果收到一个非Subscribe Eventgroup Entry的Entry,其包含未知的Major Version该Entry应被忽略。[PRS_SOMEIPSD_00393]中提到大的Negative Acknowledgement除外。


[PRS_SOMEIPSD_00129]

如果收到一个非Subscribe Eventgroup Entry的Entry,其包含未知的Eventgroup ID该Entry应被忽略。[PRS_SOMEIPSD_00393]中提到大的Negative Acknowledgement除外。本条只适用于Eventgroup Entry


[PRS_SOMEIPSD_00803]

如果Entries Array的长度不合理(如:Entries Array的长度超过了消息整体长度)。则抛弃整个消息不做下一步动作。


[PRS_SOMEIPSD_00130]

检测Entry引用的Option顺序如下

  • Option是否存在
  • Entry所需的Option是否完备
  • Entry是否只引用自己需要的Option
  • Entry引用的Option中没有相互之间冲突的
  • Option的Type是否是已知Type,除了discardable flag为1的除外
  • Option必须是在[PRS_SOMEIPSD_00583]中规定允许引用的,除了discardable flag为1的除外
  • Option的Length长度与Option的Type相匹配
  • Endpoint Option包含有效的传输层协议字段
  • Option是有效的
    如果Entry引用的Option是SD已知的类型,但是其并不被服务端所需要(如:提供服务方提供了TCP和UDP的Option,但客户端只需要UDP Option)则当前Entry应继续被处理

[PRS_SOMEIPSD_00131]

检查TCP连接是否已完备。仅适用于配置中Eventgroup 和 Subscribe Eventgroup Entry采用TCP的情况


[PRS_SOMEIPSD_00852]

检测安全关联是否完备


[PRS_SOMEIPSD_00132]

检测是否有足够的剩余资源


[PRS_SOMEIPSD_00232]

如果Find entry没有通过[PRS_SOMEIPSD_00232]中规定的检查,当前Entry应该被忽略。除了[PRS_SOMEIPSD_00529]中规定的可以忽略Endpoint 或 Multicast Options的情况


[PRS_SOMEIPSD_00233]

如果Offer Entry没有通过[PRS_SOMEIPSD_00232]中规定的检查,当前Entry应该被忽略


[PRS_SOMEIPSD_00234]

如果Subscribe Eventgroup Entry没有通过在 [PRS_SOMEIPSD_00130],[PRS_SOMEIPSD_00131],[PRS_SOMEIPSD_00832],[PRS_SOMEIPSD_00852] 或[PRS_SOMEIPSD_00132]中规定的检查,需要发送Subscribe Eventgroup NACK Entry作为回应。


[PRS_SOMEIPSD_00235]

如果Subscribe Eventgroup ACK Entry没有通过[PRS_SOMEIPSD_00130] 和 [PRS_SOMEIPSD_00132] 中的检查,应该继续处理当前Entry。但需要将订阅请求视为失败。


[PRS_SOMEIPSD_00231]

满足下列情况的Option应被忽略

  • Option Type未知(未知的Option,尚未支持的Option)并且discardable flag被设置成1
  • Option是冗余的(同Entry引用的类型和内容相同的Option)
  • Option不被需要(如仅使用组播的事件,接收到了unicast endpoint option)

[PRS_SOMEIPSD_00844]

多个配置选项中配包含了冲突的Item(名称相同),则这些Item都需要被处理,而不能做合并处理。


[PRS_SOMEIPSD_00832]

需要对需要安全连接的对外提供服务的实例进行检查。检查其相关的链接是否已与安全关联建立了管系。

相关推荐
EniacCheng5 天前
【翻译】【SOMEIP-SD】Page54- Page56
some/ip·some/ip-sd
EniacCheng6 天前
【翻译】【SOMEIP-SD】Page59 - Page62
some/ip·some/ip-sd
EniacCheng9 天前
【翻译】【SOMEIP-SD】Page35 - Page37
some/ip·some/ip-sd
EniacCheng9 天前
【翻译】【SOMEIP-SD】Page30 - Page33
some/ip·some/ip-sd
EniacCheng13 天前
【翻译】【SOMEIP-SD】Page37 - Page39
some/ip·some/ip-sd
EniacCheng16 天前
【翻译】【SOMEIP-SD】Page19 - Page23
some/ip·some/ip-sd
EniacCheng16 天前
【翻译】【SOMEIP-SD】Page24 - Page26
some/ip·some/ip-sd
EniacCheng19 天前
【翻译】【SOMEIP-SD】Page6 - Page7
some/ip-sd
青草地溪水旁3 个月前
SOME/IP 协议深度解析
车载·some/ip·autosar ap