这部分的case在TC8 3.0规范已经被删除了,所以这里参照2.0规范来写,由于在最新的TC8规范中已经不再使用,所以我也没有详细分析和学习,留到解析RFC 791文档时再细聊吧

TC8:IPv4_OPTIONS_01-14_TC8

IPv4_OPTIONS_01: Multiple End of Options check

目的


验证DUT在接收多个End of Option后不会崩溃


什么是End of Option,后面参考的内容里会进一步讲解

测试步骤


  1. Tester:发送ICMP Echo Request,IP Options中包含:4个End of Option List options
  2. Tester:监听在网卡上
  3. DUT:发送ICMP Echo Reply


期望结果


3, DUT:发送ICMP Echo Reply


CANoe TC8

TC8:IPv4_OPTIONS_01-14_字段_02

从Option 0: End of Option List 00,看起来好像只有一个End of Option,但是这条case要求多个End of Option,是不是表示这里错误了呢

不是的

有时候Trace窗口的Detail界面并不会把所有内容都解析出来,如果你看下二层的数据,你会发现有4个00,而Header Length有24个byte,除了20个固定长度的IP首部,那么剩下的4个字节不就是End of Options嘛

所以这条消息的End of Option字段有4个

为什么End of Option必须有4个呢,这是巧合吗

想一想,是吗

不是的,因为IHL,也就是IP Header Length字段表示IP首部长度,并且它的单位是4个字节

参考

Derived from RFC 791 s3.1 p16 Internet Header Format (End of Option List), RFC 791 s3.2 p31 Options (MUST)

TC8:IPv4_OPTIONS_01-14_字段_03

可以看出,End of Option是一个字节,值为0

这个Option用来表示Option list的结尾,Option list可能会导致网络层首部的实际长度与IHL不一致,End of Option用在所有Option的结尾,而不是每个Option的结尾,它的目的就是用来补齐IP首部长度和IHL的不一致的情况,因为IHL的单位是4字节,就表示IP首部的长度必须的4的倍数

IPv4_OPTIONS_02: Multiple No Operation option check

目的


验证DUT在接收多个No Operation选项后不会崩溃


测试步骤


  1. Tester:发送ICMP Echo Request,IP Options中包含:
  • Record Route Option,length字段设置为7,pointer字段设置为4
  • 2个No Option选项
  • 1个End of Option选项
  1. Tester:监听在网卡上
  2. DUT:发送ICMP Echo Reply


期望结果


3, DUT:发送ICMP Echo Reply


CANoe TC8

TC8:IPv4_OPTIONS_01-14_IPv4_04

参考

Derived from RFC 791 s3.1 p17 Internet Header Format (No Operation) (MUST)

TC8:IPv4_OPTIONS_01-14_车载以太网_05

No Operation是一个字节,值为1

这个Option用于选项之间,用来填充4字节对齐

IPv4_OPTIONS_03: Multiple No Operation and End of Option check

目的


验证DUT在接收到多个No Operation和End of Option后不会崩溃


测试步骤


  1. Tester:发送ICMP Echo Request,IP Options包含:
  • 1个Security option
  • 1个No Operation option
  • 1个No Operation option
  • 1个End of Option List option
  • 1个End of Option List option
  1. Tester:监听在网卡上
  2. DUT:发送ICMP Echo Reply


期望结果


3, DUT:发送ICMP Echo Reply


CANoe TC8

TC8:IPv4_OPTIONS_01-14_车载以太网_06

参考

Derived from RFC 791 s3.1 p17 Internet Header Format (No Operation) (MUST)

内容和上一个case相同

IPv4_OPTIONS_04: Security Option check

目的


Security Option在一个IPv4数据包中只能出现一次


测试步骤


  1. Tester:发送ICMP Echo Request,IP Options包含:2个Security Option
  2. Tester:监听在网卡上
  3. DUT:不发送ICMP Echo Reply


期望结果


3, DUT:不发送ICMP Echo Reply


