Subject: Re: [Netmod-ver-dt] First take at the YANG schema comparison draft

From: "Reshad Rahman (rrahman)" <[email-masked]>
Date: Wed, 13 Nov 2019 16:28:09 +0000

Rob, it’s definitely a very good start, thanks for doing this especially last minute.

Some comments/questions below, I also corrected some nits and added some comments (attached diffs). Disclaimer: I read the draft once and may have missed finer points.

  1.  The ‘renamed-from’ annotation is handy but it’s not 100% clear to me how it’s used to determine scope of change. If A is renamed to B and A is marked as deprecated, this is BC whether B has renamed-from or not? Then if in a later version A is marked as obsolete, annotating B with ‘renamed-from A’ can indicate to the client that they should be using B instead of A, but it doesn’t change the fact that it’s an NBC change?
  2.  Not sure I’m grasping the purpose of the advanced algorithm (5.2), e.g. why does it have less chance of reporting inconsequential differences? And is it mainly to provide more detailed change e.g. list of BC changes, list of NBC changes (as opposed to just stating that it’s NBC).
  3.  Don’t we need a non-backwards-compatible annotation? Balazs had sent an example where adding a feature (I think ) as NBC, so NBC annotation could be handy.
  4.  It’d be great if we could have a simple example for each annotation (if not in the draft then in the slides).

Regards,
Reshad.

From: Netmod-ver-dt <[email-masked]> on behalf of "Rob Wilton (rwilton)" <[email-masked]>
Date: Wednesday, November 13, 2019 at 3:57 AM
To: "[email-masked]" <[email-masked]>
Subject: [Netmod-ver-dt] First take at the YANG schema comparison draft

Hi,

You will have seen Lou’s response that the WG chairs would like to see a complete set of solution drafts, and try to call for WG adoption for a full set of solution drafts.

To this end, I have tried to knock together a starting point for the YANG schema comparison draft.  The hope that this draft is sufficient to present at IETF 106 and represents enough of a starting point that we can get the WG behind the overall direction of the solution.

The draft is only 13 pages long, so if you can get a change to review it before tomorrow’s meeting that would be great (but I appreciate that isn’t much time).

From my point of view, I believe that the key questions are:

  1.  Does this draft align with your expectation of a solution for schema comparison (potentially putting aside exactly how the algorithms are defined, etc)?
  2.  Is this draft missing anything important to the schema comparison work?
  3.  Would you support this as a starting point for a schema comparison solution?  I.e. are OK with this draft being presented at 106, and for us to ask for WG adoption as the future direction.

The draft and YANG module are attached, and also pushed to DT github repository.

Thanks,
Rob

---

From: "Rob Wilton (rwilton)" <[email-masked]>
Date: Wed, 13 Nov 2019 16:50:57 +0000

Hi Reshad,

Thanks for the quick review.  Please see comments [RW] inline …

From: Reshad Rahman (rrahman) <[email-masked]>
Sent: 13 November 2019 16:28
To: Rob Wilton (rwilton) <[email-masked]>; [email-masked]
Subject: Re: [Netmod-ver-dt] First take at the YANG schema comparison draft

Some comments/questions below, I also corrected some nits and added some comments (attached diffs). Disclaimer: I read the draft once and may have missed finer points.
[RW]
Great.  Please can you just commit the diffs to the github repository.

  1.  The ‘renamed-from’ annotation is handy but it’s not 100% clear to me how it’s used to determine scope of change. If A is renamed to B and A is marked as deprecated, this is BC whether B has renamed-from or not? Then if in a later version A is marked as obsolete, annotating B with ‘renamed-from A’ can indicate to the client that they should be using B instead of A, but it doesn’t change the fact that it’s an NBC change?
[RW]
Because we are comparing by identifier name, it is useful to have this annotation if you need to fix a typo in an identifier name.

Changing the name is still always an NBC change, well at least at the point that the old name doesn’t exist.  So the intention here isn’t to change the rules, but to make a comparison script more useful.

  1.  Not sure I’m grasping the purpose of the advanced algorithm (5.2), e.g. why does it have less chance of reporting inconsequential differences? And is it mainly to provide more detailed change e.g. list of BC changes, list of NBC changes (as opposed to just stating that it’s NBC).
[RW]
Consider XR upgrading between two releases.  It is quite plausible that there will be NBC changes in at least one YANG module, so the package schema is likely to always report a major change between the S/W revisions.  However, for a particular customer, if those NBC changes are only in modules/data nodes that they don’t use then really from their perspective upgrading between the releases will be a minor upgrade.  So the advanced comparison algorithm gives a more meaningful result of the upgrade impact on the clients management systems, because the version numbers in the modules and packages always represent the worst case scenario of every data node and feature being used.

  1.  Don’t we need a non-backwards-compatible annotation?
[RW]
I’m not sure on this one.  I had it originally but removed it.  Generally, I think that the script should assume that a change is NBC if it cannot prove that the change is BC.

Balazs had sent an example where adding a feature (I think ) as NBC, so NBC annotation could be handy.
[RW]
Yes, because you can something like ‘if-feature “not feature-foo”;’, but I think this is really just broken YANG and should be forbidden.  Enabling a feature should never remove nodes, they should always add additional optional nodes, otherwise various fundamental properties seem to be break.

  1.  It’d be great if we could have a simple example for each annotation (if not in the draft then in the slides).
[RW]
Yes, but I’m not sure if I will get time to add these.  I’ll add an issue to track this for the moment.

Thanks again for the quick review and feedback,
Rob

Regards,
Reshad.

From: Netmod-ver-dt <[email-masked]<mailto:[email-masked]>> on behalf of "Rob Wilton (rwilton)" <[email-masked]<mailto:[email-masked]>>
Date: Wednesday, November 13, 2019 at 3:57 AM
To: "[email-masked]<mailto:[email-masked]>" <[email-masked]<mailto:[email-masked]>>
Subject: [Netmod-ver-dt] First take at the YANG schema comparison draft

Hi,

Thanks,
Rob