On Wed, Jan 18, 2017 at 03:42:07PM -0800, Andy Bierman wrote:
> On Wed, Jan 18, 2017 at 3:11 PM, Juergen Schoenwaelder <
> [email protected]> wrote:
> 
> > On Wed, Jan 18, 2017 at 02:53:06PM -0800, Andy Bierman wrote:
> > > Hi,
> > >
> > > The reason the status-stmt is broken is because status=obsolete is not
> > > inherited from the parent.  The status obsolete means it is gone from the
> > > server.
> > > Since YANG data is hierarchical, any descendants of the obsolete node
> > > are no longer accessible in any way.
> > >
> >
> > I am not convinced yet that the status-stmt is broken:
> >
> > - Not all references in YANG are hierarchical nested nodes.
> >
> > - References can cross module boundaries and also organizational
> >   boundaries.
> >
> > - Tools can create warnings if non-obsolete definitions reference an
> >   obsolete definition so that editors can make proper updates.
> >
> >
> yangdump-pro has warnings. pyang ignores the status-stmt.
> 
> 
> The text that is broken is in sec. 7.21.2
> 
>     If a definition is "current", it MUST NOT reference a "deprecated" or
>    "obsolete" definition within the same module.
> 
>    If a definition is "deprecated", it MUST NOT reference an "obsolete"
> 
>       definition within the same module.
> 
> 
> We do not seem to have any agreement on what it means to reference an
> object.
> 
> It seems obvious that our intention was to disallow current child nodes
> within an obsolete or deprecated parent node.
> 
> IMO we need Errata to clarify what it means.
> The YANG compiler MUST generate errors for these 'MUST NOT' violations in
> the YANG syntax.
>

But:

 - References can cross module boundaries and thereby also
   organizational boundaries.

I think we have to accept that at least temporarily the MUST NOT may
be violated in reality. I think the errata should actually modify the
MUST NOT to a SHOULD NOT in the quoted text.

I also note that obsolete does not _require_ to remove implementation:

   o  "obsolete" means that the definition is obsolete and SHOULD NOT be
      implemented and/or can be removed from implementations.

If I have something worthwhile referencing something marked obsolete,
I may decide to keep the referenced obsolete something.

/js

-- 
Juergen Schoenwaelder           Jacobs University Bremen gGmbH
Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>

_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to