Re: [6tisch] draft-ietf-6tisch-msf-06 is published

Yasuyuki Tanaka <yasuyuki.tanaka@inria.fr> Wed, 14 August 2019 17:50 UTC

Return-Path: <yasuyuki.tanaka@inria.fr>
X-Original-To: 6tisch@ietfa.amsl.com
Delivered-To: 6tisch@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D109D120CA0 for <6tisch@ietfa.amsl.com>; Wed, 14 Aug 2019 10:50:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.899
X-Spam-Level:
X-Spam-Status: No, score=-6.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 S62wwNI6ZUhZ for <6tisch@ietfa.amsl.com>; Wed, 14 Aug 2019 10:50:14 -0700 (PDT)
Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) (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 A6778120CA6 for <6tisch@ietf.org>; Wed, 14 Aug 2019 10:50:10 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="5.64,386,1559512800"; d="scan'208";a="316397975"
Received: from poi92-3-88-190-144-98.fbxo.proxad.net (HELO [192.168.1.14]) ([88.190.144.98]) by mail3-relais-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 14 Aug 2019 19:50:08 +0200
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\))
From: Yasuyuki Tanaka <yasuyuki.tanaka@inria.fr>
In-Reply-To: <659558056.9403455.1565802201960.JavaMail.zimbra@inria.fr>
Date: Wed, 14 Aug 2019 19:50:07 +0200
Cc: Yasuyuki Tanaka <yasuyuki.tanaka@inria.fr>
Content-Transfer-Encoding: quoted-printable
Message-Id: <23DE65B1-3794-49F4-A0D9-AAE6521C0CBE@inria.fr>
References: <CAAdgstQSMdKfHo8uWTD7E8DfVdKtzcYUmxzP7kmBUaRJSABMTQ@mail.gmail.com> <1317284713.9387735.1565793912823.JavaMail.zimbra@inria.fr> <CAAdgstSThfrNRL_AniJWiGCbEJKj2qsELfFo6K-9AwwOD-XSrw@mail.gmail.com> <659558056.9403455.1565802201960.JavaMail.zimbra@inria.fr>
To: 6tisch <6tisch@ietf.org>
X-Mailer: Apple Mail (2.3445.104.11)
Archived-At: <https://mailarchive.ietf.org/arch/msg/6tisch/P3cmmlbexDT3K1-WRCCB5PSbYT8>
Subject: Re: [6tisch] draft-ietf-6tisch-msf-06 is published
X-BeenThere: 6tisch@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Discuss link layer model for Deterministic IPv6 over the TSCH mode of IEEE 802.15.4e, and impacts on RPL and 6LoWPAN such as resource allocation" <6tisch.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/6tisch>, <mailto:6tisch-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/6tisch/>
List-Post: <mailto:6tisch@ietf.org>
List-Help: <mailto:6tisch-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/6tisch>, <mailto:6tisch-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 14 Aug 2019 17:50:17 -0000

Hi,

This is an open issue, what return code to return when there is no available cell.

Christian raised it before:

   https://mailarchive.ietf.org/arch/msg/6tisch/Awiip2xOfwZTPyg1jQIeIOyqSgk

As per RFC8480:

- RC_SUCCESS with an empty list will be returned
- RC_ERR_BUSY is defined to be returned when there is not enough resource to handle a new *transaction*
- RC_ERR defined is be returned for a request having an invalid CellOptions value, or for a response having an unknown return code (in the 3-step case)

> I woud send back either an RC_ERR_BUSY or RC_ERR, definitely NOT RC_SUCCESSS

Between the two, RC_ERR_BUSY would be better since RC_ERR is basically telling that the responder doesn't understand your 6P message.
But, RC_ERR_BUSY is not good either. It is a return code suggesting "retry it later", not "give up this neighbor."

If possible, I would define a dedicated return code for this case, like RC_ERR_NO_AVAILABLE_CELL or RC_ERR_NO_CELL, though.

One solution within RFC8480 is to perform a 3-step ADD transaction on receiving an empty cell with RC_SUCCESS to an (2-step) ADD request.
If the responder doesn't have enough cells, it will return an empty cell list as the candidate cell list in its response.

Best,
Yatch


