NAME

  Reassembly_Overlap - Overlapping Fragments
  Part C - Duplicate Fragments (Link-Local)


TARGET

  Host and Router


SYNOPSIS

  Reassembly_Dupli.seq [-tooloption ...] -pkt Reassembly_Dupli.def
    -tooloption : v6eval tool option


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)      | 
    |                           |
    |-------------------------->|
    |   Echo Request (1st)      |
    |                           |
    |-------------------------->|
    |   Echo Request (2nd)      |
    |                           |
    |-------------------------->|
    |   Echo Request (3rd)      |
    |                           |
    |<--------------------------|
    |      Echo Reply           |
    |                           |
    |                           |
    v                           v
  3. TN1 transmits Fragments A.1. 
  
  4. TN1 transmits Fragment A.1, A.2 and A.3 to the NUT.  Fragment A.3 has an offset of 0x8 so that it doesn't overlap with A.2.
  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     = 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 Link Local Address
            DestinationAddress = NUT Link Local 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 Link Local Address
            DestinationAddress = NUT Link Local 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: The NUT should process the fragment packets and transmit an Echo Reply.


CLEANUP

Common Test Cleanup


REFERENCE

RFC 8200 - IPv6 Specification


SEE ALSO

  perldoc V6evalTool