Subject: Re: doubt :Regarding buffer_size of encapsulation field .

From: "Hattig, Myron" <[email-masked]>
Date: Thu, 15 Apr 1999 08:31:13 -0700

The draft says:
         buffer_size: The size of the buffer, expressed as buffer_size + 1
         octets, necessary for the recipient to reassemble the link
fragments.

I can see how this may be confusing. Buffer size field is the size of the IP
packet  and the value of the field is equal in all link fragments of a
single
IP packet, thus your case 2 below is the correct case.

The purpose of the buffer size field is to allow the reassembly software
to allocate a buffer large enough to contain the entire IP packet upon the
reception of a initial link fragment.

Since buffer size field is in frag types of 1, 2, 3, and these fragments
may arrive out of order, any of these fragments can be the initial fragment
from which the reassembly software allocates the reassembly buffer that
is to contain the entire IP packet.

Hope this helps.

-myron

> ----------------------------------------------------------------------
> case 2: ( BUFFER_SIZE = SIZE OF THE ENTIRE IP PACKET )
>
> first fragment :
>         lf = 1
>         buffer_size = 1200
>
> second frgament :
>         lf = 3
>         buffer_size = 1200
>         fragment offset = 401
> third fragment :
>         lf = 2
>         buffer_size = 1200
>         fragment offset = 801
>
>

---

From: Kenji Fujisawa <[email-masked]>
Date: Fri, 16 Apr 1999 01:01:27 +0900

>IP packet, thus your case 2 below is the correct case.

Note that,

:   buffer_size: The size of the buffer, expressed as buffer_size + 1
                                                      ===============
:   octets, necessary for the recipient to reassemble the link
:   fragments.

and,

:   fragment_offset: This field is present only in the second and
:   subsequent link fragments and SHALL specify the offset, in octets, of
:   the fragment from the beginning of the IP datagram. The first octet
:   of the datagram (the start of the IP header) has an offset of zero;

>>         fragment offset = 801

should be
           buffer_size = 1199
           fragment offset = 400
           fragment offset = 800

Regards,

Kenji Fujisawa