Hi,
during our ietf-yang-library module implementation, when we try to generate 
proper data tree with the correct information about a NETCONF server modules we 
encountered some problems.

Based on the descriptions of implement and import enum values we implemented 
module loading in the following way: every module explicitly loaded is 
implemented and every module imported from a different module is only imported. 
Naturally, a first-imported and them explicitly-loaded module can "upgrade" its 
conformance-type. We believed this to be the intended way of handling modules.

However, this may cause problems with deviations, augments, leafrefs, and 
possibly some other YANG statements. Most obvious inconsistency (if I 
understood everything well) is with leafref. To refer to a node in another 
module you only need to import this other module. But then you actually cannot 
see the data itself (they are "protocol-accessible objects"), which would force 
us to always mark target modules of leafrefs as implemented.

Similar problem occurs with augments and deviations. If a module with either of 
those is imported, the augments and deviation should not be applied. But, for 
instance, we can have modules A, B, and C. C imports A and B. B imports A and 
also augments it. Now it is reasonable for module C to expect the augment to be 
applied in A, since it imports both, but it will not be the case if they all 
are only imported. To solve this, modules with augments or deviations and their 
target modules could be required to be implemented. This could trigger 
recursive changes from import to implement in many modules.

My question is, was this intentional? Do I understand it correctly, what is the 
proper behavior? Thanks for a clarification.

Kind regards,
Michal Vasko

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

Reply via email to