NAME

  F_PLinvalid - Fragment Header M-Bit Set, Payload Length Invalid

TARGET

  Host and Router

SYNOPSIS

INITIALIZATION

  None

TEST PROCEDURE

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}

JUDGEMENT

  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)

CLEANUP

Common Test Cleanup

REFERENCE

SEE ALSO

  perldoc V6evalTool