Subject: [lp-wan] Fragmentation header format for retries

From: "Carles Gomez Montenegro" <[email-masked]>
Date: Thu, 4 May 2017 09:24:13 +0200

Hi everyone,

As discussed recently, a solution for avoiding possible ambiguity for
fragment retries in Packet mode is to define a specific fragmentation
header format for retries (i.e. different from the one used for first
transmission attempts), possibly using more bits.

Two options for fragmentation header formats for retries are the following.

Option 1
********

                    <------------- R ------------>
                                  <- T -> <------ A ------>
                    +---- ... ---+- ... -+------ ... -----+
                    |   Rule ID  | DTag  |       AFN      |
                    +---- ... ---+- ... -+------ ... -----+

AFN stands for Absolute Fragment Number. Size A may be greater than the
size of the CFN field. Note that with A = 8 bits, all fragments of a
1280-byte packet can be unambiguously numbered over all LPWAN technologies
currently considered by the WG.

This option has the following characteristics:

- It avoids ambiguity.
- It is perfectly compatible with current bitmap-based feedback from the
receiver.
- It does *not* support L2 MTU decrease after original fragment
transmissions.

Option 2
********

                    <------------- R ------------>
                                  <- T -> <-------- F ------->
                    +---- ... ---+- ... -+-------- ... ------+
                    |   Rule ID  | DTag  |  datagram_offset  |
                    +---- ... ---+- ... -+-------- ... ------+

datagram_offset specifies the offset, in increments of 1 octet, of the
fragment from the beginning of the payload datagram. The default size of
this field is 11 bit.

This option has the following characteristics:

- It avoids ambiguity.
- It supports L2 MTU decrease after original fragment transmissions.
- If L2 MTU decrease happens, it is not so nicely compatible with the
current bitmap-based feedback from the receiver. The bitmap bits refer to
'original' fragments, so fine-grained feedback for 'subfragments of
fragments' is not possible with the current approach. Coarse-grained
feedback (i.e. 'some part of this original fragment is missing' or 'the
original fragment has been completely received') is still possible, but
that would mean potentially more retransmissions than strictly needed for
all 'subfragments of fragments' corresponding to some original fragment.

----

With the aim of structuring a little bit this discussion:

A.- Do we (as a WG) require to support L2 MTU decrease (after
    original fragment transmission) for retries, i.e. sending 'subfragments
    of fragments'?

      (If the answer is No, I would propose going for Option 1.)

B.- If the answer is Yes, would the coarse-grained feedback for Option 2 be
    acceptable?

      (If Yes, this could be considered for Window mode as well to support
       L2 MTU decrease...)

If L2 MTU decrease (after original fragment transmissions) is to be
supported, it would be necessary to have some characterization of such
events. How likely are they? How likely is it e.g. that a fragment needs
to be subdivided, first in a subfragment of 50% the original size and
then, after another L2 MTU decrease, the rest needs to be subdivided
further as e.g. 2 subfragments of 25% original size each?

(I wonder if the receiver will be able to provide feedback at the
subfragment level at all...)

Comments on these (or other) options are very much welcome!

Thanks,

Carles