forked from FRRouting/frr
-
Notifications
You must be signed in to change notification settings - Fork 12
Plugins: Sysrepo
Renato Westphal edited this page Sep 2, 2020
·
4 revisions
# apt-get install git cmake build-essential bison flex libpcre3-dev libev-dev \
libavl-dev libprotobuf-c-dev protobuf-c-compiler libcmocka0 \
libcmocka-dev doxygen libssl-dev libssl-dev libssh-dev
# apt-get install libyang0.16 libyang-dev
$ git clone https://github.com/sysrepo/sysrepo.git
$ cd sysrepo/
$ mkdir build; cd build
$ cmake -DCMAKE_BUILD_TYPE=Release -DGEN_LANGUAGE_BINDINGS=OFF .. && make
# make install
$ git clone https://github.com/CESNET/libnetconf2.git
$ cd libnetconf2/
$ mkdir build; cd build
$ cmake .. && make
# make install
$ git clone https://github.com/CESNET/Netopeer2.git
$ cd Netopeer2
$ cd server
$ mkdir build; cd build
$ cmake .. && make
# make install
Note: If make install
fails as it can't find libsysrepo.so.0.7
, then run ldconfig
and try again as it might not have updated the lib search path
Build and install FRR using the --enable-sysrepo
configure-time option.
Install the FRR YANG modules in the Sysrepo datastore:
# sysrepoctl --install /usr/local/share/yang/[email protected]
# sysrepoctl --install /usr/local/share/yang/frr-vrf.yang
# sysrepoctl --install /usr/local/share/yang/frr-interface.yang
# sysrepoctl --install /usr/local/share/yang/frr-route-types.yang
# sysrepoctl --install /usr/local/share/yang/frr-filter.yang
# sysrepoctl --install /usr/local/share/yang/frr-route-map.yang
# sysrepoctl --install /usr/local/share/yang/frr-isisd.yang
# sysrepoctl --install /usr/local/share/yang/frr-ripd.yang
# sysrepoctl --install /usr/local/share/yang/frr-ripngd.yang
# sysrepoctl -c frr-vrf --owner frr --group frr
# sysrepoctl -c frr-interface --owner frr --group frr
# sysrepoctl -c frr-route-types --owner frr --group frr
# sysrepoctl -c frr-filter --owner frr --group frr
# sysrepoctl -c frr-route-map --owner frr --group frr
# sysrepoctl -c frr-isisd --owner frr --group frr
# sysrepoctl -c frr-ripd --owner frr --group frr
# sysrepoctl -c frr-ripngd --owner frr --group frr
Start netopeer2-server:
# netopeer2-server -d &
Start the FRR daemons with the sysrepo module:
# isisd -M sysrepo --log=stdout
The following NETCONF scripts can be used to show and edit the FRR configuration: https://github.com/rzalamena/ietf-hackathon-brazil-201907/tree/master/netconf-scripts
Example:
# ./netconf-edit.py 127.0.0.1
# ./netconf-get-config.py 127.0.0.1
<?xml version="1.0" encoding="UTF-8"?><data xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" xmlns:nc="urn:ietf:params:xml:ns:netconf:base:1.0"><isis xmlns="http://frrouting.org/yang/isisd"><instance><area-tag>testnet</area-tag><is-type>level-1</is-type></instance></isis></data>
NOTE: the ncclient library needs to be installed first:
apt install -y python3-ncclient
The sysrepocfg tool can also be used to show/edit the FRR configuration. Example:
# sysrepocfg --format=json --import=frr-isisd.json --datastore=running frr-isisd
# sysrepocfg --format=json --export --datastore=running frr-isisd
{
"frr-isisd:isis": {
"instance": [
{
"area-tag": "testnet",
"is-type": "level-1"
}
]
}
}