Hi, Michal Vaško <[email protected]> wrote: > 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.
This is orthogonal to the usage of ietf-yang-library. If a server claims to implement a module with a leafref, the expected behavior is that it also implements the target of that leafref. > 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. It seems difficult to implement a module X that deviates Y without implementing Y... so if you want to phrase this as "implementing X that deviates Y implies that you must implement Y" I guess that's ok. > My question is, was this intentional? Do I understand it correctly, > what is the proper behavior? Thanks for a clarification. ietf-yang-library is supposed to simply report what the server implements. If the server implements a module Q with a leafref to W, but it doesn't implement W, then ietf-yang-library shouldn't report W. /martin _______________________________________________ netmod mailing list [email protected] https://www.ietf.org/mailman/listinfo/netmod
