... | @@ -111,6 +111,27 @@ Once the startup is complete, Kea-netconf will install callbacks on specific par |
... | @@ -111,6 +111,27 @@ Once the startup is complete, Kea-netconf will install callbacks on specific par |
|
|
|
|
|
Kea will use [http://www.sysrepo.org/ Sysrepo] software suite to as a Netconf provider. Earlier attempts (see [https://www.isc.org/blogs/kea-and-netconf-towards-automated-configurability/ 2018 hackathon in London], [https://www.isc.org/blogs/ietf-hackathon-in-berlin-kea-and-yangnetconf/ 2016 hackathon in Berlin]) indicate the Sysrepo project is able to provide Netconf protocol interface, the capability to store YANG models, configuration that adheres to those models as well as programmable interface to Netconf.
|
|
Kea will use [http://www.sysrepo.org/ Sysrepo] software suite to as a Netconf provider. Earlier attempts (see [https://www.isc.org/blogs/kea-and-netconf-towards-automated-configurability/ 2018 hackathon in London], [https://www.isc.org/blogs/ietf-hackathon-in-berlin-kea-and-yangnetconf/ 2016 hackathon in Berlin]) indicate the Sysrepo project is able to provide Netconf protocol interface, the capability to store YANG models, configuration that adheres to those models as well as programmable interface to Netconf.
|
|
|
|
|
|
|
|
## 3.4 Choosing Sysrepo
|
|
|
|
|
|
|
|
Kea team has been looking at YANG and NETCONF for several years. The first experience we got was in 2016 during IETF hackathon in Berlin. At that time we were looking to do some fun experiment over a weekend. That's usually the goal of a hackathon - to try out something completely new and see what comes out of it. Back then the Sysrepo code was very unstable and was crashing left and right. But we met the people behind it and they were very responsive - fixing issue, explaining caveats and pointing us in the generally right direction.
|
|
|
|
|
|
|
|
Some years have passed, Sysrepo project grew and we got an official request from two customers to provide YANG/NETCONF for Kea. One of the customers was also co-funding the Sysrepo project and offered assistance from the Sysrepo engineering team if necessary.
|
|
|
|
|
|
|
|
Kea engineers are not experts in the YANG/NETCONF technology, so we tried to assess whether sysrepo is a reasonable choice. It was appealing for several reasons:
|
|
|
|
|
|
|
|
- we knew the code and had more or less working prototype
|
|
|
|
- there were many projects around Sysrepo - netopeer, libyang
|
|
|
|
- people involved in libyang and Sysrepo are active in netconf and netmod working groups in IETF. While ISC engineers don't really follow those groups, the involvement in standardization process is a good sign regarding code being updated and long term stability of the project.
|
|
|
|
- our friends at [FRR](https://github.com/FRRouting/frr) were adopting Sysrepo and they were talking about packaging Sysrepo dependencies
|
|
|
|
- we had good relationship with people behind Sysrepo project and could ask for help if there were some serious issues
|
|
|
|
- Sysrepo implements some pretty interesting concepts. For example: "One of the key features of sysrepo is no-single-point-of-failure design. Under normal conditions, Sysrepo client library communicates with sysrepo daemon, which handles all operations in the datastore. But for cases when sysrepo daemon is not running (e.g. it has not started / initialized yet, or it has crashed for whatever reason), the client library can do most of the data-access functionality by itself. With this approach we can guarantee, that any application will always be able to access its configuration."
|
|
|
|
|
|
|
|
There were also some drawbacks that we couldn't know about before we implemented the kea-netconf code:
|
|
|
|
|
|
|
|
- the dependencies for Sysrepo are notoriously difficult to install on older systems. Most of our developers used Ubuntu at that time, where the problem was not that apparent. The situation is expected to improve over time.
|
|
|
|
- Sysrepo does not seem to support RESTCONF yet. We are unsure whether RESTCONF will eventually replace NETCONF, becomes popular as two similar managing protocols or perhaps be forgotten. For the time being, the inquiries we got indicate people are more interested in NETCONF, but our sample set is pretty small.
|
|
|
|
- Sysrepo changes their API frequently. The build system, defines and sometimes parameters used in API are introduced in backward and forward incompatible ways. From our limited experience we observe some code stabilization, but there are still some new compilation issues when new Sysrepo version emerges.
|
|
|
|
|
|
# 4. Deployment scenarios
|
|
# 4. Deployment scenarios
|
|
|
|
|
|
In the context of implementing the config DB storage and netconf at least four deployment scenarios can be considered.
|
|
In the context of implementing the config DB storage and netconf at least four deployment scenarios can be considered.
|
... | | ... | |