EX_NH_UnexpectedEN - Unexpected Next Header in Extension Header - End Node
Host and Router
None
Verify that a node discards a packet with an unexpected next header in an extension header and transmits an ICMPv6 Parameter Problem message to the source of the packet.
TN NUT
| |
|-------------------------->|
| Test Packet |
| |
| |
|<--------------------------|
| ICMP Error |
| |
v v
1. TN transmits Test packet, which has a Destinatin Options header with a Next Header field of 60.
The actual extension header that follows is a Fragment header.
The Fragment Offset is 0x10E0(so that the first 8 bits of this 13 bit field would be 135).
The second reserved field is 0x2 and the more bit is clear.
(If processed as a Destination Options header, this would be processed as Option Data Length equals 4).
2. Observe the Packets transmitted by the NUT.
Test Packet Data is:
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 16
NextHeader = 60 (Destination Options Header)
SourceAddress = TN Address
DestinationAddress = NUT Address
Destination Options Header
NextHeader = 60 (Destination Options Header)
HeaderExtLength = 0
OptionType = 1 (PadN)
OptDataLength = 4
pad = {0, 0, 0, 0}
Fragment Header as Destination Options Header
NextHeader = 58 (ICMPv6) <= Next Header
Reserved = 0 <= Reserved
Fragment Offset = 0x10E0 <= | Option (135(Undefined),
Reserved2 = 0x2 <= | DataLen = 4)
MFlag = 0 <= |
Fragment ID = 0 <= OptData
ICMP Echo Request
Type = 128 (Echo Request)
Code = 0
Checksum = (auto)
Identifier = 0xffff
SequenceNumber = 1
PayloadData = {1, 2, 3, 4, 5, 6, 7, 8}
PASS: From the Next Header field in the Destination Options header,
the NUT expects the Fragment header to be a Destination Options header.
Thus, the Fragment Offset would be interpreted as if it were an Option Type.
The NUT should send an ICMPv6 Prameter Problem message to TN.
The Code field should be 2(unrecognized IPv6 Option encounterd).
The Pointer field should be 0x32(offset of the Fragment Offset in the Fragment header).
The NUT should discard Test Packet and should not send an Echo Reply to TN.
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 80
NextHeader = 58 (ICMPv6)
SourceAddress = NUT Address
DestinationAddress = TN Address
ICMP Error
Type = 4 (Parameter Problem)
Code = 2 (unrecognized IPv6 Option encountered)
Checksum = (auto)
Pointer = 52 (Offset to Fragment ID in Fragment Header)
PayloadData = (Sent Packet)
Common Test Cleanup
perldoc V6evalTool