-
Notifications
You must be signed in to change notification settings - Fork 0
NMDA Existing Model Migration FAQ
This page provides answers for common questions related to migrating existing models to NMDA style models.
- When is it necessary to wait for updated versions of non-NMDA style published model before updating an augmenting model to conform to NMDA?
- If we have an non-NMDA draft in progress then is it OK to publish the non NMDA model followed by an NMDA version?
- Which YANG modules already specified need to be updated to be NMDA compliant?
- What happens to the old config false "-state" tree in a published YANG module when a NMDA compatible revision is produced?
Q 1. When is it necessary to wait for updated versions of non-NMDA style published models (e.g. ietf-interfaces.yang) before updating an augmenting model to conform to NMDA?
It is only necessary to wait if the augmenting model needs to augment a container in the state tree that has no direct equivalent in the config tree. This is perhaps best illustrated through two examples:
- If an existing model augments
if:interfaces-stateand needs to move to NMDA structure, then it can be changed to augmentif:interfacesinstead, and it has no direct dependency on an updated version of ietf-interfaces.yang. - However, If an existing model augments
if:interfaces-state/statisticsand needs to move to NMDA structure, then it must wait until an updated version ofietf-interfaces.yangis available that provides the equivalentif:interfaces/statisticscontainer to augment from.
Q 2. If we have an non-NMDA draft in progress then is it OK to publish the non NMDA model followed by an NMDA version?
No, this is not recommended because it is likely to cause confusion in the industry. It is unlikely to increase market adoption because implementors are likely to know that the module will soon be updated to be NMDA compliant, perhaps requiring a non backwards compatible v2 version. Instead, if the model is still in draft form it should be immediately updated to NMDA style before being published, and if necessary, an additional transient "-state" module could be published. E.g. as described in NMDA Modelling FAQ. This allows everyone to work with the long term model structure now.
Note: No update to ietf-restconf@2017-01-26.yang is required because it does not define any data nodes.
Q 4. What happens to the old config false "-state" tree in a published YANG module when a NMDA compatible revision is produced?
The specific YANG rules for updating existing modules are specified in RFC 7950 section 11. These rules apply for any YANG module that has been published (i.e. is within an RFC or other published standard).
Hence in the NMDA compatible module, all nodes in the any existing "-state" tree should be explicitly marked as "deprecated". In a future revision, the deprecated nodes could be marked as "obsolete". Perhaps they could be removed entirely in a future revision, but this would require a change to the module update rules currently specified in RFC 7950.
To help ensure that the module doesn't become cluttered, the deprecated definitions could be moved to a separate sub-module - this is a completely backwards compatible change.