[6tisch] Early IoT-Dir review of draft-ietf-6tisch-architecture-19

Eliot Lear <lear@cisco.com> Sun, 17 February 2019 10:40 UTC

Return-Path: <lear@cisco.com>
X-Original-To: 6tisch@ietfa.amsl.com
Delivered-To: 6tisch@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id 02AA512867A; Sun, 17 Feb 2019 02:40:24 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.501
X-Spam-Status: No, score=-14.501 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_MED=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-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
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id jcqaaMI_Da9k; Sun, 17 Feb 2019 02:40:20 -0800 (PST)
Received: from aer-iport-2.cisco.com (aer-iport-2.cisco.com []) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 69F2E127AC2; Sun, 17 Feb 2019 02:40:19 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=22516; q=dns/txt; s=iport; t=1550400020; x=1551609620; h=from:mime-version:subject:message-id:date:cc:to; bh=v3AgdYVS/QICfx/B8MXTkDbCRFphD/DMK/L0I1UshYY=; b=k2J9m/Ex3veO7FIR/vV4EGSYK/YYRpm4TOwZPo3jCqC2M0oYVMnxMI2g LDFiKWNM1qcQYpI8VEhexuE5ISS+OHC7Z7gib2PNfQYgmDIUfawZMZmht Bzwg8OIiCpO17osoiDnySgK//gb5qfOuz1rznhhQ07TSGZgSodWuliCoE Q=;
X-Files: signature.asc : 488
X-IronPort-AV: E=Sophos;i="5.58,380,1544486400"; d="asc'?scan'208,217";a="10171496"
Received: from aer-iport-nat.cisco.com (HELO aer-core-3.cisco.com) ([]) by aer-iport-2.cisco.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Feb 2019 10:40:17 +0000
Received: from dhcp-10-61-100-63.cisco.com (dhcp-10-61-100-63.cisco.com []) by aer-core-3.cisco.com (8.15.2/8.15.2) with ESMTPS id x1HAeGRN027880 (version=TLSv1.2 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Sun, 17 Feb 2019 10:40:17 GMT
From: Eliot Lear <lear@cisco.com>
Content-Type: multipart/signed; boundary="Apple-Mail=_3BF01803-DBDA-4750-875B-31A5818688FE"; protocol="application/pgp-signature"; micalg=pgp-sha256
Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\))
Message-Id: <E5F8140B-8AB8-48F2-A12C-42954BF76491@cisco.com>
Date: Sun, 17 Feb 2019 11:40:15 +0100
Cc: "Carlos Pignataro (cpignata)" <cpignata@cisco.com>, CARLOS JESUS BERNARDOS CANO <cjbc@it.uc3m.es>
To: iot-dir <iot-dir@ietf.org>, 6tisch@ietf.org, draft-ietf-6tisch-architecture@ietf.org
X-Mailer: Apple Mail (2.3445.102.3)
X-Outbound-SMTP-Client:, dhcp-10-61-100-63.cisco.com
X-Outbound-Node: aer-core-3.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/6tisch/bfRbDH9QmcY1hOGgx0ZKDDragds>
Subject: [6tisch] Early IoT-Dir review of draft-ietf-6tisch-architecture-19
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: Sun, 17 Feb 2019 10:40:24 -0000

Review type: iotdir - Early review
Requested version for review: Current
Requsted: 2019-02-06
Reviewer: Eliot Lear

Result: On the right track

I propose that this document get another review prior to advancing.

First, the good.

I commend you on using the early review option!  This provides you the opportunity to consider substantial changes prior to garnered consensus, saving you lots of time and energy.

You have much of the content that is necessary to explain the architecture.  In several reads I became confident that much of this will actually work.  Clearly the approach is quite flexible to support a great many deployments.  It seems to me you have identified all the right building blocks.

Major issues

The bad.  It took me several reads over a week to really get it, and I was trying.
This document introduces a great many concepts.  It is not clear to me that they should all be introduced in one document.  As a test, ask yourself this question: what would the reader lose if you did not include Section 4.4.3?  If you are going to introduce all of these concepts, then you need to pay a bit more attention to the organization.  Your hint that you have a problem in this regard is your table of contents: you are spending roughly 12 pages to describe what you label as “High Level Architecture”.  Section 3 needs to be sufficiently succinct that it fits into Section 1.  Otherwise it must be combined into Section 4, which in turn could be broken up into major sections.  I also would have expected something of a mapping between Sections 3 and 4: that is, high level in one, details in the other.  But that’s not really what we get.  Section 3.7 and 3.8 feel as though it really belongs in Section 4.

