Re: [Netconf] nmda-restconf operations (was: netconf-binary-encoding comments)
Andy Bierman <andy@yumaworks.com> Thu, 12 July 2018 14:43 UTC
Return-Path: <andy@yumaworks.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 3800212D949 for <netconf@ietfa.amsl.com>; Thu, 12 Jul 2018 07:43:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.909
X-Spam-Level:
X-Spam-Status: No, score=-1.909 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001, T_DKIMWL_WL_MED=-0.01, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-com.20150623.gappssmtp.com
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 bJesYfNz9zqc for <netconf@ietfa.amsl.com>; Thu, 12 Jul 2018 07:43:54 -0700 (PDT)
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com [IPv6:2a00:1450:4864:20::22e]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 64CC9130E3E for <netconf@ietf.org>; Thu, 12 Jul 2018 07:43:51 -0700 (PDT)
Received: by mail-lj1-x22e.google.com with SMTP id v9-v6so11865897ljk.4 for <netconf@ietf.org>; Thu, 12 Jul 2018 07:43:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=t9I3XjTMo+Hb0ISUtvpOfsYvhwf+5QRpXcaPtaLmZKE=; b=KpWupNIbSyrfk2/DZo3sYgKlpGUFwWBRiWOSBjGQuu2gwndSi3sVSs5Va91X83dA05 O80kaReDGu6CvrMkM0+ERoeu/MhcYuzf1G7WD7y/rbfh8IT2qHR0kC2pxnYpYHSpXwe8 WlfAreEx8u4EEwapty6OTGl4pLD65j+h6Cssyg2YuByTbEqTOIOgEOg0bmYRsqqf1I1e +/z8sp1PgjtMv3W+c4s3OO20MxjGSoTwoAqCu1kbNF6r31n/lC43ZeqMIwzhK9M20LWT 2tVdEJmP2fb1rYs+pWzubj5wbNx0o6Ev7b1igdQ2f7LpOOfBHWASSR665FPpILrv1P37 Tz3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=t9I3XjTMo+Hb0ISUtvpOfsYvhwf+5QRpXcaPtaLmZKE=; b=hZuZOE0paGrOhPoqFakR5vrNLy8lbI0lN3XBQT30odyKYX7mC9tdJJM56Lc7peJarT /eitoB/NLdb+82Tykdj0+THkrq1mT2+cN4Vqmj4Wf6QJ34vPsOMzompjPIflxb+1x3/8 /ol0f+5CB/S0PiwNwS0n856/BeWywVUFIMbJWRbwi0ej4a/dKppu/hP2/4c4vYn99BKC yWQnucuHnOMtMsk/GeuNqJ+k/dmW9b8mpHl/bOThGHHNBUYywzdf2ySG1PxHntqGSeSD yiOFLQedzQbe8Wgo4Z6a4sHqPDvERRNME1ZM+P/VIYM+Iv+cLymO/FMLvx1RZmjfLCbv wTIA==
X-Gm-Message-State: AOUpUlEgRh4iA7p0ixsHGJq3TpJh25xfXUVZrnGm04Aw1ggRXCc90kMt afI1hRiHIQnj5DhBGd94nTxzlKH+XRBQ7If8ihOFlg==
X-Google-Smtp-Source: AAOMgpeO1CGkrblsnEwZEwfyyDxfVPr2V8bQgQuMlQXzLUvVpgr3NkPyKoVgkUwfiADvp+ijUY4JfSVxEexf3GI2bak=
X-Received: by 2002:a2e:8950:: with SMTP id b16-v6mr806768ljk.111.1531406629400; Thu, 12 Jul 2018 07:43:49 -0700 (PDT)
MIME-Version: 1.0
Received: by 2002:a19:aa46:0:0:0:0:0 with HTTP; Thu, 12 Jul 2018 07:43:48 -0700 (PDT)
In-Reply-To: <17b6cb1c2cd297a11b2dc6d4b54647aa0f4a47b7.camel@nic.cz>
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> <17b6cb1c2cd297a11b2dc6d4b54647aa0f4a47b7.camel@nic.cz>
From: Andy Bierman <andy@yumaworks.com>
Date: Thu, 12 Jul 2018 07:43:48 -0700
Message-ID: <CABCOCHR-0CNzUjHXDfqbO7XbOMejjyr+B8m5H1vmv5MWi8Ny=g@mail.gmail.com>
To: Ladislav Lhotka <lhotka@nic.cz>
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>
Content-Type: multipart/alternative; boundary="00000000000027099c0570ce6447"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/jmCL3YnFUyvhBbdfEdu3v7EtEJ8>
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: Thu, 12 Jul 2018 14:43:57 -0000
On Wed, Jul 11, 2018 at 10:16 AM, Ladislav Lhotka <lhotka@nic.cz> wrote: > 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. > Leaving it as an implementation detail is the IETF's way of ignoring problems. > > > 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>. > > This is "last one wins". You will find this sort of works for create and merge but no so much for replace and delete. > (Actually, we are not NMDA-compatible yet and don't have <intended> but it > works > this way). > > Lada > Andy > > > > > > 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