summaryrefslogtreecommitdiff
path: root/mgmtd/mgmt_ds.c
diff options
context:
space:
mode:
authorChristian Hopps <chopps@labn.net>2023-03-08 17:26:38 -0500
committerChristian Hopps <chopps@labn.net>2023-03-21 22:08:32 -0400
commitef43a6329b063f0fa4acc0c3d9ae3e3875b65da6 (patch)
tree6cb59bf2bd086f0099394da337fa638dbf6b3613 /mgmtd/mgmt_ds.c
parent1c84efe4fa8585df58a9b53459f94c47934f0786 (diff)
mgmtd: Add MGMT Frontend Interface Framework
This commit introduces the Frontend Interface which can be used by front-end management clients like Netconf server, Restconf Server and CLI to interact with new FRR Management daemon (MGMTd) to access and sometimes modify FRR management data. This commit includes the following functionalities in the changeset: 1. Add new Frontend server for clients connect to. 2. Add a C-based Frontend client library which can be used by Frontend clients to communicate with MGMTd via the Frontend interface. 3. Maintain a frontend adapter for each connection from an appropriate Frontend client to facilitate client requests and track one or more client sessions across it. 4. Define the protobuf message format for messages to be exchanged between MGMTd Frontend module and the Frontend client. 5. This changeset also introduces an instance of MGMT Frontend client embedded within the lib/vty module that can be leveraged by any FRR daemon to connect to MGMTd's Frontend interface. The same has been integrated with and initialized within the MGMTd daemon's process context to implement a bunch of 'set-config', 'commit-apply', 'get-config' and 'get-data' commands via VTYSH Co-authored-by: Pushpasis Sarkar <pushpasis@gmail.com> Co-authored-by: Abhinay Ramesh <rabhinay@vmware.com> Co-authored-by: Ujwal P <ujwalp@vmware.com> Signed-off-by: Yash Ranjan <ranjany@vmware.com>
Diffstat (limited to 'mgmtd/mgmt_ds.c')
-rw-r--r--mgmtd/mgmt_ds.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/mgmtd/mgmt_ds.c b/mgmtd/mgmt_ds.c
index 85ff1da7d4..2f4e7f8492 100644
--- a/mgmtd/mgmt_ds.c
+++ b/mgmtd/mgmt_ds.c
@@ -29,7 +29,7 @@
#endif /* REDIRECT_DEBUG_TO_STDERR */
struct mgmt_ds_ctx {
- enum mgmt_datastore_id ds_id;
+ Mgmtd__DatastoreId ds_id;
int lock; /* 0 unlocked, >0 read locked < write locked */
bool config_ds;
@@ -212,11 +212,10 @@ void mgmt_ds_destroy(void)
/*
* TODO: Free the datastores.
*/
-
}
struct mgmt_ds_ctx *mgmt_ds_get_ctx_by_id(struct mgmt_master *mm,
- enum mgmt_datastore_id ds_id)
+ Mgmtd__DatastoreId ds_id)
{
switch (ds_id) {
case MGMTD_DS_CANDIDATE:
@@ -226,8 +225,8 @@ struct mgmt_ds_ctx *mgmt_ds_get_ctx_by_id(struct mgmt_master *mm,
case MGMTD_DS_OPERATIONAL:
return (mm->oper_ds);
case MGMTD_DS_NONE:
- case MGMTD_DS_MAX_ID:
- default:
+ case MGMTD__DATASTORE_ID__STARTUP_DS:
+ case _MGMTD__DATASTORE_ID_IS_INT_SIZE:
return 0;
}