Re: [Netconf] Comments on draft-lhotka-netconf-restconf-transactions-00

Ladislav Lhotka <lhotka@nic.cz> Thu, 12 July 2018 17:32 UTC

Return-Path: <lhotka@nic.cz>
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 B4F59130E42 for <netconf@ietfa.amsl.com>; Thu, 12 Jul 2018 10:32:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, URIBL_BLOCKED=0.001] 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 2WH4g9T2riec for <netconf@ietfa.amsl.com>; Thu, 12 Jul 2018 10:32:23 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id 9027E130E3D for <netconf@ietf.org>; Thu, 12 Jul 2018 10:32:22 -0700 (PDT)
Received: by trail.lhotka.name (Postfix, from userid 109) id E3AC31820CC2; Thu, 12 Jul 2018 19:29:43 +0200 (CEST)
Received: from localhost (unknown [172.29.2.111]) by trail.lhotka.name (Postfix) with ESMTPSA id 0AE3F1820053; Thu, 12 Jul 2018 19:29:42 +0200 (CEST)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Mahesh Jethanandani <mjethanandani@gmail.com>, Robert Wilton <rwilton=40cisco.com@dmarc.ietf.org>
Cc: "netconf@ietf.org" <netconf@ietf.org>
In-Reply-To: <755CE201-4550-487A-B0E9-6F0E6C51F2AE@gmail.com>
References: <b26d88fe-2797-a8f8-a2e3-a5aed2fae6d7@cisco.com> <755CE201-4550-487A-B0E9-6F0E6C51F2AE@gmail.com>
Date: Thu, 12 Jul 2018 19:23:01 +0200
Message-ID: <87pnzsfjwq.fsf@nic.cz>
MIME-Version: 1.0
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/M9RaS91q1xgwzIx4freTameJq24>
Subject: Re: [Netconf] Comments on draft-lhotka-netconf-restconf-transactions-00
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.27
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: Thu, 12 Jul 2018 17:32:25 -0000

Mahesh Jethanandani <mjethanandani@gmail.com> writes:

> WG,
>
> This draft now is on the agenda for the meeting on Monday, afternoon session #I from 13:30-15:30.
>
> Lada, you do have your 15 min.

Thanks a lot, Lada

>
> Mahesh & Kent.
>
>> On Jul 11, 2018, at 9:36 AM, Robert Wilton <rwilton=40cisco.com@dmarc.ietf.org> wrote:
>> 
>> Hi Lada,
>> 
>> I've had a read of this draft, and have provided some comments below.
>> 
>> So, my top level comment is that I don't know whether or not RESTCONF needs this functionality or not.  I've heard some operators state that they think that clients can just construct an "atomic" change, and hence don't have the need for a server side staging area.  Perhaps a good question to ask in Montreal?
>> 
>> The rest of my comments below, apply to the proposed technical solution, and obviously only apply if this is a needed enhancement. :-)
>> 
>> 1) Generally, I definitely prefer the idea of per session staging areas (aka private candidates) described in this draft over a shared lockable candidate datastore.  This follows my belief that loosely coupled concurrent systems are more robust than tightly coupled ones (e.g. with shared locking).
>> 
>> 2) I don't think that this draft needs to mention <intended> at all.  Instead, everywhere you mention <intended> then you should be saying <running>.  I.e. your staging datastores should update <running> on a commit operation, just like a commit of <candidate> updates <running>.  <intended> is always just updated as a side effect of a write to <running>, and as such is a tangential consideration.
>> 
>> 3) Rather than having clients interact via {+restconf}/data, I think that it would be much better to require NMDA and then have clients interact via {+restconf}/ds/ietf-restconf-transactions:staging, as per draft-ietf-netconf-nmda-restconf-04 section 3.1.  The new staging datastore identity should also be defined in your module to inherit from ietf-datastores:datastore identity.  I think that this probably also more closely aligns to restful principals.
>> 
>> 4) So, I think that the <staging> datastore itself only contains the proposed changes (additions, modifications, and deletes) to <running> when they are committed.  I think that clients may also want to see the combined configuration of the current contents of <running> with the delta held in <staging> applied.  This could be exposed either as (i) a new RPC, (ii) as an extra query parameter or (iii) As another read-only datastore.  A new RPC has the disadvantage that it probably wouldn't support all the query parameters, so my instinctive preference would be to one of the other two latter options.
>> 
>> 5) If private candidate datastores are being added to RESTCONF, then should they also be added to NETCONF?  If they are added to both then I think that they should be added in the same way, as much as possible, perhaps both could be updated in a single draft to save repetitive text?  In general, I like (Kent's?) idea of NETCONF WG writing a RFC that describes all the common parts of NETCONF and RESTCONF that the individual protocol docs can then reference rather than writing similar or equivalent text in two places.
>> 
>> But otherwise, I think that it is an interesting idea, and certainly warrants some WG discussion.
>> 
>> Thanks,
>> Rob
>> 
>> _______________________________________________
>> Netconf mailing list
>> Netconf@ietf.org
>> https://www.ietf.org/mailman/listinfo/netconf
>
> Mahesh Jethanandani
> mjethanandani@gmail.com
>

-- 
Ladislav Lhotka
Head, CZ.NIC Labs
PGP Key ID: 0xB8F92B08A9F76C67