> On 21 Dec 2016, at 10:32, Martin Bjorklund <[email protected]> wrote:
> 
> Ladislav Lhotka <[email protected]> wrote:
>> Martin Bjorklund <[email protected]> writes:
>> 
>>> Robert Wilton <[email protected]> wrote:
>>>> Hi,
>>>> 
>>>> The definition of "status" in RFC 7950 in section 7.21.2 (full text
>>>> below), states:
>>>> 
>>>> If no status is specified, the default is "current".
>>>> 
>>>> From my interpretation of the text in the draft, this implies that the
>>>> status of the "new" child leaf in the following example is "current",
>>>> and that this example is allowed!
>>>> 
>>>> My questions are:
>>>> - Is my interpretation of the current text correct?
>>> 
>>> Yes.
>>> 
>>>> - Is this actually the best behaviour, or should it inherit like the
>>>>   config statement?
>>> 
>>> I think the idea was that if the status != current, it is better for
>>> the reader if it is explicitly stated.
>>> 
>>>> Should I raise an errata for this?
>>> 
>>> No.
>>> 
>>> However, we could have said that a current node under a deprecated
>>> node (etc) in the same module is an error, in order to force people
>>> (through the useage of YANG validators) to detect and fix this.
>> 
>> Since "current" is the default, correctly deprecating a subtree would
>> mean to explicitly add the "status" statement to every single node in
>> the subtree.
> 
> Yes.
> 
>> I think that "obsolete" should apply to the whole subtree, no matter
>> what status descendants have, and "deprecated" should apply to the whole
>> subtree except for parts that are obsolete.
> 
> Maybe, but this is not how it works in YANG 1 and 1.1.  For the
> reasoning behind this, see above.  Maybe this is not perfect, and
> something that we should look into if we update YANG.  But I don't
> think this is a problem.

I think it is a problem. We can see a lot of these things before long because 
of the update rules. For example, it may apply to all the *-state trees, and 
tagging every single node therein with "deprecated" or "obsolete" is a useless 
exercise.

Lada

> 
> 
> /martin
> 
> 
> 
>> 
>> Lada
>> 
>>> 
>>> 
>>> /martin
>>> 
>>> 
>>> 
>>>> 
>>>> container old {
>>>>  status deprecated;
>>>>  leaf new {
>>>>    description "what status do I have?";
>>>>  }
>>>> }
>>>> 
>>>> Thanks,
>>>> Rob
>>>> 
>>>> 
>>>> Full 7.21.2 text from 7950:
>>>> 
>>>> 7.21.2.  The "status" Statement
>>>> 
>>>>   The "status" statement takes as an argument one of the strings
>>>>   "current", "deprecated", or "obsolete".
>>>> 
>>>>   o  "current" means that the definition is current and valid.
>>>> 
>>>>   o  "deprecated" indicates an obsolete definition, but it permits
>>>>      new/continued implementation in order to foster interoperability
>>>>      with older/existing implementations.
>>>> 
>>>>   o  "obsolete" means that the definition is obsolete and SHOULD NOT be
>>>>      implemented and/or can be removed from implementations.
>>>> 
>>>>   If no status is specified, the default is "current".
>>>> 
>>>>   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.
>>>> 
>>>>   For example, the following is illegal:
>>>> 
>>>>     typedef my-type {
>>>>       status deprecated;
>>>>       type int32;
>>>>     }
>>>> 
>>>>     leaf my-leaf {
>>>>       status current;
>>>>       type my-type; // illegal, since my-type is deprecated
>>>>     }
>>>> 
>>> 
>>> _______________________________________________
>>> netmod mailing list
>>> [email protected]
>>> https://www.ietf.org/mailman/listinfo/netmod
>> 
>> -- 
>> Ladislav Lhotka, CZ.NIC Labs
>> PGP Key ID: 0xB8F92B08A9F76C67

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: 0xB8F92B08A9F76C67





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

Reply via email to