Re: [6tisch] Thomas' review of draft-ietf-6tisch-msf-02

Thomas Watteyne <thomas.watteyne@inria.fr> Tue, 26 March 2019 13:58 UTC

Return-Path: <thomas.watteyne@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 0462E1202DE for <6tisch@ietfa.amsl.com>; Tue, 26 Mar 2019 06:58:51 -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, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, 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 JTLiYZXczY4b for <6tisch@ietfa.amsl.com>; Tue, 26 Mar 2019 06:58:46 -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 447931202DC for <6tisch@ietf.org>; Tue, 26 Mar 2019 06:58:45 -0700 (PDT)
X-IronPort-AV: E=Sophos;i="5.60,271,1549926000"; d="scan'208,217";a="300778933"
X-MGA-submission: MDE18mzDO98H03xdlGEsht67LGj3DeVksmvenhWXcX/V53A0m71GnPPmE1koiLm0258ts1eOUPkCR649W1XUlspubp4vKTTR65stPD2mbruNS7diyZpum3UTQi5ufjPasIHBhObRa1z8BOKjo3rzHpWk19AzvJ7uGdCX5sf/2ZrnIQ==
Received: from zcs-store9.inria.fr ([128.93.142.36]) by mail3-relais-sop.national.inria.fr with ESMTP; 26 Mar 2019 14:58:43 +0100
Date: Tue, 26 Mar 2019 14:58:43 +0100
From: Thomas Watteyne <thomas.watteyne@inria.fr>
To: tengfei chang <tengfei.chang@gmail.com>
Cc: 6tisch <6tisch@ietf.org>
Message-ID: <218818884.1658706.1553608723097.JavaMail.zimbra@inria.fr>
In-Reply-To: <CAAdgstQYTOH67jMMOCUtm-vS74KDQRvLGwe90fhh9etEqhUuLQ@mail.gmail.com>
References: <26484024.1122561.1553497091359.JavaMail.zimbra@inria.fr> <CAAdgstQYTOH67jMMOCUtm-vS74KDQRvLGwe90fhh9etEqhUuLQ@mail.gmail.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=_bd498a00-9bbf-4c45-a423-db81168cd81d"
X-Originating-IP: [128.93.84.215]
X-Mailer: Zimbra 8.7.11_GA_3789 (ZimbraWebClient - GC73 (Win)/8.7.11_GA_3789)
Thread-Topic: Thomas' review of draft-ietf-6tisch-msf-02
Thread-Index: hWTEVbzoYA4VziR864WcbLv3SBuS3Q==
Archived-At: <https://mailarchive.ietf.org/arch/msg/6tisch/aKtnoqOmo5y_D-Dd4d9iehg2lO8>
Subject: Re: [6tisch] Thomas' review of draft-ietf-6tisch-msf-02
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: Tue, 26 Mar 2019 13:58:51 -0000

excellent, thanks 

> De: "tengfei chang" <tengfei.chang@gmail.com>
> À: "Thomas Watteyne" <thomas.watteyne@inria.fr>
> Cc: "6tisch" <6tisch@ietf.org>
> Envoyé: Mardi 26 Mars 2019 14:57:05
> Objet: Re: [6tisch] Thomas' review of draft-ietf-6tisch-msf-02

> Thanks for the comments! Generally, all comments are taken.

> I will fix them in the next version!
> Tengfei

> On Mon, Mar 25, 2019 at 7:59 AM Thomas Watteyne < [
> mailto:thomas.watteyne@inria.fr | thomas.watteyne@inria.fr ] > wrote:

>> Authors,

>> Please find below my review of draft-ietf-6tisch-msf-02. It's a patch file to
>> the txt version of the draft.

>> You will find inline fixes of typos, and comments, which start at the new line
>> with "TW>"

