NAME

  F_TX_expire - Reassembly Time Exceeded (Time Exceeded Before Last Fragments Arrive)

TARGET

  Host and Router

SYNOPSIS

INITIALIZATION

  Common Test Setup 1.1

TEST PROCEDURE

Verify that a node takes the proper actions when th reassembly time has been exceeded for a packet.

   TN                          NUT
    |                           |
    |-------------------------->|
    |   Echo Request (1st)      |
    |                           |
    |                           |
    |   wait for 65 sec.        |
    |                           |
    |                           |
    |<--------------------------|
    |   ICMP Error              |
    |                           |
    |-------------------------->|
    |   Echo Request (2nd)      |
    |                           |
    |-------------------------->|
    |   Echo Request (3rd)      |
    |                           |
    |                           |
    v                           v


  1. TN transmits 1st, 2nd and 3rd Fragments in order.
     There is a 65-second delay between the transmission of 1st Fragment and 2nd, 3rd Fragments.
  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 Global Address
            DestinationAddress = NUT Global 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 Global Address
            DestinationAddress = NUT Global Address

        Fragment Header
            NextHeader         = 58 (ICMPv6)
            FragmentOffset     = 0
            MFlag              = 1
            Identification     = 32bit (Automatic generation)

        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 Global Address
            DestinationAddress = NUT Global Address

        Fragment Header
            NextHeader         = 58 (ICMPv6)
            FragmentOffset     = 4
            MFlag              = 1
            Identification     = 32bit (Automatic generation)

        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 Global Address
            DestinationAddress = NUT Global Address

        Fragment Header
            NextHeader         = 58 (ICMPv6)
            FragmentOffset     = 8
            MFlag              = 0
            Identification     = 32bit (Automatic generation)

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

JUDGEMENT

  PASS: 2nd and 3rd Fragments arrive after the NUT's reassembly timer expires for 1st Fragment.
        The NUT must not transmit an Echo Reply to TN, as the Echo Request could not be reassembled in time.
        The NUT should transmit an ICMPv6 Time Exceeded Message to TN 
        sixty seconds after reception of 1st Fragment 
        with a code field value of 1(Fragment Reassembly Time Exceeded).

             - The unused field must be initialized to zero.
             - The Source Address of the Packet must be the same as the Global 
               Destination Address of TN's Echo Request packet.
             - The Destination Address should be the same as the Global 
               Source Address of TN's Echo Request packet.
             - The invoking Echo Request packet included in the Error 
               Message must not exceed minimum IPv6 MTU.

        IPv6 Header
            Version             = 6
            Traffic Class       = 0
            FlowLabel           = 0
            PayloadLength       = 88
            NextHeader          = 58 (ICMPv6)
            SourceAddress       = NUT Global Address
            Destination Address = TN Global 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