Re: [6lo] Mirja Kühlewind's Discuss on draft-ietf-6lo-fragment-recovery-13: (with DISCUSS and COMMENT)

"Pascal Thubert (pthubert)" <pthubert@cisco.com> Fri, 20 March 2020 14:45 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 D33C53A09B8; Fri, 20 Mar 2020 07:45:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.598
X-Spam-Level:
X-Spam-Status: No, score=-9.598 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, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com header.b=Q0iYoxgf; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=RK8zdjgS
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 do6i2z30fBwS; Fri, 20 Mar 2020 07:45:31 -0700 (PDT)
Received: from rcdn-iport-2.cisco.com (rcdn-iport-2.cisco.com [173.37.86.73]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B23FE3A0A4A; Fri, 20 Mar 2020 07:45:20 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=23298; q=dns/txt; s=iport; t=1584715520; x=1585925120; h=from:to:cc:subject:date:message-id:references: in-reply-to:content-transfer-encoding:mime-version; bh=twnis3mr+GpUn8/CBWIPwiJcg3VPwTfpce1zQE0TP+8=; b=Q0iYoxgfVGxymj9UeoRIdjfrIKRWwewqcSyb/ed8CTPserTkBaBRFin6 xAOm1aLap7VPmBzVK1YtKOY/VXrWGt8tC2e2x738wmxLGJtunn2tdeSjQ bLGLR4mjxfc8FO2gkdqHsygin2aVjbgNIeQljEJI4mAVCK2O6jz/T3rEY M=;
IronPort-PHdr: 9a23:lEkzexLT6cRXMPkiC9mcpTVXNCE6p7X5OBIU4ZM7irVIN76u5InmIFeBvKd2lFGcW4Ld5roEkOfQv636EU04qZea+DFnEtRXUgMdz8AfngguGsmAXFXnLOPgYjYmNM9DT1RiuXq8NBsdFQ==
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CwBQBP1nRe/4YNJK1mHAEBAQEBBwEBEQEEBAEBgXuBVCQFJwVsWCAECyqEGINFA4pwToIRiWqOMoFCgRADVAkBAQEMAQEeDwIEAQGERAIXgg0kOBMCAwEBCwEBBQEBAQIBBQRthVYMhWMBAQEBAgESEREMAQE3AQsEAgEIDgMEAQEDAiYCAgIfERUFAwgCBA4FCBqDBYJLAw4gAQ6hcAKBOYhidYEygn8BAQWFHA0LggwDBoEOKoUghw8agUE/gRFHgU9+PoIbSQICARmBIQ4cgw8ygiyNWCSCPDufFEQKgjyHWIpqhFmCS4gqhFOHOYRUg1GNCIc2gjaMLYN+AgQCBAUCDgEBBYFpIoFYcBWDJ1AYDY4dCRoVbwEJgkKFFIVBdAIBAQGBJIsngkIBAQ
X-IronPort-AV: E=Sophos;i="5.72,284,1580774400"; d="scan'208";a="746594751"
Received: from alln-core-12.cisco.com ([173.36.13.134]) by rcdn-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 20 Mar 2020 14:45:18 +0000
Received: from XCH-RCD-003.cisco.com (xch-rcd-003.cisco.com [173.37.102.13]) by alln-core-12.cisco.com (8.15.2/8.15.2) with ESMTPS id 02KEjIFG015248 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 20 Mar 2020 14:45:18 GMT
Received: from xhs-aln-001.cisco.com (173.37.135.118) by XCH-RCD-003.cisco.com (173.37.102.13) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 20 Mar 2020 09:45:18 -0500
Received: from xhs-rtp-003.cisco.com (64.101.210.230) by xhs-aln-001.cisco.com (173.37.135.118) with Microsoft SMTP Server (TLS) id 15.0.1473.3; Fri, 20 Mar 2020 09:45:17 -0500
Received: from NAM10-BN7-obe.outbound.protection.outlook.com (64.101.32.56) by xhs-rtp-003.cisco.com (64.101.210.230) with Microsoft SMTP Server (TLS) id 15.0.1473.3 via Frontend Transport; Fri, 20 Mar 2020 10:45:17 -0400
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=R0K6dK21mv7+X6yjn21RUBFu8LI8TuPJ+1ILrAcfNhvSIjFGDuvcfHDmONtDivqrsJnVZHjJv3QI9sP9N0oe4S/70qOJ74TLZDzdfy/d/wDGk5bczU2bV7RQ5+znBu6tb2p8FWZA4nhXlt1kt4HAYku70w90wbMHkrOCxcAcG3XgvApKPJsx7nOB2GdKJByLkOoE+YRzb91+rP2HwVTr6LXceXS6WhQmSTSDcIDX7IZ23k/uhP8Uag02xPZdZ/QUGNTlhmU/l17MUOAc/kCqV5SSz0XQAscO+KUs7JhVRP03VDdFs0K62jrdZvz1t94bzWJSgbenCaYO7hKjoD3isg==
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=twnis3mr+GpUn8/CBWIPwiJcg3VPwTfpce1zQE0TP+8=; b=AMcBpx4NDul9oSGdguKn9lFlSBvKBRZxlifc7iKPuQqNj2ZH2HV6PAEamTE7ED34CQMU7nyfgk6e50BZhJcRBVa+CBFx7BtKQfr25A5W/NrhTv+KYtAT24JWP0gyQ331LBH3nAFa6Js1r+RjKH4yhexyQAueRYWozT9S87kqTaea/GmWKzJ7fxeKZA2KI+Qp8xDXy7jr6KoT9J//o0Xuf+8K1zMGMnJPqnMDlgklSl2OSEUU/aBxHhNHIYKevJPpj8QY3OR+8lvUmRZT53ihsy3T3Ym+XDwMLGTzl5GH8lMcQI05lt9MENyFbOcweUobTos3wjFsfO5UeKJWSPHGGQ==
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=twnis3mr+GpUn8/CBWIPwiJcg3VPwTfpce1zQE0TP+8=; b=RK8zdjgSa41pbXrhax7cbRQVDkgrPqsCbe+7BFyVV871cTx7cap/88nzm/jwfbDBEN4/yn1GUbN/fNSRPGUgEamqn8QcQS10gF40bADe3a1J9498FbuBHaP3vLd0I3Yjp7B9aQ+52eZ9G7khisNR2J1MKS8NTKJm0m/FHYAw4Qc=
Received: from MN2PR11MB3565.namprd11.prod.outlook.com (2603:10b6:208:ea::31) by MN2PR11MB3631.namprd11.prod.outlook.com (2603:10b6:208:ef::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2793.17; Fri, 20 Mar 2020 14:45:16 +0000
Received: from MN2PR11MB3565.namprd11.prod.outlook.com ([fe80::113b:3127:ef12:ea7]) by MN2PR11MB3565.namprd11.prod.outlook.com ([fe80::113b:3127:ef12:ea7%7]) with mapi id 15.20.2814.021; Fri, 20 Mar 2020 14:45:16 +0000
From: "Pascal Thubert (pthubert)" <pthubert@cisco.com>
To: Mirja Kuehlewind <ietf@kuehlewind.net>
CC: "Pascal Thubert (pthubert)" <pthubert=40cisco.com@dmarc.ietf.org>, "6lo-chairs@ietf.org" <6lo-chairs@ietf.org>, The IESG <iesg@ietf.org>, "6lo@ietf.org" <6lo@ietf.org>, "draft-ietf-6lo-fragment-recovery@ietf.org" <draft-ietf-6lo-fragment-recovery@ietf.org>, Carles Gomez <carlesgo@entel.upc.edu>, Martin Duke <martin.h.duke@gmail.com>, Benjamin Kaduk <kaduk@mit.edu>
Thread-Topic: Mirja Kühlewind's Discuss on draft-ietf-6lo-fragment-recovery-13: (with DISCUSS and COMMENT)
Thread-Index: AQHV5yxvQMp3kJRXD0SmWqJXtHBMvqg7nFTwgBQ3dgCAABdRMIAAcc0AgAAZUYKAAUCywA==
Date: Fri, 20 Mar 2020 14:45:12 +0000
Deferred-Delivery: Fri, 20 Mar 2020 14:44:30 +0000
Message-ID: <MN2PR11MB356523119BB09ED5394FDB7AD8F50@MN2PR11MB3565.namprd11.prod.outlook.com>
References: <158212059997.17584.9409485384556514167.idtracker@ietfa.amsl.com> <MN2PR11MB356540107CC4FC7F9CB9F412D8E30@MN2PR11MB3565.namprd11.prod.outlook.com><7D77F80D-9D2C-4AF7-AB7E-4EDF58A9258A@kuehlewind.net> <MN2PR11MB3565C75A4707268047E1F90ED8F40@MN2PR11MB3565.namprd11.prod.outlook.com>, <9823A19B-CA7D-47D1-92FE-8AA436240BD4@kuehlewind.net> <C3771F28-264D-4D0D-9864-D40711EBA0FD@cisco.com>
In-Reply-To: <C3771F28-264D-4D0D-9864-D40711EBA0FD@cisco.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: [2001:420:c0c0:1006::22c]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: b77f6c60-13db-4d3a-e7bd-08d7ccdd4df3
x-ms-traffictypediagnostic: MN2PR11MB3631:
x-microsoft-antispam-prvs: <MN2PR11MB3631B1706374B8BC0A71DF4ED8F50@MN2PR11MB3631.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:10000;
x-forefront-prvs: 03484C0ABF
x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(346002)(396003)(39860400002)(136003)(376002)(366004)(199004)(186003)(6916009)(2906002)(30864003)(66476007)(71200400001)(66446008)(7696005)(33656002)(64756008)(66556008)(66946007)(76116006)(54906003)(6506007)(316002)(86362001)(66574012)(53546011)(6666004)(4326008)(478600001)(52536014)(81156014)(81166006)(966005)(224303003)(9686003)(55016002)(5660300002)(8936002); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR11MB3631; H:MN2PR11MB3565.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; 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: UKN4z88+fbNRtbVlPamqhz4R86Gx5aCX9WvJKph51peexl3yNn1lIt/zFx5fTnapn48l0oJ9QmosNLMY1uZFF0XoU0X+yHW9zoYpI52/CDGEYT6FliMGPI8xJPS2BsmnMraQ+pkmQfHIA3Cvb7uPzPuLCkyg/5FsiZ9QjQwD01oIub1h3KsLK9gFli8YvKwzhg0UJbpckGtS8ALPvIqtTR3YEnV8+qC0uQERlEvvXTgYeduDmqLZaCb5dF2jwhYyqInlYeUxbgBFmcRsoR21D39rF5e4GOb6kXqkMxI0Y+VHAjUhBgbF45AaLPGvhJZ0Ex5qWr3Olk3IaC+pTBEjnNjyDHd8WnysDg+aCUj4IXdSjwiDXNuhG73tbuqXyW/bw3pQWnjZbsHR6Qc3v89MZpKI2aMQD8KUlINL78mJIX/HsIkXkcffttGVYZGJgazjxH2ylbxbTXovE+XLSWZUjAgmvN/z9i5m0pP0BdpmoqUKz5pcvbjf4HFvZJx4bkSC/4t13gKK40a/fRGwDSSBRg==
x-ms-exchange-antispam-messagedata: txwztTl/44aSSkMS7hCBqMnFL1iMUUz+hTqZjtBvorhdV80mFxkefnCBhKWf/sh7yEzD6zoIqDnshmFbhesRY795mHbKmUXHksR+yJmGKNNk9pexBatc/hxnK3f2tdhzZRcF/m7ge1BNrC5tH7fwbpwI/O1fPh5mKbBcuNTvwSI=
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: b77f6c60-13db-4d3a-e7bd-08d7ccdd4df3
X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Mar 2020 14:45:16.1644 (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: KCFqXRbK6iwBZ16u7KsfI43rRf7utIAGQHTlVX/tK/fep2ho4+fBIjWC34yOrBSYhJ0nt3z/XF4em+fGuiropA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR11MB3631
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.37.102.13, xch-rcd-003.cisco.com
X-Outbound-Node: alln-core-12.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/6lo/9s0FQo1IKvuVZL5GKwe3O6mRzOE>
Subject: Re: [6lo] Mirja Kühlewind'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: Fri, 20 Mar 2020 14:45:41 -0000

Hello Mirja:

Continuing from yesterday night.

I published 18 and then 19 for this discussion. 

So the total diff is https://tools.ietf.org/tools/rfcdiff/rfcdiff.pyht?url1=https://tools.ietf.org/id/draft-ietf-6lo-fragment-recovery-17.txt&url2=https://tools.ietf.org/id/draft-ietf-6lo-fragment-recovery-19.txt 

Based on the discussion below, 7.1 would become:

"
7.1.  Protocol Parameters

   The management system SHOULD be capable of providing the parameters
   listed in this section and an implementation MUST abide by those
   parameters and in particular never exceed the minimum and maximum
   configured boundaries.

   An implementation should consider the generic recommendations from
   the IETF in the matter of congestion control and rate management for
   IP datagrams in [RFC8085].  An implementation may perform a
   congestion control by using a dynamic value of the window size
   (Window_Size), adapting the fragment size (Fragment_Size), and may
   reduce the load by inserting an inter-frame gap that is longer than
   necessary.  In a large network where nodes contend for the bandwidth,
   a larger Fragment_Size consumes less bandwidth but also reduces
   fluidity and incurs higher chances of loss in transmission.

   This is controlled by the following parameters:

   inter-frame gap:  The inter-frame gap indicates the minimum amount of
      time between transmissions.  The inter-frame gap controls the rate
      at which fragments are sent, the ratio of air time, and the amount
      of memory in intermediate nodes that a particular datagram will
      use.  It can be used as a flow control, a congestion control, and/
      or a collision control measure.  It MUST be set at a minimum to a
      value that protects the propagation of one transmission against
      collision with next [FRAG-FWD].  In a wireless network that uses
      the same frequency along a path, this may represent the time for a
      frame to progress over multiple hops (more in Section 4.2).  It
      SHOULD be augmented beyond this as necessary to protect the
      network against congestion.
"

Where section 4.2 is where we indicate that the IFG is 
"inserted  between transmissions to the same next hop"




> -----Original Message-----
> From: Pascal Thubert (pthubert)
> Sent: jeudi 19 mars 2020 20:12
> To: Mirja Kuehlewind <ietf@kuehlewind.net>
> Cc: Pascal Thubert (pthubert) <pthubert=40cisco.com@dmarc.ietf.org>; 6lo-
> chairs@ietf.org; The IESG <iesg@ietf.org>; 6lo@ietf.org; draft-ietf-6lo-
> fragment-recovery@ietf.org; Carles Gomez <carlesgo@entel.upc.edu>; Martin
> Duke <martin.h.duke@gmail.com>; Benjamin Kaduk <kaduk@mit.edu>
> Subject: Re: Mirja Kühlewind's Discuss on draft-ietf-6lo-fragment-recovery-13:
> (with DISCUSS and COMMENT)
> 
> Hello Mirja
> 
> 
> 
> >
> >>
> >>
> >> Please see below the discussion:
> >>
> >>>>> ------------------------------------------------------------------
> >>>>> ---
> >>>>> -
> >>>>> DISCUSS:
> >>>>> -----------------------------------------
> >
> >>
> >> Note that all classical wireless interfaces perform ARQ. On one hop, you get
> the same effect of multiplying the traffic in the air vs. what the transport see.
> The factor can be high, e.g., 64. On a mesh, we get the additional effect of
> multiple flows converging on a same node.
> >
> > Yes but with only “one hop”/the network you are connected to directly, and
> there is usually also some kind of back-off mechanism that reacts to
> congestion/collision/contention on that layer.
> >
> >
> >>
> >>>
> >>> To be clear the request of this discuss is to give a normative
> >>> recommendation for the default value of the window size and/or inter-
> frame gap.
> >>
> >> Yes, and since there is no great expectation that ECN will be implemented,
> that must be reasonable.
> >> Also we want to agree on the proposed mechanism to drop the window to 1
> in case of congestion notification, or is that behind us already?
> >
> > Dropping to 1 on CE mark is fine. However, when do you increase the window
> again? If you want to say something here, you have to specify that as well.
> 
> 
> If we keep things really simple it would not. Note that this applies to a single
> data gram and that’s usually just a few fragments.
> 
> We could double at each round trip but by the time it takes effect the
> datagram will be done...
> 
> >
> >>
> >>
> >>>
> >>> Further note, as you allow to adapt both the window and the
> >>> inter-frame gap dynamically, you actually implement two control
> >>> mechanisms here. I actually recommend to only use the inter-frame
> >>> gap and don’t have window here. You say a couple of times in your
> >>> reply below, that the window determines the ask- rate, however, it
> >>> is not clear to me because the ack rate should be a parameter at the
> >>> receiver and not at the sender (maybe I don’t remember things
> >>> correctly because it’s a while back since I read the draft and I
> >>> couple find anything about this in the draft quickly). If the window size
> however does define the ack rate, then maybe you should rename that
> parameter respectively.
> >>
> >> The ack is not for flow control (as we do not have it) but in support of ARQ.
> The possibility to use it for congestion control is a desirable side effect. The
> fragmenting endpoint FSM may want to wait and see how things went for the
> fragments that it already sent. E.g., there's the case where the fragmenting
> endpoint would use an ack on the first fragment for  a number of reasons such
> as check that a path is available, that the MTU is OK or assess an initial RTT. It
> may maximize the number of fragments in flight for congestion control. But
> whether to do any of that is left to implementation (so far).
> >>
> >>
> >>>
> >>> However, if there is really a need for a window, I still recommend
> >>> to talk less about adapting this value dynamically and make clear
> >>> that having a fixed value is the recommended default. Therefore I
> >>> recommend to remove the parameter MinWindowSize and
> MaxWindowSize
> >>> because these should actually not be parameters than can be
> >>> configured but are actual bounds. If someone decides to implement
> >>> dynamic window adaption, they can decide to re-introduce these
> >>> parameter again and make them configurable but it doesn’t need to be
> part of this spec.
> >>
> >> I can see that, yes. I still like the idea to drop to 1 in case of ECN.
> >> Do you suggest to remove that as well?
> >> If so, should we augment the inter-frame gap in case of ECN?
> >> That may be better though not simpler to specify or implement.
> >
> > That’s an option as well. Again when you reduce something you might as well
> need to specify when to increase it again and that means you are specifying
> basically a congestion control scheme.
> 
> My goal for this doc was to keep it dead simple, build it so we have the
> necessary basis with ecn and windowing, and then play with it and learn from
> it. only then we can do a valuable spec.
> 
> can we keep it at what the doc has now?
> >
> >>
> >>
> >>
> >>>
> >>> So it could be something like:
> >>>
> >>> "Window_Size:  Window_Size MUST be at least 1 and less than 33. If
> >>> the inter- frame gap is selected large enough to not overload the
> >>> path and the one-way
> >>
> >> I see the IFG as more efficient for flow control than for congestion control:
> Increasing IFG slows down the packets but as long as the result is faster than
> the bottleneck, it does not help much does it? So I'm still  unsatisfied on how to
> characterize an IFG that does not overload a path. But I'm not sure we can do
> better. I moved that piece to the IFG definition if that's OK?
> >
> > So how do you currently set the IFG? Both IFG and window_size can be used
> for both flow as well as congestion control, it only depends who generated the
> signal that is used to adapt the value, either the endpoint/receiver or the
> network/nodes on the path.
> >
> 
> This is specified in minimal fragments. The IFG ensures that the previous
> fragment is beyond interference range. In a single frequency mesh that is
> multiple hops away.
> 
> > Using a window would be a window-based congestion control. Using the IFG
> would be a rate-based congestion control. But the principle is the same.
> >
> >
> I’d love to chat about that at the next IETF to get your view. On paper the rate
> based does not guarantee the amount of bytes that this node will pack at the
> bottleneck. What I found implementing it years ago was that it is sensitive to
> when and how the congested node sets ECN. I ended up adjusting only once
> per RTT...
> 
> >>
> >>> delay is known, the Window_Size SHOULD be set to the one-way trip
> >>> time divided by the inter-frame gap.  Otherwise a small value of X
> >>> SHOULD be configured. Note that the Window_Size determines the ack
> >>> rate. If the window_size is set this to 32, this means only the last
> >>> Fragment is acknowledged in the first round. If it is set to a
> >>> smaller value, more acks are generated but the load on the forward
> >>> path will be lower. Window_Size MAY be adapted dynamically to reduce
> >>> load on the forward path in case of congestion.”
> >>
> >> The assertion that the load on the forwarding path will be lower is usually
> incorrect in a typical  LLN, since the radios are half duplex. In the example of
> 6TiSCH, an rfrag_ack consumes the exact same bandwidth as a fragment (one
> time slot). Also the path of the rfrag_ack is the reverse LSP, so it goes across
> the exact same links.
> >
> > Okay. Yes makes sense.
> >>
> >> The last sentence is already present above in the text above it, all quoted
> below, so I'm also trying to avoid duplication.
> >>
> >>> Still you also need to say more about how to set and dynamically
> >>> adapt the inter-frame gap because that is probably the real limiting
> >>> fact to avoid network overload.
> >>>
> >>
> >> Yes, I see that tuning IFG impacts the rate and can help alleviate the
> congestion once you pass below the rate the bottleneck can give you. I've done
> some adaptive CIR long ago in IBM FR switches and it can be made to work,
> and though it was a lot of fun, it's not any easier than window-based flow
> control. And it really depends on the relay doing the right thing, e.g., reacting
> quickly on growing queue latency and applying fair sharing.
> >>
> >>> Also below you remove the recommendation for using the number of
> >>> hops as window size but here you added it again. This is just
> >>> incorrect. There is no dependency between the number of hops and the
> >>> window size: If there is no bottleneck on the path, you can just send with
> line rate at the sender.
> >>
> >> The rationale was: If there is no bottleneck on the path and the window is
> less than the number of hops then the sender will be blocked and the
> maximum throughput cannot be achieved.. If the rfrag_ack is as slow as the
> frag, which is reasonable in an LLN, we're talking about a window of twice the
> number of hops to keep the fragments going.
> >
> > I see that the idea was rather to get the frames flowing (that avoiding
> overload) under the assumption that there is no bottleneck on the path.
> However, in this case you don’t really need the window at all and using the IFG
> should be enough.
> 
> 
> Yep it is actually more constrained since IFG usually covers transmission over
> multiple hops. You found that I removed hop count throughout this time
> (hopefully) and followed your recommendation.
> 
> >
> >>
> >> I saw the number of hops as a starting point, but I'm (really) happy to stick
> to RTT/IFG which makes more sense considering the focus that you seem to
> recommend placing on IFG (and I agree with that too).
> >>
> >>>
> >>> If there is a bottleneck on the path and you send at a higher rate
> >>> than the bottleneck than soon or later the buffer at that hop will
> >>> fill up completely. So the window size depends only on the
> >>> bottleneck rate and end-to-end delay (BDP) (which let’s you
> >>> calculate the number of packet in flight) plus the buffer size at the
> bottleneck. The number of hops is irrelevant.
> >>
> >> Yes, I understand that model. It was easier to apply some 25 years ago.
> >> So far the links in a LLN are usually the same and the PHYs are usually the
> same so it's still usable.
> >> But that is bound to change rapidly as even LLN radios are going to be agile
> WRT PHY rate. Meaning that the rate at the bottleneck will become hard to
> fathom and will change (rapidly) over time (same as Wi-Fi).
> >>
> >> All in all we'd get:
> >>
> >> "
> >>  An implementation must control the rate at which it sends packets
> >> over the same path to allow the next hop to forward a packet before
> >
> > What does “same" relate to here?
> 
> Same next hop (in TSCH) and possibly multiple hops but usually it does not
> know (requires link state which we usually do not have)
> 
> I can change over the same path to via te same next hop to keep it simple?
> >
> >
> >>  it gets the next.  In a wireless network that uses the same
> >> frequency  along a path, more time must be inserted to avoid hidden
> >> terminal  issues between fragments (more in Section 4.2).  An
> >> implementation  should consider the generic recommendations from the
> >> IETF in the  matter of congestion control and rate management in
> >> [RFC5033].  An
> >
> > Maybe RFC8085 is the better reference?
> 
> Happy to change
> 
> >
> >>  implementation may perform a congestion control by using a dynamic
> >> value of the window size (Window_Size), adapting the fragment size
> >> (Fragment_Size), and may reduce the load by inserting an inter-frame
> >> gap that is longer than necessary.
> >
> > This is a bit the part that I don’t understand fully. Why do you need three
> different ways to enable congestion control instead of just having one.
> 
> To enable experimenting. The text above is true all this is possible. But the only
> thing that we mandate is resetting the window.
> 
> 
> >
> > You already have the IFG. What's the benefits of having a window based rate
> limit in addition?
> >
> 
> Tuning IFG is complex. Implementation may prefer window over rate based.
> Once we have experience we’ll build the necessary specs.
> 
> 
> >> In a large network where nodes
> >>  contend for the bandwidth, a larger Fragment_Size consumes less
> >> bandwidth but also reduces fluidity and incurs higher chances of loss
> >> in transmission.
> >>
> >>  This is controlled by the following parameters:
> >>
> >>
> >>  inter-frame gap:  Indicates the minimum amount of time between
> >>     transmissions.  The inter-frame gap protects the propagation of
> >>     one transmission before the next one is triggered and creates a
> >>     duty cycle that controls the ratio of air time and memory in
> >>     intermediate nodes that a particular datagram will use.  The
> >>     inter-frame gap controls the rate at which fragments are sent and
> >>     SHOULD be selected large enough to protect the network.
> >
> > I think you need to provide some (normative) recommendation for the
> default configuration of the IFG. If that is specified in draft-ietf-6lo-minimal-
> fragment a pointer would be good and more explanation.
> >
> 
> It is and it I will. There’s already such reference but I can probably do better.
> 
> 
> 
> >>
> >>
> >> <snip>
> >>
> >>  Window_Size:  The Window_Size MUST be at least 1 and less than 33.
> >>
> >>     *  If the round-trip time is known, the Window_Size SHOULD be set
> >>        to the round-trip time divided by the time per fragment, that
> >>        is the time to transmit a fragment plus the inter-frame gap.
> >>
> >>     Otherwise:
> >>
> >>     *  Setting the window_size to 32 is to be understood as only the
> >>        last Fragment is acknowledged in each round.  This is the
> >>        RECOMMENDED value in a half-duplex LLN where the fragment
> >>        acknowledgment consumes roughly the same bandwidth on the same
> >>        links as the fragments themselves
> >>
> >>     *  If it is set to a smaller value, more acks are generated.  In a
> >>        full-duplex network, the load on the forward path will be
> >>        lower, and a small value of 3 SHOULD be configured.
> >> “
> >>
> >
> > If having the window is still useful, this is fine I think.
> >
> 
> I don’t know but we’ll learn. Please let me know if we agree on the above and
> I’ll update tomorrow (it’s family time now in CET).
> 
> Take care,
> 
> Pascal
> 
> > Mirja
> >
> >
> >
> >>
> >