CANoe TC8

TC8:IPv4_OPTIONS_01-14_车载以太网_07

参考

Derived from RFC 791 s3.1 p18 Internet Header Format (Security) (MAY)


This option provides a way for hosts to send security,compartmentation, handling restrictions, and TCC (closed user group) parameters.



此Option为主机提供了一种发送安全、隔离、处理限制和 TCC(封闭用户组)参数的方法



This option appears at most once in a datagram.



此Option在IPv4数据报中最多出现一次


IPv4_OPTIONS_05: Overflow Bit in timestamp option check

目的


Overflow(4bits)是由于空间不足而无法注册时间戳的 IP 模块的数量


测试步骤


  1. Tester:发送ICMP Echo Request,IP Options包含1个Internet Timestamp option,它又包含:
  • length字段设置为8
  • pointer字段设置为9
  • Overflow字段设置为0
  • flg字段设置为0
  • 1个timestamp值
  1. Tester:监听在网卡上
  2. DUT:发送ICMP Echo Reply
  3. Tester:验证接收到的ICMP Echo Reply的IP Internet Timestamp option的Overflow为1


期望结果


3, DUT:发送ICMP Echo Reply
4, Tester:验证接收到的ICMP Echo Reply的IP Internet Timestamp option的Overflow为1


CANoe TC8

TC8:IPv4_OPTIONS_01-14_字段_08

参考

Derived from RFC 791 s3.1 p22 Internet Header Format (Internet Timestamp) (MAY)


The Overflow (oflw) [4 bits] is the number of IP modules that cannot register timestamps due to lack of space.



Overflow (oflw) [4 bits] 是由于空间不足而无法注册时间戳的 IP 模块的数量


IPv4_OPTIONS_06: Timestamp value check

目的


当flg为0时,表示仅时间戳,存储在连续的32位bit中


测试步骤


  1. Tester:发送ICMP Echo Request,IP Options包含1个Internet Timestamp option,它又包含:
  • length字段设置为12
  • pointer字段设置为9
  • flg字段设置为0
  • 1个timestamp值
  • 第8个字节到第11个字节设置为0
  1. Tester:监听在网卡上
  2. DUT:发送ICMP Echo Reply
  3. Tester:验证接收到的ICMP Echo Reply的IP Internet Timestamp option的第8个字节到第11个字节不为0


期望结果


3, DUT:发送ICMP Echo Reply
4, Tester:验证接收到的ICMP Echo Reply的IP Internet Timestamp option的第8个字节到第11个字节不为0


CANoe TC8

TC8:IPv4_OPTIONS_01-14_字段_09

参考

Derived from RFC 791 s3.1 p22 Internet Header Format (Internet Timestamp) (MAY)

TC8:IPv4_OPTIONS_01-14_TC8_10

IPv4_OPTIONS_07: Ttimestamp value, internet address and sequence check

目的


当flg为1时,每个时间戳前面都有注册实体的互联网地址


测试步骤


  1. Tester:发送ICMP Echo Request,IP Options包含1个Internet Timestamp option,它又包含:
  • length字段设置为20
  • pointer字段设置为13
  • flg字段设置为1
  • 1个internet address设置为Tester地址
  • 1个timestamp值
  • 第12个字节到第19个字节设置为0
  1. Tester:监听在网卡上
  2. DUT:发送ICMP Echo Reply
  3. Tester:验证接收到的ICMP Echo Reply的IP Internet Timestamp option包含:
  • 第12个字节到第15个字节设置为DUT的地址
  • 第16个字节到第19个字节设置为时间戳值(不为0)


期望结果


3, DUT:发送ICMP Echo Reply
4, Tester:验证接收到的ICMP Echo Reply的IP Internet Timestamp option包含:

  • 第12个字节到第15个字节设置为DUT的地址
  • 第16个字节到第19个字节设置为时间戳值(不为0)


CANoe TC8

TC8:IPv4_OPTIONS_01-14_字段_11

