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?

Does the answer depend on whether the choice contains other cases (or other 
cases that are the default case)?

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).

Jason



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

Reply via email to