diff options
author | Renato Westphal <renato@opensourcerouting.org> | 2018-11-13 22:30:24 +0100 |
---|---|---|
committer | Renato Westphal <renato@opensourcerouting.org> | 2018-11-26 20:36:34 +0100 |
commit | a1b5f469e70333042c2a0bd7e98bc4e69f4a0237 (patch) | |
tree | 270f93edc8e94ba17b5f9d95e5d56ba04c4e8c1b /lib/yang.c | |
parent | lib: remove entire data tree on yang_dnode_free() (diff) | |
download | frr-a1b5f469e70333042c2a0bd7e98bc4e69f4a0237.tar.xz frr-a1b5f469e70333042c2a0bd7e98bc4e69f4a0237.zip |
lib: introduce function that loads all FRR native YANG modules
In some cases it will be necessary to load all FRR native modules.
Examples:
* vtysh needs to load all YANG modules so that it can manipulate data
from all daemons.
* The gen_northbound_callbacks tool will need to load all YANG modules
since augmentations from one module can have an effect in the required
northbound callbacks of other modules.
The new yang_module_load_all() function provides this functionality.
As a side note, the "frr_native_modules" will need to be updated every
time we add a new YANG module to FRR.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Diffstat (limited to 'lib/yang.c')
-rw-r--r-- | lib/yang.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/yang.c b/lib/yang.c index 73f63b18e..011fff65a 100644 --- a/lib/yang.c +++ b/lib/yang.c @@ -71,6 +71,11 @@ static const char *yang_module_imp_clb(const char *mod_name, return NULL; } +static const char * const frr_native_modules[] = { + "frr-interface", + "frr-ripd", +}; + /* Generate the yang_modules tree. */ static inline int yang_module_compare(const struct yang_module *a, const struct yang_module *b) @@ -108,6 +113,12 @@ struct yang_module *yang_module_load(const char *module_name) return module; } +void yang_module_load_all(void) +{ + for (size_t i = 0; i < array_size(frr_native_modules); i++) + yang_module_load(frr_native_modules[i]); +} + struct yang_module *yang_module_find(const char *module_name) { struct yang_module s; |