Re: [netconf] Adoption poll for draft-tgraf-netconf-yang-notifications-versioning
Andy Bierman <andy@yumaworks.com> Fri, 26 May 2023 16:34 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 A4127C151B0A for <netconf@ietfa.amsl.com>; Fri, 26 May 2023 09:34:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.095
X-Spam-Level:
X-Spam-Status: No, score=-2.095 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_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, 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 5fJs0tKtmoE3 for <netconf@ietfa.amsl.com>; Fri, 26 May 2023 09:34:33 -0700 (PDT)
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) (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 6E244C151996 for <netconf@ietf.org>; Fri, 26 May 2023 09:34:33 -0700 (PDT)
Received: by mail-lf1-x130.google.com with SMTP id 2adb3069b0e04-4f00c33c3d6so1056732e87.2 for <netconf@ietf.org>; Fri, 26 May 2023 09:34:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks.com; s=google; t=1685118871; x=1687710871; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=KawX0XgLRzHfPEbf5TBgoPYdw0N243xauUbrRs1KWIY=; b=I+7j1qKJdesSjIKICzbpWubo11ycwLH1NeT8POKJ1AckBYCAllQ1F8XlwPfUceotbB akYGasPaeqzi48tgXDiAR7Y6x3bv6gS1B0T82UHrE65CIiuRCftRgNSxYUYFsuWzGi5J E3bXtwSRHTquZgt/iBAgJGBeEa2tR4pWSrFuzNcXDudGs05GJfUH4B7JX3/FZpq3N6Gp lRrg+X3mRCztKKQW8E8VuLsWCcYoFLejT793FVkaaMD2Bc+7d5Ins4aawT5Odj2R7fCT n9pB8s3eYYyNHfTEaGKvtRtiyo4EJvKP00bk/HE8X1ffO1ph6tUU6yQsTRzifacRhu3z 2h3A==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1685118871; x=1687710871; 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=KawX0XgLRzHfPEbf5TBgoPYdw0N243xauUbrRs1KWIY=; b=kUT911yT64Wd/dqvN3W92oBuAx/H21Ndpz5AVGFiKfOMWfWBjveD5wVis/c+k30UZE r2LfiTFpNi7nbxXomWoUBDcey967rZwYx+EjC6KJggF5cZDkF/LucIjAkyJ+rGERWyMf iF+NZom4UnmnmI+tlhdyjH8OMWg67njvEsyLuxUhyNYcpV1llLFsQ0jnHNmEDyrgwBHH 6cw9otB8VLouJgjRsJn21XaJUpMoTaDku9W084BPCsDVhyT5CjQ7uVwSHUsqiLbvLUTd lo8zKHJy7W4ul7/imVVK/2R84A54UWv+FbhsqxLLQYkFzGWEnfgtN1AbgStzKdCdtain EmBw==
X-Gm-Message-State: AC+VfDx+kS8VkC33y5q0KFiEMDO4Z6LwJjd1Mh1mm+8gvigISVdviD6g I9Y3H9MWJZEBFgbtEpamqnnGGUEEDosgqV8YiwEKdQ==
X-Google-Smtp-Source: ACHHUZ7kUwDao88OKlfL1LimFyn+7cTxQrmRxkicB7UFMWt/pD2SS2stOVeVD4BuxVkIYqBoNiQv5PFR3Ru21xMIURk=
X-Received: by 2002:ac2:5a09:0:b0:4f0:18e2:c0d7 with SMTP id q9-20020ac25a09000000b004f018e2c0d7mr737131lfn.60.1685118870866; Fri, 26 May 2023 09:34:30 -0700 (PDT)
MIME-Version: 1.0
References: <E78B3C0B-B415-4E8C-9080-ADFB69D4464E@gmail.com> <AM8PR06MB776465A8890FA1FF944F7249957E9@AM8PR06MB7764.eurprd06.prod.outlook.com> <fxqbpxqt4uddzynsqu7nrphks4ffdbcet2s4mzgq5kjybc7h5r@34fjvmua6eva> <AM8PR06MB77647944C3C804FB22E38B50957E9@AM8PR06MB7764.eurprd06.prod.outlook.com> <ibonfs57tsr2ymul4wsns5jhpoiofkciz7zw27udzixtt7olrx@zh5p3tjohxoo> <CABCOCHRmnOw_Tex1ixcyA=bjdHptHVyQ1nN1UKOfyC9nPqdxpQ@mail.gmail.com> <1d7ff7ee90cb441f843b460bdb216ff2@swisscom.com> <CABCOCHTJZFxY1YYpagz2wc-q8ki4AKb+B-3GOtJOG=hPkDRATg@mail.gmail.com> <CABCOCHQw13rH1WVrLvt25RWdUcESH_Y1PfaKC8B=jo4Jb52o4g@mail.gmail.com> <aac1c6d8ed664e5fa552e535e29b9cc3@swisscom.com>
In-Reply-To: <aac1c6d8ed664e5fa552e535e29b9cc3@swisscom.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Fri, 26 May 2023 09:34:19 -0700
Message-ID: <CABCOCHQa1tfYZcC6AzXx34VFfCp=9seBVOvzK4Di2oWDj9RykA@mail.gmail.com>
To: Thomas.Graf@swisscom.com
Cc: jschoenwaelder@constructor.university, ignacio.dominguezmartinez@telefonica.com, mjethanandani@gmail.com, netconf@ietf.org, netconf-chairs@ietf.org
Content-Type: multipart/alternative; boundary="000000000000b3e5eb05fc9b4fe8"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/j6ExdzGYsDi2vnr6e0WJnMTc6wE>
Subject: Re: [netconf] Adoption poll for draft-tgraf-netconf-yang-notifications-versioning
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: Fri, 26 May 2023 16:34:37 -0000
On Thu, May 25, 2023 at 11:05 PM <Thomas.Graf@swisscom.com> wrote: > Dear Andy, > > > > Thanks a lot for the comment. Let me answer chronological. > > > > I assume you are referring to section 3 of the document which augments the > xpath/sub-tree filter in the subscription state change notification > messages with the revision and revision-label information. > I cannot find any such augment. I was referring to the augments which modify the RPC operations: // Subscription parameters augment "/sn:establish-subscription/sn:input/sn:target" { description "Augment the establish-subscription RPC from the ietf-subscribed-notifications YANG module with the yang-push-module-version-config grouping."; uses ypm:yang-push-module-version-config; } augment "/sn:modify-subscription/sn:input/sn:target" { description "Augment the modify-subscription RPC from the ietf-subscribed-notifications YANG module with the yang-push-module-version-config grouping."; uses ypm:yang-push-module-version-config; } These augments look incorrect. The 'sn:target' node is a choice, which can only be augmented with a case (not 2 leafs). You probably mean to augment the 'datastore' case in RFC 8641. > > With netconf-capability-change you are referring to RFC 6470 correct? To > my current understanding, and please correct me here, module revision is > not a capability. > The server is required to send this event out if the loaded modules changes. It also send the YANG library events, which are more directly related to a module change. > > With yang-library-change you are referring to RFC 7895 correct? To my > understanding it has been superseded by RFC 8525. According to > https://datatracker.ietf.org/doc/html/rfc8525#appendix-A, > yang-library-update is a replacement for yang-library-change notification. > A yang-library-change notification is sent when a change in YANG library > such as a new module was added or the revision of the module occurred. If a > change occurred, a notification is sent with the content-id to the YANG > receiver. The YANG push receiver then needs to obtain the new information > from the YANG library. > That is correct. A YANG client is expected to use the server YANG library information to determine all module/revision/feature/deviation settings for the server. > > > To my current knowledge, and please correct me if I understood it wrong, > this mechanism does not prevent that the YANG push messages are published > even though the semantics have changed. Nor does it prevent when the > network node is being reloaded into a new software version where a YANG > module revision has changed. It does address the case where during runtime > the YANG module revision changes, however the described workflow is more > complex to implement. Would you agree with my summary? > > > You are saying a dynamic subscription to a datastore will block an operator from making software changes to the device? I would not have expected that. I expected the subscription would be suspended if the revision changed. The server is not expected to manage module revision changes. I am not sure how a client would use your proposed augments The revision-date is really only needed if there is a new module revision with NBC changes. Otherwise, a normal YANG client is expected to handle any BC changes to the read-only data retrieved from the server. It seems fragile to force a specific revision and break if BC changes are introduced. Going back to section 2. You raised the point that a subscription filter is > not limited to 1 module. From the sentence " Only a single selection > filter can be applied to a subscription at a time" in Section 3.6 of RFC > 8641 https://datatracker.ietf.org/doc/html/rfc8641#section-3.6 we > understood it is actually limited to one filter. Otherwise the semantic > reference in the Subscription State Change Notification Messages would be > vague. It would not be clear which filter applies to which subscription id > which is the key in the push-update notification. What I believe, and > please correct me if I misunderstood, you are referring to the case where a > xpath is referencing to more than one YANG module. Correct? If that would > be the case then we are back at the point similar to initial proposal ( > https://datatracker.ietf.org/doc/html/draft-tgraf-netconf-yang-notifications-versioning-00) > where we proposed to add the module name for each revision as well. > No. The 1 filter refers to a subtree or XPath filter. There is no requirement that a filter is only limited to 1 module. <A:top> <B:list1 /> <C:container1 /> <A:top> Does the revision-date refer to module A, B, or C? Xpath "/interfaces" Does the XPath filter refer to oc:interfaces or if:interfaces? (XPath can get really complex -- the expression is not limited to an absolute path). > > > Regarding latest and latest-compatible-semversion from section 2 not > matching YANG model in section 4.1 valid point. Thanks for spotting this. > Noted to be corrected in -04 version. > > > > > https://author-tools.ietf.org/iddiff?url1=https://raw.githubusercontent.com/network-analytics/draft-tgraf-netconf-yang-notifications-versioning/main/draft-tgraf-netconf-yang-notifications-versioning-03.txt&url2=https://raw.githubusercontent.com/network-analytics/draft-tgraf-netconf-yang-notifications-versioning/main/draft-tgraf-netconf-yang-notifications-versioning-04.txt > > > How would server code deployed in 2023 know it wasn't the 'latest' anymore in 2026? The client should decide if the revision is acceptable. > Best wishes > > Thomas > Andy > > > *From:* Andy Bierman <andy@yumaworks.com> > *Sent:* Friday, May 19, 2023 5:25 PM > *To:* Graf Thomas, INI-NET-VNC-HCS <Thomas.Graf@swisscom.com> > *Cc:* jschoenwaelder@constructor.university; > ignacio.dominguezmartinez@telefonica.com; mjethanandani@gmail.com; > netconf@ietf.org; netconf-chairs@ietf.org > *Subject:* Re: [netconf] Adoption poll for > draft-tgraf-netconf-yang-notifications-versioning > > > > > > > > On Fri, May 19, 2023 at 7:42 AM Andy Bierman <andy@yumaworks.com> wrote: > > > > > > On Fri, May 19, 2023 at 4:05 AM <Thomas.Graf@swisscom.com> wrote: > > Dear Andy, Jürgen, Nacho and Frank, > > > > Thanks a lot for the feedback and comments. I understand your concerns > that they are targeting section 2, extending the YANG push subscription > capability to not only subscribing to an xpath but also be capable to > select with revision or revision-label. > > > > In section 1 we introduce the problem statement, here an excerpt: > > > > --- > > This semantic reference is available when the subscription is being > establish as described in Section 3.6 of [RFC8641] and being streamed from > the publisher to receiver with the subscription state change notifications > described in Section 2.7 of [RFC8639] where for each subscription a locally > unique subscription ID described in Section 4.3.2 of [RFC8641] is being > issued and streamed as metadata with the notification message in the YANG > push message header. > > > > The semantics can change between different YANG module revisions. The YANG > module version statement is specified in Section 7.1.2 of [RFC6020] and > states that the newer revision needs to be backward compatible to the > previous revision. Section 3.1 of [I-D.ietf-netmod-yang-module-versioning] > specifies that newer semantic versions introduced in > [I-D.ietf-netmod-yang-semver] MAY not be backward compatible to the > previous version when indicated with non-backwards-compatible keyword. > > --- > > > > When the software of a network node is being upgraded, possibly the YANG > module revisions might change. Thanks to the extension describes in section > 3 of the document, the YANG push receiver is now able to learn through the > subscription state change notification message that the revision or/and > revision-label has changed and through netconf <get-schema> the new YANG > module must be obtained outband to retrieve the new semantics for the > push-update notification message. > > > > So far so good. With this we prevented that the end to end data processing > chain breaks because semantics can be maintained across network node > software upgrades, YANG module changes, in configured subscription as well. > However if the YANG module change involved a non-backward compatible > change, messages are being dropped within the data processing chain. A > network operator might ask, why should we publish YANG push messages from a > network node when they cant be processed further down the data processing > chain? Why shouldn't we give the network engineer the ability to express in > the YANG push subscription that only YANG push messages complying to a > certain revision or revision-label (semantic revision) should be published. > This is what section 2 of the document tries to address. > > > > I understood in the mail thread that it was assumed that the YANG data > store would need to support more than one revision per YANG module. This is > not the case. The point is that when the configured subscription is > established and while the messages are being published, the revision or > revision-label might change. Today we do not have the ability to subscribe > to a specific revision nor to a specific compatible revision-label. This is > what we try to enable in this document. > > > > > > > > > > These are the network operators concerns and needs. From an implementer > point of view, do you believe this makes sense and is implementable? > > > > > > > Good news: you are not trying to undo the 'implement 1 revision' > requirement in RFC 7950. > > Not so good news: There are already 2 events (netconf-capability-change > and yang-library-change) > > to notify the client of the extremely rare module update event. > > > > In the rare event a module is updated, the subscriber gets a 3rd > notification for this change, > > and the data from the module starts to be filtered by the server so the > subscriber is prevented > > from receiving the "unwanted" data. This can be quite complicated to > implement, > > forcing special processing for each subscription. > > > > I am not in favor of changing YANG Push in this way. > > > > > > > > I do not see any clear YANG definition or examples for these augments: > > > > module: ietf-yang-push-revision > > > > augment /sn:establish-subscription/sn:input/sn:target: > > +--rw revision? rev:revision-date-or-label > > +-- revision-label? ysver:version > > augment /sn:modify-subscription/sn:input/sn:target: > > +--rw revision? rev:revision-date-or-label > > +-- revision-label? ysver:version > > augment /sn:subscription-started/sn:target: > > +--ro revision rev:revision-date-or-label > > +-- revision-label? ysver:version > > augment /sn:subscription-modified/sn:target: > > +--ro revision rev:revision-date-or-label > > +-- revision-label? ysver:version > > augment /sn:subscriptions/sn:subscription/sn:target: > > +--ro revision rev:revision-date-or-label > > +--rw revision-label? ysver:version > > > > Since a subscription filter is not limited to 1 module, It is unclear how > > this draft would be implemented. > > > > The augment is not a module-name + revision, just a revision. > > The purpose is unclear. These leafs are added to the > establish-subscription input. > > > > leaf revision { > > type rev:revision-date-or-label; > > description > > "This references the YANG module revision to be sent in the subscription."; > > } > > leaf revision-label { > > type ysver:version; > > description > > "This references the YANG module semversion to be sent in the subscription."; > > } > > > > > > The subscription never specifies a module, so what module name do these > parameters affect? > > > > Sec 2 describes some parameter values that do not exist (latest, > latest-compatible-semversion) > > The YANG module defines a yang-push-revision-supported feature, but there > are no if-feature > > statements that reference it. > > > > Andy > > > > > > > > Looking forward for your feedback and comments. > > > > Best wishes > > Thomas > > > > > > Andy > > > > > > *From:* netconf <netconf-bounces@ietf.org> *On Behalf Of *Andy Bierman > *Sent:* Wednesday, May 17, 2023 7:27 PM > *To:* Jürgen Schönwälder <jschoenwaelder@constructor.university>; IGNACIO > DOMINGUEZ MARTINEZ-CASANUEVA <ignacio.dominguezmartinez@telefonica.com>; > Mahesh Jethanandani <mjethanandani@gmail.com>; netconf <netconf@ietf.org>; > netconf-chairs <netconf-chairs@ietf.org> > *Subject:* Re: [netconf] Adoption poll for > draft-tgraf-netconf-yang-notifications-versioning > > > > > > > > On Wed, May 17, 2023 at 1:42 AM Jürgen Schönwälder < > jschoenwaelder@constructor.university> wrote: > > All of this has been pointed out before and does not come as a > surprise. So we should have a general answer how to handle the > "damage" created by an NBC update of YANG that according to some does > not even require a YANG version number change. > > > > It is more than just a conformance issue. > > It is hard to overstate the importance of RFC 7950 as the 1 well-written > > document needed to learn YANG. It may be OK to distribute the > > YANG data model in lots of ad-hoc specifications, but not the > > data modeling language definition. > > > > People (way outside the IETF) will be expected to learn and use the "new" > YANG correctly, > > and that will be much more difficult without even a name, let alone a > version number. > > What is the new YANG called? "NBC YANG"? > > > > > > Andy > > > > > > .. > /js > > ... > > > >
- [netconf] Adoption poll for draft-tgraf-netconf-y… Mahesh Jethanandani
- Re: [netconf] Adoption poll for draft-tgraf-netco… Jürgen Schönwälder
- Re: [netconf] Adoption poll for draft-tgraf-netco… Diego R. Lopez
- Re: [netconf] Adoption poll for draft-tgraf-netco… Thomas.Graf
- Re: [netconf] Adoption poll for draft-tgraf-netco… Andy Bierman
- Re: [netconf] Adoption poll for draft-tgraf-netco… Zhuoyao LIN
- [netconf] 答复: Adoption poll for draft-tgraf-netco… Fengchong (frank)
- Re: [netconf] Adoption poll for draft-tgraf-netco… IGNACIO DOMINGUEZ MARTINEZ-CASANUEVA
- Re: [netconf] Adoption poll for draft-tgraf-netco… Jürgen Schönwälder
- Re: [netconf] Adoption poll for draft-tgraf-netco… IGNACIO DOMINGUEZ MARTINEZ-CASANUEVA
- Re: [netconf] Adoption poll for draft-tgraf-netco… Jürgen Schönwälder
- Re: [netconf] Adoption poll for draft-tgraf-netco… Andy Bierman
- Re: [netconf] Adoption poll for draft-tgraf-netco… Andy Bierman
- Re: [netconf] Adoption poll for draft-tgraf-netco… Thomas.Graf
- Re: [netconf] Adoption poll for draft-tgraf-netco… Andy Bierman
- Re: [netconf] Adoption poll for draft-tgraf-netco… Andy Bierman
- Re: [netconf] Adoption poll for draft-tgraf-netco… Jürgen Schönwälder
- Re: [netconf] Adoption poll for draft-tgraf-netco… Thomas.Graf
- Re: [netconf] Adoption poll for draft-tgraf-netco… Jürgen Schönwälder
- Re: [netconf] Adoption poll for draft-tgraf-netco… Camilo Cardona
- Re: [netconf] Adoption poll for draft-tgraf-netco… Jürgen Schönwälder
- Re: [netconf] Adoption poll for draft-tgraf-netco… Andy Bierman
- Re: [netconf] Adoption poll for draft-tgraf-netco… Thomas.Graf
- Re: [netconf] Adoption poll for draft-tgraf-netco… Thomas.Graf
- Re: [netconf] Adoption poll for draft-tgraf-netco… Andy Bierman
- Re: [netconf] Adoption poll for draft-tgraf-netco… Thomas.Graf
- Re: [netconf] Adoption poll for draft-tgraf-netco… Rob Wilton (rwilton)
- Re: [netconf] Adoption poll for draft-tgraf-netco… Alex Huang Feng
- Re: [netconf] Adoption poll for draft-tgraf-netco… Jean Quilbeuf
- Re: [netconf] Adoption poll for draft-tgraf-netco… Benoit Claise
- Re: [netconf] Adoption poll for draft-tgraf-netco… Andy Bierman
- Re: [netconf] Adoption poll for draft-tgraf-netco… Voyer, Daniel
- Re: [netconf] Adoption poll for draft-tgraf-netco… N.Leymann
- Re: [netconf] Adoption poll for draft-tgraf-netco… li_zhenqiang@hotmail.com
- Re: [netconf] Adoption poll for draft-tgraf-netco… Thomas.Graf
- Re: [netconf] Adoption poll for draft-tgraf-netco… Mahesh Jethanandani
- Re: [netconf] Adoption poll for draft-tgraf-netco… Thomas.Graf
- Re: [netconf] Adoption poll for draft-tgraf-netco… Mahesh Jethanandani
- Re: [netconf] Adoption poll for draft-tgraf-netco… Thomas.Graf
- Re: [netconf] Adoption poll for draft-tgraf-netco… Mahesh Jethanandani