I don't think we should allow overwriting a require-instance true with a require-instance false in a derived type. It seems to go against the spirit of avoiding expansion of allowable values.
>From section 4.1 of RFC7950: Derived types can restrict their base type's set of valid values And this text in section 7.3.4 implies that derived types only do further restriction: If the type's default value is not valid according to the new restrictions specified in a derived type or leaf definition, the derived type or leaf definition MUST specify a new default value compatible with the restrictions. Going the other direction (overwriting with require-instance true) seems OK to me. Jason > -----Original Message----- > From: netmod <netmod-boun...@ietf.org> On Behalf Of Rob Wilton (rwilton) > Sent: Friday, April 3, 2020 8:06 AM > To: Juergen Schoenwaelder <j.schoenwael...@jacobs-university.de>; Martin > Björklund <mbj+i...@4668.se> > Cc: war...@kumari.net; netmod@ietf.org; rfc-edi...@rfc-editor.org > Subject: Re: [netmod] [Technical Errata Reported] RFC7950 (6031) > > > > > -----Original Message----- > > From: netmod <netmod-boun...@ietf.org> On Behalf Of Juergen > Schoenwaelder > > Sent: 27 March 2020 16:13 > > To: Martin Björklund <mbj+i...@4668.se> > > Cc: ibagd...@gmail.com; war...@kumari.net; netmod@ietf.org; rfc- > > edi...@rfc-editor.org > > Subject: Re: [netmod] [Technical Errata Reported] RFC7950 (6031) > > > > On Fri, Mar 27, 2020 at 04:35:44PM +0100, Martin Björklund wrote: > > > [re-sent w/ correct address] > > > > > > Juergen Schoenwaelder <j.schoenwael...@jacobs-university.de> wrote: > > > > Hi, > > > > > > > > two comments: > > > > > > > > - It is unclear to me whether this really qualifies as an errata. > > > > > > > > - If we add this, then there should probably text about which > > > > combinations are allowed. For example, for pattern and ranges, there > > > > is explicit text that says further restrictions of the value space > > > > are possible, bot not expansions. If we follow that logic, then > > > > > > > > typedef a { > > > > type leaf-ref { > > > > path "/some/thing"; > > > > require-instance true; > > > > } > > > > } > > > > > > > > typedef b { > > > > type a { > > > > require-instance false; > > > > } > > > > } > > > > > > > > might be illegal since b has a larger value space than a. > > > > > > The value space of b is the same as for a. "require-instance" doesn't > > > change the value space; it changes semantic validation of the given > > > values ((see my mail from 17 Mar, "Require-instance problem"). > > > > > > /martin > > > > OK. If we consider require-instance a constraint and not a restriction, > > then the motivation for this errata is at least > > confusing: > > > > Since no one argued against this understanding, this errata changes > > the text to the same form as in other restrictions applicable to > > derived types. > > > > Simply put: Do you think it is OK to overwrite a require-instance true > > with a require-instance false in a derived type? > [RW] > I'm not sure, but going in the other direction seems plausible. > > E.g. you start with a typedef that is explicitly require-instance false that > is then > refined by a typedef to be require-instance true. > > Regards, > Rob > > > > > > /js > > > > -- > > Juergen Schoenwaelder Jacobs University Bremen gGmbH > > Phone: +49 421 200 3587 Campus Ring 1 | 28759 Bremen | Germany > > Fax: +49 421 200 3103 <https://www.jacobs-university.de/> > > > > _______________________________________________ > > netmod mailing list > > netmod@ietf.org > > https://www.ietf.org/mailman/listinfo/netmod > > _______________________________________________ > netmod mailing list > netmod@ietf.org > https://www.ietf.org/mailman/listinfo/netmod _______________________________________________ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod