Re: [homenet] Benoit Claise's Discuss on draft-ietf-homenet-dncp-09: (with DISCUSS and COMMENT)

Markus Stenberg <markus.stenberg@iki.fi> Thu, 17 September 2015 10:51 UTC

Return-Path: <markus.stenberg@iki.fi>
X-Original-To: homenet@ietfa.amsl.com
Delivered-To: homenet@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 719331B2CBA; Thu, 17 Sep 2015 03:51:27 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.121
X-Spam-Level:
X-Spam-Status: No, score=-1.121 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_NEUTRAL=0.779] autolearn=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 2a_bGbMuOyOv; Thu, 17 Sep 2015 03:51:24 -0700 (PDT)
Received: from jenni1.inet.fi (mta-out1.inet.fi [62.71.2.203]) by ietfa.amsl.com (Postfix) with ESMTP id D66881B2CEE; Thu, 17 Sep 2015 03:51:21 -0700 (PDT)
Received: from poro.lan (80.220.64.126) by jenni1.inet.fi (8.5.142.08) (authenticated as stenma-47) id 55F7DE17001B2814; Thu, 17 Sep 2015 13:51:15 +0300
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 8.2 \(2104\))
From: Markus Stenberg <markus.stenberg@iki.fi>
In-Reply-To: <20150917091111.14753.45178.idtracker@ietfa.amsl.com>
Date: Thu, 17 Sep 2015 13:51:13 +0300
Content-Transfer-Encoding: quoted-printable
Message-Id: <A5116A52-2B60-4C99-8B9F-F02A22E8F42A@iki.fi>
References: <20150917091111.14753.45178.idtracker@ietfa.amsl.com>
To: Benoit Claise <bclaise@cisco.com>
X-Mailer: Apple Mail (2.2104)
Archived-At: <http://mailarchive.ietf.org/arch/msg/homenet/j3uYOM4KTIA-dmIRdboayT5A0rY>
Cc: homenet-chairs@ietf.org, Mark Townsley <mark@townsley.net>, victor@jvknet.com, draft-ietf-homenet-dncp.shepherd@ietf.org, The IESG <iesg@ietf.org>, draft-ietf-homenet-dncp@ietf.org, homenet@ietf.org, draft-ietf-homenet-dncp.ad@ietf.org
Subject: Re: [homenet] Benoit Claise's Discuss on draft-ietf-homenet-dncp-09: (with DISCUSS and COMMENT)
X-BeenThere: homenet@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: IETF Homenet WG mailing list <homenet.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/homenet>, <mailto:homenet-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/homenet/>
List-Post: <mailto:homenet@ietf.org>
List-Help: <mailto:homenet-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/homenet>, <mailto:homenet-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 17 Sep 2015 10:51:27 -0000

On 17.9.2015, at 12.11, Benoit Claise <bclaise@cisco.com> wrote:
> ----------------------------------------------------------------------
> DISCUSS:
> ----------------------------------------------------------------------
> 
> Other ADs focused on the protocol specific points. So let me focus on
> something else.
> The applicability section doesn't answer my questions: when to (re-)use
> this protocol?
> Note that the write-up mentioned ANIMA.
> 
> I see the protocol description:
> 
>   DNCP is designed to provide a way for each participating node to
>   publish a set of TLV (Type-Length-Value) tuples, and to provide a
>   shared and common view about the data published by every currently or
>   recently bidirectionally reachable DNCP node in a network.
> 
> I see, under the applicability section, under which conditions to use
> it.
> Basically, suitable to exchange any TLV tuples, infrequently. 

This is the gist of it. Even more frequently is ok, but then you have extra complexity without gaining from it.

_That_ is what you have to determine if you want to use it; do you want to synchronize a small set of TLV tuples, communicating efficiently, across a set of nodes.

> However, this applicability section doesn't tell me when to re-use DNCP
> (or define a profile for it).
> What about the environment: home network versus LAN versus WAN? How big
> can the network be?
> Does the technology matter? 
> Regarding transport, it's basically any transport, unicast or multicast,
> right? (DNCP can be used in networks where only unicast transport is
> available.  While DNCP uses the least amount of bandwidth when multicast
> is utilized)

Guesses are correct, but given it is more of an algorithm than concrete protocol, your questions are hard to respond in a generic way.

> All devices in a DNCP network must be DNCP node?

It is actually definition of DNCP network ; a set of DNCP nodes.

> I have a DNCP network with profile 1, can I use the same DNCP network
> with profile 2?

