F_PLinvalid - Fragment Header M-Bit Set, Payload Length Invalid
Host and Router
None
Verify that a node takes the proper actions when it receives a fragment with the M-bit set (more fragments), but which has a Payload Length that is not a multiple of 8 bytes.
TN NUT
| |
|-------------------------->|
| Echo Request (1st) |
| |
| |
|<--------------------------|
| ICMP Error |
| |
| |
v v
1. TN1 transmits an Echo Request that has a Fragment header with the M-bit set.
The Payload Length is 21, which is not a multiple of 8 octets.
2. Observe the packets transmitted by the NUT.
Echo Request (1st fragment) is:
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 21 (not multiple of 8 octets)
NextHeader = 44 (Fragment Header)
SourceAddress = TN Link Local Address
DestinationAddress = NUT Link Local Address
Fragment Header
NextHeader = 58 (ICMPv6)
FragmentOffset = 0 (1st fragment)
MFlag = 1 (more fragment)
ICMPv6 Echo Request
Type = 128 (Echo Request)
Code = 0
Checksum = (auto)
Identifier = (auto)
SequenceNumber = 0
PayloadData = {0, 1, 2, 3, 4}
PASS: The NUT must not transmit an Echo Reply to TN, as the fragment was discarded.
The NUT should transmit an ICMPv6 Parameter Problem message to TN.
The Code field should be 0 (erroneous header field encountered).
The Pointer field should be 0x04 (ofset of Payload Length field of the IPv6 header).
IPv6 Header
Version = 6
Traffic Class = 0
FlowLabel = 0
PayloadLength = 61
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 (Pointer to Payload Length in IPv6 Header)
PayloadData = (Sent Packet)
Common Test Cleanup
perldoc V6evalTool