summaryrefslogtreecommitdiff
path: root/mgmtd
diff options
context:
space:
mode:
authorChristian Hopps <chopps@labn.net>2025-01-06 07:52:31 -0500
committerChristian Hopps <chopps@labn.net>2025-01-14 18:48:59 +0000
commit5f2a927d7baa4e2cf9454e9480eac0d361479b12 (patch)
tree5dd637472cf146f2adca5af90b315006d76f6c23 /mgmtd
parent5f350961230df5a249e7e1e09d2b38b149b105d9 (diff)
lib: northbound/mgmtd: add backend model support
Signed-off-by: Christian Hopps <chopps@labn.net>
Diffstat (limited to 'mgmtd')
-rw-r--r--mgmtd/mgmt_be_adapter.c11
-rw-r--r--mgmtd/mgmt_main.c7
2 files changed, 18 insertions, 0 deletions
diff --git a/mgmtd/mgmt_be_adapter.c b/mgmtd/mgmt_be_adapter.c
index e159d68ec0..1c32f936b0 100644
--- a/mgmtd/mgmt_be_adapter.c
+++ b/mgmtd/mgmt_be_adapter.c
@@ -77,6 +77,7 @@ static const char *const zebra_config_xpaths[] = {
};
static const char *const zebra_oper_xpaths[] = {
+ "/frr-backend:clients",
"/frr-interface:lib/interface",
"/frr-vrf:lib/vrf/frr-zebra:zebra",
"/frr-zebra:zebra",
@@ -94,6 +95,7 @@ static const char *const ripd_config_xpaths[] = {
NULL,
};
static const char *const ripd_oper_xpaths[] = {
+ "/frr-backend:clients",
"/frr-ripd:ripd",
"/ietf-key-chain:key-chains",
NULL,
@@ -114,6 +116,7 @@ static const char *const ripngd_config_xpaths[] = {
NULL,
};
static const char *const ripngd_oper_xpaths[] = {
+ "/frr-backend:clients",
"/frr-ripngd:ripngd",
NULL,
};
@@ -130,6 +133,11 @@ static const char *const staticd_config_xpaths[] = {
"/frr-routing:routing/control-plane-protocols/control-plane-protocol/frr-staticd:staticd",
NULL,
};
+
+static const char *const staticd_oper_xpaths[] = {
+ "/frr-backend:clients",
+ NULL,
+};
#endif
static const char *const *be_client_config_xpaths[MGMTD_BE_CLIENT_ID_MAX] = {
@@ -152,6 +160,9 @@ static const char *const *be_client_oper_xpaths[MGMTD_BE_CLIENT_ID_MAX] = {
#ifdef HAVE_RIPNGD
[MGMTD_BE_CLIENT_ID_RIPNGD] = ripngd_oper_xpaths,
#endif
+#ifdef HAVE_STATICD
+ [MGMTD_BE_CLIENT_ID_STATICD] = staticd_oper_xpaths,
+#endif
[MGMTD_BE_CLIENT_ID_ZEBRA] = zebra_oper_xpaths,
};
diff --git a/mgmtd/mgmt_main.c b/mgmtd/mgmt_main.c
index 1880d94415..7d909446c3 100644
--- a/mgmtd/mgmt_main.c
+++ b/mgmtd/mgmt_main.c
@@ -159,6 +159,12 @@ const struct frr_yang_module_info ietf_netconf_with_defaults_info = {
* clients into mgmtd. The modules are used by libyang in order to support
* parsing binary data returns from the backend.
*/
+const struct frr_yang_module_info frr_backend_client_info = {
+ .name = "frr-backend",
+ .ignore_cfg_cbs = true,
+ .nodes = { { .xpath = NULL } },
+};
+
const struct frr_yang_module_info zebra_route_map_info = {
.name = "frr-zebra-route-map",
.ignore_cfg_cbs = true,
@@ -183,6 +189,7 @@ static const struct frr_yang_module_info *const mgmt_yang_modules[] = {
/*
* YANG module info used by backend clients get added here.
*/
+ &frr_backend_client_info,
&frr_zebra_cli_info,
&zebra_route_map_info,