参考

Derived from RFC 791 s3.1 p22 Internet Header Format (Internet Timestamp) (MAY)

TC8:IPv4_OPTIONS_01-14_车载以太网_12

IPv4_OPTIONS_08: Relation between timestamp & its own address

目的


当flg为3时,网络地址字段是预先指定的。如果IP模块将其自己的地址与下一个指定的Internet地址匹配,则仅注册其时间戳


测试步骤


  1. Tester:发送ICMP Echo Request,IP Options包含1个Internet Timestamp option,它又包含:
  • length字段设置为12
  • pointer字段设置为5
  • flg字段设置为3
  • 1个internet address设置为DUT地址
  • 第4个字节到第7个字节设置为0
  1. Tester:监听在网卡上
  2. DUT:发送ICMP Echo Reply
  3. Tester:验证接收到的ICMP Echo Reply的IP Internet Timestamp option包含:
  • 第4个字节到第7个字节为时间戳(不为0)


期望结果


3, DUT:发送ICMP Echo Reply
4, Tester:验证接收到的ICMP Echo Reply的IP Internet Timestamp option包含:

  • 第4个字节到第7个字节为时间戳(不为0)


CANoe TC8

TC8:IPv4_OPTIONS_01-14_时间戳_13

参考

Derived from RFC 791 s3.1 p22 Internet Header Format (Internet Timestamp) (MAY)

TC8:IPv4_OPTIONS_01-14_IPv4_14

IPv4_OPTIONS_09:Relation between timestamp & its own address, negative

目的


这是测试上条case的负反馈


测试步骤


  1. Tester:发送ICMP Echo Request,IP Options包含1个Internet Timestamp option,它又包含:
  • length字段设置为12
  • pointer字段设置为5
  • flg字段设置为3
  • 1个internet address设置为与DUT不同的地址
  • 第4个字节到第7个字节设置为0
  1. Tester:监听在网卡上
  2. DUT:发送ICMP Echo Reply
  3. Tester:验证接收到的ICMP Echo Reply的IP Internet Timestamp option包含:
  • 第4个字节到第7个字节为0(DUT未注册它的时间戳)


期望结果


3, DUT:发送ICMP Echo Reply
4, Tester:验证接收到的ICMP Echo Reply的IP Internet Timestamp option包含:

  • 第4个字节到第7个字节为0(DUT未注册它的时间戳)


CANoe TC8

TC8:IPv4_OPTIONS_01-14_字段_15

参考

Derived from RFC 791 s3.1 p22 Internet Header Format (Internet Timestamp) (MAY)

TC8:IPv4_OPTIONS_01-14_IPv4_14

IPv4_OPTIONS_10: Room for timestamp check

目的


如果有一些空间但没有足够的空间来插入完整的时间戳,则原始数据报被认为是错误的并被丢弃


测试步骤


  1. Tester:发送ICMP Echo Request,IP Options包含1个Internet Timestamp option,它又包含:
  • length字段设置为12
  • pointer字段设置为11
  • flg字段设置为0
  • 1个timestamp值
  1. Tester:监听在网卡上
  2. DUT:丢弃ICMP Echo Request并且不发送ICMP Echo Reply


期望结果


3, DUT:丢弃ICMP Echo Request并且不发送ICMP Echo Reply


CANoe TC8

TC8:IPv4_OPTIONS_01-14_时间戳_17

参考

Derived from RFC 791 s3.1 p23 Internet Header Format (Internet Timestamp) (MAY)

TC8:IPv4_OPTIONS_01-14_IPv4_18

IPv4_OPTIONS_11: Overflow bits validation

目的


如果Overflow计数本身溢出,则认为原始数据报有错误并被丢弃


测试步骤


  1. Tester:发送ICMP Echo Request,IP Options包含1个Internet Timestamp option,它又包含:
  • length字段设置为8
  • pointer字段设置为9(Tester发送时间戳)
  • Overflow字段设置为15
  • flg字段设置为0
  • 1个timestamp值
  1. Tester:监听在网卡上
  2. DUT:丢弃ICMP Echo Request并且不发送ICMP Echo Reply


