Re: [Netconf] Review of draft-lhotka-netconf-restconf-transactions-00

Ladislav Lhotka <lhotka@nic.cz> Thu, 28 June 2018 12:09 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 58CD713104E for <netconf@ietfa.amsl.com>; Thu, 28 Jun 2018 05:09:08 -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=ham 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 bFaHFCyxYVpK for <netconf@ietfa.amsl.com>; Thu, 28 Jun 2018 05:09:03 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143]) by ietfa.amsl.com (Postfix) with ESMTP id E540513105D for <netconf@ietf.org>; Thu, 28 Jun 2018 05:09:02 -0700 (PDT)
Received: by trail.lhotka.name (Postfix, from userid 109) id 83BEF1820075; Thu, 28 Jun 2018 14:15:18 +0200 (CEST)
Received: from localhost (unknown [195.113.220.121]) by trail.lhotka.name (Postfix) with ESMTPSA id C8ED11820071; Thu, 28 Jun 2018 14:15:16 +0200 (CEST)
From: Ladislav Lhotka <lhotka@nic.cz>
To: Qin Wu <bill.wu@huawei.com>, "netconf@ietf.org" <netconf@ietf.org>
In-Reply-To: <B8F9A780D330094D99AF023C5877DABA9AEBA43F@nkgeml513-mbx.china.huawei.com>
References: <B8F9A780D330094D99AF023C5877DABA9AEBA43F@nkgeml513-mbx.china.huawei.com>
Date: Thu, 28 Jun 2018 14:09:39 +0200
Message-ID: <87d0wbjenw.fsf@nic.cz>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/MnBl8efLo_xSSWa-BonKyWLBX6U>
Subject: Re: [Netconf] Review of draft-lhotka-netconf-restconf-transactions-00
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: Thu, 28 Jun 2018 12:09:17 -0000

Hi Qin,

please see my responses inline.

Qin Wu <bill.wu@huawei.com> writes:

> Hi, Lada:

> I like this idea in draft-lhotka-netconf-restconf-transactions-00 and
> add transaction support for RESTCONF.  use transactions to support
> robust configuration change involving a number of devices.
>
> I am wondering, how do you write content from client staging 
> datastore into readonly intended datastore? Usually if we want

<intended> is read-only as before, the client cannot directly write
it. 

> to see the content in client staging datastore be part of 
> intended datastore, we should first run commit operation 
> defined in RFC6241, make content in client staging datastore

Exactly, and we have the "rct:commit" operation for this purpose.

> be part of running datastore, Any then after validation

The text also mentions that <intended> can be considered identical to
<running> (NMDA supports this shortcut). We don't use <running>
explicitly though.

> process, the client staging datastore content can be part of intended.

Yes, validation has to be a part of the commit/merge procedure, as NMDA
requires <intended> to be always valid.

> Right?
>
> Second question is do we support rollback operation and allow rollback to some restore checkpoint
> Or roll back to factory default setting?

This may of course be a useful addition in some (but not all)
situations. My aim with this draft was to enable support for
transactions and multi-client access with as little extra complexity as
possible.

Thanks, Lada

