Hi, "Sterne, Jason (Nokia - CA/Ottawa)" <jason.ste...@nokia.com> wrote: > Hi all, > > If we have a YANG model with a leaf: > > MODEL VERSION 1: > container my-model { > leaf a { type string; } > } > > And then later we produce another version of the model where that leaf > is placed into a choice construct: > > MODEL VERSION 2: > container my-model { > choice some-choice { > case x { > leaf a { type string; } > } > } > } > > Is that considered a non-backwards-compatible change?
Not accordning to current RFC 7950 rules, since it changes the schema node path (suppose the leaf was a container, and someone had augment /my-model/a). > Does the answer depend on whether the choice contains other cases (or > other cases that are the default case)? No. > MODEL VERSION 3: > container my-model { > choice some-choice { > case x { > leaf a { type string; } > } > case y { > leaf b { type string; } > } > } > } > > A client 'foo' using VERSION 1 would still be able to set & read back > leaf a in the same way as it always did. > > But if another client 'bar' (using VERSION 3) sets leaf 'b', then leaf > 'a' would disappear. That could be surprising to client 'foo' although > perhaps no more surprising than if another client simply deletes leaf > 'a' (using VERSION 1). /martin _______________________________________________ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod