Re: [netmod] yang versioning solution complexity and alternative approaches

"Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com> Mon, 24 October 2022 19:24 UTC

Return-Path: <jason.sterne@nokia.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 34137C1524BD for <netmod@ietfa.amsl.com>; Mon, 24 Oct 2022 12:24:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.477
X-Spam-Level:
X-Spam-Status: No, score=-7.477 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.571, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H2=-0.001, SPF_NONE=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 (1024-bit key) header.d=nokia.onmicrosoft.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 61hVHJLhQ5El for <netmod@ietfa.amsl.com>; Mon, 24 Oct 2022 12:24:54 -0700 (PDT)
Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2134.outbound.protection.outlook.com [40.107.243.134]) (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 3FCAFC1524DB for <netmod@ietf.org>; Mon, 24 Oct 2022 12:24:35 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eRD+6IiwCGhWDJuiFJjESv5OUkQd1RB7PfvJf1WYB5cER7v7p4LbyyRUAKJ8+okVe72c6x2+FXPh7Tk0NfULWHtltFDF3eJyVlFMTctGxxrVq1JSRjfXPVmU05mVsXtZzMCUJ67PwXJCntMo7fCFk3Ui6hiI6lG3HQjYraxeiaGQHSXL2mC19zfUlJRKxld9ZkjyrvUC2VadDIbdMMu76EcfX+oHCWF3ve3sbZ8lbBnVeoqVMxs/9tAjFIb59P8mHDUxiqpSA7bta0X1TKuoi+b4j12v//ZBr4Qsjhhv8+FXUHy7PfrYW2b3LxSL34c8sUAf6EzoCSlEFHnXw9Gj2A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=i8cGL8FwqkXZtr8WClv4yGeJpEJ8RNAtHHZTj7bvJA4=; b=ZIOYZivbrTAFuIqqs6ZJPA+FhbTrdW3PQFeR6WBVVLcdD2gKVv4/CV9/YyYPa6sg0Qkh3jxKDV+P8zhkCMcV4nfUcmwZq2ADV/V7wRoyBgzJ8RDvszjEAk1rcqW3hlOS1LULNyDenVpjjGtw1f79xaCimFxAomlEOhauwl5cBqXXU6J93LEWbeo6U57kHfXCnjDVE+/IIDqt5EwMPSCRB4ApmNGLFxGUNQNOAMC1lXG1meg+2Bnph83fE4RczpMt+r0ATLg9htfAoeS+SQr7fsmo1BVgvzW1ZKPLsU1u5UfGHsUEwNHVqCCbAPDodNm0JmtL1XMjJ4MNkGgIbXgPIQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=i8cGL8FwqkXZtr8WClv4yGeJpEJ8RNAtHHZTj7bvJA4=; b=iiWWIiZTY3AQbbGSvsTR8nrswK61HJ54lIfLJoVaeJk4Cgv0pj1PuVFhH8HOW8i3HFgYP67icGwEsyIWpaE6AoF3rXLnJnJYMAT3Q/cwfSnIvqiOupQopxMqEmuQQqWGfIdwgWwNOfaomr/9EBlMF2pCbkbBWgjYFQK5+k5BOc4=
Received: from DM6PR08MB5084.namprd08.prod.outlook.com (2603:10b6:5:41::29) by CY4PR08MB3495.namprd08.prod.outlook.com (2603:10b6:910:77::36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.33; Mon, 24 Oct 2022 19:24:29 +0000
Received: from DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::4044:9a81:c96e:a440]) by DM6PR08MB5084.namprd08.prod.outlook.com ([fe80::4044:9a81:c96e:a440%7]) with mapi id 15.20.5709.015; Mon, 24 Oct 2022 19:24:27 +0000
From: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
To: "Joe Clarke (jclarke)" <jclarke=40cisco.com@dmarc.ietf.org>, Andy Bierman <andy@yumaworks.com>, Jürgen Schönwälder <j.schoenwaelder@jacobs-university.de>, "Rob Wilton (rwilton)" <rwilton@cisco.com>, "netmod@ietf.org" <netmod@ietf.org>
Thread-Topic: [netmod] yang versioning solution complexity and alternative approaches
Thread-Index: AQHYe3syfHMtBM5mUE+yK0kVY9XE1K4ewV6Q
Date: Mon, 24 Oct 2022 19:24:27 +0000
Message-ID: <DM6PR08MB508449FE00F5FAA7297C65819B2E9@DM6PR08MB5084.namprd08.prod.outlook.com>
References: <20220309101609.d33knxlhyq62wejq@anna> <BY5PR11MB41967D79E62D8D08CBEF6128B5A59@BY5PR11MB4196.namprd11.prod.outlook.com> <20220608153802.63h7knp5ezmhfjya@anna> <BY5PR11MB419609600B2ECFE2DD029D4FB5A49@BY5PR11MB4196.namprd11.prod.outlook.com> <20220608170433.7psmk7n2ti5er2kl@anna> <CABCOCHR_1kXyx6fS+EmzqLjwf+ZKSJM6bn2Z4whpiYnt9WcTvA@mail.gmail.com> <BN9PR11MB537175FC8FB53B16F66E1535B8A49@BN9PR11MB5371.namprd11.prod.outlook.com>
In-Reply-To: <BN9PR11MB537175FC8FB53B16F66E1535B8A49@BN9PR11MB5371.namprd11.prod.outlook.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nokia.com;
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: DM6PR08MB5084:EE_|CY4PR08MB3495:EE_
x-ms-office365-filtering-correlation-id: 356bf77c-48da-4984-895f-08dab5f55e0c
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: obbEoKAJiZz2u/87rnuhKP9s9FtbycNUhfpMOC5R//PGFBR0KT+96cJZNNcbqEe4jD68NblMJmRUNm9jQBvj+7V6pZNC6D0HzfnofWKBBt2GzyL6wvESSy+js+WaYqqbBj8x/BfyESIZJu2mN+Y+gO+fU8tp7BmKuQu3CCrz+/svFS3Run2nvnwnGoX9IpNuO0Ab9dZ7Ro4aTRxhY5abwUnJHgwXhoHM4unxEZqpTmyg75YzdGi4rF75L2zvwyoE8HiPL3Xvioost3pu7/qgl7EOywsXAPiH2FWvw7064mBlqcbeHYxKLjJjdvcPvBCLQGJLHeO9jnsu9hCDkWBVCRa2ohDxqEhFTXdTfcR+3PbxDUK9eC56A+qBgSCUK2iqzIeSW4dPsX63ZycodTIYLEbua8MeYrVSe/B20n7QhYjBchQAde7xtfpY801arxNmrSRmL/e2hp3fzGIBJIQ0kQI4zshjoFpyvqFSaaCiDZxUT94ng3+Nn4bwufpCTRKU/W9APnlmOho3VAs5m2BVfFx2dzMulpTS0KdcwdVQgj0PY+Z6u/sgbcVSNZZ8JQP1wmqRd0L5dBOWiyOZOkYKtIm8eCd8IYEQ97+SuQTD4dm3vpVhdgsVmO8wi5IwUz5FA+zNo5o6oycas617GHbI2vWI3dkRx+ILlnbaS9J0kENn65caCYwVZw4BoLijp5vJqTBOE5h8zPE+445Xu3fCG890p68sTfL9DCEanPYlH7tSf1R5ysqumN0gsLG+s+eOXtJ2SUKwKzltPFIM4W7T6oft6kFxlamgbpcGcpZ3W/kTgeL1qrchPdI8+vvB3/l/3QtEz/m4KdLO7mfl2j2fag==
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR08MB5084.namprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(4636009)(366004)(39860400002)(346002)(136003)(376002)(396003)(451199015)(40140700001)(6506007)(186003)(66946007)(66476007)(66446008)(41300700001)(5660300002)(64756008)(8676002)(86362001)(122000001)(38070700005)(33656002)(166002)(26005)(2906002)(38100700002)(52536014)(110136005)(7696005)(82960400001)(66556008)(966005)(478600001)(71200400001)(76116006)(55016003)(8936002)(66574015)(316002)(83380400001)(9686003)(53546011); DIR:OUT; SFP:1102;
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: HZdS7nvPk+SolM02vjqFnW0oc8CcRrAVYsG1ipfMIgStUSaVMn4S4tWlZuW28RmnD5n0wtEN4zpmLz7XTrbG3qm+vyqDdyxgzdIeQYkZtVieDIJl1A5Tq8wSapHyDVbr54mUtVB4xdGhw2tCsKM98GDGlo1tIuXnE3bseyJB5pzKkXSvVo8n71lte4zE9nCmGCG3KiLld++Jvfe7aPO2FJHF7t4gNVYdtQPwPhVdq+4iTJkHcfSpCLW1HX1qKBch4z95chO9XQUd4d70Fk6wr+uB2e9JPw9zhPkR4J/PrUWAlGXsIS4TKdDdOPSKmeomqkzdb09a28G8ARZ3Wcch4UPgI7s1mHPh31gKoKE6hdU42T13eh2d2cj9LlBa4ME2v7IQuHCvvP6BPURYjC6DPMVaDXSo3FqTGFNf6RQW3Zqa1xFcApw7IeDsRw3BSg9Y07A/R1u/QmV/3JKYHNC1zeNA2CKkV6vabvhc2sIKj+0/PZXOYoy9XXRoP1aFANgdmRz1e4BHElrywQ6lgZS50IEDXaqZNspIfE0OYBPATlnTyjctOQpXiGlmxaImVtxPHFM0ONsKZ9BZR1QxBFmVG/XGVe/sX5s4TYy+V+r1UwX/RWMsTtKHVqBYRqdDyPr2oeTQGTEJ5j//N/vr1ptxcmoYxjcmfInCrrgCHbDCTz5ZHGTVWjddL94R2Znyp91XfyKoln1VRXOC1ksYtQilSWq5Rz63cz+EHbSyVtAMYI2S6bRGIUDBV1o3kF+5Egqy0Ca5NbUSlnFLJ6VLaQ9UYjRBqF62EDfu8ag+eRDrzfKNHuLNVPMR2jlb8+E8R/biS83ytB8676dFWhwziBsvavr2U3ku63WE90QUOug05taMwbmOBboPRS04HZb985YFO9UTJ6Ao90ElngpV3M0Lz5SE0oF3W4Q39wBA1w40EGJkrIY/IfCLMLo+u5E/eW8AsfyyjCwBTckiQcGqjTbbwJTWp08v+1IK/oLFKhHKtc4WAOii8EKoyZzNSBKilvLIPLtZkm7Iz2IbPuV9PWLdBR54acvDYG6UuFVv1/6vIzURWSuWQZLR1A9+yw84O0Kd/yLuCeUds7tnqhGJJzFye3DaYX2i3/kHNNyx29L8Sx3FLn4kQy5YzDSNzRS/A7mn95pMNGoOomwfhb2ybt11sme3CND3exXQ+VqOpXpGSld8Tklz6KRmYxhE8jYsN5VMpwkrI+ojLvJ7MdTEygfLSROMfVVVYnVauNkAi2V1HG3zBwMETADQq7JR1NtkxAWYmYmMXTWFOY06LiFxYjFht5DASCfDtIMLTLv8AC21iOLQYFVChcSuYx2hk/avkhuU8VUBtBsinyQ569ixEkEcy0zQiW0pVN4cBBhAs2bZW+wFtHCuLYg2hI6ylvIMeXaiZJPOxhk4ebN/AqeIkgnFf7dOGXIZmlNUJgML46Q2jELbitVDcqp2JxL6FhHrLO6clDrX6X2IlvU+tnbBBs4ooVsfgJR79mZD7JdyB3tNoD/EDDumGEAES4X7KQaNWWloYJ7KcJtkqD2hiLqLlyd0Goj69AlUC5Y8jCi0vmNszvcT2FEkDXIScgKRpi8g3pmO
Content-Type: multipart/alternative; boundary="_000_DM6PR08MB508449FE00F5FAA7297C65819B2E9DM6PR08MB5084namp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: DM6PR08MB5084.namprd08.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 356bf77c-48da-4984-895f-08dab5f55e0c
X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Oct 2022 19:24:27.5685 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: UoqSot6i0ZxnLxY+GsPlr93dSsSZfVm0PDUFqzOOJ0vNYcgera9mSePckRgHaEBOBGfYX30vtmq2PR/A6nblWg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR08MB3495
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/eXYt-SKJ3necZ_T_jUPVKhFPUac>
Subject: Re: [netmod] yang versioning solution complexity and alternative approaches
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 24 Oct 2022 19:24:58 -0000

