Re: [Netconf] Genart last call review of draft-ietf-netconf-nmda-restconf-04

Russ Housley <housley@vigilsec.com> Fri, 29 June 2018 15:36 UTC

Return-Path: <housley@vigilsec.com>
X-Original-To: netconf@ietfa.amsl.com
Delivered-To: netconf@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 56B0812F1A2 for <netconf@ietfa.amsl.com>; Fri, 29 Jun 2018 08:36:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.9
X-Spam-Level:
X-Spam-Status: No, score=-1.9 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001] autolearn=unavailable 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 rx4MAb3siPdW for <netconf@ietfa.amsl.com>; Fri, 29 Jun 2018 08:36:06 -0700 (PDT)
Received: from mail.smeinc.net (mail.smeinc.net [209.135.209.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id D5236126CC7 for <netconf@ietf.org>; Fri, 29 Jun 2018 08:36:05 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mail.smeinc.net (Postfix) with ESMTP id AB638300A3F for <netconf@ietf.org>; Fri, 29 Jun 2018 11:36:03 -0400 (EDT)
X-Virus-Scanned: amavisd-new at mail.smeinc.net
Received: from mail.smeinc.net ([127.0.0.1]) by localhost (mail.smeinc.net [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id 4F40_me_TdZb for <netconf@ietf.org>; Fri, 29 Jun 2018 11:36:01 -0400 (EDT)
Received: from a860b60074bd.home (pool-71-127-50-4.washdc.fios.verizon.net [71.127.50.4]) by mail.smeinc.net (Postfix) with ESMTPSA id 4169230025C; Fri, 29 Jun 2018 11:36:01 -0400 (EDT)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 11.4 \(3445.8.2\))
From: Russ Housley <housley@vigilsec.com>
In-Reply-To: <83694922-1b4d-ba31-6473-a512949cce67@cisco.com>
Date: Fri, 29 Jun 2018 11:36:01 -0400
Cc: IETF Gen-ART <gen-art@ietf.org>, IETF <ietf@ietf.org>, draft-ietf-netconf-nmda-restconf.all@ietf.org, netconf@ietf.org
Content-Transfer-Encoding: quoted-printable
Message-Id: <7526C32F-29CA-4DA9-AAFA-96635384FD8D@vigilsec.com>
References: <153021527663.18602.3527119969520295546@ietfa.amsl.com> <83694922-1b4d-ba31-6473-a512949cce67@cisco.com>
To: Robert Wilton <rwilton@cisco.com>
X-Mailer: Apple Mail (2.3445.8.2)
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/One22IBc-pPfqWkhhwo8E3NaBGk>
Subject: Re: [Netconf] Genart last call review of draft-ietf-netconf-nmda-restconf-04
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.26
Precedence: list
List-Id: Network Configuration WG mailing list <netconf.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netconf>, <mailto:netconf-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netconf/>
List-Post: <mailto:netconf@ietf.org>
List-Help: <mailto:netconf-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netconf>, <mailto:netconf-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 29 Jun 2018 15:36:10 -0000


> On Jun 29, 2018, at 7:01 AM, Robert Wilton <rwilton@cisco.com> wrote:
> 
> Hi Russ,
> 
> Thanks for the review, please see inline ...
> 
> 
> On 28/06/2018 20:47, Russ Housley wrote:
>> Reviewer: Russ Housley
>> Review result: Ready with Nits
>> 
>> I am the assigned Gen-ART reviewer for this draft. The General Area
>> Review Team (Gen-ART) reviews all IETF documents being processed
>> by the IESG for the IETF Chair.  Please treat these comments just
>> like any other last call comments.
>> 
>> For more information, please see the FAQ at
>> <http://wiki.tools.ietf.org/area/gen/trac/wiki/GenArtfaq>.
>> 
>> Document: draft-ietf-netconf-nmda-restconf-04
>> Reviewer: Russ Housley
>> Review Date: 2018-06-28
>> IETF LC End Date: 2018-07-09
>> IESG Telechat date: unknown
>> 
>> Summary: Ready
>> 
>> 
>> Major Concerns:
>> 
>> None.
>> 
>> 
>> Minor Concerns:
>> 
>> The last paragraph of Section 3.1 says:
>> 
>>    If a server implements the example datastore "ds-ephemeral" in the
>>    module "example-ds-ephemeral", it would implement the resource
>>    {+restconf}/ds/example-ds-ephemeral:ds-ephemeral.
>> 
>> It is unclear to me why this datastore is not included in the bullets
>> at the beginning of the section.  Obviously, it is optional to
>> implement, but so are two of the datastores that are included in
>> the list.
> So the difference is that:
>  "operational", "running" and "intended" are all defined by RFC 8342, and we expect these datastores to be actually implemented.
> 
> "ds-ephermeral" is just an example of a new configuration datastore that hasn't yet been defined anywhere yet.  It could for example, be defined by something like I2RS in future to handle dynamic configuration, or perhaps a vendor would define their own dynamic datastore.

Perhaps something like this:

   If a server implements other datastores, such as the example
   datastore "ds-ephemeral" in the module "example-ds-ephemeral",
   the server would implement the resource {+restconf}/ds/example-
   ds-ephemeral:ds-ephemeral.

> 
> 
>> 
>> The last bullet of Section 3.2 says that [RFC8040], Section 3.5.4,
>> paragraph 3 does not apply when interacting with any resource under
>> {+restconf}/ds.  The referenced paragraph says:
>> 
>>    If the target of a GET method is a data node that represents a leaf
>>    or leaf-list that has a default value and the leaf or leaf-list has
>>    not been instantiated yet, the server MUST return the default value
>>    or values that are in use by the server.  In this case, the server
>>    MUST ignore its "basic-mode", described in Section 4.8.9, and return
>>    the default value.
>> 
>> I suspect that this paragraph does not apply because the leaf and
>> leaf-list will always be instantiated.  A sentence to say one way or
>> the other would be useful to the implementer.
> The aim here is to remove the above CLR that is in RFC 8040.
> 
> I.e. for NMDA datastores (including <running>), don't treat the GET method for leaf/leaf-list any differently than the GET method on any other data node, and respect both the clients request of whether default values should be returned, and also the servers properties (as to whether it always returns defaults).

Saying the above in the would help me.

> As you say, this particularly helps for the operational state datastore, which handle default values in a different way. But it also helps with the configuration datastores, since it allows a client to easily determine whether a particular leaf has actually been configured just by querying for it.  With the rule as stated in RFC 8040 you cannot so easily find out, because you would have to make the query on the parent data node instead, and check whether the child data node in question has been included in the response.
> 
> Finally, we felt that it is easier to fix this in NMDA in a backwards compatible way that only applies to the new datastore specific paths, rather than making a breaking change to the behavior of the /data path described in RFC 8040 that could cause inconsistencies between existing implementations.

Backwards compatibility is a good thing.

Russ