Re: [6lo] draft-ietf-6lo-fragment-recovery compress size

Michel Veillette <Michel.Veillette@trilliant.com> Mon, 21 January 2019 21:43 UTC

Return-Path: <Michel.Veillette@trilliant.com>
X-Original-To: 6lo@ietfa.amsl.com
Delivered-To: 6lo@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7F2AB12950A for <6lo@ietfa.amsl.com>; Mon, 21 Jan 2019 13:43:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.042
X-Spam-Level:
X-Spam-Status: No, score=-2.042 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.142, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=trilliant.onmicrosoft.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id iTbQXMYEDyYT for <6lo@ietfa.amsl.com>; Mon, 21 Jan 2019 13:43:54 -0800 (PST)
Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-eopbgr750111.outbound.protection.outlook.com [40.107.75.111]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 5FB391200B3 for <6lo@ietf.org>; Mon, 21 Jan 2019 13:43:54 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Trilliant.onmicrosoft.com; s=selector1-Trilliant-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=TAvEXz5W5RrMpAWBCKrFzlnoNccV+/D9FK7rzXFxKic=; b=QWzQQgsif5eq4k7uEgroJA+8FaJNQa1Swox8pUSF6OMZ8BsstKF9hfGf7GLTWCXjhVGgFuHidfS+NWa5ErxClPdLrH0/frRDSAkXvHlTsprGUcuZFOUOPfw42sgrJLH0AZ52+OF1FrB/HixfFh5sX9zkT09jsasY5H2yPzHKaDw=
Received: from BL0PR06MB5042.namprd06.prod.outlook.com (10.167.240.31) by BL0PR06MB4450.namprd06.prod.outlook.com (10.167.241.147) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1537.31; Mon, 21 Jan 2019 21:43:51 +0000
Received: from BL0PR06MB5042.namprd06.prod.outlook.com ([fe80::2dfb:7cf6:d7f0:25ad]) by BL0PR06MB5042.namprd06.prod.outlook.com ([fe80::2dfb:7cf6:d7f0:25ad%4]) with mapi id 15.20.1537.031; Mon, 21 Jan 2019 21:43:51 +0000
From: Michel Veillette <Michel.Veillette@trilliant.com>
To: "Pascal Thubert (pthubert)" <pthubert@cisco.com>, "Dario Tedeschi (dat@exegin.com)" <dat@exegin.com>
CC: "6lo@ietf.org" <6lo@ietf.org>
Thread-Topic: draft-ietf-6lo-fragment-recovery compress size
Thread-Index: AdSxzQ/YxG3Oo2dISXelLjiMPJ6AeA==
Date: Mon, 21 Jan 2019 21:43:50 +0000
Message-ID: <BL0PR06MB5042B4BCE08B031015E26F6E9A9F0@BL0PR06MB5042.namprd06.prod.outlook.com>
Accept-Language: fr-CA, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Michel.Veillette@trilliant.com;
x-originating-ip: [207.96.192.122]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BL0PR06MB4450; 6:r+shPlho2SnXh38fvtdt/Yx0aH0nXHXbZl23iaP2OStnEg6kuIs7D0yO3MmOZtchSxtHdxiHM53eZU+4MjhNp8s9Mbn+nJX0K8fEKhyOqVZyvBLkPW4QY2/GjMQ8Q56uZ41b/9BRqxxk4Lh8ZDsbFLcdDbtU2zytzpGNHCzt+anNO3rubqICe7xZRlAAA/+gdgUgqgcFUlLfRVJ91c/NHqAUWUzrkoNSRQYZUtdPiGXVzQxYLSDR4pt46CeMDDLwr4iQhQMEC7NVCiB8ZbT7tXJodyldNBi4dnk/e+Ld8jjV9376AdrPjFGRlcGYm5TMIblGRM3W9h3qlIfE+8VBamtI0bLorLxTBHpSJ3maIRB/81utMOet9PytNKottn86yeDI9I08OF2iz1FhVCzbZt0kOCagnCmG0TMKQurnwVRd/WMCm9cEitso8ZvzB46KUgB8rk7cVw9IiUHRAhZk/Q==; 5:+47tmdumBQDg6Nmvnh2esC6/mfJ9XrKQTCJklKFyjZy7QKbYq3rptcXbWSb2FWAz7Riw+P6dznBBjT/Gwa4g5Vkq2KgkMc+OojkfOzGHpBORUQu2kWf/uyQzFX6yJSRfb2gnwMtWmZyg+q7+3iE0sMJigzqvKoWenfzQVk9ldmC3PD/YqRzpAxRsyphek5mRPT9szPYY5YyWApU1UiOVcA==; 7:xR0w4WpQUJwxDdznX43fHQfjGLUQUBdk7WdjPhQkK2x7ObH6PhYTNdNTSBZka7Tl/f741Y9ex7X/cV60TLLP7vL7248Ggtta8vJyg7EcQVkKFEXF4czF1+HhrL5y3k5mwBqxOkiZqjmUH/sVw6cHHg==
x-ms-office365-filtering-correlation-id: 81094ece-23ea-4f7e-8773-08d67fe9885c
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600109)(711020)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:BL0PR06MB4450;
x-ms-traffictypediagnostic: BL0PR06MB4450:
x-microsoft-antispam-prvs: <BL0PR06MB4450CC37D28402990A6077589A9F0@BL0PR06MB4450.namprd06.prod.outlook.com>
x-forefront-prvs: 0924C6A0D5
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(366004)(376002)(346002)(396003)(136003)(39850400004)(189003)(199004)(53946003)(14454004)(99286004)(9686003)(236005)(53936002)(486006)(14444005)(256004)(54896002)(72206003)(186003)(6306002)(316002)(25786009)(26005)(86362001)(110136005)(6246003)(4326008)(476003)(106356001)(74316002)(229853002)(105586002)(7696005)(7736002)(8936002)(81166006)(81156014)(8676002)(6116002)(790700001)(3846002)(102836004)(97736004)(478600001)(55016002)(66066001)(6506007)(53546011)(561944003)(6436002)(71190400001)(71200400001)(2906002)(68736007)(33656002)(579004)(559001); DIR:OUT; SFP:1102; SCL:1; SRVR:BL0PR06MB4450; H:BL0PR06MB5042.namprd06.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: trilliant.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: 61xE2GfWo2MtGpgSOlGb4Y2DMPWXGa11nxSo7md/BdwoDW+YJObivakQedUJ6Phr22VMmM04XP6GFxPca5hdw+Kp3M4yOA9vEFsfBSSaCfNxVQIJ/6XQRJlV2n0h7imDAQAup5vTJgcbvobzHL9neIewYqYLS5Quv9R027jvtUdSIfcWaXO20r7U3miF1MMF1AZNWuC6PbDmlcfWcvcOwGLT9C83lF7NlAjwTEl2+u/WYIbuSW5NaoNbxcJPsauEezsfAhDvJEBCaFqZ2+90wkVOq1QVtxIJ9FE486ggtjTWbWRlU87H+PlX/izb11yIKk8UmkbWgm//GIEpQYJ8BjLkDI2MQoMdTtdKOGUZdZVH48iuR0sIEqSRV2H/vquEaIJMoDV8zykZZHq0u/HkRd0pouZafX5OAhj6b62S+co=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: multipart/alternative; boundary="_000_BL0PR06MB5042B4BCE08B031015E26F6E9A9F0BL0PR06MB5042namp_"
MIME-Version: 1.0
X-OriginatorOrg: Trilliant.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 81094ece-23ea-4f7e-8773-08d67fe9885c
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Jan 2019 21:43:50.9657 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4f6fbd13-0dfb-4150-85c3-d43260c04309
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR06MB4450
Archived-At: <https://mailarchive.ietf.org/arch/msg/6lo/3FoKE0ORkxxO1caftJSaJvB0eaw>
Subject: Re: [6lo] draft-ietf-6lo-fragment-recovery compress size
X-BeenThere: 6lo@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Mailing list for the 6lo WG for Internet Area issues in IPv6 over constrained node networks." <6lo.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/6lo>, <mailto:6lo-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/6lo/>
List-Post: <mailto:6lo@ietf.org>
List-Help: <mailto:6lo-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/6lo>, <mailto:6lo-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 21 Jan 2019 21:43:59 -0000

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) <pthubert@cisco.com>
Sent: Monday, January 21, 2019 6:58 AM
To: Michel Veillette <Michel.Veillette@trilliant.com>; Dario Tedeschi (dat@exegin.com) <dat@exegin.com>
Cc: 6lo@ietf.org
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 <Michel.Veillette@trilliant.com<mailto:Michel.Veillette@trilliant.com>>
Sent: jeudi 17 janvier 2019 18:56
To: Pascal Thubert (pthubert) <pthubert@cisco.com<mailto:pthubert@cisco.com>>; Dario Tedeschi (dat@exegin.com<mailto:dat@exegin.com>) <dat@exegin.com<mailto:dat@exegin.com>>
Cc: 6lo@ietf.org<mailto:6lo@ietf.org>
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)' <pthubert@cisco.com<mailto:pthubert@cisco.com>>; Dario Tedeschi (dat@exegin.com<mailto:dat@exegin.com>) <dat@exegin.com<mailto:dat@exegin.com>>
Cc: 6lo@ietf.org<mailto:6lo@ietf.org>
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) <pthubert@cisco.com<mailto:pthubert@cisco.com>>
Sent: Wednesday, January 16, 2019 9:59 AM
To: Michel Veillette <Michel.Veillette@trilliant.com<mailto:Michel.Veillette@trilliant.com>>
Cc: 6lo@ietf.org<mailto:6lo@ietf.org>
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 <Michel.Veillette@trilliant.com<mailto:Michel.Veillette@trilliant.com>>
Sent: mardi 15 janvier 2019 20:14
To: Pascal Thubert (pthubert) <pthubert@cisco.com<mailto:pthubert@cisco.com>>
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) <pthubert@cisco.com<mailto:pthubert@cisco.com>>
Cc: 6lo@ietf.org<mailto:6lo@ietf.org>
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