[kea-dev] Kea YANG NETCONF support & build from source

Andrei Pavel andrei at isc.org
Mon Jun 27 19:32:35 UTC 2022


Hi there,

Kea currently supports libyang1 and the associated sysrepo version. You 
can find exact versions and instructions on how to install them from 
sources in the Kea Administrator's Manual: 
https://kea.readthedocs.io/en/kea-2.1.6/arm/integrations.html?highlight=yang#yang-netconf. 
--with-libyang and --with-sysrepo need to point to the respective 
installations, or they can be passed as-is if libyang and sysrepo were 
installed in their default locations, without having a prefix set at 
build time as mentioned here: 
https://kea.readthedocs.io/en/latest/arm/install.html?highlight=libyang#build-requirements. 
Be careful if compilation is seemingly successful. There is currently a 
bug that causes Kea to not report an error if there is a problem with 
the dependencies, you can follow it here: 
https://gitlab.isc.org/isc-projects/kea/-/issues/2143. Until that gets 
fixed, look at config.report after running ./configure to check if 
libyang and sysrepo were succesfully compiled in. If they were not, 
check config.log for a meaningful error. You can check other known 
issues by following the "netconf" label in Gitlab: 
https://gitlab.isc.org/isc-projects/kea/-/issues?scope=all&state=opened&label_name[]=netconf.

We try to stay compatible with all other dependencies as they are 
released and made available by various operating systems. libyang and 
sysrepo are not readily packaged by all supported OSs and if they are, 
the versions vary significantly, along with their APIs that Kea uses. 
For that reason, although not impossible, it's difficult for Kea to 
support all versions and also for Kea to be packaged with these 
dependencies, so we proceed in increments until the situation becomes 
more stable.

--
Best regards!
Andrei Pavel, ISC

On 27/06/2022 19:47, ISC Kea wrote:
> Hello everyone and Kea developers :-),
>
> I am new to ISC Kea. I am interested in building and using ISC Kea 
> with support for YANG and NETCONF.
>
> My first questions: is it still a thing in 2022? Is it still relevant? 
> Is the support of NETCONF/YANG still on the roadmap of Kea?
> Are Kea developers working on this feature? Are there plans to update 
> and improve docuementation about this feature?
>
> I saw this YANG/NETCONF feature in ISC Kea documentation, as well as 
> in several blog posts:
> * 2016: 
> https://www.isc.org/blogs/ietf-hackathon-in-berlin-kea-and-yangnetconf/
> * 14 Dec 2018: https://www.isc.org/blogs/kea-1-5/
>
> I was NOT able to find any pre-built Kea package with NETCONF/YANG 
> support on the official ISC repo.
> https://cloudsmith.io/~isc/repos/
>
> Then I was inspired by this Kea post which was probably written in 
> 2019 (or before).
> https://kb.isc.org/docs/building-a-kea-testbed-with-netconf
> This gives a step by step procedure to achieve using YANG/NETCONF with 
> ISC Kea.
> It was a nice start, but this documentation seems outdated and 
> obsolete for some steps (example : daemon sysrepod does not seem to 
> exist anymore).
>
> Then, I understood that in order to build ISC Kea from source with 
> option "--with-libyang --with-sysrepo", I need the following 
> dependencies (in that order):
> libyang
> libyang-cpp
> sysrepo
> sysrepo-cpp
> zlib
> libssh
> libnetconf2
> netopeer2
>
> Most of those dependencies are found here: https://github.com/CESNET/.
>
> Currently, I am working on building each of the previous components 
> (libyang, libyang-cpp, sysrepo, sysrepo-cpp, zlib, libssh, 
> libnetconf2, netopeer2).
> I do that by using a multi-stage build in a containeur with "podman 
> build".
> Each stage I build a component and reuse it in the next stage.
>
> My current biggest struggle is to make sure all those dependencies are 
> at the right version.
> I also struggled with the version of CMake. Example : "libyang-cpp" 
> need a version of CMake that is newer than the one on the Debian apt 
> mirror.
> But I was able to install the proper version of CMake.
>
> Then I needed C++ packages (for "libyang-cpp" and "sysrepo-cpp", 
> docktest or trompeloeil).
> I install them with conan C++ package manager.
>
> But even with these precautions, I was still missing some things.
> For example, "libyang-cpp" were crashing, probably because I was not 
> using the devel branch but a precise TAG.
> Or later, the Kea build ./configure script was not able to find 
> "sysrepo-cpp", even though it was build successfuly (I think).
>
> Therefore, I need some guidances about the support of NETCONF in Kea.
>
> Thank you for your time reading this post. I hope you can help me 
> understand a few thing!
> Do you have a Slack or a chat?
>
> --
> A Kea (new) user
>
> PS: Do not worry about the strange email adresses, I am simply using 
> an email alias handler from SimpleLogin: https://simplelogin.io/.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/kea-dev/attachments/20220627/0189f1c0/attachment-0001.htm>


More information about the kea-dev mailing list