If the profiles’ transport details match and use a shared IANA TLV space, then yes.

> IANA and enterprise specific TLVs?

I am not sure what you mean by this; ultimately actually used TLVs are matter of (DNCP profile specific) IANA sub-registry, which should reserve the space. While DNCP itself reserves some space for DNCP-specific extensions (so far considered fragmentation, delta synchronization, authentication/confidentiality of multicast traffic using PSKs, and few other things), and leaves most of space open (for e.g. to be used as bits later on), the rest is up to profile.

> UDP is fine as a transport?

There is another DISCUSS on this, I will reply to it there.

> What if I know my topology already (I see later: "may use multicast for
> Trickle-based shared state dissemination and topology discovery") 
> etc.  

You can define a protocol that is solely TCP unicast based, for example, and make it’s definition of peer liveliness depend only on the TCP connections +- knowledge of topology graph changing.

(This assuming you know which nodes need to communicate with each other.)

> Just reading the intro and the applicability, I scratched my head: it's
> so generic, should I even consider it for ANIMA?

Funny, I get the opposite impression reading ANIMA mailing list, as I wonder if it is too generic for DNCP.

E.g. what if someone wants to share a DVD image to upgrade their routers using the protocol? DNCP is _not_ the way. URL + hash of content, or magnet link, perhaps, but not the image.

> A few paragraphs, somewhere in the document, would solve my DISCUSS:
> - this protocol should be used to exchange the following type of data
> ...

See edit of first sentence of introduction in [1]. Still work in progress, but emphasizing that a) set of TLVs published by a node is small, and b) it has hard cap of 64kb.

> - it's envisioned that this generic state synchronization protocol will
> be used in the following environments …
> - potential DNCP-based protocols include …

I do not really see where to stick these or what the exact content would be;

‘anywhere you can use _a_ transport protocol’, ’to synchronize stuff (home automation? configuration? cache synchronization? routing? you name it, this can do it, although not necessarily well, and all have _already been done_ although not necessarily documented in the IETF)’

> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
> 
> - I would agree with Alvaro, when he wrote: "In general, I found the text
> not straight forward or easy to understand." Potentially due to the
> structure.

Structure has been rewritten more than once due to various reviews too. 

> - I hope that a document about manageability considerations (see
> https://tools.ietf.org/html/rfc5706#appendix-A) will follow.

Hm, I see value of having one for particular DNCP-based protocols but not really DNCP itself.

> - As reported by Victor, part of his OPS DIR review:
> Found In Nits:
> 
> (https://tools.ietf.org/idnits?url=https://tools.ietf.org/id/draft-ietf-homenet-dncp-09.txt)
> 
>    - Use of lower case not with SHOULD statement (see Paragraph 2,
>    Section 4.5)

Fixed in [1].

>    - Flagged spacing items (Lines 197, 252, 256 and 260)

In terminology. Fixing if someone tells me how, as I think it is just idnits not understanding the extra spaces between (multi-line) term being explained and it’s description.

> Section 3: Overview 
> 
>    paragraph 2: their addresses may be manually configured or they may
> 
>       be found by some other means defined in a later specification
> 
>    ** This text is not quite clear.  Is it the author’s intention that
>    the reader assume the other means will be part of a specific DNCP
>    profile specification, a revision of the DNCP document or a
>    different type of document.? ***

Addressed in [1]. The text is not actually clear at all, as it should REALLY say that that can be specified in a particular DNCP profile.  Rewrote and gave an example. Is it better?

> Section 4.2: Data Transport 
> 
>    Paragraph 4 / Part “Multicast+Unicast”
> 
>     <old> It is used to send Network State TLVs every now and
> 
>          then, as specified in Section 4.3
> 
>    <suggested> It is used to send Network State TLVs
>    periodically, as specified in Section 4.3
> 
>    <reason>  Avoids using an idiom to express sending frequency
>    in text.

Thanks, fixed. [1]

> Section 8.1 Pre-Shared Kay Trust Method
> 
>    ** Would it be within the DNCP document to discuss how PSKs are
>    stored (as to not be externally accessed) or would it be to the
>    profile to defined that level? ***

That is entirely implementation matter; I do not think any other protocols that employ DTLS or TLS documents specify how that is done either. 

(Given counter-example, I do not mind copying text.)

Cheers,

-Markus

[1] https://github.com/fingon/ietf-drafts/commit/6ba8c1b73e49d64667ae1dabc1113ce5c6673e34 - to be published as dncp-10 at some point once we have DISCUSSes addressed.