<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>