Re: [6tisch] Comments on draft-ietf-6tisch-msf-02 - Re: draft-ietf-6tisch-msf-02.txt is published

Tengfei Chang <tengfei.chang@gmail.com> Mon, 18 March 2019 18:22 UTC

Return-Path: <tengfei.chang@gmail.com>
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 23B1D1271FF for <6tisch@ietfa.amsl.com>; Mon, 18 Mar 2019 11:22:59 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level:
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 JZX3imQcskgH for <6tisch@ietfa.amsl.com>; Mon, 18 Mar 2019 11:22:55 -0700 (PDT)
Received: from mail-pg1-x52c.google.com (mail-pg1-x52c.google.com [IPv6:2607:f8b0:4864:20::52c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 786561200D8 for <6tisch@ietf.org>; Mon, 18 Mar 2019 11:22:55 -0700 (PDT)
Received: by mail-pg1-x52c.google.com with SMTP id u9so11953927pgo.7 for <6tisch@ietf.org>; Mon, 18 Mar 2019 11:22:55 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=rK6yzQfcfuqeP8Yu91LkB3GGN2Wp+VqeNMXsOmxcUDI=; b=G+XjVUXWrgbzyhhrFKQ4jXYgkhNr39Vo2EIY8oXZeD9MrxLBm9mvEc4RbzhaWIrEba cNjfulWPD/HHSnqZo4Xhdo5OFZcViPCgGvIEG4gVi/nmCMMylh7wjESZ4+lT5s/IbPq8 /tfSUDVen2WjqDCSwkVWLmfqVXSdrtKY8I0yl9mVyZEePXAyRmG+MziGXWkRuSLsiZ0k AAIRX9/Cj30fehgu5F8tdLYYYZZQSOHGzW8yyohVwG19JI1vc4OFKQ99JJu7xKdgN26J PBIvk6sGLhVJj4O+7Y9kYPuu7iiwIPixtvqjaz49dDpor/NiLae0Nj4IeWR0nktRLJ0l N+sQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=rK6yzQfcfuqeP8Yu91LkB3GGN2Wp+VqeNMXsOmxcUDI=; b=FK+x/aqMnCM1U/qmTR1IJzOctSEWOryKfGbjwAfUNNuABUjzl5lHag07E3e1kfo0p6 dhapjHryQKLpMMELbeCeYy6H77pbPv3UfuZyuOmtXo1rEqYdQiqYoKM3CjUIy849yA1A avTgSoRwtCOLKjHgYgWoWb8UIjwEh9vrWkhKsiLKLWgBg9ltH92Z6psziQYb/BKZMtfq EbU5RlWyTipj5HokfbRH5QnX70Q9/Rmc0Bu0CT1pM4O8xe498nDOMDSxGAi1jwF2h09y EDjBjsUoXKdmmv1Ao812YxlRCF1HMTSOpk7D4sZjWD5n+14mNZdRUMji9TemZXC4zvgC ydBA==
X-Gm-Message-State: APjAAAV42HhQiimfUn0eStYLkoi/Nlamvv2V46NGrWu/1vvN9ObYw+Ug eRkbqmLK7xtRjxtswlqLDgldKJQlGyeiqukWUdo=
X-Google-Smtp-Source: APXvYqw1b8xi25A1RBu4r3p3wWwvbGpJj79XQyy41/RO0XD96EU089JzOb9zv9uF7I2r+fNkQcScEb0n+nZA+KjoT+k=
X-Received: by 2002:a62:1d8c:: with SMTP id d134mr20354304pfd.185.1552933374868; Mon, 18 Mar 2019 11:22:54 -0700 (PDT)
MIME-Version: 1.0
References: <CAAdgstS-O33+0yVH4Aahknope74GeVZpyqwzp=f-P7QRcGctbw@mail.gmail.com> <c1fed393-6355-1ed8-0611-86719aab8dd0@inria.fr>
In-Reply-To: <c1fed393-6355-1ed8-0611-86719aab8dd0@inria.fr>
From: Tengfei Chang <tengfei.chang@gmail.com>
Date: Mon, 18 Mar 2019 19:22:43 +0100
Message-ID: <CAAdgstQggMW7i5We81YNm0M+NaJ=s2v0ZNZVagzU9+ppYr_Avg@mail.gmail.com>
To: Yasuyuki Tanaka <yasuyuki.tanaka@inria.fr>
Cc: 6tisch@ietf.org
Content-Type: multipart/alternative; boundary="0000000000002b3fa90584627a5b"
Archived-At: <https://mailarchive.ietf.org/arch/msg/6tisch/1o7LKMUmg2w9uqBUaTG7wJdh0DE>
Subject: Re: [6tisch] Comments on draft-ietf-6tisch-msf-02 - Re: draft-ietf-6tisch-msf-02.txt 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: Mon, 18 Mar 2019 18:23:00 -0000

Thanks a lot Yatch, for the comments!

I will answer your comments inline.

On Mon, Mar 18, 2019 at 3:50 PM Yasuyuki Tanaka <yasuyuki.tanaka@inria.fr>
wrote:

> Hi,
>
> Thank you, Tengfei and the other authors, for updating the draft!
>
> I'm sharing my comments on the latest version.
>
>     https://tools.ietf.org/html/draft-ietf-6tisch-msf-02
>
> [Security Consideration on autonomous SHARED cell allocation]
>
> > 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.
>
> As per the second sentence in this section, a JP MUST allocate an
> autonomous SHARED cell to a pledge during its secure joining process.
>

For Step 4, the node already securely joined the network.
The neighbor referred to the neighbor who has already joined the network.
There is no action for pledge at this step.


>
> Tengfei's email says no action required on the JP side, but the JP
> need to have a neighbor table entry (neighbor cache entry) for the JP
> in order to send back a join response, doesn't it? I may miss
> something.
>

For security issue, the address of pledge will not be recorded in neighbor
table.
The JP will get the nexthop address from the layer 3 source address, hence
send back the join response.
I don't know whether there is a specification for how the neighbor table
should be managed.
If no, I think PERSONALLY it's better not keeping the address from pledge
in neighbor table.

>
> tengfei> [Resolved. During join process, only pledge required to
> tengfei> install autonomous SHARED cell to JP, no action required from
> tengfei> JP side.]
>
> If this is the case, I would propose to add some note in Security
> Considerations section where we mention risks of this kind allocation,
> and may suggest a mitigation technique such as "on-demand allocation".
>

There is no risks on cell allocation, right?
I assume the allocation here you are saying is about the neighbor table
entry allocation?


>
> Basically this is the same comment as the first one in the following
> email:
>
>
> https://mailarchive.ietf.org/arch/msg/6tisch/9jcaTddi6vLO5zHqTDNk6yqrNao
>
>
> [Join request packets can still increment NumCellUsed?]
>
> tengfei> non-trusted packet shouldn't be accounted for for adapting
> tengfei> traffic
> tengfei> ====================
> tengfei> Mention that the untrusted packet (e.g. join
> tengfei> request/response) shouldn't be counted for adapting the
> tengfei> traffic.  Issues link:
> tengfei> https://github.com/twatteyne/draft-ietf-6tisch-msf/issues/15
> tengfei>
> tengfei>     [Resolved. clarified in adapting traffic section.]
>
> I think this issue hasn't been resolved yet by the latest draft. I
> expect text describing how to handle packets having code point AF42 or
> AF43.
>

Yes, I was just thinking the join request/response between JP and pledge
since they are only sent on autonomous cell which won't effect the traffic
adaptation.
But it does between JP and JRC. I will state that. But I have a question
maybe something I haven't followed before, how the node who already joined
the network knowing the packet it forwarded is a join request/response?


>
>
> https://tools.ietf.org/html/draft-ietf-6tisch-minimal-security-09#section-6.1
>
>
> [EB / DIO transmission rules]
>
> I would propose to remove the third and fourth paragraphs mainly for
> these two reasons:
>
> - This is an implementation-specific optimization
> - This is irrevalnt to the scheduling function itself
>
> > 2.  Interface to the Minimal 6TiSCH Configuration
> >
> > (snip)
> >
> >    Because the minimal cell is SHARED, the back-off algorithm defined in
> >    [IEEE802154-2015] is used to resolve collisions. To ensure there is
> >    enough bandwidth available on the minimal cell, a node implementing
> >    MSF SHOULD enforce the following rules for broadcast frames:
> >
> >    1.  send EBs on a portion of the minimal cells not exceeding
> >        1/(3(N+1)), where N is the number of neighbors of the node.
> >    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
> >        layer broadcast packets.
> >
> >    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
> >    EBs, MUST not exceed 1/(3(N+1)).
>
> Here is Xavi's comment on this:
>
> xavi> here we place a SHOULD and not a MUST. We want to make sure the
> xavi> network works as if there is over-use of the minimal cell
> xavi> collapses. We think this should be said here so an adopter is
> xavi> aware of the limitations and implements a working measure.


>
> https://mailarchive.ietf.org/arch/msg/6tisch/3SrQj7LXzfFZUSEYasWcwGSrFRM
>
> I'd like to hear what others think :-)
>

I am with Xavi for this comment. would like to hear more comments as
well!


>
> Aside from that, it's unclear how to implement "Trickle timer with
> rate-limiting", and having such a modification to Trickle is
> discouraged by RFC6206:
>
>     https://tools.ietf.org/html/rfc6206#section-6.7
>
>
So just using a regular trickle timer algorithm? I agree with that.


>
> [SAX Configuration]
>
> How can a mote know what values should be used for l_bit and r_bit? Do
> we assume they are configured offline? Or they can be advertised in
> EBs?
>

This is a pre-configured (offline) for interoperability purpose only.


>
> > Appendix B.  Example of Implementation of SAX hash function
> >
> > (snip)
> >
> >    For interoperability purpose, the values of h0, l_bit and r_bit in
> >    Step 1 and 2 are configured as:
> >
> >    o  h0 = 0
> >    o  l_bit = 0
> >    o  r_bit = 1
> >
> >    The appropriate values of l_bit and r_bit could vary depending on the
> >    the set of motes' EUI64 address.  How to find those values is out of
> >    the scope of this specification.
>
> Additionally, it'd be nice to have test vectors of the SAX computation
> with the set of parameters (h0=0, l_bit=0, r_bit=1) for
> interoperability.
>

Yep, I could add it in next version. Thanks for the comments!


>
> [Autonomous Cell]
>
> We need a clearer description on the two types of the autonomous cell:
>
> > 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
> >    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
> >       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
> >       for this cell are TX=1, RX=1, SHARED=1.
>
> - put the labels of "autonomous non-SHARED cell" and "autonomous
>    SHARED cell" to the itemization: the first one is "autonomous
>    non-SHARED cell", the second one is "autonomous SHARED cell"
>
> - tell what to set to NodeAddr (neighbor addresses) of these cells; I
>    presume NodeAddr is not set for the autonomous non-SHARED cell, and
>    the MAC address of the neighbor is set for the autonomous SHARED
>    cell
>

I agree with what you said above. I will fix it in next version.


>
> I'd like to have some explanation why we can set SHARED=0 for the
> autonomous non-SHARED cell whose slot offset and channel offset are
> actually shared with its neighbors.
>

What I think of is the SHARED bit feature is a technique we could perform
back-off algorithm among multiple devices.
But not the other way around that if there are multiple devices accessing
the same  medium , then all nodes must use SHARED bit to 1.
With the 6P context, if all nodes are set as SHARED, the 6P response will
be conflicted with other 6P requests. This could easily cause 6P timeout
with a large number of 6P requests. (This is what I experienced during
experiments).

However, I didn't find in 802.15.4-2015 standard specification which saying
I can do that, (by searching shared/shared link) but as well didn't find in
the specification saying I can not. (let me know if you or anyone find it
in case I missed).
For 4th paragraph below Figure 7-54 at page 189 in the specification:

"The shared link is one that uses contention to access the medium."

I understand the sentence as SHARED or NOT is depending on the way how we
use it.


>
>
> [Editorial]
>
> s/time offset/slot offset/
> s/Joining Request/Join Request/
>
> ---
>
> That's all.
>

Thanks so much for the review and comments!


>
> Thanks!
> Yatch
>
> _______________________________________________
> 6tisch mailing list
> 6tisch@ietf.org
> https://www.ietf.org/mailman/listinfo/6tisch
>


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