summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/yang_wrappers.c14
-rw-r--r--lib/yang_wrappers.h5
2 files changed, 19 insertions, 0 deletions
diff --git a/lib/yang_wrappers.c b/lib/yang_wrappers.c
index 2b502d635b..21acd2c1f4 100644
--- a/lib/yang_wrappers.c
+++ b/lib/yang_wrappers.c
@@ -1114,3 +1114,17 @@ void yang_get_default_ip(struct ipaddr *var, const char *xpath_fmt, ...)
value = yang_get_default_value(xpath);
yang_str2ip(value, var);
}
+
+struct yang_data *yang_data_new_mac(const char *xpath,
+ const struct ethaddr *mac)
+{
+ char value_str[ETHER_ADDR_STRLEN];
+
+ prefix_mac2str(mac, value_str, sizeof(value_str));
+ return yang_data_new(xpath, value_str);
+}
+
+void yang_str2mac(const char *value, struct ethaddr *mac)
+{
+ (void)prefix_str2mac(value, mac);
+}
diff --git a/lib/yang_wrappers.h b/lib/yang_wrappers.h
index 10d1ea314f..31d40a519d 100644
--- a/lib/yang_wrappers.h
+++ b/lib/yang_wrappers.h
@@ -172,4 +172,9 @@ extern void yang_dnode_get_ip(struct ipaddr *addr, const struct lyd_node *dnode,
const char *xpath_fmt, ...);
extern void yang_get_default_ip(struct ipaddr *var, const char *xpath_fmt, ...);
+/* mac */
+extern struct yang_data *yang_data_new_mac(const char *xpath,
+ const struct ethaddr *mac);
+extern void yang_str2mac(const char *value, struct ethaddr *mac);
+
#endif /* _FRR_NORTHBOUND_WRAPPERS_H_ */