Hi Pascal

There is a small error in the new version.

The 'X' flag location in "Figure 2: RFRAG Dispatch type and Header" don't match 
the list
of dispatch types in "Figure 1: Additional Dispatch Value Bit Patterns".
Figure 1 or 2 need to be updated.

              Pattern    Header Type
            +------------+------------------------------------------+
            | 11  101000 | RFRAG       - Recoverable Fragment       |
            | 11  101001 | RFRAG-ARQ   - RFRAG with Ack Request     |
            | 11  101010 | RFRAG-ACK   - RFRAG Acknowledgment       |
            | 11  101011 | RFRAG-ECHO  - RFRAG Ack with ECN Echo    |
            +------------+------------------------------------------+

             Figure 1: Additional Dispatch Value Bit Patterns

                            1                   2                   3
        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                       |1 1 1 0 1 0 0|E|  datagram_tag |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |X| sequence|   fragment_size   |       fragment_offset         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

             Figure 2: RFRAG Dispatch type and Header

Thanks for your quick turnaround to address the fragment size limitations, 
first fragment slack and first fragment size update issues.

Regards,
Michel

From: Pascal Thubert (pthubert) <[email protected]>
Sent: Wednesday, January 23, 2019 2:53 AM
To: Dario Tedeschi <[email protected]>; Michel Veillette 
<[email protected]>
Cc: [email protected]
Subject: Re: draft-ietf-6lo-fragment-recovery compress size

Hello Dario and Michel

I published 01 with the new format and text explaining the slack and offset 
management based on our discussion.

Many thanks, this is a much needed improvement !
All the best,

Pascal

Le 22 janv. 2019 à 21:02, Dario Tedeschi 
<[email protected]<mailto:[email protected]>> a écrit :
Hi Pascal,

Thanks for the clarification.

I agree that offsets in compressed form make more sense, if one considers RFC 
8138.

Regards
Dario

On 1/22/19 2:10 AM, Pascal Thubert (pthubert) wrote:
To your last question Michel, also as an answer to Dario:

I think that the biggest contributor is the source and destination address, 
since the source may be elided on the first hop and the destination may be 
elided on the last hop. In intermediate hops, the source and destination (that 
are global addresses as opposed to your example) are not mapped on the MAC 
addresses thus not compressed, at least statelessly.

Also note vs. your example that I’d use RFC 8138 for the routing header; the 
cool thing is that the size can only go down. Else you need to allow an 
additional slack as discussed below.

For Dario: the slack is basically done by leaving enough room for both source 
and destination to go uncompressed or compressed worst case (e.g., within a 
subnet the prefix can be coming from the context all the way through). Same 
goes for hlim if it is compressed on the first hop, which I would not recommend 
if multihop is expected.

Slack is done by sending a first fragment that  that does not fill the MTU. 
E.g. if the MTU is 127, and you compressed IID of the source address based on 
EUI-64 and the hlim, then build the first fragment as if the MTU was 118…

Note that a datagram_offset  based on the uncompressed form expects the exact 
same packet out of the compressor, and that RFC 8138 removes the consumer 
routing headers. To Dario’s question this is an exception to RFC 8200. If we 
use the offset in the original packet and a fragment is routed with source 
routing, we’ll need to reassemble at each hop, which defeats the purpose.

All the best;

Pascal


From: 6lo <[email protected]><mailto:[email protected]> On Behalf Of 
Pascal Thubert (pthubert)
Sent: lundi 21 janvier 2019 22:57
To: Michel Veillette 
<[email protected]><mailto:[email protected]>
Cc: Dario Tedeschi ([email protected]<mailto:[email protected]>) 
<[email protected]><mailto:[email protected]>; [email protected]<mailto:[email protected]>
Subject: Re: [6lo] draft-ietf-6lo-fragment-recovery compress size

Hello Michel

I already answered that today, actually: )

There is no such assumption but the node that changes the size also needs to 
change the offset on all fragments.

The expectation is that only the first fragment may change. The delta offset 
that happens on the first fragment must be applied on all further fragments on 
both length and offset fields as an additive or substractive constant. I need 
to write that clearly.

Now if you prefer to go back to using offsets in the uncompressed form please 
let us know by answering my earlier mail today : )
All the best

Pascal

Le 21 janv. 2019 à 22:43, Michel Veillette 
<[email protected]<mailto:[email protected]>> a écrit 
:
Hi Pascal

Draft "draft-ietf-6lo-fragment-recovery" seem to assume that the size of the 
compressed header stay fix while traveling the RPL domain.

For example:
  "In this specification, the size and offset of the fragments are expressed on 
the compressed packet."
 "The last fragment for a datagram is recognized when its fragment_offset and 
