* Performance improvement
* Added ancestor config cache indicating wether the node or an ancestor is config false or true * Improved yang cardinality lookup * Added yang_init(), called from all apps using yang
This commit is contained in:
parent
0626de9431
commit
b91ce762d5
19 changed files with 415 additions and 63 deletions
|
|
@ -3190,11 +3190,29 @@ yang_config_ancestor(yang_stmt *ys)
|
|||
|
||||
yp = ys;
|
||||
do {
|
||||
if (yang_config(yp) == 0)
|
||||
#ifdef USE_CONFIG_FLAG_CACHE
|
||||
if (yang_flag_get(yp, YANG_FLAG_CONFIG_CACHE))
|
||||
return yang_flag_get(yp, YANG_FLAG_CONFIG_VALUE)?1:0;
|
||||
#endif
|
||||
if (yang_config(yp) == 0){
|
||||
#ifdef USE_CONFIG_FLAG_CACHE
|
||||
yang_flag_set(yp, YANG_FLAG_CONFIG_CACHE);
|
||||
yang_flag_reset(yp, YANG_FLAG_CONFIG_VALUE);
|
||||
#endif
|
||||
return 0;
|
||||
if (yang_keyword_get(yp) == Y_INPUT || yang_keyword_get(yp) == Y_OUTPUT || yang_keyword_get(yp) == Y_NOTIFICATION)
|
||||
}
|
||||
if (yang_keyword_get(yp) == Y_INPUT || yang_keyword_get(yp) == Y_OUTPUT || yang_keyword_get(yp) == Y_NOTIFICATION){
|
||||
#ifdef USE_CONFIG_FLAG_CACHE
|
||||
yang_flag_set(yp, YANG_FLAG_CONFIG_CACHE);
|
||||
yang_flag_reset(yp, YANG_FLAG_CONFIG_VALUE);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
} while((yp = yang_parent_get(yp)) != NULL);
|
||||
#ifdef USE_CONFIG_FLAG_CACHE
|
||||
yang_flag_set(ys, YANG_FLAG_CONFIG_CACHE);
|
||||
yang_flag_set(ys, YANG_FLAG_CONFIG_VALUE);
|
||||
#endif
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
@ -3678,6 +3696,12 @@ yang_sort_subelements(yang_stmt *ys)
|
|||
return retval;
|
||||
}
|
||||
|
||||
int
|
||||
yang_init(clicon_handle h)
|
||||
{
|
||||
return yang_cardinality_init(h);
|
||||
}
|
||||
|
||||
#ifdef XML_EXPLICIT_INDEX
|
||||
/*! Mark element as search_index in list
|
||||
* @retval 0 OK
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue