文章目录
-
-
-
- [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
需要对需要安全连接的对外提供服务的实例进行检查。检查其相关的链接是否已与安全关联建立了管系。