tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Calculation of IPv6 fragmented part length



On Mon, Apr 15, 2024 at 9:36 PM Yasuyuki KOZAKAI
<yasuyuki.kozakai%gmail.com@localhost> 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


Home | Main Index | Thread Index | Old Index