EX_HdrProcessingOrder_HDF_00M - Extension Header Processing Order
(Destination Options Header precedes Fragment Header,
Error from Fragment Header)
Host and Router
None
Verify that a node properly processes the headers of an IPv6 packet in the correct order.
TN NUT
| |
|-------------------------->|
| Test Packet |
| |
| |
|<--------------------------|
| ICMP Error |
| |
v v
1. TN transmits Test Packet, an Echo Request that has a Hop-by-Hop Options header,
Destination Options header, and Fragment header, in that order.
The Destination Options header has an unknown Option Type 7.
The IPv6 header has a Payload Length that is not a multiple of 8 octets,
and the Fragment header has the M-bit set.
2. Observe the packets transmitted by the NUT.
Test Packet Data is:
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 37
NextHeader = 0 (Hop-by-Hop Options Header)
SourceAddress = TN Link Local Address
DestinationAddress = NUT Link Local Address
Hop-by-Hop Options Header
NextHeader = 60 (Destination Options Header)
HeaderExtLength = 0
OptionType = 1 (PadN)
OptDataLength = 4
pad = {0, 0, 0, 0}
Destination Options Header
NextHeader = 44 (Fragment Header)
HeaderExtLength = 0
OptionType = 0x07 (unknown, msb: 00)
OptDataLength = 4 (for 8 octets alignment)
data = {0, 0, 0, 0}
Fragment Header
NextHeader = 58 (ICMPv6)
FragmentOffset = 0
MFlag = 1
FragmentID = 102
ICMP Echo Request
Type = 128 (Echo Request)
Code = 0
Checksum = (auto)
Identifier = 0xffff
SequenceNumber = 1
PayloadData = {1, 2, 3, 4, 5}
PASS: The NUT should send an ICMPv6 Parameter Problem message to TN.
The Code field must be 0(erroneous header field encountered).
The Pointer field should be 0x04(offset of Payload Length field in the IPv6 header).
The NUT must discard the Echo Request from TN.
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 85
NextHeader = 58 (ICMPv6)
SourceAddress = NUT Link Local Address
Destination Address = TN Link Local Address
ICMP Error
Type = 4 (Parameter Problem)
Code = 0 (erroneous header field encountered)
Checksum = (auto)
Pointer = 4 (Payload Length field in IPv6 header)
PayloadData = (Sent Packet)
Common Test Cleanup
perldoc V6evalTool