Kea merge requestshttps://gitlab.isc.org/isc-projects/kea/-/merge_requests2022-10-17T20:19:05Zhttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1822[#2220] Fix syntax and add a note2022-10-17T20:19:05ZDan Theisen[#2220] Fix syntax and add a noteThis is a simple syntax fix for a list, and adds a clarifying note to the Quickstart.This is a simple syntax fix for a list, and adds a clarifying note to the Quickstart.kea2.3.2Dan TheisenDan Theisenhttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1821Resolve "fill memfile v6 BLQ tables"2022-11-16T22:54:37ZFrancis DupontResolve "fill memfile v6 BLQ tables"Closes #2596 #huge-sorryCloses #2596 #huge-sorrykea2.3.2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1820Resolve "Improve lease extended info"2022-10-20T11:50:57ZFrancis DupontResolve "Improve lease extended info"Closes #2595 #huge-sorryCloses #2595 #huge-sorrykea2.3.2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1819hammer.py: ldconfig after make install2022-10-13T16:32:40ZAndrei Pavelandrei@isc.orghammer.py: ldconfig after make installCloses #2539.
tarball-system-tests were failing with:
```
|forge-client-v4 00:44:28.069691| [172.28.0.31] out: /usr/local/sbin/kea-dhcp4: error while loading shared libraries: libkea-dhcpsrv.so.81: cannot open shared object file: No su...Closes #2539.
tarball-system-tests were failing with:
```
|forge-client-v4 00:44:28.069691| [172.28.0.31] out: /usr/local/sbin/kea-dhcp4: error while loading shared libraries: libkea-dhcpsrv.so.81: cannot open shared object file: No such file or directory
|forge-client-v4 00:44:28.069714| [172.28.0.31] out: INFO/keactrl: Starting /usr/local/sbin/kea-ctrl-agent -c /usr/local/etc/kea/kea-ctrl-agent.conf
|forge-client-v4 00:44:28.069728| [172.28.0.31] out: /usr/local/sbin/kea-ctrl-agent: error while loading shared libraries: libkea-process.so.52: cannot open shared object file: No such file or directory
```
`ldconfig` makes the binaries aware of the location of their libraries.
Accidentally tested it in kea-dev: https://jenkins.aws.isc.org/job/kea-dev/job/tarball-system-tests/692/kea2.3.2Andrei Pavelandrei@isc.orgAndrei Pavelandrei@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1818Resolve "Implement V6 Memfile BLQ query functions"2022-10-18T20:59:52ZFrancis DupontResolve "Implement V6 Memfile BLQ query functions"Close #2585Close #2585kea2.3.2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1816Resolve "reclaimLeaseInDatabase must clear the user context."2022-10-12T21:57:22ZFrancis DupontResolve "reclaimLeaseInDatabase must clear the user context."Closes #2588Closes #2588kea2.3.2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1814Resolve "reservation-get-page command result for RADIUS backend"2022-10-18T08:49:03ZFrancis DupontResolve "reservation-get-page command result for RADIUS backend"Part of #2566Part of #2566kea2.3.2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1813[#2220] Add ChangeLog entry and documentation2022-10-17T13:35:25ZDan Theisen[#2220] Add ChangeLog entry and documentationThis provides documentation for the changes introduced in kea-packaging for #2220
Closes #2220This provides documentation for the changes introduced in kea-packaging for #2220
Closes #2220kea2.3.2Dan TheisenDan Theisenhttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1812Resolve "Fix ISC user context entry multiple and incompatible uses"2022-10-15T18:46:33ZFrancis DupontResolve "Fix ISC user context entry multiple and incompatible uses"Part of #2587Part of #2587kea2.3.2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1811migrate kea-netconf to libyang2 and sysrepo22022-10-24T17:01:57ZAndrei Pavelandrei@isc.orgmigrate kea-netconf to libyang2 and sysrepo2Part of #2311
This MR contains minimal changes to make Kea compile and function with libyang2 and sysrepo2. It mostly contains renames and logic adjustments. Here's a list:
* `S_Connection` -> `Connection`
* `S_Context` -> `Context`
* `...Part of #2311
This MR contains minimal changes to make Kea compile and function with libyang2 and sysrepo2. It mostly contains renames and logic adjustments. Here's a list:
* `S_Connection` -> `Connection`
* `S_Context` -> `Context`
* `S_Module` -> `Module`
* `S_Session` -> `Session`
* `S_Val` -> `DataNode` (when it retrieves data from Sysrepo) or `string` (when pushing data to Sysrepo)
* `sr_error_t` -> `ErrorCode`
* `sr_ev_notif_type_t` -> `NotificationType`
* `sr_event_t` -> `Event`
* `sr_subscr_options_t` -> `SubscribeOptions`
* `sr_type_t` -> `LeafBaseType`
* `sysrepo_exception` -> `Error`
* `Session::apply_changes` -> `Session::applyChanges`
* `Session::delete_item` -> `Session::deleteItem`
* `Session::get_context`-> `Session::getContext`
* `Session::set_item` -> `Session::setItem`
* Removed `getValuesFromItems()`. `getItem()` should be able to retrieve any type of YANG node now.
* Removed `YangRepr::validate()` and `Session::validate()`. This function has been removed from the C++ API. It is marked as sensitive in a comment in C code. That's probably why it's not offered to third-parties.
* Removed the `TranslatorBasicTest::valueFrom` test. We cannot build a `DataNode` anymore to pass to `TranslatorBasic::value()`. The code that was tested with that test should be sufficiently tested as part of other tests that work with a real YANG module.
*
There are `TODOs` and other unoptimized code that I'd like to deal with in another issue. The point of this one was strictly the migration.
These are the commits:
* [x] 3a5b18b7d058815f205fcb9711f52c14f3533dae migrate autoconf to libyang2 and sysrepo2
* [x] 0928f2def11de1d7192c2d05b4b59dbc2a25bf3b detect C++20 in autoconf
* And enforce -std=c++20 when building
`--with-libyang-cpp` or `--with-sysrepo-cpp`.
* [x] 044747476bee9dfa8468d8e5f6b9379278641abe fix errors caused by the C++20 'requires' keyword
* [x] c8fa5314a2ece231d2586f91faf63c8336b35c71 fix variable shadowing
<details><pre>
adaptor_config.cc:314:29: warning: declaration of ‘pools’ shadows a previous local [-Wshadow]
314 | ConstElementPtr pools = subnet->get("pd-pools");
| ^~~~~
adaptor_config.cc:303:25: note: shadowed declaration is here
303 | ConstElementPtr pools = subnet->get("pools");
| ^~~~~
translator_host.cc: In member function ‘isc::data::ElementPtr isc::yang::TranslatorHost::getHostKea(const std::string&)’:
translator_host.cc:89:25: warning: declaration of ‘hostname’ shadows a previous local [-Wshadow]
89 | ConstElementPtr hostname = getItem(xpath + "/server-hostname");
| ^~~~~~~~
translator_host.cc:57:21: note: shadowed declaration is here
57 | ConstElementPtr hostname = getItem(xpath + "/hostname");
| ^~~~~~~~
translator_host.cc: In member function ‘void isc::yang::TranslatorHost::setHostKea(const std::string&, isc::data::ConstElementPtr)’:
translator_host.cc:165:25: warning: declaration of ‘hostname’ shadows a previous local [-Wshadow]
165 | ConstElementPtr hostname = elem->get("server-hostname");
| ^~~~~~~~
translator_host.cc:124:21: note: shadowed declaration is here
124 | ConstElementPtr hostname = elem->get("hostname");
</pre></details>
* [x] 284a36fe67abcb533fd644c588a29716fc63317e fix deprecated capture of 'this' in C++20
<details><pre>
In file included from readwrite_mutex_unittest.cc:9:
../../../../src/lib/util/readwrite_mutex.h: In lambda function:
../../../../src/lib/util/readwrite_mutex.h:57:25: warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated]
57 | gate1_.wait(lk, [=]() { return (!writeEntered()); });
| ^
../../../../src/lib/util/readwrite_mutex.h:57:25: note: add explicit ‘this’ or ‘*this’ capture
../../../../src/lib/util/readwrite_mutex.h: In lambda function:
../../../../src/lib/util/readwrite_mutex.h:60:25: warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated]
60 | gate2_.wait(lk, [=]() { return (readers() == 0); });
| ^
../../../../src/lib/util/readwrite_mutex.h:60:25: note: add explicit ‘this’ or ‘*this’ capture
../../../../src/lib/util/readwrite_mutex.h: In lambda function:
../../../../src/lib/util/readwrite_mutex.h:77:25: warning: implicit capture of ‘this’ via ‘[=]’ is deprecated in C++20 [-Wdeprecated]
77 | gate1_.wait(lk, [=]() { return (state_ < MAX_READERS); });
| ^
../../../../src/lib/util/readwrite_mutex.h:77:25: note: add explicit ‘this’ or ‘*this’ capture
</pre></details>
* [x] 88571e4ffcce99838b843f90dea5d80e13b5a2c9 migrate src/lib/yang to libyang2 and sysrepo2
* [x] ac50d4bc385f7bd022db505d1709ece8b79bfdcb migrate src/bin/netconf to libyang2 and sysrepo2
* [x] 5d57e0e62764461cbc93dafcc67b41e617729c62 retouch the NETCONF developer guide
* [x] ab86e912067d6b3bdd843c43b1494965423c6ad5 update NETCONF documentation
* [x] ef74025777f22a4c564532fb2024f70277fa3010 hammer.py now installs libyang2 and sysrepo2
* Also adds the `--ignore-errors-for`. I wanted to use it in Jenkins, but I ended up not using it and hardcoding the list of systems that cannot build Kea with NETCONF using default packages in the Jenkinsfile. So I only left it for the work I put into it.
* [x] 754d10e3ee2a751441dac3bd493b20f69e9d0cb5 rename AX_SYSREPO to AX_NETCONF
* [x] 065794ce207931656f47efc8d18cdd3a48f8d499 autoconf: include <utility> when checking for boost headers
<details><pre>
Solves this error on some systems:
In file included from /usr/include/boost/asio.hpp:23,
from conftest.cpp:75:
/usr/include/boost/asio/awaitable.hpp: In constructor 'boost::asio::awaitable<T, Executor>::awaitable(boost::asio::awaitable<T, Executor>&&)':
/usr/include/boost/asio/awaitable.hpp:68:19: error: 'exchange' is not a member of 'std'; did you mean 'std::__atomic_impl::exchange'?
68 | : frame_(std::exchange(other.frame_, nullptr))
| ^~~~~~~~
In file included from /usr/include/c++/12/bits/shared_ptr_atomic.h:33,
from /usr/include/c++/12/memory:78,
from /usr/include/boost/asio/associated_allocator.hpp:19,
from /usr/include/boost/asio.hpp:20:
/usr/include/c++/12/bits/atomic_base.h:976:7: note: 'std::__atomic_impl::exchange' declared here
976 | exchange(_Tp* __ptr, _Val<_Tp> __desired, memory_order __m) noexcept
| ^~~~~~~~
</pre></details>
* [x] f58feb6376a3d85d8c7cf763ad12a0b292a30aba fix ERROR: unbound variable in xml_reporting_test_lib.sh
* `/tmp/workspace/kea-manual/ut-extended/src/lib/testutils/xml_reporting_test_lib.sh: line 142: ERROR: unbound variable`
* [x] 7b85eb29fc1291cd0a19cadc63f640b3936fc6c3 add ChangeLog entry
* [x] 35b73cb460c89c28237ece059d5ecc2b669bd0e9 ax_find_library: add -L if pkg-config doesn't
* Solves a problem in RHEL where -L${libdir} is missing from `pkg-config --libs`.
#huge-sorrykea2.3.2Andrei Pavelandrei@isc.orgAndrei Pavelandrei@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1810Resolve "Create Memfile V4 indexes for BLQ"2023-01-26T17:13:29ZFrancis DupontResolve "Create Memfile V4 indexes for BLQ"Related to #2586Related to #2586kea2.3.2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1809Resolve "Create TcpListener class hierarchy from HttpListener classes"2022-11-10T19:51:45ZThomas MarkwalderResolve "Create TcpListener class hierarchy from HttpListener classes"Closes #2583 #huge-sorryCloses #2583 #huge-sorrykea2.3.2Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1808Resolve "Create Memfile V6 cross-reference multi-index container for BLQ"2022-10-12T15:49:30ZFrancis DupontResolve "Create Memfile V6 cross-reference multi-index container for BLQ"Closes #2584Closes #2584kea2.3.2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1807Resolve "Extended info store needs to store explict relay sub-option values f...2022-10-04T14:23:58ZFrancis DupontResolve "Extended info store needs to store explict relay sub-option values for Bulk LeaseQuery"Closes #2573Closes #2573kea2.3.2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1806Resolve "Request for functionality expire-on-release"2022-11-16T13:38:13ZRazvan BecheriuResolve "Request for functionality expire-on-release"Closes #2548
#huge-sorryCloses #2548
#huge-sorrykea2.3.2Razvan BecheriuRazvan Becheriuhttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1805Resolve "Create definitions for RAI (sub-)options"2022-10-18T17:26:55ZFrancis DupontResolve "Create definitions for RAI (sub-)options"Closes #2357Closes #2357kea2.3.2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1804Resolve "Move http::HttpThreadPool to asiolink::IoServiceThreadPool"2022-10-03T19:38:45ZThomas MarkwalderResolve "Move http::HttpThreadPool to asiolink::IoServiceThreadPool"Closes #2581Closes #2581kea2.3.2Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1803Resolve "Bump version in configure.ac to 2.3.2-git"2022-09-28T14:03:57ZMarcin GodzinaResolve "Bump version in configure.ac to 2.3.2-git"Closes #2580Closes #2580kea2.3.2Marcin GodzinaMarcin Godzinahttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1802Resolve "update release checklist"2022-09-29T08:56:54ZMarcin GodzinaResolve "update release checklist"Closes #2578Closes #2578kea2.3.2Marcin GodzinaMarcin Godzinahttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1796Resolve "Add feature to ignore RAI Link Selection suboption for subnet select...2022-10-11T08:14:45ZDan TheisenResolve "Add feature to ignore RAI Link Selection suboption for subnet selection"Closes #2543Closes #2543kea2.3.2Dan TheisenDan Theisen