Re: [netconf] Adoption poll for draft-tgraf-netconf-yang-notifications-versioning

Thomas.Graf@swisscom.com Fri, 19 May 2023 11:05 UTC

Return-Path: <Thomas.Graf@swisscom.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 5E694C151066; Fri, 19 May 2023 04:05:43 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.198
X-Spam-Level:
X-Spam-Status: No, score=-4.198 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 7ifAHYQFYdAc; Fri, 19 May 2023 04:05:39 -0700 (PDT)
Received: from mail.swisscom.com (mailout110.swisscom.com [138.188.166.110]) (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 85AFEC14CF1E; Fri, 19 May 2023 04:05:37 -0700 (PDT)
Received: by mail.swisscom.com; Fri, 19 May 2023 13:05:32 +0200
MIME-Version: 1.0
Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg="sha-256"; boundary="----=_Part_741422_204961992.1684494332211"
X-Mailer: Totemo_TrustMail_(Notification)
From: Thomas.Graf@swisscom.com
To: andy@yumaworks.com, jschoenwaelder@constructor.university, ignacio.dominguezmartinez@telefonica.com, mjethanandani@gmail.com, netconf@ietf.org, netconf-chairs@ietf.org
Thread-Topic: [netconf] Adoption poll for draft-tgraf-netconf-yang-notifications-versioning
Thread-Index: AQHZh23IuM+nwy2VMEajSbCUpQutFq9d6McAgAAH4QCAAAX0gIAAD86AgACSwICAAtszYA==
Date: Fri, 19 May 2023 11:05:29 +0000
Message-ID: <1d7ff7ee90cb441f843b460bdb216ff2@swisscom.com>
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>
In-Reply-To: <CABCOCHRmnOw_Tex1ixcyA=bjdHptHVyQ1nN1UKOfyC9nPqdxpQ@mail.gmail.com>
Accept-Language: en-US, de-CH
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_2e1fccfb-80ca-4fe1-a574-1516544edb53_Enabled=true; MSIP_Label_2e1fccfb-80ca-4fe1-a574-1516544edb53_SetDate=2023-05-19T11:05:28Z; MSIP_Label_2e1fccfb-80ca-4fe1-a574-1516544edb53_Method=Standard; MSIP_Label_2e1fccfb-80ca-4fe1-a574-1516544edb53_Name=C2 Internal; MSIP_Label_2e1fccfb-80ca-4fe1-a574-1516544edb53_SiteId=364e5b87-c1c7-420d-9bee-c35d19b557a1; MSIP_Label_2e1fccfb-80ca-4fe1-a574-1516544edb53_ActionId=7bcbaef5-487b-4226-ae92-7fe595ab2936; MSIP_Label_2e1fccfb-80ca-4fe1-a574-1516544edb53_ContentBits=0
x-originating-ip: [138.188.161.184]
X-CFilter-Loop: Reflected
X-Trustmail: processed
Archived-At: <https://mailarchive.ietf.org/arch/msg/netconf/NJ1ijj0RX-5sfx-D0xCJ_Gon0Hg>
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, 19 May 2023 11:05:43 -0000

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?

Looking forward for your feedback and comments.

Best wishes
Thomas

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<mailto: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
...