>> Overall, the draft is in good shape. The recommendations I make are editorial.
>> The biggest remark is that the draft mixes the terms "dedicated cells" and
>> "managed cells". I also would like to see some text that describes the
>> reasoning between "autonomous SHARED cells" and "autonomous non-SHARED cells".
>> Also, because those terms are obscure, you could replace them throughout by
>> "autonomous upstream cells" and "autonomous downstream cells".

>> Thomas

>> =====

>> diff --git
>> "a/C:\\Users\\twatteyn\\AppData\\Local\\Temp\\TortoiseGit\\draft-ietf-6tisch-msf-02-54bdb6a.000.txt"
>> "b/C:\\Users\\twatteyn\\Desktop\\ietf\\draft-ietf-6tisch-msf-02.txt"
>> index 89514c6...49e59bb 100644
>> ---
>> "a/C:\\Users\\twatteyn\\AppData\\Local\\Temp\\TortoiseGit\\draft-ietf-6tisch-msf-02-54bdb6a.000.txt"
>> +++ "b/C:\\Users\\twatteyn\\Desktop\\ietf\\draft-ietf-6tisch-msf-02.txt"
>> @@ -135,10 +135,9 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> The 6TiSCH Minimal Scheduling Function (MSF), defined in this
>> specification, is a 6TiSCH Scheduling Function (SF). The role of an
>> - SF is entirely defined in [RFC8480]: it complements [RFC8480] by
>> + SF is entirely defined in [RFC8480]. This specification complements [RFC8480]
>> by
>> providing the rules of when to add/delete cells in the communication
>> - schedule. The SF defined in this document follows that definition,
>> - and satisfies all the requirements for an SF listed in Section 4.2 of
>> + schedule. This specification satisfies all the requirements for an SF listed
>> in Section 4.2 of
>> [RFC8480].
>> MSF builds on top of the following specifications: the Minimal IPv6
>> @@ -153,11 +152,11 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> the 7 steps described in Section 4. The end state of the join
>> process is that the node is synchronized to the network, has mutually
>> authenticated to the network, has identified a preferred routing
>> - parent, has scheduled one default managed unicast cell (defined in
>> + parent, and has scheduled one default managed unicast cell (defined in
>> Section 5.1) to/from its preferred routing parent. After the join
>> process, the node can continuously add/delete/relocate cells, as
>> described in Section 5. It does so for 3 reasons: to match the link-
>> - layer resources to the traffic, to handle changing parent, to handle
>> + layer resources to the traffic, to handle changing parent, or to handle
>> a schedule collision.
>> MSF is designed to operate in a wide range of application domains.
>> @@ -172,18 +171,19 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> the nodes to the root). Appendix C contains a performance evaluation
>> of MSF.
>> +TW> I would remove this sentence, as Appexdix C might be removed
>> This specification follows the recommended structure of an SF
>> - specification in Appendix A of [RFC8480], with the following
>> + specification, given in Appendix A of [RFC8480], with the following
>> adaptations:
>> - o We have reordered part of the sections, in particular to have the
>> - section on the node behavior at boot Section 4 appear early in
>> + o We have reordered some sections, in particular to have the
>> + section on the node behavior at boot (Section 4) appear early in
>> this specification.
>> o We added sections on the interface to the minimal 6TiSCH
>> - configuration Section 2, the use of the SIGNAL command Section 6,
>> - the MSF constants Section 14, the MSF statistics Section 15, the
>> - performance of MSF Appendix C.
>> + configuration (Section 2), the use of the SIGNAL command (Section 6),
>> + the MSF constants (Section 14), the MSF statistics (Section 15), and the
>> + performance of MSF (Appendix C).
>> o This specification does not include an examples section.
>> 2. Interface to the Minimal 6TiSCH Configuration
>> @@ -193,8 +193,9 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> shared cell providing minimal connectivity between the nodes in the
>> network. The MSF implementation provided in this specification is
>> based on the implementation of the Minimal 6TiSCH Configuration. An
>> - implementor with full-awareness of the Minimal 6TiSCH Configuration
>> + implementor with full awareness of the Minimal 6TiSCH Configuration
>> implications MAY implement MSF without it.
>> +TW> I don't understand the statement "with full awareness of the Minimal 6TiSCH
>> Configuration". Rephrase.
>> MSF uses the minimal cell to exchange the following packets:
>> @@ -203,6 +204,7 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> 2. DODAG Information Objects (DIOs), defined by [RFC6550], with
>> broadcast type. Unicast type DIOs SHOULD NOT be sent on minimal
>> cell.
>> +TW> just say "broadcast DIOs" and "unicast DIO". "Broadcast type" doesn't mean
>> much.
>> Because the minimal cell is SHARED, the back-off algorithm defined in
>> [IEEE802154-2015] is used to resolve collisions. To ensure there is
>> @@ -214,7 +216,7 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> 2. send any other broadcast packets on a portion of the minimal
>> cells not exceeding 1/(3(N+1)), where N is the number of
>> neighbors of the node. For example, the broadcast DIO and DIS,
>> - IPv6 Neighbor Discovery (ND)[RFC4861] and any other application
>> + IPv6 Neighbor Discovery (ND) [RFC4861] and any other application
>> layer broadcast packets.
>> @@ -229,8 +231,8 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> The RECOMMENDED behavior for sending EBs is to have a node send EBs
>> with a probability of 1/(3(N+1)). The RECOMMENDED behavior for
>> sending DIOs is to use a Trickle timer with rate-limiting. There is
>> - no recommendation behavior for sending any other broadcast. However,
>> - the traffic portion of all broadcast packets on minimal cell, except
>> + no recommended behavior for sending any other broadcast frame. However,
>> + the traffic portion of all broadcast frames on the minimal cell, except
>> EBs, MUST not exceed 1/(3(N+1)).
>> Section 4.3 describes how to evaluate the number of neighbors during
>> @@ -240,31 +242,33 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> As detailed in Section 2.2 of [RFC8480], MSF MUST schedule cells from
>> Slotframe 1, while Slotframe 0 is used for traffic defined in the
>> Minimal 6TiSCH Configuration. The length of Slotframe 0 and
>> - Slotframe 1 SHOULD be the same value. The default of
>> + Slotframe 1 SHOULD be the same value. The default value of
>> SLOTFRAME_LENGTH is RECOMMENDED for both Slotframe 0 and Slotframe 1,
>> - although any value can be advertised in the EBs.
>> + although any value can be used, and advertised in the EBs.
>> +TW> minimal is not required, yet there is a MUST here. I suggest you start this
>> paragraph by a statement such as "If MSF is used together with the ..."
>> 3. Autonomous Cells
>> MSF nodes MUST initialize Slotframe 1 with a set of default cells for
>> - unicast communication with their neighbors. These cells are referred
>> - to as 'autonomous cells', because they are maintained autonomously by
>> - each node. To distinguish from the autonomous cells, the cell
>> - scheduled by 6P transaction is defined as 'managed cells'. How to
>> + unicast communication with their neighbors.
>> +TW> remove the MUST?
>> + These cells are
>> + called "autonomous cells", because they are maintained autonomously by
>> + each node. Cells
>> + scheduled by 6P transactions are called "managed cells". How to
>> schedule managed cells is detailed in Section 5. For autonomous
>> cells, each node has:
>> - o One cell at a [slotOffset,channelOffset] computed as a hash of the
>> - node's EUI64 (detailed next). The cell options for this cell are
>> + o One cell at a [slotOffset,channelOffset] computed as a hash of its own EUI64
>> (detailed next). The cell options for this cell are
>> TX=1, RX=1, SHARED=0.
>> o One cell at a [slotOffset,channelOffset] computed as a hash of the
>> - EUI64 of the Join Proxy or each neighbor in the IPv6 neighbor
>> - table (detailed in Section 4.4 and Section 4.5). The cell options
>> + EUI64 for each neighbor in the IPv6 neighbor
>> + table, including the Join Proxy (detailed in Section 4.4 and Section 4.5). The
>> cell options
>> for this cell are TX=1, RX=1, SHARED=1.
>> To compute a [slotOffset,channelOffset] from an EUI64 address, nodes
>> MUST use the hash function SAX [SAX-DASFAA]. The coordinates are
>> - computed to distribute the cells across all 16 channel offsets, and
>> + computed to distribute the cells across all channel offsets, and
>> all but the first time offsets of Slotframe 1. The first time offset
>> is skipped to avoid colliding with the minimal cell in Slotframe 0.
>> The slot coordinates derived from a given EUI64 address are computed
>> @@ -272,7 +276,7 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> o slotOffset(MAC) = 1 + hash(EUI64, length(Slotframe_1) - 1)
>> o channelOffset(MAC) = hash(EUI64, 16)
>> -
>> +TW> don't you need a modulo operator here? THe hash function can return a very
>> large number.
>> @@ -282,11 +286,13 @@ Chang, et al. Expires September 12, 2019 [Page 5]
>> Internet-Draft 6TiSCH Minimal Scheduling Function (MSF) March 2019
>> - For interoperability purpose, an example how the hash function is
>> + For interoperability purposes, an example how the hash function is
>> implemented is detailed in Appendix B.
>> - Because of hash collisions, there are cases where the autonomous
>> - SHARED and non-SHARED cells are scheduled at the same time offset
>> + Because of hash collisions, there will be cases when the autonomous
>> + SHARED and non-SHARED cells
>> +TW> what do you call "autonomous SHARED and non-SHARED cells"? Do you mean
>> autonomous and managed cells?
>> + are scheduled at the same time offset
>> and/or channel offset. Hash collisions among a set of cells at a
>> given time offset is resolved at run-time as follows:
>> @@ -294,29 +300,33 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> precedence.
>> o If all SHARED cells have empty outgoing queues, the non-SHARED
>> cell takes precedence.
>> +TW> please specify what you mena by SHARED and non-SHARED
>> Both SHARED and non-SHARED autonomous cells are scheduled to transmit
>> unicast packets. The autonomous SHARED cells can only be used to
>> - transmit packets to the neighbor whose EUI64 address is used in hash
>> - function to create this cell. The autonomous non-SHARED cells can be
>> + transmit packets to the neighbor whose EUI64 address is used in the hash
>> + function to schedule this cell. Autonomous non-SHARED cells can be
>> used to transmit packet to any neighbors. The traffic on the
>> autonomous cells are scheduled as:
>> - o The Join Request MUST be sent on a SHARED cell, the 6P Request
>> - packet MAY be sent on a SHARED cell.
>> - o The Join Response MUST be sent on a non-SHARED cell, the 6P
>> - Response packet MAY send on a non-SHARED cell.
>> + o Join Request packets MUST be sent on SHARED cells.
>> + o Join Response packets MUST be sent on non-SHARED cells.
>> + o 6P Request frames MAY be sent on SHARED cells.
>> + o 6P Response frames MAY be sent on non-SHARED cells.
>> Throughout the network lifetime, nodes MUST maintain the autonomous
>> cells as follows:
>> o The non-SHARED cell MUST always remain scheduled.
>> +TW> what do you mean?
>> o Whenever a new IPv6 neighbor is discovered, add a SHARED cell for
>> it.
>> o Whenever an IPv6 neighbor is removed, remove the SHARED cell that
>> was assigned to it.
>> o 6P CLEAR MUST NOT erase autonomous cells.
>> +TW> The whole terminology of shared and non-shared autonomous cells is
>> confusing, as it is used following a paragraph that explains that there are
>> autonomous and managed cells. Please start by explaining, possibly with an
>> example/diagram, what you mean.
>> +
>> 4. Node Behavior at Boot
>> This section details the behavior the node SHOULD follow from the
>> @@ -342,9 +352,10 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> A node implementing MSF MUST implement the Minimal Security Framework
>> for 6TiSCH [I-D.ietf-6tisch-minimal-security]. As a corollary, this
>> - means that a pledge, before being switched on, is pre-configured with
>> + means that a pledge, before being switched on, may be pre-configured with
>> the Pre-Shared Key (PSK) for joining, as well as any other
>> configuration detailed in [I-D.ietf-6tisch-minimal-security].
>> + This is not needed if the node implements a security solution not based on
>> PSKs, such as [draft-ietf-6tisch-dtsecurity-zerotouch-join].
>> 4.2. Step 1 - Choosing Frequency
>> @@ -377,14 +388,15 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> The decision of which neighbor to use as a JP is implementation-
>> specific, and discussed in [I-D.ietf-6tisch-minimal-security].
>> -4.4. Step 3 - Setting up Autonomous Cells during Join Process
>> +4.4. Step 3 - Setting up Autonomous Cells during the Join Process
>> - After selected the JP, nodes MUST set up their autonomous SHARED
>> - cells, as described in Section 3. A Join Request is sent then by
>> - pledge to its JP. The JP forwards the request/response between the
>> - JRC and the JP, possibly over multiple hops. When JP received the
>> - Join Response from JRC, it sends a Join Response to the pledge, where
>> - the pledge learns the keying material used in the network, as well as
>> + After selected a JP, a node MUST set up autonomous SHARED
>> + cells to that JP, as described in Section 3. A Join Request is then sent by
>> the
>> + pledge to its JP. The JP forwards the Join Request to the JRC, possibly over
>> multiple hops.
>> + Similarly, the JRC sends the Join Response to the JP, possibly over multiple
>> hops.
>> + When the JP receive the
>> + Join Response from the JRC, it sends that Join Response to the pledge.
>> + The pledge thereby learns the keying material used in the network, as well as
>> other configurations, and becomes a "joined node". The Join Request
>> @@ -394,31 +406,27 @@ Chang, et al. Expires September 12, 2019 [Page 7]
>> Internet-Draft 6TiSCH Minimal Scheduling Function (MSF) March 2019
>> - and Response traffics are happened on the autonomous cells, which are
>> + and Response traffic happens on autonomous cells, which are
>> scheduled as following:
>> - o The Joining Request packet MUST be sent on the autonomous SHARED
>> - cell to the JP by the pledge. A retransmition with backoff
>> - mechanism will be sent later if collision happens.
>> - o The Joining Response packet MUST be sent on the autonomous non-
>> - SHARED cell to the pledge by the JP. A retransmition will be sent
>> - immediately at next autonomous non-SHARED cell if collision
>> - happens.
>> + o The Join Request MUST be sent on the autonomous SHARED
>> + cell the pledge has to the JP. Because it is SHARED, a back-off mechanism
>> kicks in at the plegde when it doesn't receive a link-layer response.
>> + o The Join Response MUST be sent on the autonomous non-
>> + SHARED cell the JP has to be pledge. Because it is non-SHARED, the JP
>> retransmit immediately it case it doesn't receive a link-layer response (i.e.
>> there is no back-off).
>> - After joined, nodes MUST set up their autonomous non-SHARED cell, as
>> - described in Section 3. The root node MUST set up its autonomous
>> - non-SHARED cell when it is configured as root.
>> + After joining, nodes MUST set up their autonomous non-SHARED cell, as
>> + described in Section 3. The root node is consider "joined" as soon as it is
>> configured as root.
>> 4.5. Step 4 - Installing Autonomous Cells for each neighbor in neighbor
>> table
>> Because it has learnt the link-layer keying material used in the
>> - network, the joined node can now decrypt any packets sent by its
>> - neighbors. Once a new neighbor is added to the neighbor table, a new
>> - autonomous SHARED cell MUST be added to that neighbor. The
>> + network, a joined node can decrypt any packets sent by its
>> + neighbors. Once a new neighbor is added a node's neighbor table, the node MUST
>> add
>> + an autonomous SHARED cell to that neighbor. The
>> autonomous SHARED cell MUST be removed if the corresponding neighbor
>> - is removed from the neighbor table. How to decide the neighbors to
>> - keep in neighbor table is implementation-specific.
>> + is removed from the neighbor table. How to decide which neighbors to
>> + remove in the neighbor table is implementation-specific.
>> 4.6. Step 5 - Acquiring a RPL rank
>> @@ -459,6 +467,7 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> managed unicast cells with that neighbor from its own schedule. In
>> addition, it MAY issue a 6P CLEAR to that neighbor (which can fail at
>> the link-layer). The node MAY be removed from the neighbor table.
>> +TW> some context or condition is missing from this last sentence.
>> If so, the autonomous SHARED cell will be removed following the
>> procedure described in Section 3.
>> @@ -472,10 +481,11 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> o it has identified its preferred routing parent
>> o it has one autonomous non-SHARED cell and a set of autonomous
>> SHARED cells to/from its neighbors
>> +TW> split in multiple bullet points for SHARED and non-SHARED
>> o it is periodically sending DIOs, potentially serving as a router
>> for other nodes' traffic
>> o it is periodically sending EBs, potentially serving as a JP for
>> - new joining nodes
>> + new pledges
>> 5. Rules for Adding/Deleting Cells
>> @@ -526,13 +536,16 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> removed by 6P, so that there always exists an autonomous cell between
>> a node and its preferred parent, even if no frames are being
>> exchanged between them. Autonomous cells are used indistinguishably
>> - together with dedicated cells, for broadcast or unicast traffic with
>> +TW> what do you mean by "used indistinguishably"?
>> + together with dedicated cells,
>> +TW> previously, you used the term managed cells but now dedicated. I suggest
>> you use the term managed throughout
>> + for broadcast or unicast traffic with
>> the target neighbor. The procedure to remove autonomous cells is
>> described in Section 3.
>> Adding/removing/relocating cells involves exchanging frames that
>> - contain 6P commands. All 6P frames MUST be sent on the autonomous
>> - cell or managed cell if the node has.
>> + contain 6P commands. All 6P frames MUST be sent on autonomous
>> + or managed cells.
>> The node MUST maintain the following counters for its preferred
>> parent:
>> @@ -551,9 +564,7 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> * The node sends a frame to its preferred parent. The counter
>> increments regardless of whether a link-layer acknowledgment
>> was received or not.
>> - * The node receives a frame from its preferred parent. The
>> - frame MUST be able to decrypt with the key assigned during
>> - joining process.
>> + * The node receives a frame from its preferred parent, and unsecuring of that
>> frame is successful.
>> @@ -570,36 +581,39 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> 1. Both NumCellsElapsed and NumCellsUsed are initialized to 0 when
>> the node boots.
>> - 2. After End State defined in Section 4.9, if there is no managed
>> - unicast cell to the preferred parent, trigger 6P to add a signle
>> + 2. After the End State defined in Section 4.9, if there is no managed
>> + unicast cell to the preferred parent, trigger 6P to add a
>> cell to it.
>> 3. When the value of NumCellsElapsed reaches MAX_NUMCELLS:
>> * If NumCellsUsed > LIM_NUMCELLSUSED_HIGH, trigger 6P to add a
>> - single cell to the preferred parent
>> + cell to the preferred parent
>> * If NumCellsUsed < LIM_NUMCELLSUSED_LOW, trigger 6P to remove a
>> - single cell to the preferred parent
>> + cell to the preferred parent
>> * Reset both NumCellsElapsed and NumCellsUsed to 0 and go to
>> step 2.
>> - To have the counters working, at least one unicast cell need to be
>> + To have the counters working, at least one unicast cell needs to be
>> maintained all the time and never be removed.
>> +TW> OK, so in all cases a node will have 2 cells to its preferred parent: one
>> autonomous, one managed.
>> - The reason why the counter only counts the managed unicast cell, NOT
>> - including the autonomous SHARED cell is to avoid the effects of
>> - collision. If the autonomous SHARED cell is counted as well,
>> + The reason why the counter only counts managed unicast cell (NOT
>> + autonomous SHARED cells) is to avoid the effect of
>> + collisions. If autonomous SHARED cell were counted as well,
>> NumCellsUsed > LIM_NUMCELLSUSED_HIGH could be caused by the collision
>> - on the cell. A 6P add request on the autonomous SHARED cell will
>> + on the cell. A 6P add request on the autonomous SHARED cell would
>> make the collision even worse.
>> Both NumCellsElapsed and NumCellsUsed counters can be used to cell
>> +TW> something missing
>> with cell option TX=1 or RX=1. With the rules defined above, the
>> - cell to add or remove can be transmitting cell or receiving cell
>> + cell to add or remove can be a transmitting or receiving cell
>> according to which type of cell the two counters are used for.
>> +TW> don't understand.
>> - Similar to Join Request and Response, the 6P Request is scheduled to
>> - send on the autonomous SHARED cell to the node's parent. The 6P
>> - Response is scheduled to send back on the autonomous non-SHARED cell
>> + Similar to Join Request and Response messages, 6P Request frames are
>> + sent on the autonomous SHARED cell to the node's parent. The 6P
>> + Response is sent back on the autonomous non-SHARED cell
>> to the node.
>> 5.2. Switching Parent
>> @@ -607,7 +621,7 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> A node implementing MSF SHOULD implement the behavior described in
>> this section.
>> - Part of its normal operation, the RPL routing protocol can have a
>> + As part of its normal operation, the RPL routing protocol can have a
>> node switch preferred parents. The procedure for switching from the
>> old preferred parent to the new preferred parent is:
>> @@ -619,7 +633,7 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> 1. if the new parent is not in the neighbor table, the autonomous
>> - SHARED cell MUST be added as defined in Section 3
>> + SHARED cell MUST be added, as defined in Section 3
>> 2. the node counts the number of managed unicast cell cells it has
>> per slotframe to the old preferred parent
>> 3. the node triggers one or more 6P ADD commands to schedule the
>> @@ -636,6 +650,7 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> Since scheduling is entirely distributed, there is a non-zero
>> probability that two pairs of nearby neighbor nodes schedule a
>> managed unicast cell at the same [slotOffset,channelOffset] location
>> +TW> why "managed unicast"? why not simply "managed"?
>> in the TSCH schedule. In that case, data exchanged by the two pairs
>> may collide on that cell. We call this case a "schedule collision".
>> @@ -817,6 +832,7 @@ Internet-Draft 6TiSCH Minimal Scheduling Function (MSF)
>> March 2019
>> quarantine, drop all frames received from that node.
>> waitretry: Abort the 6P Transaction. Wait for a duration randomly
>> and uniformly chosen in [WAITDURATION_MIN,WAITDURATION_MAX].
>> +TW> these names are a bit obscure. Use WAITRETRYDURATION_MIN and
>> WAITRETRYDURATION_MAX?
>> Retry the same transaction.
>> 13. Schedule Inconsistency Handling
>> @@ -1020,10 +1036,10 @@ Appendix B. Example of Implementation of SAX hash
>> function
>> o c, which is the characters of string s, to be hashed
>> In MSF, the T is replaced by the length slotframe 1. String s is
>> - replaced by the mote EUI64 address. The characters of the string c0,
>> + replaced by the mote's EUI64 address. The characters of the string c0,
>> c1, ..., c7 are the 8 bytes of EUI64 address.
>> - The SAX hash function requires shift operation which is defined as
>> + The SAX hash function requires a shift operation which is defined as
>> follow:
>> o L_shift(v,b), which refers to left shift variable v by b bits

>> _______________________________________________
>> 6tisch mailing list
>> [ mailto:6tisch@ietf.org | 6tisch@ietf.org ]
>> [ https://www.ietf.org/mailman/listinfo/6tisch |
>> https://www.ietf.org/mailman/listinfo/6tisch ]

> --
> Chang Tengfei,
> Pre-Postdoctoral Research Engineer , Inria