mirror of
https://github.com/FRRouting/frr.git
synced 2025-04-30 05:27:16 +02:00
doc: Add documentation for MGMT daemon
This commit adds user documentation for the new MGMT daemon and new FRR Management Framework. Co-authored-by: Yash Ranjan <ranjany@vmware.com> Co-authored-by: Abhinay Ramesh <rabhinay@vmware.com> Co-authored-by: Ujwal P <ujwalp@vmware.com> Signed-off-by: Pushpasis Sarkar <pushpasis@gmail.com>
This commit is contained in:
parent
d1e85e3600
commit
5b08f6f9ea
|
@ -46,7 +46,7 @@ Add packages:
|
|||
sudo yum install git autoconf automake libtool make \
|
||||
readline-devel texinfo net-snmp-devel groff pkgconfig \
|
||||
json-c-devel pam-devel flex epel-release c-ares-devel libcap-devel \
|
||||
elfutils-libelf-devel
|
||||
elfutils-libelf-devel protobuf-c-devel
|
||||
|
||||
Install newer version of bison (CentOS 6 package source is too old) from CentOS
|
||||
7:
|
||||
|
|
|
@ -22,7 +22,7 @@ Add packages:
|
|||
readline-devel texinfo net-snmp-devel groff pkgconfig \
|
||||
json-c-devel pam-devel bison flex pytest c-ares-devel \
|
||||
python-devel python-sphinx libcap-devel \
|
||||
elfutils-libelf-devel libunwind-devel
|
||||
elfutils-libelf-devel libunwind-devel protobuf-c-devel
|
||||
|
||||
.. include:: building-libunwind-note.rst
|
||||
|
||||
|
|
|
@ -15,7 +15,8 @@ Add packages:
|
|||
automake libtool make readline-devel texinfo net-snmp-devel pkgconfig \
|
||||
groff pkgconfig json-c-devel pam-devel bison flex python2-pytest \
|
||||
c-ares-devel python2-devel libcap-devel \
|
||||
elfutils-libelf-devel libunwind-devel
|
||||
elfutils-libelf-devel libunwind-devel \
|
||||
protobuf-c-devel
|
||||
|
||||
.. include:: building-libunwind-note.rst
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ Add packages:
|
|||
sudo apt-get install git autoconf automake libtool make \
|
||||
libreadline-dev texinfo libjson-c-dev pkg-config bison flex python3-pip \
|
||||
libc-ares-dev python3-dev python3-sphinx build-essential \
|
||||
libsnmp-dev libcap-dev libelf-dev
|
||||
libsnmp-dev libcap-dev libelf-dev libprotobuf-c-dev protobuf-c-compiler
|
||||
|
||||
Install newer pytest (>3.0) from pip
|
||||
|
||||
|
|
|
@ -11,7 +11,8 @@ Add packages:
|
|||
sudo apt-get install git autoconf automake libtool make \
|
||||
libreadline-dev texinfo libjson-c-dev pkg-config bison flex \
|
||||
libc-ares-dev python3-dev python3-pytest python3-sphinx build-essential \
|
||||
libsnmp-dev libcap-dev libelf-dev libunwind-dev
|
||||
libsnmp-dev libcap-dev libelf-dev libunwind-dev \
|
||||
libprotobuf-c-dev protobuf-c-compiler
|
||||
|
||||
.. include:: building-libunwind-note.rst
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ Installing Dependencies
|
|||
readline-devel texinfo net-snmp-devel groff pkgconfig json-c-devel \
|
||||
pam-devel python3-pytest bison flex c-ares-devel python3-devel \
|
||||
python3-sphinx perl-core patch libcap-devel \
|
||||
elfutils-libelf-devel libunwind-devel
|
||||
elfutils-libelf-devel libunwind-devel protobuf-c-devel
|
||||
|
||||
.. include:: building-libunwind-note.rst
|
||||
|
||||
|
|
|
@ -17,7 +17,8 @@ is first package install and asked)
|
|||
::
|
||||
|
||||
pkg install git autoconf automake libtool gmake json-c pkgconf \
|
||||
bison flex py36-pytest c-ares python3.6 py36-sphinx libunwind
|
||||
bison flex py36-pytest c-ares python3.6 py36-sphinx libunwind \
|
||||
protobuf-c
|
||||
|
||||
.. include:: building-libunwind-note.rst
|
||||
|
||||
|
|
|
@ -17,7 +17,8 @@ is first package install and asked)
|
|||
.. code-block:: shell
|
||||
|
||||
pkg install git autoconf automake libtool gmake json-c pkgconf \
|
||||
bison flex py36-pytest c-ares python3.6 py36-sphinx texinfo libunwind
|
||||
bison flex py36-pytest c-ares python3.6 py36-sphinx texinfo libunwind \
|
||||
protobuf-c
|
||||
|
||||
.. include:: building-libunwind-note.rst
|
||||
|
||||
|
|
|
@ -18,7 +18,7 @@ is first package install and asked)
|
|||
|
||||
pkg install -y git autoconf automake libtool gmake \
|
||||
pkgconf texinfo json-c bison flex py36-pytest c-ares \
|
||||
python3 py36-sphinx libexecinfo
|
||||
python3 py36-sphinx libexecinfo protobuf-c
|
||||
|
||||
Make sure there is no /usr/bin/flex preinstalled (and use the newly
|
||||
installed in /usr/local/bin): (FreeBSD frequently provides a older flex
|
||||
|
|
|
@ -23,7 +23,8 @@ Add packages:
|
|||
::
|
||||
|
||||
sudo pkg_add git autoconf automake libtool gmake openssl \
|
||||
pkg-config json-c py36-test python36 py36-sphinx
|
||||
pkg-config json-c py36-test python36 py36-sphinx \
|
||||
protobuf-c
|
||||
|
||||
Install SSL Root Certificates (for git https access):
|
||||
|
||||
|
|
|
@ -14,7 +14,8 @@ Install required packages
|
|||
::
|
||||
|
||||
sudo pkgin install git autoconf automake libtool gmake openssl \
|
||||
pkg-config json-c python36 py36-test py36-sphinx
|
||||
pkg-config json-c python36 py36-test py36-sphinx \
|
||||
protobuf-c
|
||||
|
||||
Install SSL Root Certificates (for git https access):
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ Add packages:
|
|||
|
||||
pkg_add clang libcares python3
|
||||
pkg_add git autoconf-2.69p2 automake-1.15.1 libtool bison
|
||||
pkg_add gmake json-c py-test py-sphinx libexecinfo
|
||||
pkg_add gmake json-c py-test py-sphinx libexecinfo protobuf-c
|
||||
|
||||
Select Python2.7 as default (required for pytest)
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ Installing Dependencies
|
|||
readline-devel texinfo net-snmp-devel groff pkgconfig libjson-c-devel\
|
||||
pam-devel python3-pytest bison flex c-ares-devel python3-devel\
|
||||
python3-Sphinx perl patch libcap-devel libyang-devel \
|
||||
libelf-devel libunwind-devel
|
||||
libelf-devel libunwind-devel protobuf-c
|
||||
|
||||
.. include:: building-libunwind-note.rst
|
||||
|
||||
|
|
|
@ -18,6 +18,13 @@ Installing Dependencies
|
|||
|
||||
.. include:: building-libyang.rst
|
||||
|
||||
Protobuf
|
||||
^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo apt-get install protobuf-c-compiler libprotobuf-c-dev
|
||||
|
||||
Building & Installing FRR
|
||||
-------------------------
|
||||
|
||||
|
|
|
@ -15,10 +15,17 @@ Installing Dependencies
|
|||
pkg-config libpam0g-dev libjson-c-dev bison flex python3-pytest \
|
||||
libc-ares-dev python3-dev python-ipaddress python3-sphinx \
|
||||
install-info build-essential libsnmp-dev perl libcap-dev \
|
||||
libelf-dev
|
||||
libelf-dev libprotobuf-c-dev protobuf-c-compiler
|
||||
|
||||
.. include:: building-libyang.rst
|
||||
|
||||
Protobuf
|
||||
^^^^^^^^
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo apt-get install protobuf-c-compiler libprotobuf-c-dev
|
||||
|
||||
Building & Installing FRR
|
||||
-------------------------
|
||||
|
||||
|
|
|
@ -66,6 +66,7 @@ Protocols
|
|||
vrrp
|
||||
bmp
|
||||
watchfrr
|
||||
mgmtd
|
||||
|
||||
########
|
||||
Appendix
|
||||
|
|
375
doc/user/mgmtd.rst
Normal file
375
doc/user/mgmtd.rst
Normal file
|
@ -0,0 +1,375 @@
|
|||
.. _mgmtd:
|
||||
|
||||
*************************
|
||||
MGMTd (Management Daemon)
|
||||
*************************
|
||||
|
||||
The FRR Management Daemon (from now on referred to as MGMTd) is a new
|
||||
centralized entity representing the FRR Management Plane which can take
|
||||
management requests from any kind of UI/Frontend entity (e.g. CLI, Netconf,
|
||||
Restconf, Grpc etc.) over a new unified and common Frontend interface and
|
||||
can help maintain configurational data or retrieve operational data from
|
||||
any number of FRR managed entities/components that have been integrated
|
||||
with the new FRR Centralised Management Framework.
|
||||
|
||||
For organizing the management data to be owned by the FRR Management plane,
|
||||
management data is stored in YANG in compliance with a pre-defined set
|
||||
of YANG based schema. Data shall also be stored/retrieved in YANG format only.
|
||||
|
||||
The MGMTd also acts as a separate computational entity for offloading much
|
||||
of the management related computational overload involved in maintaining of
|
||||
management data and processing of management requests, from individual
|
||||
component daemons (which can otherwise be a signficant burden on the individual
|
||||
components, affecting performance of its other functionalities).
|
||||
|
||||
Lastly, the MGMTd works in-tandem with one (or more) MGMT Frontend
|
||||
Clients and a bunch of MGMT Backend Clients to realize the entirety
|
||||
of the FRR Management plane. Some of the advanatages of this new framework
|
||||
are:
|
||||
|
||||
1. Consolidation and management of all Management data by a single entity.
|
||||
2. Better control over configuration validation, commit and rollback.
|
||||
3. Faster collection of configuration data (without needing to involve
|
||||
individual component daemons).
|
||||
4. Offload computational burden of YANG data parsing and validations
|
||||
of new configuration data being provisoned away from individual
|
||||
component daemons
|
||||
5. Improve performance of individual component daemons while loading
|
||||
huge configuration or retrieving huge operational dataset.
|
||||
|
||||
The new FRR Management Daemon consists of the following sub-components:
|
||||
- MGMT Frontend Interface
|
||||
- MGMT Backend Interface
|
||||
- MGMT Transaction Engine
|
||||
|
||||
.. _mgmt_fe:
|
||||
|
||||
MGMT Frontend Interface
|
||||
=======================
|
||||
|
||||
The MGMT Frontend Interface is a bunch of message-based APIs that lets
|
||||
any UI/Frontend client to interact with the MGMT daemon to requests a
|
||||
set of management operations on a specific datastore/database.
|
||||
Following is a list of databases/datastores supported by the MGMT
|
||||
Frontend Interface and MGMTd:
|
||||
|
||||
- Candidate Database:
|
||||
|
||||
- Consists of configuration data items only.
|
||||
- Data can be edited anytime using SET_CONFIG API.
|
||||
- Data can be retrieved anytime using GET_CONFIG/GET_DATA API.
|
||||
|
||||
- Running Database:
|
||||
|
||||
- Consists of configuration data items only.
|
||||
- Data cannot be edited using SET_CONFIG API.
|
||||
- Data can only be modified using COMMIT_CONFIG API after which un-committed
|
||||
data from Candidate database will be first validated and applied to
|
||||
individualBackend component(s). Only on successful validation and apply on
|
||||
all individual components will the new data be copied over to the Running
|
||||
database.
|
||||
- Data can be retrieved anytime using GET_CONFIG/GET_DATA API.
|
||||
|
||||
- Startup Database:
|
||||
|
||||
- Consists of configuration data items only.
|
||||
- This is a copy of Running database that is stored in persistent
|
||||
storage and is used to load configurations on Running database during
|
||||
MGMT daemon startup.
|
||||
- Data cannot be edited/retrieved directly via Frontend interface.
|
||||
|
||||
- Operational Database:
|
||||
|
||||
- Consists of non-configurational data items.
|
||||
- Data is not stored on MGMT daemon. Rather it will be need to be fetched
|
||||
in real-time from the corresponding Backend component (if present).
|
||||
- Data can be retrieved anytime using GET_DATA API.
|
||||
|
||||
Frontend Clients connected to MGMTd via Frontend Interface can themselves have
|
||||
multiple connections from one (or more) of its own remote clients. The MGMT
|
||||
Frontend Interface supports reresenting each of the remote clients for a given
|
||||
Frontend client(e.g. Netconf clients on a single Netconf server) as individual
|
||||
Frontend Client Sessions. So a single connection from a single Frontend Client
|
||||
can create more than one Frontend Client sessions.
|
||||
|
||||
Following are some of the management operations supported:
|
||||
- INIT_SESSION/CLOSE_SESSION: Create/Destroy a session. Rest of all the
|
||||
operations are supported only in the context of a specific session.
|
||||
- LOCK_DB/UNLOCK_DB: Lock/Unlock Management datastores/databases.
|
||||
- GET_CONFIG/GET_DATA: Retrieve configurational/operational data from a
|
||||
specific datastore/database.
|
||||
- SET_CONFIG/DELETE_CONFIG: Add/Modify/Delete specific data in a specific
|
||||
datastore/database.
|
||||
- COMMIT_CONFIG: Validate and/or apply the uncommited set of configurations
|
||||
from one configuration database to another.
|
||||
- Currently committing configurations from Candidate to Running database
|
||||
is only allowed, and not vice versa.
|
||||
|
||||
The exact set of message-based APIs are represented as Google Protobuf
|
||||
messages and can be found in the following file distributed with FRR codebase.
|
||||
|
||||
.. code-block:: frr
|
||||
|
||||
lib/mgmt.proto
|
||||
|
||||
The MGMT daemon implements a MGMT Frontend Server that opens a UNIX
|
||||
socket-based IPC channel on the following path to listen for incoming
|
||||
connections from all possible Frontend clients:
|
||||
|
||||
.. code-block:: frr
|
||||
|
||||
/var/run/frr/mgmtd_fe.sock
|
||||
|
||||
Each connection received from a Frontend client is managed and tracked
|
||||
as a MGMT Frontend adapter by the MGMT Frontend Adapter sub-component
|
||||
implemented by MGMTd.
|
||||
|
||||
To facilitate faster development/integration of Frontend clients with
|
||||
MGMT Frontend Interface, a C-based library has been developed. The API
|
||||
specification of this library can be found at:
|
||||
|
||||
.. code-block:: frr
|
||||
|
||||
lib/mgmt_fe_client.h
|
||||
|
||||
Following is a list of message types supported on the MGMT Frontend Interface:
|
||||
- SESSION_REQ<Client-Connection-Id, Destroy>
|
||||
- SESSION_REPLY<Client-Connection-Id, Destroy, Session-Id>
|
||||
- LOCK_DB_REQ <Session-Id, Database-Id>
|
||||
- LOCK_DB_REPLY <Session-Id, Database-Id>
|
||||
- UNLOCK_DB_REQ <Session-Id, Database-Id>
|
||||
- UNLOCK_DB_REPLY <Session-Id, Database-Id>
|
||||
- GET_CONFIG_REQ <Session-Id, Database-Id, Base-Yang-Xpath>
|
||||
- GET_CONFIG_REPLY <Session-Id, Database-Id, Base-Yang-Xpath, Yang-Data-Set>
|
||||
- SET_CONFIG_REQ <Session-Id, Database-Id, Base-Yang-Xpath, Delete, ...>
|
||||
- SET_CONFIG_REPLY <Session-Id, Database-id, Base-Yang-Xpath, ..., Status>
|
||||
- COMMIT_CONFIG_REQ <Session-Id, Source-Db-Id, Dest-Db-Id>
|
||||
- COMMIT_CONFIG_REPLY <Session-Id, Source-Db-id, Dest-Db-Id, Status>
|
||||
- GET_DATA_REQ <Session-Id, Database-Id, Base-Yang-Xpath>
|
||||
- GET_DATA_REPLY <Session-Id, Database-id, Base-Yang-Xpath, Yang-Data-Set>
|
||||
- REGISTER_NOTIFY_REQ <Session-Id, Database-Id, Base-Yang-Xpath>
|
||||
- DATA_NOTIFY_REQ <Database-Id, Base-Yang-Xpath, Yang-Data-Set>
|
||||
|
||||
Please refer to the MGMT Frontend Client Developers Reference and Guide
|
||||
(coming soon) for more details.
|
||||
|
||||
MGMTD Backend Interface
|
||||
=======================
|
||||
The MGMT Backend Interface is a bunch of message-based APIs that can be
|
||||
used by individual component daemons like BGPd, Staticd, Zebra to connect
|
||||
with MGMTd and utilize the new FRR Management Framework to let any Frontend
|
||||
clients to retrieve any operational data or manipulate any configuration data
|
||||
owned by the individual daemon component.
|
||||
|
||||
Like the MGMT Frontend Interface, the MGMT Backend Interface is is also
|
||||
comprised of the following:
|
||||
|
||||
- MGMT Backend Server (running on MGMT daemon)
|
||||
- MGMT Backend Adapter (running on MGMT daemon)
|
||||
- MGMT Backend client (running on Backend component daemons)
|
||||
|
||||
The MGMT Backend Client and MGMT Backend Adapter sub-component communicates
|
||||
using a specific set of message-based APIs.
|
||||
|
||||
The exact set of message-based APIs are represented as Google Protobuf
|
||||
messages and can be found in the following file distributed with FRR codebase.
|
||||
|
||||
.. code-block:: frr
|
||||
|
||||
lib/mgmt.proto
|
||||
|
||||
The MGMT daemon implements a MGMT Backend Server that opens a UNIX
|
||||
socket-based IPC channel on the following path to listen for incoming
|
||||
connections from all possible Backend clients:
|
||||
|
||||
.. code-block:: frr
|
||||
|
||||
/var/run/frr/mgmtd_be.sock
|
||||
|
||||
Each connection received from a Backend client is managed and tracked
|
||||
as a MGMT Backend adapter by the MGMT Backend Adapter sub-component
|
||||
implemented by MGMTd.
|
||||
|
||||
To facilitate faster development/integration of Backend clients with
|
||||
MGMTd, a C-based library has been developed. The API specification
|
||||
of this library can be found at:
|
||||
|
||||
.. code-block:: frr
|
||||
|
||||
lib/mgmt_be_client.h
|
||||
|
||||
Following is a list of message types supported on the MGMT Backend Interface:
|
||||
|
||||
- SUBSCRIBE_REQ <Req-Id, Base-Yang-Xpath, Filter-Type>
|
||||
- SUBSCRIBE_REPLY <Req-Id, Status>
|
||||
- TXN_REQ <Txn-Id, Create>
|
||||
- TXN_REPLY <Txn-Id, Status>
|
||||
- CREATE_CFGDATA_REQ <Txn-Id, Req-Id, Batch-Id, ConfigDataContents>
|
||||
- CREATE_CFGDATA_ERROR <Txn-Id, Req-Id, Batch-Id, Status>
|
||||
- VALIDATE_CFGDATA_REQ <Txn-Id, Batch-Id>
|
||||
- VALIDATE_CFGDATA_REPLY <Txn-Id, Batch-Id, Status, ErrorInfo>
|
||||
- APPLY_CFGDATA_REQ <Txn-Id, Batch-Id>
|
||||
- APPLY_CFGDATA_REPLY <Txn-Id, Batch-Id, Status, ErrorInfo>
|
||||
- GET_OPERDATA_REQ <Txn-Id, Base-Yang-Xpath, Filter-Type>
|
||||
- GET_OPERDATA_REPLY <Txn-Id, OperDataContents>
|
||||
|
||||
Please refer to the MGMT Backend Client Developers Reference and Guide
|
||||
(coming soon) for more details.
|
||||
|
||||
MGMTD Transaction Engine
|
||||
========================
|
||||
|
||||
The MGMT Transaction sub-component is the main brain of the MGMT daemon that
|
||||
takes management requests from one (or more) Frontend Client translates
|
||||
them into transactions and drives them to completion in co-oridination with
|
||||
one (or more) Backend client daemons involved in the request.
|
||||
|
||||
A transaction can be seen as a set of management procedures executed over
|
||||
the Backend Interface with one (or more) individual Backend component
|
||||
daemons, as a result of some management request initiated from a specific
|
||||
Frontend client session. These group of operations on the Backend Interface
|
||||
with one (or more) individual components involved should be executed without
|
||||
taking any further management requests from other Frontend client sessions.
|
||||
To maintain this kind of atomic behavior a lock needs to be acquired
|
||||
(sometimes implicitly if not explicitly) by the corresponding Frontend client
|
||||
session, on the various datastores/databases involved in the management request
|
||||
being executed. The same datastores/databases need to be unlocked when all
|
||||
the procedures have been executed and the transaction is being closed.
|
||||
|
||||
Following are some of the transaction types supported by MGMT:
|
||||
|
||||
- Configuration Transactions
|
||||
|
||||
- Used to execute management operations like SET_CONFIG and COMMIT_CONFIG
|
||||
that involve writing/over-writing the contents of Candidate and Running
|
||||
databases.
|
||||
- One (and only) can be created and be in-progress at any given time.
|
||||
- Once initiated by a specific Frontend Client session and is still
|
||||
in-progress, all subsequent SET_CONFIG and COMMIT_CONFIG operations
|
||||
from other Frontend Client sessions will be rejected and responded
|
||||
with failure.
|
||||
- Requires acquiring write-lock on Candidate (and later Running) databases.
|
||||
|
||||
- Show Transactions
|
||||
|
||||
- Used to execute management operations like GET_CONFIG and GET_DATA
|
||||
that involve only reading the contents of Candidate and Running
|
||||
databases (and sometimes real-time retrieval of operational data
|
||||
from individual component daemons).
|
||||
- Multiple instance of this transaction type can be created and be
|
||||
in-progress at any given time.
|
||||
- However, when a configuration transaction is currently in-progress
|
||||
show transaction can be initiated by any Frontend Client session.
|
||||
- Requires acquiring read-lock on Candidate and/or Running databases.
|
||||
- NOTE: Currently GET_DATA on Operational database is NOT supported. To
|
||||
be added in a future time soon.
|
||||
|
||||
MGMTD Configuration Rollback and Commit History
|
||||
===============================================
|
||||
|
||||
The MGMT daemon maintains upto 10 last configuration commit buffers
|
||||
and can rollback the contents of the Running Database to any of the
|
||||
commit-ids maintained in the commit buffers.
|
||||
|
||||
Once the number of commit buffers exceeds 10, the oldest commit
|
||||
buffer is deleted to make space for the latest commit. Also on
|
||||
rollback to a specific commit-id, buffer of all the later commits
|
||||
are deleted from commit record.
|
||||
|
||||
Configuration rollback is only allowed via VTYSH shell as of today
|
||||
and is not possible through the MGMT Frontend interface.
|
||||
|
||||
MGMT Configuration commands
|
||||
===========================
|
||||
|
||||
.. clicmd:: mgmt set-config XPATH VALUE
|
||||
|
||||
This command uses a SET_CONFIG request over the MGMT Frontend Interface
|
||||
for the specified xpath with specific value. This command is used for
|
||||
testing purpose only. But can be used to set configuration data from CLI
|
||||
using SET_CONFIG operations.
|
||||
|
||||
.. clicmd:: mgmt delete-config XPATH
|
||||
|
||||
This command uses a SET_CONFIG request (with delete option) over the
|
||||
MGMT Frontend Interface o delete the YANG data node at the given
|
||||
xpath unless it is a key-leaf node(in which case it is not deleted).
|
||||
|
||||
.. clicmd:: mgmt load-config FILE <merge|replace>
|
||||
|
||||
This command loads configuration in JSON format from the filepath specified,
|
||||
and merges or replaces the Candidate DB as per the option specified.
|
||||
|
||||
.. clicmd:: mgmt save-config <candidate|running> FILE
|
||||
|
||||
This command dumps the DB specified in the db-name into the file in JSON
|
||||
format. This command in not supported for the Operational DB.
|
||||
|
||||
.. clicmd:: mgmt commit abort
|
||||
|
||||
This command will abort any configuration present on the Candidate but not
|
||||
been applied to the Running DB.
|
||||
|
||||
.. clicmd:: mgmt commit apply
|
||||
|
||||
This command commits any uncommited changes in the Candidate DB to the
|
||||
Running DB. It also dumps a copy of the tree in JSON format into
|
||||
frr_startup.json.
|
||||
|
||||
.. clicmd:: mgmt commit check
|
||||
|
||||
This command validates the configuration but does not apply them to the
|
||||
Running DB.
|
||||
|
||||
.. clicmd:: mgmt rollback commit-id WORD
|
||||
|
||||
This command rolls back the Running Database contents to the state
|
||||
corresponding to the commit-id specified.
|
||||
|
||||
.. clicmd:: mgmt rollback last WORD
|
||||
|
||||
This command rolls back the last specified number of recent commits.
|
||||
|
||||
|
||||
MGMT Show commands
|
||||
==================
|
||||
|
||||
.. clicmd:: show mgmt backend-adapter all
|
||||
|
||||
This command shows the backend adapter information and the clients/daemons
|
||||
connected to the adapters.
|
||||
|
||||
.. clicmd:: show mgmt backend-yang-xpath-registry
|
||||
|
||||
This command shows which Backend adapters are registered for which YANG
|
||||
data subtree(s).
|
||||
|
||||
.. clicmd:: show mgmt frontend-adapter all [detail]
|
||||
|
||||
This command shows the frontend adapter information and the clients
|
||||
connected to the adapters.
|
||||
|
||||
.. clicmd:: show mgmt transaction all
|
||||
|
||||
Shows the list of transaction and bunch of information about the transaction.
|
||||
|
||||
.. clicmd:: show mgmt get-config [candidate|running] XPATH
|
||||
|
||||
This command uses the GET_CONFIG operation over the MGMT Frontend interface and
|
||||
returns the xpaths and values of the nodes of the subtree pointed by the <xpath>.
|
||||
|
||||
.. clicmd:: show mgmt get-data [candidate|operation|running] XPATH
|
||||
|
||||
This command uses the GET_DATA operation over the MGMT Frontend interface and
|
||||
returns the xpaths and values of the nodes of the subtree pointed by the <xpath>.
|
||||
Currenlty supported values for 'candidate' and 'running' only
|
||||
('operational' shall be supported in future soon).
|
||||
|
||||
.. clicmd:: show mgmt database-contents [candidate|operation|running] [xpath WORD] [file WORD] json|xml
|
||||
|
||||
This command dumps the subtree pointed by the xpath in JSON or XML format. If filepath is
|
||||
not present then the tree will be printed on the shell.
|
||||
|
||||
.. clicmd:: show mgmt commit-history
|
||||
|
||||
This command dumps details of upto last 10 commits handled by MGMTd.
|
|
@ -54,6 +54,7 @@ user_RSTFILES = \
|
|||
doc/user/flowspec.rst \
|
||||
doc/user/watchfrr.rst \
|
||||
doc/user/wecmp_linkbw.rst \
|
||||
doc/user/mgmtd.rst \
|
||||
# end
|
||||
|
||||
EXTRA_DIST += \
|
||||
|
|
|
@ -25,6 +25,7 @@ RUN source /src/alpine/APKBUILD.in \
|
|||
gzip \
|
||||
py-pip \
|
||||
rtrlib \
|
||||
protobuf-c-dev \
|
||||
&& pip install pytest
|
||||
RUN mkdir -p /pkgs/apk
|
||||
COPY . /src
|
||||
|
|
|
@ -5,6 +5,7 @@ RUN yum install -y rpm-build autoconf automake libtool make \
|
|||
readline-devel texinfo net-snmp-devel groff pkgconfig \
|
||||
json-c-devel pam-devel bison flex pytest c-ares-devel \
|
||||
python3-devel python3-sphinx libcap-devel systemd-devel \
|
||||
protobuf-c-devel \
|
||||
https://ci1.netdef.org/artifact/LIBYANG-LIBYANGV2/shared/build-2/CentOS-7-x86_64-Packages/libyang2-2.0.0.10.g2eb910e4-1.el7.x86_64.rpm \
|
||||
https://ci1.netdef.org/artifact/LIBYANG-LIBYANGV2/shared/build-2/CentOS-7-x86_64-Packages/libyang2-devel-2.0.0.10.g2eb910e4-1.el7.x86_64.rpm \
|
||||
https://ci1.netdef.org/artifact/RPKI-RTRLIB/shared/build-00146/CentOS-7-x86_64-Packages/librtr-0.8.0-1.el7.x86_64.rpm \
|
||||
|
|
|
@ -9,6 +9,7 @@ RUN dnf install --enablerepo=powertools -y rpm-build git autoconf pcre-devel \
|
|||
automake libtool make readline-devel texinfo net-snmp-devel pkgconfig \
|
||||
groff pkgconfig json-c-devel pam-devel bison flex python3-pytest \
|
||||
c-ares-devel python3-devel python3-sphinx libcap-devel platform-python-devel \
|
||||
protobuf-c-devel \
|
||||
https://ci1.netdef.org/artifact/LIBYANG-LIBYANGV2/shared/build-2/CentOS-8-x86_64-Packages/libyang2-2.0.0.10.g2eb910e4-1.el8.x86_64.rpm \
|
||||
https://ci1.netdef.org/artifact/LIBYANG-LIBYANGV2/shared/build-2/CentOS-8-x86_64-Packages/libyang2-devel-2.0.0.10.g2eb910e4-1.el8.x86_64.rpm \
|
||||
https://ci1.netdef.org/artifact/RPKI-RTRLIB/shared/build-00146/CentOS-7-x86_64-Packages/librtr-0.8.0-1.el7.x86_64.rpm \
|
||||
|
|
|
@ -7,7 +7,7 @@ ENV APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=DontWarn
|
|||
RUN apt-get update && \
|
||||
apt-get install -y libpcre3-dev apt-transport-https ca-certificates curl wget logrotate \
|
||||
libc-ares2 libjson-c3 vim procps libreadline7 gnupg2 lsb-release apt-utils \
|
||||
tini && rm -rf /var/lib/apt/lists/*
|
||||
libprotobuf-c-dev protobuf-c-compiler tini && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN curl -s https://deb.frrouting.org/frr/keys.asc | apt-key add -
|
||||
RUN echo deb https://deb.frrouting.org/frr $(lsb_release -s -c) frr-stable | tee -a /etc/apt/sources.list.d/frr.list
|
||||
|
|
|
@ -9,7 +9,7 @@ RUN apt update && \
|
|||
pkg-config libpam0g-dev libjson-c-dev bison flex python3-pip \
|
||||
libc-ares-dev python3-dev python3-sphinx \
|
||||
install-info build-essential libsnmp-dev perl libcap-dev \
|
||||
libelf-dev \
|
||||
libelf-dev libprotobuf-c-dev protobuf-c-compiler \
|
||||
sudo gdb iputils-ping time \
|
||||
python-pip net-tools iproute2 && \
|
||||
python3 -m pip install wheel && \
|
||||
|
|
|
@ -9,7 +9,7 @@ RUN apt update && \
|
|||
pkg-config libpam0g-dev libjson-c-dev bison flex python3-pip \
|
||||
libc-ares-dev python3-dev python3-sphinx \
|
||||
install-info build-essential libsnmp-dev perl \
|
||||
libcap-dev python2 libelf-dev \
|
||||
libcap-dev python2 libelf-dev libprotobuf-c-dev protobuf-c-compiler \
|
||||
sudo gdb curl iputils-ping time \
|
||||
lua5.3 liblua5.3-dev \
|
||||
net-tools iproute2 && \
|
||||
|
|
Loading…
Reference in a new issue