Hi all,

Just to close part of the loop on this topic:  In addition to the discussions below in this thread and other threads in the WG mailing list, we also had numerous discussions in our weekly calls on the top-level NBC indicator (at the module level) vs the per-node NBC indicators.

In the end, the set of folks on the weekly calls are proposing that:
1) the module level NBC extension is the primary basic mechanism for indicating NBC changes,
2) only the module level extension should be part of the base Module Versioning draft

One of the main reasons for this approach is to keep the base draft (Module Versioning) more simple and more likely to get wider adoption and use, while still meeting the basic requirement of signalling when an NBC change has occurred in a module.

The per-node extensions have been discussed and more clearly defined now. They are in the latest internal working copy of the Schema Comparison draft here (TBD if we move these to their own stand-alone draft):
yang-ver-dt/draft-ietf-netmod-yang-schema-comparision.txt at master · netmod-wg/yang-ver-dt (github.com)<https://github.com/netmod-wg/yang-ver-dt/blob/master/yang-schema-comparison/draft-ietf-netmod-yang-schema-comparision.txt>
In particular please take a look at the following sections:
3.2.  Node compatibility extension statements
7.  Module Versioning Extension YANG Modules (e.g. nbc-change-at)

Rgds,
Jason

From: netmod <netmod-bounces@ietf.org> On Behalf Of Joe Clarke (jclarke)
Sent: Wednesday, June 8, 2022 5:03 PM
To: Andy Bierman <andy@yumaworks.com>; Jürgen Schönwälder <j.schoenwaelder@jacobs-university.de>; Rob Wilton (rwilton) <rwilton@cisco.com>; netmod@ietf.org
Subject: Re: [netmod] yang versioning solution complexity and alternative approaches