its fragment_size add up to the datagram_size."

However, fields HLIM [RFC6282], CmprI and CmprE [RFC6554] may have an impact on 
the compressed header size if the maximum compression is applied at each hop.

Is this problem addressed in the draft?
Are you aware of other IPv6 fields or options which can cause this issue?
How this issue should be addressed?

I tried to illustrate this problem in the example bellow:

IPv6 packet
  - IPv6 packet header
    - Hop limit = 66 (elided)
    - Source Address      = FE80 0000 0000 0000 0201 4200 0000 0000 (elided)
    - Destination Address = FE80 0000 0000 0000 0214 7700 0000 0001 (elided)
  - RPL routing header
    - CmprI = 15
    - CmprE = 9
    - Addresses = FE80 0000 0000 0000 0214 7700 0000 0002, FE80 0000 0000 0000 
0214 7700 0000 0003, FE80 0000 0000 0000 0200 0C00 0000 0004

IPv6 packet
  - IPv6 packet header
    - Hop limit = 65 (elided)
    - Source Address      = FE80 0000 0000 0000 0201 4200 0000 0000 (elided)
    - Destination Address = FE80 0000 0000 0000 0214 7700 0000 0002 (elided)
  - RPL routing header
    - CmprI = 15
    - CmprE = 9
    - Addresses = FE80 0000 0000 0000 0214 7700 1234 0001, FE80 0000 0000 0000 
0214 7700 1234 0003, FE80 0000 0000 0000 0201 42AB CDEF 0004

IPv6 packet
  - IPv6 packet header
    - Hop limit = 64 (in line)
    - Source Address      = FE80 0000 0000 0000 0201 4200 0000 0000 (elided)
    - Destination Address = FE80 0000 0000 0000 0214 7700 0000 0003 (elided)
  - RPL routing header
    - CmprI = 9
    - CmprE = 9
    - Addresses = FE80 0000 0000 0000 0214 7700 1234 0001, FE80 0000 0000 0000 
0214 7700 0000 0002, FE80 0000 0000 0000 0201 42AB CDEF 0004

IPv6 packet
  - IPv6 packet header
    - Hop limit = 63 (elided)
    - Source Address      = FE80 0000 0000 0000 0201 4200 0000 0000 (elided)
    - Destination Address = FE80 0000 0000 0000 0200 0C00 0000 0004 (elided)
  - RPL routing header
    - CmprI = 9
    - CmprE = 9
    - Addresses = FE80 0000 0000 0000 0214 7700 1234 0001, FE80 0000 0000 0000 
0214 7700 0000 0002, FE80 0000 0000 0000 0214 7700 0000 0003

Regards,
Michel


From: Pascal Thubert (pthubert) <[email protected]<mailto:[email protected]>>
Sent: Monday, January 21, 2019 6:58 AM
To: Michel Veillette 
<[email protected]<mailto:[email protected]>>; Dario 
Tedeschi ([email protected]<mailto:[email protected]>) 
<[email protected]<mailto:[email protected]>>
Cc: [email protected]<mailto:[email protected]>
Subject: RE: draft-ietf-6lo-fragment-recovery maximum fragment size too small

Works for me Michel :

So we need answers from the list. The choice on the table is either to reduce 
the datagram_tag field to 256 as illustrated below or to use a 4 bytes unit for 
links with large MTUs (more than 127 octets).

What do people think is more appropriate to their needs?

Pascal

From: Michel Veillette 
<[email protected]<mailto:[email protected]>>
Sent: jeudi 17 janvier 2019 18:56
To: Pascal Thubert (pthubert) <[email protected]<mailto:[email protected]>>; 
Dario Tedeschi ([email protected]<mailto:[email protected]>) 
<[email protected]<mailto:[email protected]>>
Cc: [email protected]<mailto:[email protected]>
Subject: RE: draft-ietf-6lo-fragment-recovery maximum fragment size too small

Hi Pascal

I'm sorry, the propose format in my last email doesn't fix the datagram total 
length limitation.
32 fragments of 512 bytes still limit the datagram to 16 kB.

Based on the following constraints:

  *   Up to 256 active datagram
  *   Up to 32 fragments
  *   Up to  64kB datagram
  *   Up to 2kB fragment (32 fragments of 2 kB = 64 kB datagram)

I recommend the following Dispatch type formats.

Alternatively, the original format with a 4 bytes unit will work for us but 
doesn't seem to address all potential issues.

                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                                      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                      |1 1 1 0 1 0 0|X|  datagram_tag |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |E| sequence|   fragment_size   |       fragment_offset         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                                      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                      |1 1 1 0 1 0 1 Y|  datagram_tag |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          RFRAG Acknowledgment Bitmap (32 bits)                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Regards,
