From cd327983bd840e954ce46364b1ff18b73c2bb69f Mon Sep 17 00:00:00 2001 From: Renato Westphal Date: Thu, 4 Apr 2019 22:28:00 -0300 Subject: [PATCH] lib: fix a couple of yang validation issues libyang-0.16-r3 contains a commit[1] that changed the autodelete behavior of subtrees when validating data. A few FRR commands were affected by this change since they relied on the old autodelete behavior. To fix these commands, use the LYD_OPT_WHENAUTODEL flag when validating data to restore the old autodelete behavior (which adds a lot of convenience for us). [1] https://github.com/CESNET/libyang/commit/bbc43b1b4 Signed-off-by: Renato Westphal --- lib/northbound.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lib/northbound.c b/lib/northbound.c index 8a5cd0ef14..b2ae1f66cb 100644 --- a/lib/northbound.c +++ b/lib/northbound.c @@ -504,7 +504,9 @@ int nb_candidate_edit(struct nb_config *candidate, */ if (dnode) { lyd_schema_sort(dnode, 0); - lyd_validate(&dnode, LYD_OPT_CONFIG, ly_native_ctx); + lyd_validate(&dnode, + LYD_OPT_CONFIG | LYD_OPT_WHENAUTODEL, + ly_native_ctx); } break; case NB_OP_DESTROY: @@ -570,7 +572,8 @@ int nb_candidate_update(struct nb_config *candidate) */ static int nb_candidate_validate_yang(struct nb_config *candidate) { - if (lyd_validate(&candidate->dnode, LYD_OPT_STRICT | LYD_OPT_CONFIG, + if (lyd_validate(&candidate->dnode, + LYD_OPT_STRICT | LYD_OPT_CONFIG | LYD_OPT_WHENAUTODEL, ly_native_ctx) != 0) return NB_ERR_VALIDATION;