Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-6lo-fragment-recovery-13: (with DISCUSS and COMMENT)

"Pascal Thubert (pthubert)" <pthubert@cisco.com> Thu, 05 March 2020 18:14 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 CE3313A08CB; Thu, 5 Mar 2020 10:14:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.6
X-Spam-Level:
X-Spam-Status: No, score=-9.6 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, 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=X4yzymz+; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=eE27Uq4c
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 AfPzNFeltIvo; Thu, 5 Mar 2020 10:14:14 -0800 (PST)
Received: from alln-iport-8.cisco.com (alln-iport-8.cisco.com [173.37.142.95]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 03BA43A090C; Thu, 5 Mar 2020 10:14:10 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=8806; q=dns/txt; s=iport; t=1583432051; x=1584641651; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=M8/B6fdwrCZp1P0M0GFQO50BZY86nQ3rzrXXETTqsks=; b=X4yzymz+hu2FZYpoFDjv0TltVd9BJSUGbNdb44X0nLmcbYN0BULYJlCX nBZCufEC1FiXHT4VV4jo1aKBXAEcBYwFyk3RXW5SjQSYGhkzQIu5QcQfp BILg3NEj7/fB+iZhN9UpQXg7qAcDR9pAe4OUCzHG1UOV2Q/MtKfED6FA3 U=;
IronPort-PHdr: 9a23:GLZBUhKCmcsz5OYFHNmcpTVXNCE6p7X5OBIU4ZM7irVIN76u5InmIFeBvKd2lFGcW4Ld5roEkOfQv636EU04qZea+DFnEtRXUgMdz8AfngguGsmAXFXnLOPgYjYmNM9DT1RiuXq8NBsdFQ==
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0AaCAABQWFe/5xdJa1lDg8BAQEJAREFBQGBe4FUJCwFgUQgBAsqCoQLg0YDimqCX5gVglIDVAkBAQEMAQEtAgQBAYRDAheBdyQ4EwIDAQELAQEFAQEBAgEFBG2FVgyFYwEBAQECARIREQwBATcBBAsCAQgaAiYCAgIwFRACBAENDRqFTwMOIAEDnF0CgTmIYnWBMoJ/AQEFhSAYggwJgQ4qhSGHBhqBQT+BWIJNPoRNgw8ygiyNTySCdZ89CoI8jR+JY5s0jnWXUYN8AgQCBAUCDgEBBYFpIoFYcBWDJ1AYDYFSjEsJAxcVgzuKGD10gSmMTAGBDwEB
X-IronPort-AV: E=Sophos;i="5.70,518,1574121600"; d="scan'208";a="454667247"
Received: from rcdn-core-5.cisco.com ([173.37.93.156]) by alln-iport-8.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 05 Mar 2020 18:14:10 +0000
Received: from XCH-RCD-005.cisco.com (xch-rcd-005.cisco.com [173.37.102.15]) by rcdn-core-5.cisco.com (8.15.2/8.15.2) with ESMTPS id 025IEAO4032116 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Thu, 5 Mar 2020 18:14:10 GMT
Received: from xhs-rtp-001.cisco.com (64.101.210.228) by XCH-RCD-005.cisco.com (173.37.102.15) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 5 Mar 2020 12:14:09 -0600
Received: from xhs-rtp-002.cisco.com (64.101.210.229) by xhs-rtp-001.cisco.com (64.101.210.228) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Thu, 5 Mar 2020 13:14:08 -0500
Received: from NAM10-MW2-obe.outbound.protection.outlook.com (64.101.32.56) by xhs-rtp-002.cisco.com (64.101.210.229) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Thu, 5 Mar 2020 13:14:08 -0500
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fYkk1ya7EK06F6ToFfOAaxHxxyCO6M/VNtAMntp8KIG9xAl45HFEgcLupUoju9fpHWpMpUrykttMP19lhJA7FtrOPC/topqJzwz0avzIhMY1iV1+Y7S/zD/6Pr06/Zur5EZtBigrQ+V5FDlgV2bERuqc2gwhBzcJqZBqPzGjkKlc1qeF9CfiTBUbWv8P322YLP3IGi9STVar8rPe3EXjC2V00xrVu65oEQ+mpQpwxYGcfzifje6gSqqR7DIm0xAoRsAoArIu2dud/2VtSXS+Fu4ltablv0U5w4yBNXvGv0cKgxSiHaT6FGgLADz+ErTqREK/iPHATsyfLLtmgko/YA==
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=M8/B6fdwrCZp1P0M0GFQO50BZY86nQ3rzrXXETTqsks=; b=cpY0R13YyAK893nJadF7Z/WFd2SyGxcsF0a/GPbJTWnGEWsU6As4UKySBMHmTJHeeLNZqDkhW7QhB5a9WHh4AtD7pA5kmjpaTzEzzpdnPuZeXgVVPFAfrjABI0f42OdDh6pWFVJaqXsTP+zWMgSCaj+9KIQfJ/D/c1lL/hcExPuunLDUChgWopEefT7xYQFiwb4OI7F5sDfhj8DAHT3IYGIOW/rexEhClmYHJkrIAr+Eqte0B5//O1oJpYj6HDjWoW0IBcXm6a2CHWX7sT8GuLOxKvmQPOhv8L275DOHeYvaQEQrWbgK3HQjSeTBlIaIO1BPg9rFjB2ITMInz6jMEg==
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=M8/B6fdwrCZp1P0M0GFQO50BZY86nQ3rzrXXETTqsks=; b=eE27Uq4cI3ltcQ9pfhLWREB8UM0gMdNxtr+Dnvv2gB2vPmnnvymNSES+iYd0bssqE/qiIC29HjVpMZqzEHivGQ3VYCO3Zy4W1yIlNFdEwUE7Go84/nEW4KuANXlu/Pu/NVVF1+cQ5QNclXfIEGugKrdiC/bMirxQJkKOHAP3WmA=
Received: from MN2PR11MB3565.namprd11.prod.outlook.com (2603:10b6:208:ea::31) by MN2PR11MB4741.namprd11.prod.outlook.com (2603:10b6:208:26a::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2772.14; Thu, 5 Mar 2020 18:14:07 +0000
Received: from MN2PR11MB3565.namprd11.prod.outlook.com ([fe80::edba:2b0f:7341:2c24]) by MN2PR11MB3565.namprd11.prod.outlook.com ([fe80::edba:2b0f:7341:2c24%6]) with mapi id 15.20.2772.019; Thu, 5 Mar 2020 18:14:07 +0000
From: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
To: Benjamin Kaduk <kaduk@mit.edu>, The IESG <iesg@ietf.org>
CC: "draft-ietf-6lo-fragment-recovery@ietf.org" <draft-ietf-6lo-fragment-recovery@ietf.org>, Carles Gomez <carlesgo@entel.upc.edu>, "6lo-chairs@ietf.org" <6lo-chairs@ietf.org>, "6lo@ietf.org" <6lo@ietf.org>
Thread-Topic: Benjamin Kaduk's Discuss on draft-ietf-6lo-fragment-recovery-13: (with DISCUSS and COMMENT)
Thread-Index: AQHV5qmSETNNZhFgTkSkAXRci24lSKg6Q5OA
Date: Thu, 05 Mar 2020 18:13:38 +0000
Deferred-Delivery: Thu, 5 Mar 2020 18:13:13 +0000
Message-ID: <MN2PR11MB35658F7AB34FA68C20A7FD77D8E20@MN2PR11MB3565.namprd11.prod.outlook.com>
References: <158206439305.14061.7338782223976480544.idtracker@ietfa.amsl.com>
In-Reply-To: <158206439305.14061.7338782223976480544.idtracker@ietfa.amsl.com>
Accept-Language: fr-FR, en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=pthubert@cisco.com;
x-originating-ip: [2.15.54.55]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 2ca5fca1-8ccd-4bd1-4ac2-08d7c130fefe
x-ms-traffictypediagnostic: MN2PR11MB4741:
x-microsoft-antispam-prvs: <MN2PR11MB474144A255D22741836A9446D8E20@MN2PR11MB4741.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 03333C607F
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(366004)(39860400002)(396003)(136003)(346002)(376002)(199004)(189003)(4326008)(9686003)(5660300002)(55016002)(186003)(52536014)(66946007)(76116006)(26005)(66446008)(7696005)(64756008)(66476007)(6506007)(66556008)(33656002)(478600001)(8676002)(86362001)(8936002)(54906003)(2906002)(71200400001)(110136005)(316002)(81156014)(81166006)(6666004); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR11MB4741; H:MN2PR11MB3565.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX: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: ZZfOL2BEORO+WNwJVYok2anmjiD5xzQzJBB3l3GNTmFa5EU4SrYPgP4zd0E4BlBofBlk4zNUcMsfGo0oH9E9uPtG22QZBF4f+450lT1Q7hy8junH7PyZUqLvlAXZkTY7tNLBD5iZFVrxHa62eoR7Lsk61NSCip3Jh/pe7e/lKlXc4JEtSkjotWXERtH7jTsDu2OqIMxigVv89jLSt7m5oIlAn+sR7opnfplukFFv76+A6xAP/BRZjhvPgYKA0Lga6JKCxklm7rPOJJtcxdpmUy3LSRaHVmRkxBJwiaJFHSJTcfFxAoF9U82OXT07xi7xuwkRgzqwMgZkLysYIwWajZYyjY+R16/UfFBW94RALit99hTgrrWl1w04rUUZoJf8Ppqo2BPmCWJCf0sT3D56opwSGJzFr/uz/2+BWI7GfeaD1vYl7ikoTPvs3G1scS9F
x-ms-exchange-antispam-messagedata: FI92C6KPLB37K9aMFPVuia03M5bTrD7zF0JIKoZcCPR9DHGGbWLntsoY2ZtrNeYGJOi7+NhUOCEkXTD0bBVt00VnmnGaEqAN4abWAOIFXxu6p8rk8WUPr3P+xRtTRZVWxzzvoiAs43PmHcBszmbFtQ==
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 2ca5fca1-8ccd-4bd1-4ac2-08d7c130fefe
X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Mar 2020 18:14:07.5064 (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: paoNJvctroFIAJmlgjs4WNy6JEzE7hQN40iOfs+HoIbsU8L9PTep11lpb9hJIF9OPu8Tp8KnM/ffJfOWullcMA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB4741
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.37.102.15, xch-rcd-005.cisco.com
X-Outbound-Node: rcdn-core-5.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/6lo/n_iaF4Hmr0Lfnw-A1KTFoFBjDOE>
Subject: Re: [6lo] Benjamin Kaduk's Discuss on draft-ietf-6lo-fragment-recovery-13: (with DISCUSS and COMMENT)
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: Thu, 05 Mar 2020 18:14:16 -0000

Hello again Benjamin

You really made those drafts I'm editing a lot better by your keen reviews and this is another incredible one. Many thanks!!!

Let's go with the Discuss to start with?
 
> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
> 
> In Section 2.3 we refer to the datagram_tag plus layer-2 sender address as
> being "a globally unique identifier for the datagram", but I think this can only
> hold within some time-bounded window (e.g., the lifetime of the packet), since
> the tag space is finite and reuse somewhat inevitable.  [The simplest way to
> resolve this is probably to just remove the definition from this document and
> refer to draft-ietf-6lo-minimal-fragment for definitions.]

Rightly so. I changed the text on the minimal draft as 
"

   "LLN Minimal Fragment Forwarding" [I-D.ietf-6lo-minimal-fragment]
   introduces the generic concept of a Virtual Reassembly Buffer (VRB)
   and specifies behaviours and caveats that are common to a large
   family of FF techniques including this, which fully inherits from
   that specification.  It also defines terms used in this document:
   6LoWPAN endpoints, Compressed Form, Datagram_Tag, Datagram_Size, and
   Fragment_Offset.

"

> 
> I think we should be more clear about whether a "FULL bitmap" always has
> 32 bits set to one, or if "merely" having as many bits as the sender sent
> fragments set to one also counts as "FULL".  The current text seems to invite
> different interpretations by implementations.  (If FULL does mean all 32 bits,
> then the semantics of the other case seem unclear to
> me.)

There's a definition and we need to stick to it:

   FULL bitmap:  Refers to a bitmap with all bits set to one.

The problem is that we do not say (or even know in advance) how many fragments there are, total. The MTU may change.
So even if all fragments are acknowledged with a bit set, an intermediate node cannot fathom if that's the end or if there's more to come. But the end-points know. The receiver will see that all bytes up to Datagram-Size are received so it has it all.
The spec asks the receiver to use a FULL bitmap instead of setting only the bits corresponding to the received fragments so the intermediate nodes know that the process is complete.

To clarify I'm adding the last sentence in the text below:

"
   When enough fragments are received to cover the whole datagram, the
   receiving endpoint reconstructs the packet, passes it to the upper
   layer, sends an RFRAG Acknowledgment on the reverse path with a FULL
   bitmap, and arms a short timer, e.g., on the order of an average
   round-trip delay in the network.  The FULL bitmap is used as opposed
   to a bitmap that acknowledges only the received fragments to let the
   intermediate nodes know that the datagram is fully received.

"



> 
> What's the transition/backwards-compatibility story?  That is, how does a
> sender know that all nodes on the path support the RFRAG dispatch types, and
> what happens if they are sent anyway and get to a node that doesn't
> implement them?
 
It has to be management and configuration or alliance games. There is no negotiation.
There is no overarching 6LoWPAN protocol that can advertise capabilities though we're building one for RPL.
Same goes for all the prior changes to 6LoWPAN, e.g., RFC 8025.
In practice there is no 6LoWPAN network. There's an ISA100.11a network, a ZigbeeIP network, a Thread network, or a WiSUN network. Those alliances specify a particular bundle of functionalities from a bunch of RFCs and build their compliance tests on that. If Thread decides that the RFRAGs are used, then all the nodes are capable of it.
But that's a long story to make in the RFC just to say we do nothing. Do we really want that?


> I have grave misgivings about allowing a packet (as identified by sender and
> tag) to be refragmented by the sender so that a single fragment sequence
> number is used for fragments of different lengths.  We do not seem to provide
> a mechanism to distinguish which variant of that fragment is being ack'd,
> which could lead to disagreement between sender and receiver as to whether a
> full packet is reconstructed.

Yes, that makes sense. And the change is simple to do and appears harmless. Note that if the second is smaller than and included within the first, it does not matter which is received. I just did not expect that people would reuse the seq for a larger fragment in which case there may be an issue. I just hope people did not implement that piece yet.

Note that the FULL bitmap hides the lack of continuity from intermediate nodes. 
I also wish to avoid duplication in the example so we get

"
                                                                                            This enables
   refragmenting to cope with an MTU deduction, see the example of the
   fragment seq. 5 that is retried end-to-end as smaller fragments seq.
   13 and 14 in Section 6.2."

And in Section 6.2

"
   This specification does not provide a method to discover the number
   of hops or the minimal value of MTU along those hops.  But should the
   minimal MTU decrease, it is possible to retry a long fragment (say
   Sequence of 5) with several shorter fragments with a Sequence that
   was not used before (e.g., 13 and 14).  Fragment 5 is marked as
   abandoned and will not be retried anymore.  Note that Path MTU
   Discovery is out of scope for this document.

"

> Brainstorming, it might be possible to allow such refragmenting at the sender
> by using a Fragment_Size of zero to indicate "this fragment is superseded" and
> allocating new sequence number for all its components.
> (I didn't attempt to do an exhaustive check on whether that proposal is flawed
> and Fragment_Size of zero already has some existing semantics that would be
> in conflict.)
> 

Well the proposal is just to ignore the original fragment. The set of fragments is used to figure if everything is sent and what may need resend. It is expected that there will be overlaps and now gaps in the acknowledgements. The FULL bitmap (all ones) is the indicator that enough was received without ambiguity and regardless of which fragments were used.

Works?

Pascal