]> git.puffer.fish Git - mirror/frr.git/commitdiff
lib: yang wrapper for getting empty type
authorChirag Shah <chirag@cumulusnetworks.com>
Wed, 15 Jul 2020 20:36:47 +0000 (13:36 -0700)
committerChirag Shah <chirag@cumulusnetworks.com>
Wed, 12 Aug 2020 00:06:23 +0000 (17:06 -0700)
Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
lib/yang_wrappers.c
lib/yang_wrappers.h

index 4f743096ee199da78d9806a59180a71397f02059..4c658c1bfbf6f816fedacc707faabd7bedd7cc55 100644 (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.
  */
index 335ff319d5efb717bbb0491e67ea36355eb870bc..d781dfb1e42ad62fbae46e81ee505fd58cc0f823 100644 (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);