Michel

From: Michel Veillette
Sent: Wednesday, January 16, 2019 9:04 PM
To: 'Pascal Thubert (pthubert)' 
<[email protected]<mailto:[email protected]>>; Dario Tedeschi 
([email protected]<mailto:[email protected]>) 
<[email protected]<mailto:[email protected]>>
Cc: [email protected]<mailto:[email protected]>
Subject: RE: draft-ietf-6lo-fragment-recovery maximum fragment size too small

Using a 4 bytes unit for size and offset doesn't seem to fully solve all 
issues, this solution is still limited to 8 kB datagram.
About the dual formats proposal, I'm not convinced this problem is such we 
can't find a single format acceptable for everyone.
If maintaining an overhead of 6 bytes is a must, the solution below might be 
the best compromise.

                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1 1 1 0 1 0 0| fragment_size   |X|E| sequence|  datagram_tag   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |         fragment_offset       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


                           1                   2                   3

       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

                      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                      |1 1 1 0 1 0 1 0|Y| Reserved  |  datagram_tag   |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |          RFRAG Acknowledgment Bitmap (32 bits)                |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Regards,
Michel


From: Pascal Thubert (pthubert) <[email protected]<mailto:[email protected]>>
Sent: Wednesday, January 16, 2019 9:59 AM
To: Michel Veillette 
<[email protected]<mailto:[email protected]>>
Cc: [email protected]<mailto:[email protected]>
Subject: RE: draft-ietf-6lo-fragment-recovery maximum fragment size too small

Hello Michel

I have not seen a strong argument against saying that the unit for size and 
offset is 4 bytes if the MTU is larger than 127 bytes. This keeps classical 
802.15.4 with 1 octet and allows fragments of 512 with 802.15.4g. that would be 
the simplest and most economical way of doing it. The only issue is that the 
last fragment might be less than the fragment_size, but that can be found based 
on the frame size. This seems to be the best tradeoff to me.

As an alternate we could define both of the formats that you copied below, one 
as 1 1 1 0 1 0  and the other as 1 1 1 0 1 1 as follows:


                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                                      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                      |1 1 1 0 1 0 0|X|  datagram_tag |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |E| sequence|   fragment_size   |       fragment_offset         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                                      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                      |1 1 1 0 1 0 1 Y|  datagram_tag |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          RFRAG Acknowledgment Bitmap (32 bits)                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

vs.

                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                      |1 1 1 0 1 1 0|X|         datagram_tag          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |E| sequence|   fragment_size   |       fragment_offset         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                      |1 1 1 0 1 1 1 Y|         datagram_tag          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          RFRAG Acknowledgment Bitmap (32 bits)                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+


what do you think?

Pascal



From: Michel Veillette 
<[email protected]<mailto:[email protected]>>
Sent: mardi 15 janvier 2019 20:14
To: Pascal Thubert (pthubert) <[email protected]<mailto:[email protected]>>
Subject: RE: draft-ietf-6lo-fragment-recovery maximum fragment size too small

Hi Pascal

Did we reach any consensus about the RFRAG Dispatch type format?
See the last two formats proposed bellow.

Regards,
Michel

From: Michel Veillette
Sent: Tuesday, January 8, 2019 2:28 PM
To: Pascal Thubert (pthubert) <[email protected]<mailto:[email protected]>>
Cc: [email protected]<mailto:[email protected]>
Subject: RE: draft-ietf-6lo-fragment-recovery maximum fragment size too small

Hi Pascal

A 8 bits "datagram_tag" is a strict minimum in our case and peoples might have 
good arguments to keep this field aligned with RFC4944.
I also don't see how to implement a 10 bits or 12 bits "datagram_tag" without 
adding an octet.

I can go either way but my preference are:
- 16 bits datagram_tag
- 10 bits fragment_size
- 16 bits fragment_offset


                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                                      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                      |1 1 1 0 1 0 0|X|  datagram_tag |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |E| sequence|   fragment_size   |       fragment_offset         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                                      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                                      |1 1 1 0 1 0 1 Y|  datagram_tag |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          RFRAG Acknowledgment Bitmap (32 bits)                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

vs.

                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                      |1 1 1 0 1 0 0|X|         datagram_tag          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |E| sequence|   fragment_size   |       fragment_offset         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

                           1                   2                   3
       0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
                      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                      |1 1 1 0 1 0 1 Y|         datagram_tag          |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |          RFRAG Acknowledgment Bitmap (32 bits)                |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Regards,
Michel

_______________________________________________
6lo mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/6lo

Reply via email to