On 6/8/22 13:29, Andy Bierman wrote:


On Wed, Jun 8, 2022 at 10:04 AM Jürgen Schönwälder <j.schoenwaelder@jacobs-university.de<mailto:j.schoenwaelder@jacobs-university.de>> wrote:
On Wed, Jun 08, 2022 at 04:40:05PM +0000, Rob Wilton (rwilton) wrote:
> >
> > Rob,
> >
> > discussing details is likely distracting from the main difference in
> > our viewpoints so I will only give a top posting response.
>
> Okay.
>
> I believe that the consensus of the authors on the weekly calls is also that annotations at the "data definition" level are helpful, alongside module and package (i.e., schema level) version numbers.
>
> Hence, my understanding of the main difference is whether non-backwards-compatible changes MUST always be explicitly documented at the data node level (and hence whether that means that data nodes can never be deleted from a YANG module), or whether these annotations are unnecessary, and potentially unhelpfully clutter the YANG module in the cases where tooling can robustly infer whether the change is backwards compatible or not.

For me, its a MUST. If you potentially break things, you have to tell
others. If you choose to violate the YANG 1.1 update rules, you have
to document that. Deleting data nodes (well, data nodes is actually
too limiting but that is likely a detail) is a special case and some
way to document that something was remvoed is indeed needed. I think
it is wrong to use a corner case to design the general case here.


