lib: yang wrapper for getting empty type

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
This commit is contained in:
Chirag Shah 2020-07-15 13:36:47 -07:00
parent c64e4ca2a7
commit 47cd223441
2 changed files with 25 additions and 0 deletions

View File

@ -792,6 +792,29 @@ struct yang_data *yang_data_new_empty(const char *xpath)
return yang_data_new(xpath, NULL);
}
bool yang_dnode_get_empty(const struct lyd_node *dnode, const char *xpath_fmt,
...)
{
va_list ap;
char xpath[XPATH_MAXLEN];
const struct lyd_node_leaf_list *dleaf;
assert(dnode);
va_start(ap, xpath_fmt);
vsnprintf(xpath, sizeof(xpath), xpath_fmt, ap);
va_end(ap);
dnode = yang_dnode_get(dnode, xpath);
if (dnode) {
dleaf = (const struct lyd_node_leaf_list *)dnode;
if (dleaf->value_type == LY_TYPE_EMPTY)
return true;
}
return false;
}
/*
* Derived type: IP prefix.
*/

View File

@ -120,6 +120,8 @@ extern void yang_get_default_string_buf(char *buf, size_t size,
/* empty */
extern struct yang_data *yang_data_new_empty(const char *xpath);
extern bool yang_dnode_get_empty(const struct lyd_node *dnode,
const char *xpath_fmt, ...);
/* ip prefix */
extern void yang_str2prefix(const char *value, union prefixptr prefix);