Re: Calculation of IPv6 fragmented part length

Ryota Ozaki <[email protected]>
Newsgroups gmane.os.netbsd.devel.network
Message-ID <CAKrYomhaS3-r6B0C-Nz0-FScVC3Wex5HMT8Z1w983y6RzRANBQ@mail.gmail.com>
On Mon, Apr 15, 2024 at 9:36 PM Yasuyuki KOZAKAI
<[email protected]> wrote:
>
>
> > Just curious, how did you find the issue? It seems to rarely occur.
>
>
> I run IPv6 Ready Logo Phase-2 Self Test tool 5.0.8 and the following test failed.
> I don’t know why the test author chose the fragment size.

Oh, I see, thanks.
It seems we used to use it, but not now.

  ozaki-r

>
>
> Reference:
> IPv6 Core Protocols Test Specification and Self Test tool
>     https://www.ipv6ready.org/resources/ipv6-core-protocols.html
>
>
> ================================================================
> NAME
>
>   F_Reassembly_Valid - Fragment Reassembly (All Fragments are Valid)
> TARGET
>
>   Host and Router
> SYNOPSIS
>
>   F_Reassembly_Valid.seq [-tooloption ...] -pkt F_Reassembly_Valid.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 (2nd)      |
>     |                           |
>     |-------------------------->|
>     |   Echo Request (3rd)      |
>     |                           |
>     |<--------------------------|
>     |   Echo Reply              |
>     |                           |
>     |                           |
>     v                           v
>
>   1. TN transmits 1st, 2nd and 3rd Fragments in order.
>      All fragments have the same Source Address, Destination Address, and Fragment ID.
>   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     = 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 must transmit an Echo Reply to TN in response to the reassembled Echo Request.
>         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           = 129 (Echo Reply)
>             Code           = 0
>             Checksum       = (auto)
>             Identifier     = (same as Echo Request)
>             SequenceNumber = (same as Echo Request)
>             PayloadData    = (same as Echo Request)
>
> CLEANUP
>
> Common Test Cleanup
>
> REFERENCE
>
> RFC 8200 - IPv6 Specification
>
> SEE ALSO
>
>   perldoc V6evalTool
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.