Re: [6lo] Intdir last call review of draft-ietf-6lo-minimal-fragment-04

"Pascal Thubert (pthubert)" <pthubert@cisco.com> Wed, 13 November 2019 00:30 UTC

Return-Path: <pthubert@cisco.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 63A4C120130; Tue, 12 Nov 2019 16:30:25 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.399
X-Spam-Level:
X-Spam-Status: No, score=-14.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com header.b=Qa7bmmDY; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=0bvqrxJU
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 r4te9UBgdyuy; Tue, 12 Nov 2019 16:30:22 -0800 (PST)
Received: from rcdn-iport-3.cisco.com (rcdn-iport-3.cisco.com [173.37.86.74]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C5AF91200B5; Tue, 12 Nov 2019 16:30:21 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=84487; q=dns/txt; s=iport; t=1573605021; x=1574814621; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=2XXeKBLHnaCtmivlX4TQ7gntWyLVSpIl3tsDJ87/iw4=; b=Qa7bmmDYl9Jl+IzrrF6z8yEHhMTy978ss/tsPJ7o+3N45CW0QPUbGgzn ejfAoNFDAHuBdR2Yb0NMXmcguFM+AQ8FN9wqJn9yalggxjMwhgY/a3Chd GoyDqwVqhsPbko12T/dWkyJOGXgrHRX9ycLN6JU67YXv+FYt7LNqdkwp1 c=;
IronPort-PHdr: 9a23:DEdkRhfxEWIci6D7rqn2rs5GlGMj4e+mNxMJ6pchl7NFe7ii+JKnJkHE+PFxlwGQD57D5adCjOzb++D7VGoM7IzJkUhKcYcEFnpnwd4TgxRmBceEDUPhK/u/dzA6Ac5PTkNN9HCgOk8TE8H7NBXf
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CIAACWTctd/5xdJa1mGQEBAQEBAQEBAQEBAQEBAQEBEQEBAQEBAQEBAQEBgX6BHC8kBScFbFggBAsqCoQfg0YDinSCOSV/lwGBQoEQA1QJAQEBDAEBIgsCAQGBY4JdAheCBiQ4EwIDCwEBBAEBAQIBBQRthQsGJgyFUQEBAQECARIICQQGEwEBNwEECwIBBgIOAwQBAQEgAQYDAgICMBQJCAIEDgUignsEAQGBeU0DDh8BAQIMk0eQYwKBOIhgdX8zgn4BAQWFFwMVghcDBoE2gV2DPYZ6GIFAP4ERJwwTgU5JNT6CYgEBAgEXgS8vFgmCWjKCLI0BCSmCWYVDiT2PCAqCJYcXhSSJCRuCPYdhhDWLJpBlhhiRQAIEAgQFAg4BAQWBaSINgUtwFRohKgGCQRM9ERSJZoc0gScBAoJJhRSFP3QBAQEBgSSPGgGBDgEB
X-IronPort-AV: E=Sophos;i="5.68,298,1569283200"; d="scan'208,217";a="650195914"
Received: from rcdn-core-5.cisco.com ([173.37.93.156]) by rcdn-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 13 Nov 2019 00:30:19 +0000
Received: from XCH-RCD-003.cisco.com (xch-rcd-003.cisco.com [173.37.102.13]) by rcdn-core-5.cisco.com (8.15.2/8.15.2) with ESMTPS id xAD0UJsq021133 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Wed, 13 Nov 2019 00:30:19 GMT
Received: from xhs-rcd-001.cisco.com (173.37.227.246) by XCH-RCD-003.cisco.com (173.37.102.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 12 Nov 2019 18:30:18 -0600
Received: from xhs-rtp-001.cisco.com (64.101.210.228) by xhs-rcd-001.cisco.com (173.37.227.246) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Tue, 12 Nov 2019 18:30:17 -0600
Received: from NAM05-CO1-obe.outbound.protection.outlook.com (64.101.32.56) by xhs-rtp-001.cisco.com (64.101.210.228) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Tue, 12 Nov 2019 19:30:11 -0500
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=O6hW0koakW4US6d6WOS+3qdJ9lnEp5i73nQXy/r8TYI6EBpQcfO1fEFYvotxxNwLMmyvd4OOHTSb72GkveLvjgAOji0q7yljFa3/W05s4p47SO4xJ2A5ATzEZ1sCYhFlceymW1XOPKIKviyuo/nzNIrjcK7JptlHrTnyamzAYW0y0DJpM54OqhQenSLH6tXaqwt7VbcCfljsZ9T0K7B4VUXtKqVRE2rkkVH2/nTMNkJGlVt70MagAgfjs0ubbrlH+9WBLFTMHGqZdVYPxjvBNQ/0aBJWGeGrID2+TOO8WbeltfX9IOLi6uYZl6ZVDspYg2ObukRaMG6r8j2tpIdJvA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2XXeKBLHnaCtmivlX4TQ7gntWyLVSpIl3tsDJ87/iw4=; b=csJrPRTsdoqMoigjWrw8qIP3/1Tq1m4MYk7aLRVViML4WMqz1Mjuyl7PBwacXSekDKuPNydp8UCCEdmP+OMEehs4znWbL2id2SUxHng8YXH+LNVQHZjBo+37UH3IZgBMKRKJIxTiVE/bfcALgbDKqNBb0BUKFOe5d0tRi5VSD72eHbbiTd/P3MRTLlEiXYfzgcoFfRfG5l0Ds4OR4qb8FOr+O3V1TZF3ht4sndNpM/wueowam/fipiIkn4JkFutAsQuqngzRYly/hg/NjdpiUIV4Xik0o/XqpJlt6toDw/7EC6d3X19UexKjG1jFroQGDyRJGMSGgZY0UUnPcRX/4A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cisco.com; dmarc=pass action=none header.from=cisco.com; dkim=pass header.d=cisco.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.onmicrosoft.com; s=selector2-cisco-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=2XXeKBLHnaCtmivlX4TQ7gntWyLVSpIl3tsDJ87/iw4=; b=0bvqrxJUUNdKI4CO6T8Calc0rMcv9vAgLBqryaQP1G4K/OjR3C8W8VN56wdj2O9uoyTVYkmDhXcMjw0n1ma9dnvzrg/T06Yi/xYJHTjv5FsMhCMWNznwhx3IvAw1Ij5tOrVwe2w/8wpcLlB8dOpo0xmmZEfwNrOJV6+diU+ikhs=
Received: from MN2PR11MB3565.namprd11.prod.outlook.com (20.178.250.159) by MN2PR11MB4205.namprd11.prod.outlook.com (52.135.39.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2430.25; Wed, 13 Nov 2019 00:30:09 +0000
Received: from MN2PR11MB3565.namprd11.prod.outlook.com ([fe80::3037:66f1:dc79:b564]) by MN2PR11MB3565.namprd11.prod.outlook.com ([fe80::3037:66f1:dc79:b564%7]) with mapi id 15.20.2451.023; Wed, 13 Nov 2019 00:30:09 +0000
From: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
To: Dave Thaler <dthaler@microsoft.com>
CC: "draft-ietf-6lo-minimal-fragment.all@ietf.org" <draft-ietf-6lo-minimal-fragment.all@ietf.org>, "6lo@ietf.org" <6lo@ietf.org>
Thread-Topic: Intdir last call review of draft-ietf-6lo-minimal-fragment-04
Thread-Index: AQHVlPdRdAzM57x8DkqeVzdB76HcJ6d/f0lAgAC5jgCAABTpfoAAEuIAgADiCfCABsLjgIAAQ4Wl
Date: Wed, 13 Nov 2019 00:30:09 +0000
Message-ID: <9A9B7CE2-0793-4E82-86E0-90CF25F30120@cisco.com>
References: <157308179603.20089.3680167711838185681@ietfa.amsl.com> <MN2PR11MB356517192D428E8181F7FB06D8780@MN2PR11MB3565.namprd11.prod.outlook.com>, <MWHPR21MB0784B933306ADFFE22E0B2E5A3780@MWHPR21MB0784.namprd21.prod.outlook.com> <426C0687-C855-4948-AB27-DD824B990294@cisco.com> <MWHPR21MB07842508826ECF3B53A2C298A3780@MWHPR21MB0784.namprd21.prod.outlook.com> <MN2PR11MB3565CCD02EEF202772EA76C3D87B0@MN2PR11MB3565.namprd11.prod.outlook.com>, <MWHPR21MB078430BA7D9A1B7E504DEAC6A3770@MWHPR21MB0784.namprd21.prod.outlook.com>
In-Reply-To: <MWHPR21MB078430BA7D9A1B7E504DEAC6A3770@MWHPR21MB0784.namprd21.prod.outlook.com>
Accept-Language: fr-FR, en-US
Content-Language: fr-FR
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=pthubert@cisco.com;
x-originating-ip: [101.230.0.195]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: b0262a99-c1eb-498e-60c2-08d767d0a3f7
x-ms-traffictypediagnostic: MN2PR11MB4205:
x-ms-exchange-purlcount: 2
x-microsoft-antispam-prvs: <MN2PR11MB4205DCB190D6BDC603FAA3C7D8760@MN2PR11MB4205.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 0220D4B98D
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(136003)(376002)(39860400002)(396003)(346002)(366004)(189003)(199004)(5660300002)(8676002)(91956017)(6916009)(14454004)(71190400001)(486006)(1511001)(11346002)(66946007)(316002)(81166006)(81156014)(99286004)(71200400001)(36756003)(54906003)(446003)(76116006)(64756008)(66446008)(7736002)(14444005)(66476007)(66556008)(256004)(102836004)(476003)(2616005)(66574012)(186003)(606006)(30864003)(26005)(6506007)(53546011)(76176011)(66066001)(236005)(4326008)(790700001)(33656002)(6512007)(6436002)(6486002)(478600001)(6306002)(54896002)(3846002)(6116002)(2906002)(8936002)(45080400002)(229853002)(966005)(6246003)(25786009)(86362001)(579004); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR11MB4205; H:MN2PR11MB3565.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: cisco.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: UN9nCybwX5TFd7iR8JfkzrqQDOmQjhX/B/8xabbIWucT+V2z9EHI6wBBdcnBtGPeA4Mol5jCSSi8kJNnzZu7aiPKYE3zAnyEv1WWQwt6p7YMuvD3+RW+BwXvbBkDE9mq5by1oRx/N/r0lW+8mcEydAUgasK5hf2Rpr344aUCBiD/gwRcpw9d0aQDdsFAJf9tcm/I6hedFlEyOj8r1nFeXwtyFMgdFewlSG8yVL2kTBW0yTUrcIm6oKg1FkFI0tEWv82G4A/hau4P1aj8RqKFSDqOyoTxTlU0UVJTXaOnXeNZpgXOUXmWe1W9X3DbnpMjbHpDpQH8SM7j2kASapDeTzWqljPfsjG0QyLpA5dK8rJvKxRvEFJSF1iS3f6orAq+6ErqlFiHE5xpbQLALcqiiRBfNzw0gvXaIYed+k87zSoOtxFC7oaTVXTdF/zNkBqcX7weoTH68koLXSi13p/xBKyG8dkMGQgK9uXNjIE775g=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_9A9B7CE207934E8286E090CF25F30120ciscocom_"
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: b0262a99-c1eb-498e-60c2-08d767d0a3f7
X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Nov 2019 00:30:09.6812 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: 9K0hXVzU4PLrIx5VTXZ6hAJlXyxjM4KY8GouTJbLD3Y+M6ekTojrkzRhdDmWXgYZ+jWPJoB0iKUSXLfORxvSHg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4205
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.37.102.13, xch-rcd-003.cisco.com
X-Outbound-Node: rcdn-core-5.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/6lo/W7wGNk3siy5Vnw4HiYOcxcqGVR0>
Subject: Re: [6lo] Intdir last call review of draft-ietf-6lo-minimal-fragment-04
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: Wed, 13 Nov 2019 00:30:26 -0000

Hello Dave

Continued below

Le 13 nov. 2019 à 04:28, Dave Thaler <dthaler@microsoft.com> a écrit :




From: Pascal Thubert (pthubert) <pthubert@cisco.com>
Sent: Friday, November 8, 2019 5:25 AM
To: Dave Thaler <dthaler@microsoft.com>
Cc: int-dir@ietf.org; draft-ietf-6lo-minimal-fragment.all@ietf.org; 6lo@ietf.org
Subject: RE: Intdir last call review of draft-ietf-6lo-minimal-fragment-04

Hello again Dave

Following up let me propose changes; the updated draft text in full is at https://github.com/twatteyne/draft-watteyne-6lo-minimal-fragment/blob/master/draft-ietf-6lo-minimal-fragment-05.txt<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Ftwatteyne%2Fdraft-watteyne-6lo-minimal-fragment%2Fblob%2Fmaster%2Fdraft-ietf-6lo-minimal-fragment-05.txt&data=02%7C01%7Cdthaler%40microsoft.com%7Ce5e6570b9eaf446511d308d7644f0bd2%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637088162986168475&sdata=KeNcyTWQvwKkEP9AivyWKp2d1K9uAOVhmAmcnKeRsJs%3D&reserved=0>


Main changes:

An intro section as follows


1.      Introduction

   The original 6LoWPAN fragmentation is defined in [6LoWPAN] and it is
   implicitly defined for use over a single IP hop through possibly
   multiple Layer-2 (mesh-under) hops in a meshed 6LoWPAN Network.
   Although [6LoWPAN-HC] updates [6LoWPAN], it does not redefine 6LoWPAN
   fragmentation.

   This means that over a Layer-3 (route-over) network, an IP packet is
   expected to be reassembled at every hop at the 6LoWPAN sublayer,
   pushed to Layer-3 to be routed, and then fragmented again if the next
   hop is another similar 6LoWPAN link.  This draft introduces an
   alternate approach called 6LoWPAN Fragment Forwarding (FF) whereby an
  intermediate node forwards a fragment as soon as it is received if
   the next hop is a similar 6LoWPAN link.  The routing decision is made
   on the first fragment, which has all the IPv6 routing information.
   The first fragment is forwarded immediately and a state is stored to
   enable forwarding the next fragments along the same path.

   Done right, 6LoWPAN Fragment Forwarding techniques lead to more
   streamlined operations, less buffer bloat and lower latency.  It may
   be wasteful if some fragments are missing after the first one since
   the first fragment will still continue till the 6LoWPAN endpoint that
   will attempt to perform the reassembly, and may be misused to the
   point that performances fall behind that of per-hop recomposition.
   This specification provides a generic overview of FF, discusses
   advantages and caveats, and introduces a particular 6LoWPAN Fragment
   Forwarding technique called Virtual Reassembly Buffer that can be
   used while conserving the message formats defined in [6LoWPAN].

Looks good so far.  I presume that [6LoWPAN] will then be a normative reference,
based on that wording, correct?


Correct. That’s RFC 4944. The VRB draft also becomes normative.

And would the draft be a standards track doc, or what?


I asked for a slot at 6lo to discuss your points. That would be a key one to agree with the group.



And an intermediate section before VRB as follows:




  4.  Forwarding Fragments

   A 6LoWPAN Fragment Forwarding technique makes the routing decision on
   the first fragment, which is always is the one with the IPv6 address

Grammar problem above: “is always is”

Fixed

   of the destination.  Upon a first fragment, a node creates a state
   and forwards the fragment.

I’d recommend “a node *attempts to* create state and forward the fragment”,
since either of those could potentially fail, right?

Also should this use normative language (“a node MUST…”)?

The state is then used to forward the
   next fragments of the datagram.


I’d suggest MAY attempt to create the state and if successful MUST use it to forward the next fragments.


There’s a logic bug here in that you’re missing saying what happens if that state doesn’t exist.
E.g., “When a node receives a fragment other than a first fragment, it MUST look up
state based on the source Link-Layer address and the datagram_tag in the received fragment.
If no such state is found, the fragment MUST be dropped; otherwise the fragment MUST be
forwarded using the information in the state found.”

Used verbatim


Since the datagram_tag is uniquely
   associated to the source Link-Layer address of the fragment, node B
   must assign a new datagram_tag from iuts own namespace for the next

Typo: “iuts”


Fixed

   hop and rewrite the fragment header of each fragments with that

Grammar: “each fragments” -> “each fragment”

Fixed


   datagram_tag.

   Compared to Section 2, the conceptual reassembly buffer in node B now
   contains, assuming that node B is neither the source nor the final
   destination:

   *  a datagram_tag as received in the incoming fragments, associated
      to Link-Layer address of node A for which the received
      datagram_tag is unique,

   *  the Link-Layer address that node B uses as source to forward the
      fragments

   *  the Link-Layer address of the next hop C that is resolved on the
      first fragment

   *  a datagram_tag that node B uniquely allocated for this datagram
      and that is used when forwarding the fragments of the datagram

   *  the actual packet data from the fragments received so far, in a
      form that makes it possible to detect when the whole packet has
      been received and can be processed or forwarded,

Since each fragment is forwarded separately, the above bullet looks confusing.
Why do you care “when the whole packet … can be … forwarded” since you
don’t forward whole packets?

Yes, my mistake. Removed that line.


   *  a datagram_size,

   *  a buffer for the remainder of a previous fragment left to be sent,

   *  a timer that allows discarding a partially reassembled packet
      after some timeout.

Same confusion here.  Why would you have a partially “reassembled” packet
if you forward fragments without reassembling at this node?

That’s specific to the VRB method that might store a piece of a previous fragment. In general we need to timeout the state to clean it. Replaced the partially reassembled by the FF state


   A node that has not received the first fragment cannot forward the
   next fragments.  This means that if node B receives a fragment, node
   A was in possession of the first fragment at some point.  In order to
   keep the operation simple, it makes sense to be consistent with
   [6LoWPAN] and enforce that the first fragment is always sent first.
   When that is done, if node B receives a fragment that is not the
   first and for which it has no state, then node B should treat this as

The use of “should” is ambiguous.  Do you mean SHOULD or MUST?

Removed « should « since your verbatim text already covers this now.



  an error and refrain from creating a state or attempting to forward.

   This also means that node A should perform all its possible retries
   on the first fragment before it attempts to send the next fragments,
   and that it should abort the datagram and release its state if it
   fails to send the first fragment.

   One benefit of Fragment Forwarding is that the memory that is used to
   store the packet is now distributed along the path, which limits the
   buffer bloat effect.  Multiple fragments may progress in parallel
   along the network as long as they do not interfere.  An associated
   caveat is that on a half duplex radio, if node A sends the next
   fragment at the same time as node B forwards the previous fragment to
   a node C down the path then node B will miss the next fragment.  If
   node C forwards the previous fragment to a node D at the same time
   and on the same frequency as node A sends the next fragment to node
   B, this may result in a hidden terminal problem at B whereby the
   transmission from C interferes with that from A unbeknownst of node
   A.  It results that consecutive fragments must be reasonably spaced
   in order to avoid the 2 forms of collision described above.  A node
   that has multiple packets or fragments to send via different next-hop
   routers may interleave the messages in order to alleviate those
   effects.


Does that sound right?

Pascal

I hope you’ll be able to attend 6lo. We need to clarify the goal of the draft and the target info vs. std track.

All the best,

Pascal



From: Dave Thaler <dthaler@microsoft.com<mailto:dthaler@microsoft.com>>
Sent: vendredi 8 novembre 2019 00:44
To: Pascal Thubert (pthubert) <pthubert@cisco.com<mailto:pthubert@cisco.com>>
Cc: int-dir@ietf.org<mailto:int-dir@ietf.org>; draft-ietf-6lo-minimal-fragment.all@ietf.org<mailto:draft-ietf-6lo-minimal-fragment.all@ietf.org>; 6lo@ietf.org<mailto:6lo@ietf.org>
Subject: RE: Intdir last call review of draft-ietf-6lo-minimal-fragment-04

Follow ups below

From: Pascal Thubert (pthubert) <pthubert@cisco.com<mailto:pthubert@cisco.com>>
Please see in-line

Le 7 nov. 2019 à 22:22, Dave Thaler <dthaler@microsoft.com<mailto:dthaler@microsoft.com>> a écrit :

Responses inline below.

Pascal Thubert (pthubert) <pthubert@cisco.com<mailto:pthubert@cisco.com>> wrote:
> The title implies the document specifies a forwarding mechanism, but

> it does not, it merely provides discussion of two mechanisms in other

> docs (RFC 4944 and draft-ietf-lwig-6lowpan-virtual-reassembly). I

> would recommend at least changing the title to be more clear as to the purpose of the doc.



A suggestion would help : )



Does "On Forwarding 6LoWPAN Fragments over a Multihop IPv6 Network" go the right way?



Sure.  Other possibilities in case you like them better than that one:

·        “6LoWPAN Fragment Forwarding Techniques: Discussion and Tradeoffs”

·        “An Analysis of Various 6LoWPAN Fragment Forwarding Mechanisms”

Etc.

We (== this draft) do not compare technologies. We give a generic behavior for which the LWIG draft is an implementation. So it’s not a protocol per se but a way do use RFC 4944 that was not intended in 4944.

That’s not how I read the document right now.
First, this document as written does not specify any behavior itself, since the document is listed as Informational only, and contains no normative references.
Second, I read section 1-2 as analysis/discussion/issues around the normative behavior stated in [RFC4944], and section 3 as analysis/discussion/issues around the normative behavior stated in [I-D.ietf-lwig-6lowpan-virtual-reassembly<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Fdraft-ietf-6lo-minimal-fragment-04%23ref-I-D.ietf-lwig-6lowpan-virtual-reassembly&data=02%7C01%7Cdthaler%40microsoft.com%7Ce5e6570b9eaf446511d308d7644f0bd2%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637088162986178431&sdata=cTGayubx94CV8nUsN3fmXOTKg5cQrD%2BdsVFmrvxlh%2BA%3D&reserved=0>].
If the WG’s intent for this document is to actually specify behavior, or behavior changes, in this document, then it should use 2119 language, and have normative references, so one can claim compliance to it.
And the document would require more changes than I originally expected or argued for in my review.



> 2) Page 3 also says the reassembly buffer contains "the link-layer

> address of the next hop that is resolved

>    on the first fragment".  I found this similarly confusing.  What does it

>    mean to resolve something "on" the first fragment?  Does it mean "during

>    processing of the first fragment"?  Maybe I missed it, but I couldn't find

>    in RFC 4944 anywhere that says that it would do next-hop resolution before

>    the datagram can be reassembled.  That would seem like a waste, if the

>    fragments are then discarded (e.g., due to timer expiry) without actually

>    doing any forwarding.

>



RFC 4944 reassembles and then routes. We make the routing decision on the first fragment before we receive the second fragment, forward the first fragment and store that state. Unsure how to reword, your suggestion would be appreciated.



When you say “We made”, who is “we”?  RFC 4944?  If so, cite a specific section,
since making the routing decision on receipt of the first fragment, rather than the last,
seems non-intuitive and wasteful.   If that’s what the RFC says, then you can point it out

since this doc is (from my understanding) about discussing issues and tradeoffs with other mechanisms.

We is this draft. The art of 4944 reassembles the packet at each hop. Once the packet is reassembled then it is routed leading to the behavior you describe, that is resolve on last fragment.

See my points above about “we is this draft” meaning this draft needs to be a lot clearer that it is specifying behavioral changes that one can conform to.
I read the text as explaining what RFC 4944 itself requires.  Specifically the last sentence of the section the text above is quoted from explicitly says
“That is, the packet is fully reassembled, then (re)fragmented, at every hop.”

That’s what I’m reacting to since the bullet list is very wasteful when fully reassembled at each hop, which is the context of this section.

Furthermore, it’s arguably broken since looking up the next hop when the first fragment arrives, and then only using it once all fragments
have arrived and the packet can be fully reassembled, means the next hop information can be stale at that point and you’re forwarding it
to the wrong place, or even a place that no longer exists at that time.

The notion of forwarding each fragment as it’s received, without reassembling, starts in section 3, which is the alternative being compared
(as I read it) with the stock 4944 approach.  It’s only then that “resolve next hop on first fragment received” makes any sense to me, not back in section 1.


This draft forwards a fragment as soon as it is received leading to more streamlined operations, less buffer bloat and lower latency. It is indeed wasteful if some fragments are missing after the first one since the first fragment will still continue till the end. That’s the other side of the coin, similar to store and forward switching vs. switching as the frame is being received.

That’s not my reading of the existing text.  My reading is of this doc is that [I-D.ietf-lwig-6lowpan-virtual-reassembly<https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Ftools.ietf.org%2Fhtml%2Fdraft-ietf-6lo-minimal-fragment-04%23ref-I-D.ietf-lwig-6lowpan-virtual-reassembly&data=02%7C01%7Cdthaler%40microsoft.com%7Ce5e6570b9eaf446511d308d7644f0bd2%7C72f988bf86f141af91ab2d7cd011db47%7C1%7C0%7C637088162986178431&sdata=cTGayubx94CV8nUsN3fmXOTKg5cQrD%2BdsVFmrvxlh%2BA%3D&reserved=0>]
is what covers that behavior (as the first paragraph of section 3 the 6lo draft explains) and the 6lo draft is just analyzing it.
If the intent Is to specify it normatively in the 6lo draft, then I believe this draft needs more work
before being ready.



The waste is that if you choose to discard the datagram rather than forward it,
your efforts in doing the lookup are a waste of cycles, and a waste of space to store the result.

This is pleading for reassembly at each hop. All the benefits of forwarding fragments are gone.

Not sure that “this” refers to.  See above.  Section 1-2 are currently written to be about the case where you reassemble at each hop.
[…]

Dave