>
> -Qin
> -----邮件原件-----
> 发件人: Ladislav Lhotka [mailto:lhotka@nic.cz] 
> 发送时间: 2018年6月28日 16:30
> 收件人: Qin Wu
> 主题: Re: draft-lhotka-netconf-restconf-transactions-00
>
> On Thu, 2018-06-28 at 02:58 +0000, Qin Wu wrote:
>> Hi, Lada:
>> Would you like to provide a few comments on 
>> draft-wu-netconf-restconf-factory-
>> restore-00, chairs want to see some discussion on the list before the meeting.
>> I can help provide review on draft-lhotka-netconf-restconf-transactions-00.
>
> Hi Qin,
>
> this mutual review is a good idea, I will do it.
>
> Thanks, Lada
>
>> 
>> -Qin
>> -----邮件原件-----
>> 发件人: Ladislav Lhotka [mailto:lhotka@nic.cz]
>> 发送时间: 2018年6月27日 18:04
>> 收件人: Qin Wu
>> 主题: Re: draft-lhotka-netconf-restconf-transactions-00
>> 
>> Hi Qin,
>> 
>> sorry I didn't respond sooner, I am currently out of office. Regarding 
>> my coauthoriship, I made no real contribution - just publish it as the 
>> only author.
>> We'll see what's going to happen, one option might be to combine our 
>> drafts later, but it is up to the WG.
>> 
>> Lada
>> 
>>  
>> On Wed, 2018-06-27 at 04:11 +0000, Qin Wu wrote:
>> > Ping your feedback, thanks.
>> > 
>> > -Qin
>> > -----邮件原件-----
>> > 发件人: Qin Wu
>> > 发送时间: 2018年6月26日 9:52
>> > 收件人: 'Ladislav Lhotka'
>> > 主题: RE: draft-lhotka-netconf-restconf-transactions-00
>> > 
>> > Agree with your suggestion, Lada, here is update based on your comments.
>> > I add you as coauthor, let me know if you approve to publish this version.
>> > 
>> > -Qin
>> > -----邮件原件-----
>> > 发件人: Ladislav Lhotka [mailto:lhotka@nic.cz]
>> > 发送时间: 2018年6月25日 22:38
>> > 收件人: Qin Wu
>> > 主题: RE: draft-lhotka-netconf-restconf-transactions-00
>> > 
>> > Hi Qin,
>> > 
>> > I would like to keep it as simple as possible for the initial 
>> > presentation to the working group (which I hope will take place in 
>> > Montreal). If there is enough interest, and perhaps the draft 
>> > becomes a WG item, I am open to discuss additional features.
>> > 
>> > Cheers, Lada
>> > 
>> > Qin Wu <bill.wu@huawei.com> writes:
>> > 
>> > > Lada:
>> > > One more idea is to add capability to support restoring the 
>> > > configuration to any configuration checkpoint.
>> > > e.g., we can roll back the system configuration to a specified 
>> > > checkpoint by user label.
>> > > Or we can roll back the system configuration to a specified 
>> > > checkpoint by checkpoint number.
>> > > 
>> > > -Qin
>> > > -----邮件原件-----
>> > > 发件人: Qin Wu
>> > > 发送时间: 2018年6月21日 15:22
>> > > 收件人: 'Ladislav Lhotka'
>> > > 主题: RE: draft-lhotka-netconf-restconf-transactions-00
>> > > 
>> > > Hi, Lada:
>> > > Sorry for late reply.
>> > > Here is the strawman proposal on factory default setting.
>> > > I come up with two use cases in section 3.2 and section 3.3.
>> > > Let me know if the problem space and solution make sense to you.
>> > > Any interests to cosign if make sense.
>> > > 
>> > > -Qin
>> > > -----邮件原件-----
>> > > 发件人: Ladislav Lhotka [mailto:lhotka@nic.cz]
>> > > 发送时间: 2018年6月18日 18:38
>> > > 收件人: Qin Wu
>> > > 主题: Re: draft-lhotka-netconf-restconf-transactions-00
>> > > 
>> > > On Mon, 2018-06-18 at 09:57 +0000, Qin Wu wrote:
>> > > > -----邮件原件-----
>> > > > 发件人: Ladislav Lhotka [mailto:lhotka@nic.cz]
>> > > > 发送时间: 2018年6月18日 16:01
>> > > > 收件人: Qin Wu
>> > > > 主题: Re: draft-lhotka-netconf-restconf-transactions-00
>> > > > 
>> > > > Hi Qin,
>> > > > 
>> > > > Qin Wu <bill.wu@huawei.com> writes:
>> > > > 
>> > > > > Hi, Lada:
>> > > > > Interesting draft, it looks client staging datastore you 
>> > > > > proposed is a special case of candidate datastore,
>> > > > 
>> > > > Correct, it is basically a non-shared <candidate>.
>> > > > 
>> > > > > I am wondering, how do you write content from client staging 
>> > > > > datastore into readonly intended datastore? Usually if we want 
>> > > > > to see the content in client staging datastore be part of 
>> > > > > intended datastore, we should First run commit operation 
>> > > > > defined in RFC6241, make content in client staging datastore 
>> > > > > be part of running datastore, Any then after validation 
>> > > > > process, the client staging datastore content can be part of intended after validation.
>> > > > 
>> > > > In our implementation (JetConf [*]), we don't have NETCONF 
>> > > > underneath, so we want to make the workflow simple and explicit.
>> > > > 
>> > > > > 
>> > > > > Now you propose commit operation and reset operation specific 
>> > > > > to RESTCONF, I am wondering how do you write data directly 
>> > > > > into intended by merging operation? I am wondering the 
>> > > > > operation you proposed take place from <running> to intended 
>> > > > > or from <candidate> to <intended>
>> > > > 
>> > > > Our implementation does the following:
>> > > > 
>> > > > - edit operations of every user are applied in the staging datastore but
>> > > >   also kept in a journal
>> > > > 
>> > > > - at commit, if <intended> hasn't been modified in the mean time, the
>> > > >   users's staging datastore simply becomes the new <intended>
>> > > > 
>> > > > - if <intended> has been modified, we replay the edit operations from
>> > > >   the journal
>> > > > [Qin]: Thank for clarification, can you explain what the 'journal' is?
>> > > 
>> > > It is a record of all operations performed by the user since the 
>> > > last reset so that they can be replayed later.
>> > > 
>> > > >  
>> > > > > 
>> > > > > Another thought, do you think factory reset operation is needed?
>> > > > > In some case, we may need to make running datdstore and 
>> > > > > startup datastore to return to factory defaults.
>> > > > > Based on RFC6241, we only can use delete-config to return 
>> > > > > startup datastore to factory default, however We can not 
>> > > > > directly use delete-config to return running datastore into 
>> > > > > factory default.
>> > > > > Do you think new operation such as factory reset should be 
>> > > > > defined for this?
>> > > > 
>> > > > Possibly, but I think it is a different problem that may be 
>> > > > relevant for standard RESTCONF, too.
>> > > > 
>> > > > [Qin]: Yes, you are right, are you interested in this problem space?
>> > > > Let me know if there is a value to document a solution for this.
>> > > 
>> > > We currently don't have a use case for this but it can certainly 
>> > > be useful.
>> > > Another related topic is the use of <startup> in RESTCONF.
>> > > 
>> > > Lada
>> > > 
>> > > > 
>> > > > Thanks, Lada
>> > > > 
>> > > > [*] https://pypi.org/project/jetconf/
>> > > > 
>> > > > > Look forward to your reply.
>> > > > > 
>> > > > > -Qin
>> > > > 
>> > > > --
>> > > > Ladislav Lhotka
>> > > > Head, CZ.NIC Labs
>> > > > PGP Key ID: 0xB8F92B08A9F76C67
>> > > 
>> > > --
>> > > Ladislav Lhotka
>> > > Head, CZ.NIC Labs
>> > > PGP Key ID: 0xB8F92B08A9F76C67
>> > 
>> > --
>> > Ladislav Lhotka
>> > Head, CZ.NIC Labs
>> > PGP Key ID: 0xB8F92B08A9F76C67
>> 
>> --
>> Ladislav Lhotka
>> Head, CZ.NIC Labs
>> PGP Key ID: 0xB8F92B08A9F76C67
> --
> Ladislav Lhotka
> Head, CZ.NIC Labs
> PGP Key ID: 0xB8F92B08A9F76C67

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