Re: [netconf] RESTCONF support in private candidates draft
Andy Bierman <andy@yumaworks.com> Thu, 08 February 2024 22:02 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 CEDAFC14F70A for <netconf@ietfa.amsl.com>; Thu, 8 Feb 2024 14:02:06 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.105
X-Spam-Level:
X-Spam-Status: No, score=-7.105 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mf9wwAfme8iz for <netconf@ietfa.amsl.com>; Thu, 8 Feb 2024 14:02:02 -0800 (PST)
Received: from mail-pf1-x429.google.com (mail-pf1-x429.google.com [IPv6:2607:f8b0:4864:20::429]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C6312C14F5F9 for <netconf@ietf.org>; Thu, 8 Feb 2024 14:02:02 -0800 (PST)
Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-6e065e5f721so234056b3a.3 for <netconf@ietf.org>; Thu, 08 Feb 2024 14:02:02 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks.com; s=google; t=1707429722; x=1708034522; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=zdxVzPjV+y6Y7vRVGG5L0afugEwV7X9yjem4BTsGPs0=; b=OjhzYFjWNk8m41w0cK3+LljNAqFIFuhkR50aqN0u3OeMST5cxUbLvRopdJJy3xU06d oYQr8eY2xGob8ZXJjGuG6F6cKJu5rnFhhEUELfcEpY9ARgzC5vhqNZaubHLzwQB+aI0Y 9WZRxg+cbOKc7GBkBHAEf+pOvAJzer7YG0kVhlpMnYnySscaJfZ7sZCU2W6hBwnpz9Vw u41AMmGGj5NJQcDqywcM5CHjPNAVpg1JawQuZoJSVGoZi06K5A2HC9nXgH+PnDd1G11+ 0+G/NBl2sXX9WlYibhhTb+ntJnTrDUSrtut/a5AdQ2Ga3gSqVUNLOomWmOeDOA+NYaQr V4aA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1707429722; x=1708034522; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=zdxVzPjV+y6Y7vRVGG5L0afugEwV7X9yjem4BTsGPs0=; b=Le+0i4HXbq6m+dUD+/KhQnPl3lVGK72iMi/A71+anKRU4NZ2lnUgP/CcThZcee8YiA 9HqawSJhWmFUK+d2lIIX6QD3528pHvxjpPvwz7L/bcNY4H+lj9SiNPeC2LRYps+puXkF +8Ei3+Oi25sngEWgI5o0bV7eUOkP+NpoF4qU4Vanvvfu3upfjUlIFmkHw3MrbEcHhYaf UX477t13Ws7ur1KrBE6EUS6HPJl5SxxsoLBKGRdqCEqHkK9rAitUTYOCVolZIxaf4AcL LnLiH2Ln+mnUt3iiyg6k8+G0G+taqSIpFAtjq2ryBFepUhKYrcflAvDsg4JHAxNvD8An DVfg==
X-Forwarded-Encrypted: i=1; AJvYcCUtUnAPgrdexgVecDjBOCfUif/i5cxHU/3kZMHbTb8dF96fGuJP9+Y8qq4fh8k7SQA2BZLKUzPNs0kwhf9P6ycb
X-Gm-Message-State: AOJu0YygQTmWGRPEwUsGMZtuB9FX0GftqH2rkObZEtqZb+iLJ9jiNAeu mqSQGuFBk6f3segF/XqY+cWIC06Zs42f3J695qWI9LmcaIFy7CyKDIpgS6ErI5/IomycAAdmZq8 5O6gVVPuzPPS3oc1UHiXJ2vbMrjlY0Afrr5Q6pQ==
X-Google-Smtp-Source: AGHT+IEwOIdoZZlUY0B9Asb2Zb4vHJz5aZ59Uk3b9l9strZJTu13Lx6tzSu65S3v5W/94QVdkmnqtvazObJBDbpei88=
X-Received: by 2002:a05:6a20:da9c:b0:19e:b192:1db2 with SMTP id iy28-20020a056a20da9c00b0019eb1921db2mr996164pzb.30.1707429722153; Thu, 08 Feb 2024 14:02:02 -0800 (PST)
MIME-Version: 1.0
References: <58EBA620-2449-4A0C-8A53-41DB5113D9D5@cisco.com> <CABCOCHTCftFmvK8p1zQBR74Hs5QauakX_LeG8CASxdzxqt+Q0g@mail.gmail.com> <0100018d8aa0bb70-aa305423-1846-4f81-915f-8815f7b9d169-000000@email.amazonses.com>
In-Reply-To: <0100018d8aa0bb70-aa305423-1846-4f81-915f-8815f7b9d169-000000@email.amazonses.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Thu, 08 Feb 2024 14:01:50 -0800
Message-ID: <CABCOCHQy2fVsXu6S9_jxAQj8ZPhDv1nnZjSpOFv98FNnd8TAOQ@mail.gmail.com>
To: Kent Watsen <kent+ietf@watsen.net>
Cc: "Robert Wills (rowills)" <rowills=40cisco.com@dmarc.ietf.org>, "netconf@ietf.org" <netconf@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000011752e0610e5f6e0"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/ecMXjxVuJitdwrzLq760p6E7k-c>
Subject: Re: [netconf] RESTCONF support in private candidates draft
X-BeenThere: netconf@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: NETCONF WG 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, 08 Feb 2024 22:02:06 -0000
On Thu, Feb 8, 2024 at 1:30 PM Kent Watsen <kent+ietf@watsen.net> wrote: > Robert, Andy, et. al., > > > On Feb 6, 2024, at 12:35 PM, Andy Bierman <andy@yumaworks.com> wrote: > > > > On Mon, Feb 5, 2024 at 4:32 AM Robert Wills (rowills) <rowills= > 40cisco.com@dmarc.ietf.org> wrote: > >> Hi Netconf Working Group, >> >> >> >> After James and I presented an update on draft-ietf-netconf-privcand-01 >> at IETF 118, Kent asked about RESTCONF support in the draft, and >> specifically about the lifecycle of a private candidate when using >> RESTCONF. This email is to follow up on that question, and to ask the >> Working Group whether RESTCONF support should be kept in this draft. >> >> Currently, the draft states that >> >> "When a private candidate is used by RESTCONF, it exists only for the >> duration of the RESTCONF request." (draft-ietf-netconf-privcand-01 Section >> 2.3). >> >> Later, the draft expands on this by stating that changes made to a >> private candidate will be committed as part of the same request: >> >> "When the server advertises the :private-candidate capability and the >> client does not explicitly reference a datastore in their request, all >> edits are made to a new private candidate, and the private candidate is >> committed. This is analagous to the behavior of RESTCONF when the >> :candidate capability is specified by the server. >> >> "When the private-candidate datastore is explicitly referenced, edits are >> made to a new private candidate and the private candidate is committed." >> >> (draft-ietf-netconf-privcand-01 Section 4.4.3) >> > It would be better for this draft to define nothing than to define it this > way. > But all is not lost. This is an opportunity to fix it. > > This wording is intended to preserve the high-level goal of private >> candidates, namely allowing multiple clients to make independent >> configuration changes, and to behave similarly to RESTCONF's current >> behavior for the (shared) candidate. (RESTCONF RFC 8040 Section 1.4: "The >> candidate MUST be automatically committed to running immediately after each >> successful edit"). >> > RFC 8040 should’ve just said to use the operations supported by the > various NETCONF’s capabilities under the {+restconf}/operations resource. > > I disagree. RESTCONF does not have sessions. NETCONF :candidate is session-specific. No changes to the existing URI s (e.g. /restconf/data) should be made. > As far as I'm aware, RESTCONF doesn't currently have a mechanism for >> editing a datastore and then committing the changes in a separate request. >> The authors wanted to avoid having to specify such a mechanism, partly >> because neither of us are RESTCONF experts, and partly because it could >> also apply to other datastores (such as the “shared” candidate). >> > As a RESTCONF expert, I will help. > > RFC 8040 only says what happens when certain datastores are supported. > It says nothing about what happens when a datastore called > “private-candidate” is implemented. Thus this draft gets to define that > behavior, and it doesn’t have to match RFC 8040’s “support” for :candidate. > > As long as new mechanisms and URIs are used, this should be OK. IMO RESTCONF does not really need its own way of doing everything, because the /restconf/operations interface is very easy to use. Andy This draft can state: > > - when "“private-candidate” is implemented: > - edits accumulate in the client-specific candidate datastore > - the client-specific candidate datastore can be committed > using {+restconf}/operations/ietf-netconf:commit > - the client-specific candidate datastore can be discarded > using {+restconf}/operations/ietf-netconf:discard-changes > > - if :validate is also implemented: > - the client-specific candidate datastore can be validated > using {+restconf}/operations/ietf-netconf:validate > > - if :confirmed-commit is also implemented: > - the {+restconf}/operations/ietf-netconf:commit operation > can take the “confirmed” attribute > - the commit can be canceled using > {+restconf}/operations/ietf-netconf:cancel-commit > > Note: I am not trying at all to introduce to RESTCONF an equivalency to > NETCONF’s <target> attribute. I’m perfectly okay with the following > auto-selection: > > if :running implemented: > - RC-edits go to <running> and are auto-committed > - this is from RFC 8040 and is fine (matches :writable-running behavior) > > else if :candidate is implemented: > - RC-edits go to <candidate> and are auto-committed > - this is from RFC 8040 and is not good (explained above) > - but let’s hope that :candidate becomes a thing of the > past in an NBC-update to RESTCONF > > else if :private-candidate is implemented: > - see behavior described above. > - but, to work, this draft needs to say that neither > :running nor :candidate can be implemented… > - this would be goodness > > If more work is needed on the RESTCONF support for the private candidate >> datastore, I think it would be better to remove RESTCONF from this draft >> and address it in a separate draft later, with an author who's a RESTCONF >> expert. >> > A common strategy is to have one “place” where protocol-independent > behavior is defined, and then a “place” for each protocol, where > protocol-specific syntax is defined. The only question is if the *places* > are sections in a draft, or separate drafts (e.g., in the list-pagination > work). > > IMO, if you want to isolate RESTCONF, then NETCONF should be also be > isolated (i.e.: there would be 3 drafts). Good reasons for doing this are > 1) because each is a heavy topic, perhaps too big for all be in one draft) > and 2) because independent documents make for better references. > > Thoughts and comments are very welcome. >> > Thank you for sending out this message. > > > From Andy: > > A candidate datastore that can only accept one edit and then automatically > commit is not useful. > > > I agree that it would not be useful. > It was also not useful when RFC 8040 defined it. > > > Also from Andy: > > I agree RESTCONF should be removed from this draft. > > > This is too important to not support in RESTCONF (and CORECONF, I assume). > > > Kent // contributor > > > >
- [netconf] RESTCONF support in private candidates … Robert Wills (rowills)
- Re: [netconf] RESTCONF support in private candida… Andy Bierman
- Re: [netconf] RESTCONF support in private candida… Kent Watsen
- Re: [netconf] RESTCONF support in private candida… Andy Bierman
- Re: [netconf] RESTCONF support in private candida… Kent Watsen
- Re: [netconf] RESTCONF support in private candida… Andy Bierman
- Re: [netconf] RESTCONF support in private candida… Robert Wills (rowills)
- Re: [netconf] RESTCONF support in private candida… Kent Watsen
- Re: [netconf] RESTCONF support in private candida… Carsten Bormann
- Re: [netconf] RESTCONF support in private candida… Andy Bierman
- Re: [netconf] RESTCONF support in private candida… James Cumming (Nokia)
- Re: [netconf] RESTCONF support in private candida… Kent Watsen