NAME

  IP_NH_Unexpected - Unexpected Next Header in IPv6 Header

TARGET

  Host and Router

SYNOPSIS

INITIALIZATION

  None

TEST PROCEDURE

Verify that a node generates the appropriate response to aan unexpected Next Header field.

   TN                          NUT
    |                           |
    |-------------------------->|
    |   Test Packet             |
    |                           |
    |                           |
    |<--------------------------|
    |   ICMP Error              |
    |                           |
    v                           v

  1. TN transmits Test Packet to the NUT, which has an IPv6 header with a Next Header field of 0.
     The actual extension header that follows is a Fragment header.
     The Fragment ID is 135.
  2. Observe the packets transmitted by the NUT.

  Test Packet to Target Data is:

        IPv6 Header
            Version            = 6
            Traffic Class      = 0
            FlowLabel          = 0
            PayloadLength      = 16
            NextHeader         = 0 (Hop-by-Hop Options Header)
            SourceAddress      = TN Address
            DestinationAddress = NUT Address

        Fragment Header                      as HbH Options Header
            NextHeader      = 58 (ICMPv6)    <= Next Header
            Fragment Offset = 0              <= Option (Pad1)
            MFlag           = 0              <= Option (Pad1)
            Fragment ID     = 34560 (0x8700) <= Option (Undefined)

        ICMP Echo Request

JUDGEMENT

  PASS: The NUT would interpret the Fragment header as a Hop-by-Hop Options header.
        Thus, the Fragment ID would be interpreted ad if it were an Option Type.
        The NUT should send an ICMPv6 Parameter Problem message to TN.
        The Code field should be 2(unrecognized IPv6 Option encountered).
        The Pointerfield should be 0x2e(offset of the Fragment ID in the Fragment header).
        The NUT should discard Test Packet and should not send an Echo Reply to TN.

  ICMP Parameter Problem message is:

        IPv6 Header
            Version            = 6
            Traffic Class      = 0
            FlowLabel          = 0
            PayloadLength      = 56
            NextHeader         = 58 (ICMPv6)
            SourceAddress      = NUT Address
            DestinationAddress = TN Address

        ICMP Error
            Type           = 4 (Parameter Problem)
            Code           = 2 (unrecognized IPv6 Option encountered)
            Checksum       = (auto)
            Pointer        = 46 (Offset to Fragment ID in Fragment Header)
            PayloadData    = (Sent Packet)

CLEANUP

Common Test Cleanup

REFERENCE

SEE ALSO

  perldoc V6evalTool