Italo Busi <[email protected]> wrote: > Martin, Jernej, > > I am a bit confused by your replies > > With a reference to my short example below, are you saying that NEW > (B) provides an NBC change while NEW (A) provides a BC change for OLD?
I'm saying that A is allowed according to RFC 7950, but B is not allowed. And as you have demonstrated, this is a bug. (But you have also demonstrated the workaround!) /martin > > Actually , this is exactly the result I have got by testing NEW (A) > and NEW (B) with pyang > > However, if I am not mistaken, based on section 7.18.2 of RFC7950, NEW > (A) seems equivalent to NEW (B): if identity B (baz) is derived from A > (foo) and C (bar) is derived from B (baz), then C (bar) is also > derived from A (foo) ... > > Italo > > > -----Original Message----- > > From: Jernej Tuljak <[email protected]> > > Sent: martedì 31 gennaio 2023 08:19 > > To: Martin Björklund <[email protected]> > > Cc: Italo Busi <[email protected]>; [email protected] > > Subject: Re: [netmod] Changing an identity base > > > > On 30/01/2023 11:17, Martin Björklund wrote: > > > Hi, > > > > > > > > > Jernej Tuljak <[email protected]> wrote: > > >> On 30/01/2023 10:19, Italo Busi wrote: > > >>> Yes, the intention is not to change the semantic of bar but to > > >>> introduce a more “restricted” identity from which bar could be > > >>> derived > > >>> > > >>> Something like introducing an identity for italian-car in between > > >>> car and Ferrari identities > > >>> > > >> I understand your intention. I do not understand the intention behind > > >> text in RFC 7950, however. > > >> > > >> My clarification request was aimed at RFC 7950 authors and whether a > > >> revision like this could be considered as not changing the semantics > > >> of the original identity definition because: > > >> > > >> Otherwise, if the semantics of any previous definition are > > >> changed > > >> (i.e., if a non-editorial change is made to any definition other > > >> than > > >> those specifically allowed above), then this MUST be achieved by > > >> a > > >> new definition with a new identifier. > > >> > > >> So, RFC authors: Is "NEWB:bar" definition semantically equivalent to > > >> "OLD:bar" definition? > > > I think that this change isn't allowed according to RFC 7950, but it > > > should have been. If there ever is a new version of YANG, this should > > > be fixed. > > > > > > The quoted text says: > > > > > > if a non-editorial change is made to any definition other > > > than those specifically allowed above, then this MUST be achieved > > > by a > > > new definition with a new identifier > > > > > > This is a non-editorial change that is not "specifically allowed > > > above". > > > > That has been my interpretation as well so far. Our tools were > > implemented > > accordingly. I believe that the Pyang plugin also reports an error for > > a change > > like this. > > > > Jernej > > > > > > > > /martin > > > > > > > > > > > >> Jernej > > >> > > >>> Italo > > >>> > > >>> *From:* Jernej Tuljak <[email protected]> > > >>> *Sent:* lunedì 30 gennaio 2023 08:51 > > >>> *To:* Italo Busi <[email protected]>; [email protected] > > >>> *Subject:* Re: [netmod] Changing an identity base > > >>> > > >>> On 27/01/2023 17:54, Italo Busi wrote: > > >>> > > >>> According to section 11 of RFC7950, the following change is > > >>> considered BC: > > >>> > > >>> o A "base" statement may be added to an "identity" statement. > > >>> > > >>> Since, as explained in section 7.18.2 of RFC7950, the derivation > > >>> of identities is transitive, my understanding is that replacing a > > >>> "base" statement with new "base" statement which is derived from > > >>> the previous one is also a BC change. > > >>> > > >>> Considering the example below, the NEW (A) change is BC according > > >>> to section 11 of RFC7950. However, NEW (B) is equivalent to NEW > > >>> (A), since the new baz is derived from foo, and therefore it is > > >>> also a BC change. > > >>> > > >>> Is my understanding correct? > > >>> > > >>> > > >>> I'd like a clarification regarding this as well. Is "NEWB:bar" > > >>> definition semantically equivalent to "OLD:bar" definition? > > >>> > > >>> Jernej > > >>> > > >>> > > >>> Thanks, Italo > > >>> > > >>> OLD > > >>> > > >>> identity foo {} > > >>> > > >>> identity bar { > > >>> > > >>> base foo; > > >>> > > >>> } > > >>> > > >>> NEW (A) > > >>> > > >>> identity foo {} > > >>> > > >>> identity baz { > > >>> > > >>> base foo > > >>> > > >>> } > > >>> > > >>> identity bar { > > >>> > > >>> base foo; > > >>> > > >>> base baz; > > >>> > > >>> } > > >>> > > >>> NEW (B) > > >>> > > >>> identity foo {} > > >>> > > >>> identity baz { > > >>> > > >>> base foo > > >>> > > >>> } > > >>> > > >>> identity bar { > > >>> > > >>> base baz; > > >>> > > >>> } > > >>> > > >>> > > >>> > > >>> _______________________________________________ > > >>> > > >>> netmod mailing list > > >>> > > >>> [email protected] > > >>> > > >>> https://www.ietf.org/mailman/listinfo/netmod > > >>> > _______________________________________________ netmod mailing list [email protected] https://www.ietf.org/mailman/listinfo/netmod
