From f40841e5e777ea4ca0696f0102adff4a450228a5 Mon Sep 17 00:00:00 2001 From: Tobias Waldekranz Date: Tue, 25 Apr 2023 14:57:34 +0200 Subject: [PATCH] confd: Consistently use srx_require_modules This allows confd to start without errors when modules are already loaded. --- src/confd/src/core.c | 9 +++++- src/confd/src/ietf-system.c | 31 +++++++++++-------- ...ernelkit-infix-deviations@2023-04-03.yang} | 0 3 files changed, 26 insertions(+), 14 deletions(-) rename src/confd/yang/{kernelkit-infix-deviations.yang => kernelkit-infix-deviations@2023-04-03.yang} (100%) diff --git a/src/confd/src/core.c b/src/confd/src/core.c index 1bab567a..76c2649b 100644 --- a/src/confd/src/core.c +++ b/src/confd/src/core.c @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause */ #include "core.h" +#include "srx_module.h" static struct confd confd; @@ -22,6 +23,12 @@ static int commit_done_hook(sr_session_ctx_t *session, uint32_t sub_id, const ch return SR_ERR_OK; } +static const struct srx_module_requirement core_reqs[] = { + { .dir = YANG_PATH_, .name = "kernelkit-infix-deviations", .rev = "2023-04-03" }, + + { NULL } +}; + int sr_plugin_init_cb(sr_session_ctx_t *session, void **priv) { sr_session_ctx_t *startup; @@ -77,7 +84,7 @@ int sr_plugin_init_cb(sr_session_ctx_t *session, void **priv) goto err; } - rc = sr_install_module(confd.conn, YANG_PATH_"/kernelkit-infix-deviations.yang", NULL, NULL); + rc = srx_require_modules(confd.conn, core_reqs); if (rc) goto err; diff --git a/src/confd/src/ietf-system.c b/src/confd/src/ietf-system.c index c19e5aa9..9d1bc6e5 100644 --- a/src/confd/src/ietf-system.c +++ b/src/confd/src/ietf-system.c @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: BSD-3-Clause */ #include "core.h" +#include "srx_module.h" #include "srx_val.h" #include @@ -886,16 +887,24 @@ err: return SR_ERR_OK; } +static const char *sysfeat[] = { + "authentication", + "local-users", + "ntp", + "ntp-udp-port", + "timezone-name", + NULL +}; + +static const struct srx_module_requirement ietf_system_reqs[] = { + { .dir = YANG_PATH_, .name = "ietf-system", .rev = "2014-08-06", .features = sysfeat }, + { .dir = YANG_PATH_, .name = "infix-system", .rev = "2014-08-06" }, + + { NULL } +}; + int ietf_system_init(struct confd *confd) { - const char *features[] = { - "authentication", - "local-users", - "ntp", - "ntp-udp-port", - "timezone-name", - NULL - }; int rc; os_init(); @@ -908,11 +917,7 @@ int ietf_system_init(struct confd *confd) goto fail; } - rc = sr_install_module(confd->conn, YANG_PATH_"/ietf-system@2014-08-06.yang", NULL, features); - if (rc) - goto fail; - /* Augment to ietf-systems */ - rc = sr_install_module(confd->conn, YANG_PATH_"/infix-system@2014-08-06.yang", NULL, NULL); + rc = srx_require_modules(confd->conn, ietf_system_reqs); if (rc) goto fail; diff --git a/src/confd/yang/kernelkit-infix-deviations.yang b/src/confd/yang/kernelkit-infix-deviations@2023-04-03.yang similarity index 100% rename from src/confd/yang/kernelkit-infix-deviations.yang rename to src/confd/yang/kernelkit-infix-deviations@2023-04-03.yang