Kea merge requestshttps://gitlab.isc.org/isc-projects/kea/-/merge_requests2021-08-05T17:57:28Zhttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1333Resolve "Implement TKEY exchange"2021-08-05T17:57:28ZRazvan BecheriuResolve "Implement TKEY exchange"Closes #1960Closes #1960kea1.9.10Razvan BecheriuRazvan Becheriuhttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1353Resolve "make install doesn't work with netconf enabled"2021-07-30T17:22:22ZAndrei Pavelandrei@isc.orgResolve "make install doesn't work with netconf enabled"Closes #2008Closes #2008kea1.9.10Andrei Pavelandrei@isc.orgAndrei Pavelandrei@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1345Resolve "Changes for Kea 1.9.10 release"2021-07-28T05:09:43ZMichal NowikowskiResolve "Changes for Kea 1.9.10 release"Closes #1998Closes #1998kea1.9.10Michal NowikowskiMichal Nowikowskihttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1344Changes for Kea 1.9.10 release2021-07-28T04:59:27ZMichal NowikowskiChanges for Kea 1.9.10 releaseCloses #1998Closes #1998kea1.9.10https://gitlab.isc.org/isc-projects/kea/-/merge_requests/1325Resolve "Move some parts of d2 into a new library"2021-07-26T17:14:22ZFrancis DupontResolve "Move some parts of d2 into a new library"Part of #1963Part of #1963kea1.9.10Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1338Resolve "bump up lib versions for the release 1.9.10"2021-07-26T16:47:53ZRazvan BecheriuResolve "bump up lib versions for the release 1.9.10"Closes #1984Closes #1984kea1.9.10Razvan BecheriuRazvan Becheriuhttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1334Resolve "shorten the length of the server tag."2021-07-26T14:43:07ZMarcin SiodelskiResolve "shorten the length of the server tag."Closes #1976Closes #1976kea1.9.10Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1339Resolve "distcheck failure after !1270 merge"2021-07-26T14:11:41ZTomek MrugalskiResolve "distcheck failure after !1270 merge"Closes #1991Closes #1991kea1.9.10Tomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1317[#453] Bison update 20212021-07-26T13:20:28ZTomek Mrugalski[#453] Bison update 2021Closes #453. This is 2021 attempt, earlier attempt was !226.Closes #453. This is 2021 attempt, earlier attempt was !226.kea1.9.10Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1337[#1077] Log UT failures in YANG and NETCONF2021-07-26T07:15:09ZTomek Mrugalski[#1077] Log UT failures in YANG and NETCONFReimplemented !1328 (was easier to do it from scratch than solve a massive conflict).
Optional of #1077
Closes #1556Reimplemented !1328 (was easier to do it from scratch than solve a massive conflict).
Optional of #1077
Closes #1556kea1.9.10Tomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1336Resolve "No rule to make target 'utils/check-hashes.sh'"2021-07-23T17:18:05ZAndrei Pavelandrei@isc.orgResolve "No rule to make target 'utils/check-hashes.sh'"Closes #1987
EXTRA_DIST needed to be added.Closes #1987
EXTRA_DIST needed to be added.kea1.9.10Andrei Pavelandrei@isc.orgAndrei Pavelandrei@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1332document sysrepo 1.x2021-07-23T11:54:11ZAndrei Pavelandrei@isc.orgdocument sysrepo 1.xPart of #1077Part of #1077kea1.9.10Tomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1329migrate to sysrepo 1.42021-07-23T10:53:10ZAndrei Pavelandrei@isc.orgmigrate to sysrepo 1.4Main part of #1077
This branch now compiles and passes unit tests when compiled with sysrepo v1.4.140 + libyang v1.0.240. Here's what changed since sysrepo v0.7.9:
##### Architecture
* the `sysrepod` daemon no longer exists. The code t...Main part of #1077
This branch now compiles and passes unit tests when compiled with sysrepo v1.4.140 + libyang v1.0.240. Here's what changed since sysrepo v0.7.9:
##### Architecture
* the `sysrepod` daemon no longer exists. The code that it was running now lives inside Kea and resources that were in-memory in sysrepod are now either in-memory in kea-netconf, or - more impactfully - they are external resources
* One such external resource is shared memory. What were previously in-memory mutexes are now system-wide semaphores that reside in /dev/shm. These are persistent over reboots. A locked semaphore can remain locked if kea-netconf doesn't clean up after itself which could potentially happen in a crash. This would then lead on kea-netconf not being able to start again because a required resource is locked. The recommended workaround (https://github.com/sysrepo/sysrepo/issues?q=shm_clean) for this is to run "make shm_clean" in the sysrepo sources whenever you find yourself in this situation. What this does can be easily extracted from their `CMakeLists.txt`:
```
# phony target for clearing sysrepo SHM
add_custom_target(shm_clean
COMMAND rm -rf /dev/shm/sr_*
COMMAND rm -rf /dev/shm/srsub_*
COMMENT "Removing all volatile SHM files prefixed with \"sr\""
)
```
You can create your own script that does
```
rm -rf /dev/shm/sr_*
rm -rf /dev/shm/srsub_*
```
so that you don't depend on sysrepo sources. They claim in one of their Github issues that this should not occur in production. This is a reasonable proposition. We foolproof Kea against crashes anyway. And that's the only thing that could cause this lock leak. Apart from sudden power outages too...
* Before, you could set an element, immediately do a get on it afterwards, and you would see the changed value. That's what most unit tests relied on. Now you have to `Session::apply_changes()` (previously `Session::commit()`) before the same session can see the data. In other words, sessions have the same visibility even with regards to their own changes. This seems like a bi-product of getting rid of sysrepod.
* The above point forces us to clean up after ourselves in unit tests. Since committed changes are persistent over different unit tests, even in the candidate datastore. A `delItem()` is done on the toplevel node in `SetUp` and on `TearDown` and the test fixtures had to be rewritten so that the model is fed to them on construction not at a later time. But they're prettier now.
##### Compilation
* `libSysrepo-cpp.so` has been renamed to `libsysrepo-cpp.so`. As a result, the `-lsysrepo-cpp` flag needs to be passed now instead of `-lSysrepo-cpp`.
* `-pthread -lpcre -lev -lavl -lprotobuf-c` seem to not be required anymore
* `-lyang-cpp` is an additional requirement
##### Code changes
* the `sr_module_install_subscribe()` function has been removed. We were using to log module installations. Subscribing to module installations can now be done using the notifications API instead - is what I gather from [their three-word line documentation](https://github.com/sysrepo/sysrepo/blob/master/CHANGES#L22), but I have not been able to do so. This feature has been dropped.
* 0.x had a `Callback` class that you would use to subscribe to events. The `Callback` class has been removed and the subscription functions now accept a function. They use a lambda in their examples (https://github.com/sysrepo/sysrepo/blob/v1.4.140/bindings/cpp/examples/cpp_application_changes_example.cpp#L140-L169).
* New event `SR_EV_UPDATE` that allows you to modify configuration mid-flight.
* `SR_EV_VERIFY` has been renamed to `SR_EV_CHANGE`.
* `SR_EV_APPLY` has been renamed to `SR_EV_DONE`.
* `sr_commit` has been renamed to `sr_apply_changes`.
* `sr_notif_event_t` is now `sr_event_t`.
* Config changes come with an xpath to the modified element. We still don't use it.
#### Changes in how Kea reacts with Sysrepo:
* When running unit tests, `/dev/shm/sr*` and the sysrpeo repository need to be owned by the user running the unit tests. Since some unit tests fail, if you run as root, during this time, you should have the above resources owned to the non-root account that is running the unit tests.
* When running in conjunction with kea-dhcp[46], if you run as a non-root user, kea-netconf will fail to write to the unix socket that has kea-dhcp[46] at the other end. So the above resources need to be chowned to root again.
* An exception is thrown now when setting a container via the config API. Only leaves can be set and their preceeding containers are set automatically. Same for deleting.kea1.9.10Tomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1331Resolve "Document client classes in the config backend"2021-07-23T07:04:11ZMarcin SiodelskiResolve "Document client classes in the config backend"Closes #1977Closes #1977kea1.9.10Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1330[#1972] DHCP servers should fetch client classes from the config backend2021-07-22T14:52:47ZMarcin Siodelski[#1972] DHCP servers should fetch client classes from the config backendCloses #1972Closes #1972kea1.9.10Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1323[#1928] DHCPv6 MySQL Config Backend Implementation2021-07-21T16:48:09ZMarcin Siodelski[#1928] DHCPv6 MySQL Config Backend ImplementationThe CB API exposes a couple new API calls to support getting, adding and
deleting client classes in DHCPv6.
Closes #1928The CB API exposes a couple new API calls to support getting, adding and
deleting client classes in DHCPv6.
Closes #1928kea1.9.10Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1320[#1928] DHCPv4 MySQL Config Backend Implementation2021-07-21T11:12:11ZMarcin Siodelski[#1928] DHCPv4 MySQL Config Backend ImplementationImplements DHCPv4 MySQL Config Backend (#1928).Implements DHCPv4 MySQL Config Backend (#1928).kea1.9.10Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1326Resolve "GSS-TSIG: Implement configuration with config examples"2021-07-16T00:38:46ZFrancis DupontResolve "GSS-TSIG: Implement configuration with config examples"Part of #1950Part of #1950kea1.9.10Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1321Resolve "Move some parts of d2 into a new library"2021-07-10T07:25:09ZFrancis DupontResolve "Move some parts of d2 into a new library"Part of #1963Part of #1963kea1.9.10Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/merge_requests/1319Resolve "use cryptolink RNG for qid"2021-07-09T17:19:24ZFrancis DupontResolve "use cryptolink RNG for qid"Closes #1957Closes #1957kea1.9.10Francis DupontFrancis Dupont