Strongly agree with all of Juergen's concerns.
It is normal engineering practice to identify API changes
in the documentation for a specific API (not at some global level).

I agree that it is normal to reflect API changes.  Typically I see them in release notes.  In my experience, I have seen Java track certain data like "first introduced in" in classes and methods themselves.

There is also precedent for a global, API-level indication of NBC changes, and that is the REST API paradigm of a version component to the URI (e.g., /api/v2/RESOURCE).



The interactions between YANG modules are too complex for a "module-is-NBC"
flag to really help.

The packages work aims to address this interaction using the same labeling at more of a holistic API level.

Joe



IMO only NBC changes are a MUST. BC changes are a MAY.
These changes should not be documented in an extension that MAY be ignored.
The existing description-stmt is mandatory-to-implement for all tools.


Andy


If your YANG module gets cluttered because of NBC changes, perhaps
there is something to be said about the engineering process. To
unclutter a module, you give it a new new and remove the history.  I
do not believe that there is a robust algorithm to infer in the
general case whether a change in NBC or not, so it is pointless to
consider this option.

> Possibly there is also a second difference of opinion as to whether it is appropriate/safe to assume that any changes that are not explicitly marked as being non-backwards-compatible are in fact backwards compatible.  I.e., specifically, is a "backwards-compatible" annotation also required in the cases where a tool cannot safely infer that a change is backwards-compatible.

If NBC markers are a MUST, then everything not marked is a BC
change. In YANG 1.1, everything following the update rules is a BC
change, hence there are no markers. It seems logical to me to keep the
existing assumptions.

> Do you think that accurately represents the difference in opinion
> from your perspective?

There is another one concerning the implementation. If YANG is changed
in such a way that existing deployed tools derive wrong conclusions,
then this is an NBC change to YANG and the YANG version number needs
to be incremented.

/js

--
Jürgen Schönwälder              Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>

_______________________________________________
netmod mailing list
netmod@ietf.org<mailto:netmod@ietf.org>
https://www.ietf.org/mailman/listinfo/netmod