> On Aug 14, 2019, at 19:03, Thomas Watteyne <thomas.watteyne@inria.fr> wrote:
> 
> I woud send back either an RC_ERR_BUSY or RC_ERR, definitely NOT RC_SUCCESSS
> 
> ________________________________________ 
> 
> Thomas Watteyne, PhD 
> Sr Research Scientist & Innovator, Inria 
> Sr Networking Design Eng, Analog Devices 
> Founder & Advisor, Wattson Elements/Falco
> Founder & co-lead, UC Berkeley OpenWSN 
> Co-chair, IETF 6TiSCH 
> 
> www.thomaswatteyne.com 
> ________________________________________ 
> 
> De: "tengfei chang" <tengfei.chang@gmail.com>
> À: "Thomas Watteyne" <thomas.watteyne@inria.fr>
> Cc: "6tisch" <6tisch@ietf.org>
> Envoyé: Mercredi 14 Août 2019 08:46:25
> Objet: Re: [6tisch] draft-ietf-6tisch-msf-06 is published
> Hi Thomas,
> 
> Yes, you understood correctly.
> 
> There are two related part in RFC8480 mentioned this case: 
> 
> Upon receiving the request, node B checks to see if the length of the
>    Candidate CellList is greater than or equal to NumCells.  Node B's SF
>    verifies that all the cells in the Relocation CellList are scheduled
>    with node A and are associated with the options specified in the
>    CellOptions field.  If either check fails, node B MUST send a 6P
>    Response to node A with return code RC_ERR_CELLLIST.  If both checks
>    pass, node B's SF verifies which of the cells in the Candidate
>    CellList it can install in its schedule.  How that selection is done
>    is specified in the SF and is out of scope for this document.  That
>    verification for the Candidate CellList can succeed (NumCells cells
>    from the Candidate CellList can be used), fail (none of the cells
>    from the Candidate CellList can be used), or partially succeed (fewer
>    than NumCells cells from the Candidate CellList can be used).  In all
>    cases, node B MUST send a 6P Response that includes a return code set
>    to RC_SUCCESS and that specifies the list of cells that will be
>    rescheduled following the CellOptions field.  That list can contain
>    NumCells elements (succeed), 0 elements (fail), or between 0 and
>    NumCells elements (partially succeed).  If N < NumCells cells appear
>    in the CellList, this means that the first N cells in the Relocation
>    CellList have been relocated and the remainder have not.
> 
> 
> Here it clarified the return code for this case MUST be RC_SUCCESS. 
> I would say it may implies that the case should be the option 1 I mentioned above.
> 
> Another part in concurrent 6P transaction section, it says: 
> 
>  If a
>    node does not have enough resources to handle concurrent 6P
>    Transactions from different neighbors, it MUST reply with a 6P
>    Response with return code RC_ERR_BUSY (as per Figure 38 in
>    
> Section 6.2.4). 
> 
> I says 
> 
> enough resources to handle concurrent 6P Transactions, 
> 
> but the option 2 I mentioned doesn't need to be concurrent 6P transaction. 
> Also the RC_BUSY doesn't sound the right return code name for this case.
> 
> So does the RC_BUSY is the return code for option 2 I mentioned?
> 
> Tengfei
> 
> 
> On Wed, Aug 14, 2019 at 4:45 PM Thomas Watteyne <thomas.watteyne@inria.fr> wrote:
> Tengfei,
> 
> Trying to understand you point about " handle Sixtop ADD Response with return code SUCCESS but 0 cells in cellList"
> 
> If the response code is SUCCESS, IMO that means option 1. if option 2 is happening (I assume you mean "there is no memory for allocating more cells"), I would expect another return code, no?
> 
> THomas
> 
> 
> 
> ________________________________________ 
> 
> Thomas Watteyne, PhD 
> Sr Research Scientist & Innovator, Inria 
> Sr Networking Design Eng, Analog Devices 
> Founder & Advisor, Wattson Elements/Falco
> Founder & co-lead, UC Berkeley OpenWSN 
> Co-chair, IETF 6TiSCH 
> 
> www.thomaswatteyne.com 
> ________________________________________ 
> 
> De: "tengfei chang" <tengfei.chang@gmail.com>
> À: "6tisch" <6tisch@ietf.org>
> Envoyé: Lundi 12 Août 2019 08:52:37
> Objet: [6tisch] draft-ietf-6tisch-msf-06 is published
> Dear all,
> The  draft-ietf-6tisch-msf-06 is just published, it mainly resolved what we discussed during the IETF meeting. 
> 
> - add rules for celllist
> - update the downstream cell adaptation strategy
> 
> 
> Right now, there is one issue remained to be resolved and I am not sure what is the right solution. So I need suggestions and feedback from you:
> 
> - handle Sixtop ADD Response with return code SUCCESS but 0 cells in cellList
> 
> There are two possible reason for this situation
> 1. the proposed celllist doesn't meet the requirement from neighbor side
> 2. there is schedule memory for adding more cells. 
> 
> For the 1st  reason, the node may try to send another 6P request later.
> For the 2nd reason, the node may switch to another parent but it's layer violated.
> 
> Any solutions for this case?
> 
> Tengfei
> 
> -- 
> Chang Tengfei,
> Postdoctoral Research Engineer, Inria
> 
> _______________________________________________
> 6tisch mailing list
> 6tisch@ietf.org
> https://www.ietf.org/mailman/listinfo/6tisch
> 
> 
> -- 
> Chang Tengfei,
> Postdoctoral Research Engineer, Inria
> 
> _______________________________________________
> 6tisch mailing list
> 6tisch@ietf.org
> https://www.ietf.org/mailman/listinfo/6tisch