期望结果


3, DUT:丢弃ICMP Echo Request并且不发送ICMP Echo Reply


CANoe TC8

TC8:IPv4_OPTIONS_01-14_IPv4_19

参考

Derived from RFC 791 s3.1 p23 Internet Header Format (Internet Timestamp) (MAY)

IPv4_OPTIONS_12: Check room for timestamp

目的


如果有一些空间但没有足够的空间来插入完整的时间戳,则可能会向源主机发送ICMP参数问题消息


测试步骤


  1. Tester:发送ICMP Echo Request,IP Options包含1个Internet Timestamp option,它又包含:
  • length字段设置为12
  • pointer字段设置为11
  • flg字段设置为0
  • 1个timestamp值
  1. Tester:监听在网卡上
  2. DUT:发送ICMP参数问题消息
  3. Tester:验证接收到的ICMP参数问题消息包含:Pointer字段设置为22(Basic IP Header length (20) + third octet (pointer field) of Internet Timestamp option)


期望结果


3, DUT:发送ICMP参数问题消息
4, Tester:验证接收到的ICMP参数问题消息包含:Pointer字段设置为22(Basic IP Header length (20) + third octet (pointer field) of Internet Timestamp option)


CANoe TC8

TC8:IPv4_OPTIONS_01-14_TC8_20

参考

Derived from RFC 791 s3.1 p23 Internet Header Format (Internet Timestamp) (MAY)

TC8:IPv4_OPTIONS_01-14_车载以太网_21

IPv4_OPTIONS_13: Validate overflow bits

目的


如果Overflow计数本身溢出,则可能会向源主机发送ICMP参数问题消息


测试步骤


  1. Tester:发送ICMP Echo Request,IP Options包含1个Internet Timestamp option,它又包含:
  • length字段设置为8
  • pointer字段设置为9(Tester发送时间戳)
  • Overflow字段设置为15
  • flg字段设置为0
  • 1个timestamp值
  1. Tester:监听在网卡上
  2. DUT:发送ICMP参数问题消息
  3. Tester:验证接收到的ICMP参数问题消息包含:Pointer字段设置为23 (Basic IP Header length (20) + fourth octet (oflw field))


期望结果


3, DUT:发送ICMP参数问题消息
4, Tester:验证接收到的ICMP参数问题消息包含:Pointer字段设置为23 (Basic IP Header length (20) + fourth octet (oflw field))


CANoe TC8

TC8:IPv4_OPTIONS_01-14_车载以太网_22

参考

Derived from RFC 791 s3.1 p23 Internet Header Format (Internet Timestamp) (MAY)

TC8:IPv4_OPTIONS_01-14_车载以太网_21

IPv4_OPTIONS_14: Timestamp option occurrence check

目的


时间戳Option在数据报中最多出现一次


测试步骤


  1. Tester:发送ICMP Echo Request,IP Options包含2个Internet Timestamp option,每一个都包含:
  • length字段设置为12
  • pointer字段设置为9
  • flg字段设置为0
  • 1个timestamp值
  1. Tester:监听在网卡上
  2. DUT:发送ICMP参数问题消息
  3. Tester:验证接收到的ICMP参数问题消息包含:Pointer字段设置为32 (Basic IP Header length (20) + one internet Timestamp option length (12))


期望结果


3, DUT:发送ICMP参数问题消息
4, Tester:验证接收到的ICMP参数问题消息包含:Pointer字段设置为32 (Basic IP Header length (20) + one internet Timestamp option length (12))


CANoe TC8

TC8:IPv4_OPTIONS_01-14_时间戳_24

参考

Derived from RFC 791 s3.1 p23 Internet Header Format (Internet Timestamp) (MAY)

TC8:IPv4_OPTIONS_01-14_TC8_25