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

Reply via email to