While there are some illustrations, there are not any examples of how this stuff is intended to function in practice.  I will readily concede that examples are hard to write and get right, but they’re still important, and perhaps nowhere more-so with your AND and OR discussion in Section 4.7.2.  My suggestion is that you seriously consider the validity of any component that you cannot show an example for.  I think visualising schedules in several instances would help, for example.

You have quite a number of groupings and disparate explanations of them.  In this document alone you have cells, slots, slot frames, bundles, tracks, and packets.  These are fundamental to your architecture.  There needs to be a single section that introduces these, and shows how they fit together.  It is not necessary in this introductory session to detail every aspect of these groupings, but simply to show their relationship to one another.  You have a lot of the right diagrams in Sections 3 and 4, but one wants to understand the big picture before delving into the components.

Sections 2.2, 2.3, and 2.4 should be combined and reduced.  Keep in mind that the style of the IETF is to define on first use.  What you want to avoid is the reader having to continuously flip back to the glossary.  People aren’t reading this stuff on paper anymore.  You might think this a minor issue.  However, what you have told me, your dear reader, in Section 2.3 in particular is that I am unlikely to understand this architecture without having a full understanding of a year’s worth of reading, when that’s clearly not the case.

To this end, you should include in your introduction something like Figure 4 that introduces the components.  You might also state some of the operating assumptions of the devices involved, and focus on a few use cases as to how it would be applied (see examples above).
Minor issues
You are referencing BCP 14 but not really using it.  If you are referencing it to explain that you do not mean to be making normative statements, I think it is best to plainly say just that.

In Section 4.6, figures 12, 13, and 14: these diagrams are a bit too abstract. Please add the components and label what is being sent between them.

I realise you probably didn’t originate the term but Join Registrar/Coordinator (JRC) is an odd acronym.  Is this intended to be two architectural components combined into one or just a bit of terminology indecision on the part of the designers ;-)?

In Section 4.2.5, you write:
   In order to ensure that the medium is free of
   contending packets when time comes for a scheduled transmission, a
   window of time is defined around the scheduled transmission where the
   medium must, as much as practcally feasible, be free of contending
It is probably worth stating this in terms of whose responsibility it is to find that quiet frequency (thenode’s, right?).  One question this raises is how much energy the node must consume to do that search, the architectural assumption being that it can do so efficiently.


There are more nits than these, but this is a start.


Layer-2 vs. Layer 3 bundle:

	a Layer-3 bundle pair maps

s/a Layer-3 bundle pair maps/A Layer-3 bundle maps/

	A single element in the TSCH schedule
My suggestion is that you be more explicit: don’t use the word “element”.  Perhaps something like this: “A period of time in the TSCH schedule set aside for data transmission that is identified by…


Does a channelOffset necessarily imply channel hopping?  What happens if the offset remains constant across a row?

Hard cell:
	A scheduled cell which the 6top sublayer cannot relocate
“Cannot” means it is beyond its means to do so.  I think you mean “may not”.
Expand DODAG-> Destination Oriented Directed Acyclic Graph

Section 3.6, 1st para:
	This architecture requires work to standardize the the
s/the the/the/

Section 4.1

First para, s/Root/root/, as used in RFC 6550.

Section 4.2:
   As a result of the process of chunk ownership appropriation, the RPL
   parent has exclusive authority to decide which cell in the
   appropriated chunk can be used by which node in its interference
   domain.  In other words, it is implicitly delegated the right to
   manage the portion of the CDU matrix that is represented by the
   chunk.  The RPL parent may thus orchestrate which transmissions occur
   in any of the cells in the chunk, by allocating cells from the chunk
   to any form of communication (unicast, multicast) in any direction
   between itself and its children.

This twice-redundant.  I can understand reinforcing the point.  My suggestion: drop the last sentence.

Section 4.5.5:

Formatting issues.  If you are quoting text, please source your quote.  Otherwise, do not indent.  Also...
      In one hand, a
Just remove that.
Same para below:
	It results that a frame
s/It results that a frame/It results in a frame/
Section 4.7.2:
This sentence does not parse:
   As it goes, 6TiSCH expects that timeslots corresponding to copies of
   a same packet along a Track are correlated by configuration, and does
   not need to process the sequence numbers.
Who does not need to process sequence #s?  Be specific.
   The semantics of the configuration will enable correlated timeslots
   to be grouped for transmit (and respectively receive) with a 'OR'
   relations, and then a 'AND' relation would be configurable between
s/with a ‘OR’/with an ‘OR’/
s/with a ‘AND’/with an ‘AND’/
   The 'OR' relation
   indicates that if a transmission is acknowledged, then further
   transmissions should not be attempted for timeslots in that group.
s/acknowledged, then further transmissions/acknowledged.  In this case,/