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 <[email protected]> On Behalf Of Rob Wilton (rwilton)
> Sent: Friday, April 3, 2020 8:06 AM
> To: Juergen Schoenwaelder <[email protected]>; Martin
> Björklund <[email protected]>
> Cc: [email protected]; [email protected]; [email protected]
> Subject: Re: [netmod] [Technical Errata Reported] RFC7950 (6031)
>
>
>
> > -----Original Message-----
> > From: netmod <[email protected]> On Behalf Of Juergen
> Schoenwaelder
> > Sent: 27 March 2020 16:13
> > To: Martin Björklund <[email protected]>
> > Cc: [email protected]; [email protected]; [email protected]; rfc-
> > [email protected]
> > 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 <[email protected]> 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
> > [email protected]
> > https://www.ietf.org/mailman/listinfo/netmod
>
> _______________________________________________
> netmod mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/netmod
_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod