Hello,
https://tools.ietf.org/html/rfc7950#section-7.21.2
   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.
As I understand this both means that a node that is either deprecated or obsolete MAY be
not implemented. In both cases it is allowed not-to-implement the node.
This really works as if there would be an if-feature statement on each deprecated schema node
where the server does not advertise whether the feature is supported of not. Why is it not advertised?

YANG is considered an interface contract,  however a "maybe implemented" is unusable in a contract.

I would like to propose an alternate definition:
   o  "deprecated" schema nodes MUST still work as defined by the YANG module. 
       The deprecated status serves only as a a warning that the schema node 
       will be removed or obsoleted in the future." 

I know this is a significant change, but I consider the current definition of deprecated not really usable,
so we need to do something.

YANG already has a feature to make some schema parts optional,  based
on the decision of the implementer: its called feature. Lets use that one.
This would allow the client to understand if the relevant parts are still there. 

As an example what I would do is:

module ietf-system {
   feature pre-nmda-support ;

   container system {...}

   container system-state {
      if-feature pre-nmda-support ;
      status deprecated;
   }
}

regards Balazs



-- 
Balazs Lengyel                       Ericsson Hungary Ltd.
Senior Specialist
Mobile: +36-70-330-7909              email: [email protected] 
_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to