NAME

  F_Reassembly_FID - Fragment Reassembly (Fragment IDs Differ Between Fragments)

TARGET

  Host and Router

SYNOPSIS

INITIALIZATION

  None

TEST PROCEDURE

Verify that a node correctly reassembles fragmented packets and distinguishes between packet fragments using the Source Address, Destination Address and Fragment ID.

   TN                          NUT
    |                           |
    |-------------------------->|
    |   Echo Request (1st)      |
    |   Fragment ID = 2999      |
    |                           |
    |-------------------------->|
    |   Echo Request (2nd)      |
    |   Fragment ID = 3000      |
    |                           |
    |-------------------------->|
    |   Echo Request (3rd)      |
    |   Fragment ID = 2999      |
    |                           |
    |<--------------------------|
    |   ICMP Error              |
    |                           |
    |                           |
    v                           v


  1. TN transmits 1st, 2nd and 3rd Fragments in order. 
     1st and 3rd Fragments have a Fragment ID of 2999.
     2nd Fragment has a Fragment ID of 3000.
     The Source and Destination Address for all fragments are the same.
  2. Observe the packets transmitted by the NUT.

  Echo Request Data (original) is:

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

        ICMP Echo Request
            Type           = 128 (Echo Request)
            Code           = 0
            Checksum       = (auto)
            Identifier     = (auto)
            SequenceNumber = 0
            PayloadData    = data repeat{0x1, 40}
                             data repeat{0x2, 40}

  Echo Request Data (1st fragment) is:

        IPv6 Header
            Version            = 6
            Traffic Class      = 0
            FlowLabel          = 0
            PayloadLength      = 40
            NextHeader         = 44 (Fragment Header)
            SourceAddress      = TN Link Local Address
            DestinationAddress = NUT Link Local Address

        Fragment Header
            NextHeader         = 58 (ICMPv6)
            FragmentOffset     = 0
            MFlag              = 1
            Identification     = 2999

        Payload
            data               = 32 octets from the head of ICMP Echo request

  Echo Request Data (2nd fragment) is:

        IPv6 Header
            Version            = 6
            Traffic Class      = 0
            FlowLabel          = 0
            PayloadLength      = 40
            NextHeader         = 44 (Fragment Header)
            SourceAddress      = TN Link Local Address
            DestinationAddress = NUT Link Local Address

        Fragment Header
            NextHeader         = 58 (ICMPv6)
            FragmentOffset     = 4
            MFlag              = 1
            Identification     = 3000

        Payload
            data               = 32 octets from the back of ICMP Echo request

  Echo Request Data (3rd fragment) is:

        IPv6 Header
            Version            = 6
            Traffic Class      = 0
            FlowLabel          = 0
            PayloadLength      = 32
            NextHeader         = 44 (Fragment Header)
            SourceAddress      = TN Link Local Address
            DestinationAddress = NUT Link Local Address

        Fragment Header
            NextHeader         = 58 (ICMPv6)
            FragmentOffset     = 8
            MFlag              = 0
            Identification     = 2999

        Payload
            data               = 24 octets from the back of ICMP Echo request

JUDGEMENT

  PASS: The NUT mustt not transmit an Echo Reply to TN, 
        as the Echo Request could not be reassembled due to differences in the Fragment ID.
        The NUT should transmit an ICMPv6 Time Exceeded Message to TN sixty seconds after reception of 1st Fragment.

        IPv6 Header
            Version             = 6
            Traffic Class       = 0
            FlowLabel           = 0
            PayloadLength       = 88
            NextHeader          = 58 (ICMPv6)
            SourceAddress       = NUT Link Local Address
            Destination Address = TN Link Local Address

        ICMP Echo Reply
            Type           = 3 (Time Exceeded)
            Code           = 1 (Fragment reassembly time exceeded)
            Checksum       = (auto)
            Reserved       = 0
            PayloadData    = (Sent Packet (1st))

CLEANUP

Common Test Cleanup

REFERENCE

SEE ALSO

  perldoc V6evalTool