]> git.puffer.fish Git - matthieu/frr.git/commit
mgmtd: Add MGMT Frontend Interface Framework
authorYash Ranjan <ranjany@vmware.com>
Tue, 26 Oct 2021 14:10:11 +0000 (07:10 -0700)
committerChristian Hopps <chopps@labn.net>
Wed, 6 Apr 2022 01:41:23 +0000 (21:41 -0400)
commit17bfa8eb86b382730a13cd96edd07cc252ae2a45
tree968c107e509fd3249b8753e708439a9e880f937a
parent032bb1c6abd09dadb1b7130da80fa8f1ce8e1f8d
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>
26 files changed:
.clang-format
lib/lib_vty.c
lib/mgmt.proto [new file with mode: 0644]
lib/mgmt_frntnd_client.c [new file with mode: 0644]
lib/mgmt_frntnd_client.h [new file with mode: 0644]
lib/mgmt_pb.h [new file with mode: 0644]
lib/northbound.h
lib/northbound_cli.c
lib/subdir.am
lib/vty.c
lib/vty.h
mgmtd/mgmt.c
mgmtd/mgmt.h
mgmtd/mgmt_db.c
mgmtd/mgmt_db.h
mgmtd/mgmt_defines.h
mgmtd/mgmt_frntnd_adapter.c [new file with mode: 0644]
mgmtd/mgmt_frntnd_adapter.h [new file with mode: 0644]
mgmtd/mgmt_frntnd_server.c [new file with mode: 0644]
mgmtd/mgmt_frntnd_server.h [new file with mode: 0644]
mgmtd/mgmt_main.c
mgmtd/mgmt_memory.c
mgmtd/mgmt_memory.h
mgmtd/mgmt_test_frntnd [deleted file]
mgmtd/mgmt_vty.c
mgmtd/subdir.am