<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<p><font face="monospace">Hi there,</font></p>
<p><font face="monospace">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:
<a class="moz-txt-link-freetext" href="https://kea.readthedocs.io/en/kea-2.1.6/arm/integrations.html?highlight=yang#yang-netconf">https://kea.readthedocs.io/en/kea-2.1.6/arm/integrations.html?highlight=yang#yang-netconf</a>.
--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:
<a class="moz-txt-link-freetext" href="https://kea.readthedocs.io/en/latest/arm/install.html?highlight=libyang#build-requirements">https://kea.readthedocs.io/en/latest/arm/install.html?highlight=libyang#build-requirements</a>.
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:
<a class="moz-txt-link-freetext" href="https://gitlab.isc.org/isc-projects/kea/-/issues/2143">https://gitlab.isc.org/isc-projects/kea/-/issues/2143</a>. 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:
<a class="moz-txt-link-freetext" href="https://gitlab.isc.org/isc-projects/kea/-/issues?scope=all&state=opened&label_name">https://gitlab.isc.org/isc-projects/kea/-/issues?scope=all&state=opened&label_name</a>[]=netconf.<br>
</font></p>
<p><font face="monospace">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.</font><font face="monospace"><br>
</font></p>
<p><font face="monospace">--<br>
Best regards!<br>
Andrei Pavel, ISC<br>
</font></p>
<p></p>
<div class="moz-cite-prefix">On 27/06/2022 19:47, ISC Kea wrote:<br>
</div>
<blockquote type="cite"
cite="mid:165634846915.7.17628510587361934553.49067858@8alias.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">
<div dir="ltr">
<div>Hello everyone and Kea developers :-),</div>
<div><br>
</div>
<div>I am new to ISC Kea. I am interested in building and
using ISC Kea with support for YANG and NETCONF.</div>
<div><br>
</div>
<div>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?</div>
<div>Are Kea developers working on this feature? Are there
plans to update and improve docuementation about this
feature?<br>
</div>
<div><br>
</div>
<div>I saw this YANG/NETCONF feature in ISC Kea documentation,
as well as in several blog posts:</div>
<div>* 2016: <a
href="https://www.isc.org/blogs/ietf-hackathon-in-berlin-kea-and-yangnetconf/"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">https://www.isc.org/blogs/ietf-hackathon-in-berlin-kea-and-yangnetconf/</a></div>
<div>* <span>14 Dec 2018: </span><a
href="https://www.isc.org/blogs/kea-1-5/" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">https://www.isc.org/blogs/kea-1-5/</a></div>
<div><br>
</div>
<div>I was NOT able to find any pre-built Kea package with
NETCONF/YANG support on the official ISC repo.<br>
</div>
<div><a href="https://cloudsmith.io/~isc/repos/"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">https://cloudsmith.io/~isc/repos/</a></div>
<div><br>
</div>
<div>Then I was inspired by this Kea post which was probably
written in 2019 (or before).</div>
<div><a
href="https://kb.isc.org/docs/building-a-kea-testbed-with-netconf"
target="_blank" moz-do-not-send="true"
class="moz-txt-link-freetext">https://kb.isc.org/docs/building-a-kea-testbed-with-netconf</a></div>
<div>This gives a step by step procedure to achieve using
YANG/NETCONF with ISC Kea.<br>
</div>
<div>It was a nice start, but this documentation seems
outdated and obsolete for some steps (example : daemon
sysrepod does not seem to exist anymore).</div>
<div><br>
</div>
<div>Then, I understood that in order to build ISC Kea from
source with option "<span style="font-family:monospace">--with-libyang
--with-sysrepo</span>", I need the following dependencies
(in that order):</div>
<div>libyang</div>
<div>libyang-cpp</div>
<div>sysrepo</div>
<div>sysrepo-cpp</div>
<div>zlib</div>
<div>libssh</div>
<div>libnetconf2</div>
<div>netopeer2</div>
<div><br>
</div>
<div>Most of those dependencies are found here: <a
href="https://github.com/CESNET/" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">https://github.com/CESNET/</a>.</div>
<div><br>
</div>
<div>Currently, I am working on building each of the previous
components (libyang, libyang-cpp, sysrepo, sysrepo-cpp,
zlib, libssh, libnetconf2, netopeer2).</div>
<div>I do that by using a multi-stage build in a containeur
with "podman build".</div>
<div>Each stage I build a component and reuse it in the next
stage.<br>
</div>
<div><br>
</div>
<div>My current biggest struggle is to make sure all those
dependencies are at the right version.</div>
<div>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.</div>
<div>But I was able to install the proper version of CMake.</div>
<div><br>
</div>
<div>Then I needed C++ packages (for "libyang-cpp" and
"sysrepo-cpp", docktest or trompeloeil).</div>
<div>I install them with conan C++ package manager.</div>
<div><br>
</div>
<div>But even with these precautions, I was still missing some
things.</div>
<div>For example, "libyang-cpp" were crashing, probably
because I was not using the devel branch but a precise TAG.</div>
<div>Or later, the Kea build ./configure script was not able
to find "sysrepo-cpp", even though it was build successfuly
(I think).<br>
</div>
<div><br>
</div>
<div>Therefore, I need some guidances about the support of
NETCONF in Kea.<br>
</div>
<div><br>
</div>
<div>Thank you for your time reading this post. I hope you can
help me understand a few thing!</div>
<div>Do you have a Slack or a chat?<br>
</div>
<div><br>
</div>
<div>--</div>
<div>A Kea (new) user<br>
</div>
<div><br>
</div>
<div>PS: Do not worry about the strange email adresses, I am
simply using an email alias handler from SimpleLogin: <a
href="https://simplelogin.io/" target="_blank"
moz-do-not-send="true" class="moz-txt-link-freetext">https://simplelogin.io/</a>.</div>
</div>
</div>
<br>
<fieldset class="moz-mime-attachment-header"></fieldset>
</blockquote>
</body>
</html>