Re: [Netconf] nmda-restconf operations (was: netconf-binary-encoding comments)
Ladislav Lhotka <lhotka@nic.cz> Wed, 11 July 2018 17:16 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 C6645130E69; Wed, 11 Jul 2018 10:16:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7
X-Spam-Level:
X-Spam-Status: No, score=-7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_HI=-5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nic.cz
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 a_o5ODWNpDDQ; Wed, 11 Jul 2018 10:16:29 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [217.31.204.67]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 74C68130E40; Wed, 11 Jul 2018 10:16:29 -0700 (PDT)
Received: from birdie (unknown [IPv6:2a01:5e0:29:ffff:ffc6:c393:cdb9:8db1]) by mail.nic.cz (Postfix) with ESMTPSA id 2B1CC60502; Wed, 11 Jul 2018 19:16:26 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1531329386; bh=smbRTmrAssIlMr6GOyP14w/+gsk3ju5lX1fjzvISMIc=; h=From:To:Date; b=awoztUtD2v0AyjGaQECy9Yg9Mm+VZtdpCeDMT9kQFZIfEL+8BK1N2Y5G0U+4F9n/7 1YxrrplxdI3/RjmQn7Eytp4u+REuvB9IpdsXtwas8xkGF8IBys53rDNeRWJXgWjiZc mRhwWftDIUfB2cUb/lhPIt0isitEKJD9avlzjFyc=
Message-ID: <17b6cb1c2cd297a11b2dc6d4b54647aa0f4a47b7.camel@nic.cz>
From: Ladislav Lhotka <lhotka@nic.cz>
To: Andy Bierman <andy@yumaworks.com>
Cc: Kent Watsen <kwatsen@juniper.net>, Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de>, "draft-ietf-netconf-nmda-restconf@ietf.org" <draft-ietf-netconf-nmda-restconf@ietf.org>, "netconf@ietf.org" <netconf@ietf.org>, Robert Wilton <rwilton=40cisco.com@dmarc.ietf.org>
Date: Wed, 11 Jul 2018 19:16:25 +0200
In-Reply-To: <CABCOCHS2nmjsZ7nDk9OhbkM5dGTLEWHpngxhWbaUtX2v+x2TLA@mail.gmail.com>
References: <82A8420F-445C-42BD-9A47-DCF62A9864BC@juniper.net> <20180709173041.xkihqyccjcucjslj@anna.jacobs.jacobs-university.de> <13FABA4A-C367-4E27-88FF-3EA48638249F@juniper.net> <87va9mf23z.fsf@nic.cz> <CABCOCHS2nmjsZ7nDk9OhbkM5dGTLEWHpngxhWbaUtX2v+x2TLA@mail.gmail.com>
Organization: CZ.NIC
Content-Type: text/plain; charset="UTF-8"
X-Mailer: Evolution 3.28.3
Mime-Version: 1.0
Content-Transfer-Encoding: 7bit
X-Virus-Scanned: clamav-milter 0.99.2 at mail
X-Virus-Status: Clean
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/TxWoUW2KlvNx861NvfowPdm7pZU>
Subject: Re: [Netconf] nmda-restconf operations (was: netconf-binary-encoding comments)
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: Wed, 11 Jul 2018 17:16:33 -0000
On Wed, 2018-07-11 at 08:40 -0700, Andy Bierman wrote: > > > On Wed, Jul 11, 2018 at 4:22 AM, Ladislav Lhotka <lhotka@nic.cz> wrote: > > Kent Watsen <kwatsen@juniper.net> writes: > > > > >>> This isn't what I meant. To be more specific, I'm wondering if the > > nmda-restconf > > >>> draft would benefit from having a sentence like: > > >>> > > >>> A RESTCONF server supporting NMDA datastores MAY implement the > > >>> "ietf-netconf" [RFC6241] and "ietf-netconf-nmda" [I-D. ietf-netconf- > > nmda- > > >>> netconf] modules to enable the NETCONF operations defined in those > > >>> drafts to appear {+restconf}/operations resource. > > >>> > > >>> Note: I put "MAY" as RESTCONF may someday have a more native way to do > > this. > > >>> > > >> > > >> Well, "ietf-netconf" does not really support NMDA well and this is why > > >> we have "ietf-netconf-nmda". Does not make much sense to point to > > >> "ietf-netconf" in an NMDA document. > > > > > > But we'd still need lock, unlock, commit, commit-confirmed, etc., > > > right? > > > > These would make RESTCONF server stateful, thus violating REST principles. > > My > > draft > > > > https://datatracker.ietf.org/doc/draft-lhotka-netconf-restconf-transactions/ > > > > tries to achieve similar effects in a RESTful way. > > > > > I like the idea of "private candidate" datastores you call "staging". > I would keep the term candidate. The problem with this is that <candidate> in NETCONF has a looser semantics (it can also be shared). > > This idea was discussed during RESTCONF draft development, but > as the client creating a "transaction" resource. I think your draft is on > the right track, and datastores are protocol-independent so NETCONF > can use the same datastores with RPC operations. Yes, it can certainly be improved. I already have some pending updates, but I wanted to keep it simple for start. > > You ignore the problem of concurrent edits, which is why this idea was not > pursued > at the time. What happens when the altered data overlaps across private > candidates? I don't ignore it, the text says that the user's staging datastore has to be atomically merged into <intended>, I just didn't want to specify the procedure. In any case, the result has to be a valid <intended>. But I am open to a discussion. > What are the procedures equivalent to git pull, push, merge? > How are collisions handled? What exactly is a collision? > Not trivial standards issues to solve. I think it can be left open, I even suspect there is no universal solution suitable for all use cases. Our implementation (JetConf) does the following: - each user's edit operation is applied to the staging datastore and also recorded in a journal - at commit, if <intended> hasn't been changed in the mean time, then the staging datastore simply becomes <intended> - otherwise, the edit operations from the journal are applied sequentially on the actual contents of <intended>. (Actually, we are not NMDA-compatible yet and don't have <intended> but it works this way). Lada > > > Lada > > > > > Andy > > > > > > > Maybe it's a moot point, since ietf-netconf-nmda requires that ietf- > > netconf > > > is implemented too, but I thought being explicit would be helpful here. > > > > > > So, adding something like this to nmda-restconf would be good? > > > > > > > > > Kent // contributor > > > > > > _______________________________________________ > > > Netconf mailing list > > > Netconf@ietf.org > > > https://www.ietf.org/mailman/listinfo/netconf > > -- Ladislav Lhotka Head, CZ.NIC Labs PGP Key ID: 0xB8F92B08A9F76C67
- Re: [Netconf] nmda-restconf operations (was: netc… Juergen Schoenwaelder
- Re: [Netconf] nmda-restconf operations (was: netc… Robert Wilton
- Re: [Netconf] nmda-restconf operations (was: netc… Juergen Schoenwaelder
- Re: [Netconf] nmda-restconf operations (was: netc… Kent Watsen
- Re: [Netconf] nmda-restconf operations (was: netc… Juergen Schoenwaelder
- [Netconf] nmda-restconf operations (was: netconf-… Kent Watsen
- Re: [Netconf] nmda-restconf operations (was: netc… Ladislav Lhotka
- Re: [Netconf] nmda-restconf operations (was: netc… Andy Bierman
- Re: [Netconf] nmda-restconf operations (was: netc… Ladislav Lhotka
- Re: [Netconf] nmda-restconf operations (was: netc… Andy Bierman
- Re: [Netconf] nmda-restconf operations (was: netc… Ladislav Lhotka