So basically, deprecating a leaf and adding a new leaf/container that replaces 
the deprecated leaf will always be NBC.

Still the guidance in B.2 has the least impact and is easy to explain, and has 
the added benefit that the tree doesn't change and existing (old schema) 
instance data will work with the new schema.

-scott.

From: CCAMP <ccamp-boun...@ietf.org> On Behalf Of Sterne, Jason (Nokia - 
CA/Ottawa)
Sent: Thursday, June 2, 2022 5:03 PM
To: Italo Busi <Italo.Busi=40huawei....@dmarc.ietf.org>; netmod@ietf.org
Cc: 'cc...@ietf.org' <cc...@ietf.org>
Subject: Re: [CCAMP] Another comment/question on appendix B.2 of 
draft-ietf-netmod-yang-module-versioning-05

Hi Italo,

One problem I see with this change is that in the old data model, the leaf 
"mode" had to exist in the instance data. But with the new model, it is valid 
to have instance data with no "mode" leaf at all. That instance data would not 
validate against the old YANG model.

I do see your point that any valid data that could be generated using the old 
model is still accepted in the new model. But for the YANG versioning work 
we've been pretty hesitant to diverge far from RFC 7950 for the list of what is 
NBC vs BC (mainly just cleanup of the status deprecated & obsolete), and 
clarifying

There are other possible cases that might meet a definition of "any old config 
would be accepted by the new model" but we still don't label them as BC in our 
YANG versioning work, e.g.:
- moving a pre-existing leaf into a new choice along with new elements in other 
cases (like yours below but without any additional complications of "mandatory" 
statements)
- changing the type of a uint8 to a union of uint8 and other types

Jason

From: netmod <netmod-boun...@ietf.org<mailto:netmod-boun...@ietf.org>> On 
Behalf Of Italo Busi
Sent: Wednesday, June 1, 2022 6:07 PM
To: netmod@ietf.org<mailto:netmod@ietf.org>
Cc: 'cc...@ietf.org' <cc...@ietf.org<mailto:cc...@ietf.org>>
Subject: [netmod] Another comment/question on appendix B.2 of 
draft-ietf-netmod-yang-module-versioning-05

The example (in particular in point 3.1), assumes that it is possible to put 
the old deprecated leaf and the new leaf within a choice to ensure that the new 
node is not used when the old node is used

In the context of an update to RFC8561 (-00 I-D still under preparation) we 
have found a similar care where the choice could also be beneficial to express 
the requirement that the new node is mandatory when the old node is not used 
(in other words either the old node or the new node MUST be configured)

You can find a simplified example of the change we were considering here:

https://github.com/samans/testing-yang/tree/main/mw-option<https://protect2.fireeye.com/v1/url?k=31323334-501d5122-313273af-454445555731-dc62b26de858ae3b&q=1&e=885085f0-90e5-462d-827c-73bc1e45f9fc&u=https%3A%2F%2Fgithub.com%2Fsamans%2Ftesting-yang%2Ftree%2Fmain%2Fmw-option>

The original (using the old style mode) is in 
mw-opt...@2022-04-01.yang<mailto:mw-opt...@2022-04-01.yang>. the new version of 
mode (rlt-mode) is in 
mw-opt...@2022-05-26.yang<mailto:mw-opt...@2022-05-26.yang>

However, when we use pyang to check backward compatibility we get an error 
message (see the nbc.out file in github):


mw-opt...@2022-05-26.yang:47<mailto:mw-opt...@2022-05-26.yang:47>: error: the 
leaf 'mode', defined at 
mw-opt...@2022-04-01.yang:40<mailto:mw-opt...@2022-04-01.yang:40> is illegally 
removed
mw-opt...@2022-05-26.yang:50<mailto:mw-opt...@2022-05-26.yang:50>: error: the 
mandatory node mode-option is illegally added

However, we have checked that the xml file mw-option.xml, which uses the 
deprecated style of mode, works fine also with the new 
mw-opt...@2022-05-26.yang<mailto:mw-opt...@2022-05-26.yang>. We therefore think 
this type of change can be considered backward compatible since an old client 
would not break when trying to configure a new server which implements the 
deprecated node

We are therefore not sure whether this is a tooling issue or a specification 
issue

Reviewing clause 11 of RFC7950 and draft-ietf-netmod-yang-module-versioning-05, 
it seems that moving an existing leaf under a choice is not listed as a 
backward compatible change

We are wondering whether draft-ietf-netmod-yang-module-versioning-05 could 
clarify that this type of change can be considered backward compatible

We would appreciated any clarification by Netmod WG expert about whether this 
change can be considered backward compatible or not

Thanks, Italo (on behalf of co-authors working on a new I-D for updating 
RFC8561)


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

Reply via email to