Hi Jeff,

You are absolutely right that this is a tricky case for identifying the 
specific affected node. I should have mentioned how to do that.

Basically in this case, the “description” field of the unknown-flags leaf 
should really change each time there are newly unreported bit-0, bit-1, etc 
bits. This is a situation where the YANG model itself doesn’t have a change for 
known-flags, but the underlying *behavior* of that leaf has changed.

This is one of the reasons why we’re having a debate right now for our “Schema 
Comparison” draft about how we should treat description changes by default 
(i.e. not as just “editorial” but as “potentially-nbc” or just “nbc”).

In the Schema Comparison draft we’re also debating whether to add “per node” 
compatibility tags (optional – use when needed, and this is a case where it is 
useful to flag a particular *node* as having an NBC change in version 2.0.0).

Jason

From: Jeffrey Haas <[email protected]>
Sent: Thursday, April 13, 2023 5:18 PM
To: Jason Sterne (Nokia) <[email protected]>
Cc: [email protected]
Subject: Re: Unknown bits - backwards compatibility


CAUTION: This is an external email. Please be very careful when clicking links 
or opening attachments. See the URL nok.it/ext for additional information.


Jason,



On Apr 13, 2023, at 5:00 PM, Jason Sterne (Nokia) 
<[email protected]<mailto:[email protected]>> wrote:

Hi Jeff,

We avoided getting into subtleties about “severity” of an NBC change (hard 
enough to just get agreement on basic rules). But I do think it is useful to 
come up with changes and approaches that have lower impact on users/clients 
even if they are still marked as NBC.

For the new versioning marking, it would basically be the following. In the 
“revision” statement of the new module:

  1.  Add "rev:non-backwards-compatible" as per 
draft-ietf-netmod-yang-module-versioning-08 - Updated YANG Module Revision 
Handling<https://datatracker.ietf.org/doc/draft-ietf-netmod-yang-module-versioning/>
  2.  Increment the major version of the YANG Semver (i.e. go from 1.0.0 to 
2.0.0) as per draft-ietf-netmod-yang-semver-11 - YANG Semantic 
Versioning<https://datatracker.ietf.org/doc/draft-ietf-netmod-yang-semver/11/>

That may seem harsh, but we leaned towards being strict on flagging any NBC 
change in order to avoid false-negatives (i.e. false-positives aren’t as bad). 
Users can then diff the module versions, see that only the unknown-bits stuff 
has changed, and then decide if they need to update their client, etc.

I think I'm still unclear on how this would manifest for my proposal.

The "known" field isn't having a NBC change, so I think we can ignore that.

The "unknown" field has a stable type. More importantly, and perhaps a larger 
question for the NBC work, what needs to be flagged is that a specific bit has 
been impacted at a specific version bump of the document.  How is that to be 
signaled on such a type?

Consider instead the non-general case, and one that's in the bgp-model:

    leaf unknown-flags {

          type bits {

            bit unknown-2 {

              position 2;

              description

                "Bit 2 was received but is currently RESERVED.";

            }

            bit unknown-3 {

              position 3;

              description

                "Bit 3 was received but is currently RESERVED.";

            }

          }
This represents the modeling from my unknown draft for the remaining two bits 
of the nybble that aren't assigned after the second bit was assigned.

If a future version of BGP's Graceful Restart feature assigned bit 2, and 
unknown-flags wasn't modeled using my proposed typedef, I can see the following 
actions being done:

Add new type to the known leaf.  (A backward compatible change.)
Delete "unknown-2".  This is NBC, but clearly documents the change.

Briefly scrolling through the module-versioning draft, it doesn't appear that 
there's ways to flag what nodes contribute to the NBC issues.

In any case, where the contents are visibly impacted, it's clear you can flag 
this.  I suspect you're missing a way to flag the case as documented in my 
current draft.

-- Jeff

_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to