Kea issueshttps://gitlab.isc.org/isc-projects/kea/-/issues2018-10-24T13:12:45Zhttps://gitlab.isc.org/isc-projects/kea/-/issues/130Provide sample ('complete') json configuration files with all the keys presen...2018-10-24T13:12:45ZCathy AlmondProvide sample ('complete') json configuration files with all the keys present, demonstrating their usageA Support customer asked (in ticket https://support.isc.org/Ticket/Display.html?id=13388):
```
I would like to have a complete json configuration file with all the "keys" present. Is this something you can help me with?
i have searched...A Support customer asked (in ticket https://support.isc.org/Ticket/Display.html?id=13388):
```
I would like to have a complete json configuration file with all the "keys" present. Is this something you can help me with?
i have searched but not found a complete configuration for kea 1.3 & 1.4
```
The engineering response was to craft a v4 configuration containing all keys or almost all keys. It comes with the following warning:
`Note that this configuration may not be valid, even though it is valid JSON, because usually we don't specify all keys. It is meant to be an example of what parameters can be specified at what level.`
This feature request is to formalise the need for such a document, and to extend it to cover other areas of Kea Configuration, starting with v6, and potentially extending to the control agent.
Meanwhile, here is what was generated for v4:
```
{
"Dhcp4": {
"next-server": "192.0.2.123",
"boot-file-name": "/dev/null",
"client-classes": [
{
"boot-file-name": "",
"name": "phones_server1",
"next-server": "0.0.0.0",
"option-data": [],
"option-def": [],
"server-hostname": "",
"test": "member('HA_server1')"
},
{
"boot-file-name": "",
"name": "phones_server2",
"next-server": "0.0.0.0",
"option-data": [],
"option-def": [],
"server-hostname": "",
"test": "member('HA_server2')"
},
{
"boot-file-name": "",
"name": "laptops_server1",
"next-server": "0.0.0.0",
"option-data": [],
"option-def": [],
"server-hostname": "",
"test": "member('HA_server1')"
},
{
"boot-file-name": "",
"name": "laptops_server2",
"next-server": "0.0.0.0",
"option-data": [],
"option-def": [],
"server-hostname": "",
"test": "member('HA_server2')"
}
],
"control-socket": {
"socket-name": "/tmp/kea-dhcp4-ctrl.sock",
"socket-type": "unix"
},
"decline-probation-period": 86400,
"dhcp-ddns": {
"always-include-fqdn": false,
"enable-updates": false,
"generated-prefix": "myhost",
"hostname-char-replacement": "",
"hostname-char-set": "",
"max-queue-size": 1024,
"ncr-format": "JSON",
"ncr-protocol": "UDP",
"override-client-update": false,
"override-no-update": false,
"qualifying-suffix": "",
"replace-client-name": "never",
"sender-ip": "0.0.0.0",
"sender-port": 0,
"server-ip": "127.0.0.1",
"server-port": 53001
},
"dhcp4o6-port": 0,
"echo-client-id": true,
"expired-leases-processing": {
"flush-reclaimed-timer-wait-time": 25,
"hold-reclaimed-time": 3600,
"max-reclaim-leases": 100,
"max-reclaim-time": 250,
"reclaim-timer-wait-time": 10,
"unwarned-reclaim-cycles": 5
},
"hooks-libraries": [
{
"library": "/home/marcin/devel/kea-build/lib/hooks/libdhcp_lease_cmds.so",
"parameters": {}
},
{
"library": "/home/marcin/devel/kea-build/lib/hooks/libdhcp_ha.so",
"parameters": {
"high-availability": [
{
"heartbeat-delay": 10000,
"max-ack-delay": 5000,
"max-response-delay": 10000,
"max-unacked-clients": 0,
"mode": "load-balancing",
"peers": [
{
"auto-failover": true,
"name": "server1",
"role": "primary",
"url": "http://192.168.56.33:8080/"
},
{
"auto-failover": true,
"name": "server2",
"role": "secondary",
"url": "http://192.168.56.66:8080/"
}
],
"send-lease-updates": true,
"state-machine": {
"states": [
{
"pause": "always",
"state": "waiting"
},
{
"pause": "once",
"state": "partner-down"
}
]
},
"sync-leases": true,
"sync-timeout": 60000,
"this-server-name": "server1"
}
]
}
}
],
"host-reservation-identifiers": [
"hw-address",
"duid",
"circuit-id",
"client-id"
],
"interfaces-config": {
"dhcp-socket-type": "udp",
"interfaces": [
"enp0s8"
],
"re-detect": true
},
"lease-database": {
"lfc-interval": 3600,
"name": "/home/marcin/devel/kea-build/kea-dhcp4.csv",
"persist": true,
"type": "memfile"
},
"option-data": [
{
"always-send": false,
"code": 6,
"csv-format": true,
"data": "192.0.3.1, 192.0.3.2",
"name": "domain-name-servers",
"space": "dhcp4"
}
],
"option-def": [],
"rebind-timer": 40,
"renew-timer": 30,
"sanity-checks": {
"lease-checks": "warn"
},
"shared-networks": [
{
"match-client-id": true,
"name": "my-secret-network",
"option-data": [],
"relay": {
"ip-addresses": []
},
"reservation-mode": "all",
"require-client-classes": [ "Client_foo" ],
"subnet4": [
{
"4o6-interface": "",
"4o6-interface-id": "",
"4o6-subnet": "",
"boot-file-name": "",
"id": 1,
"match-client-id": true,
"next-server": "0.0.0.0",
"option-data": [
{
"always-send": false,
"code": 3,
"csv-format": true,
"data": "192.0.3.1",
"name": "routers",
"space": "dhcp4"
}
],
"pools": [
{
"client-class": "phones_server1",
"option-data": [],
"pool": "192.1.0.1/16"
},
{
"client-class": "laptops_server1",
"option-data": [],
"pool": "192.2.0.1/16"
},
{
"client-class": "phones_server2",
"option-data": [],
"pool": "192.3.0.1/16"
},
{
"client-class": "laptops_server2",
"option-data": [],
"pool": "192.4.0.1/16"
}
],
"rebind-timer": 40,
"relay": {
"ip-addresses": [
"192.168.56.1"
]
},
"renew-timer": 30,
"reservation-mode": "all",
"reservations": [],
"require-client-classes": [ "Client_foo" ],
"server-hostname": "",
"subnet": "192.0.0.0/8",
"valid-lifetime": 6000
}
]
}
],
"subnet4": [],
"valid-lifetime": 6000
},
"Logging": {
"loggers": [
{
"debuglevel": 99,
"name": "kea-dhcp4",
"output_options": [
{
"flush": true,
"maxsize": 10240000,
"maxver": 1,
"output": "stdout"
}
],
"severity": "INFO"
},
{
"debuglevel": 99,
"name": "kea-dhcp4.ha_hooks",
"output_options": [
{
"flush": true,
"maxsize": 10240000,
"maxver": 1,
"output": "stdout"
}
],
"severity": "INFO"
},
{
"debuglevel": 99,
"name": "kea-dhcp4.commands",
"output_options": [
{
"flush": true,
"maxsize": 10240000,
"maxver": 1,
"output": "stdout"
}
],
"severity": "INFO"
},
{
"debuglevel": 99,
"name": "kea-dhcp4.http",
"output_options": [
{
"flush": true,
"maxsize": 10240000,
"maxver": 1,
"output": "stdout"
}
],
"severity": "INFO"
}
]
}
}
```Kea1.5-beta2Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/2558fixes for YANG unit tests2023-07-17T13:58:24ZAndrei Pavelandrei@isc.orgfixes for YANG unit testsThe recent expansion of distcheck scope revealed some unit test problems:
* Alpines:
```sh
../../../../../../../src/share/yang/modules/utils/check-revisions.sh: line 27: yanglint: not found
revision mismatch on keatest-module@2018-11-20...The recent expansion of distcheck scope revealed some unit test problems:
* Alpines:
```sh
../../../../../../../src/share/yang/modules/utils/check-revisions.sh: line 27: yanglint: not found
revision mismatch on keatest-module@2018-11-20.yang got
FAIL: check-revisions.sh
```
* RPM distros:
```sh
yanglint: error while loading shared libraries: libyang.so.1: cannot open shared object file: No such file or directory
revision mismatch on kea-types@2019-08-12.yang got
FAIL: check-revisions.sh
```
https://jenkins.aws.isc.org/job/kea-dev/job/distcheck/869/
These also happen on ut-extended, but because we run those with `make check -k ...`, they don't stop the job and the errors are not put in the report and not detected.kea2.3.1Andrei Pavelandrei@isc.orgAndrei Pavelandrei@isc.orghttps://gitlab.isc.org/isc-projects/kea/-/issues/2224Add new SSL/TLS database parameters to Yang/Netconf and all other missing par...2022-07-22T09:19:20ZFrancis DupontAdd new SSL/TLS database parameters to Yang/Netconf and all other missing parameters#34 adds 4 new string parameters to database configurations. Yang models and code should be updated. Note that 3 are common with the CA so there are some opportunities for factoring/sharing.#34 adds 4 new string parameters to database configurations. Yang models and code should be updated. Note that 3 are common with the CA so there are some opportunities for factoring/sharing.kea2.2.0 - a new stable branchRazvan BecheriuRazvan Becheriuhttps://gitlab.isc.org/isc-projects/kea/-/issues/1077support for new major version of sysrepo 1.42021-08-15T20:39:24ZFrancis Dupontsupport for new major version of sysrepo 1.4Our code uses the last old version 0.7.8. The sysrepo project has a new major version - ~~1.4.2~~ 2.0. They say it's almost complete rewrite with some major changes. For details see:
https://github.com/sysrepo/sysrepo#migration-from-sys...Our code uses the last old version 0.7.8. The sysrepo project has a new major version - ~~1.4.2~~ 2.0. They say it's almost complete rewrite with some major changes. For details see:
https://github.com/sysrepo/sysrepo#migration-from-sysrepo-version-07x-or-older
UPDATE(Tomek): After initial investigation, it seems that migrating to 2.0 is too risky, for the following reasons:
- there are no C++ bindings available yet that we depend on heavily
- the future of the C++ bindings is uncertain. There is one person on github that is supposed to work on it, but there is no visible progress on this. In any case, it will appear in a separate repo
- there are no packages available for major distros.
Considering the above, we decided to upgrade to sysrepo 1.4.kea1.9.10Tomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/issues/945YANG model and library code update2022-09-21T13:24:57ZFrancis DupontYANG model and library code update#199 and just merged #35 modified the server syntax so an update is required. IMHO this should be addressed as late as possible (but not too late so just before a release, and according to previous history before the beta).
Assume it wi...#199 and just merged #35 modified the server syntax so an update is required. IMHO this should be addressed as late as possible (but not too late so just before a release, and according to previous history before the beta).
Assume it will be for a 1.7.x so creating in 1.7 backlog.outstandinghttps://gitlab.isc.org/isc-projects/kea/-/issues/742New libyang and sysrepo versions2019-08-06T07:42:27ZFrancis DupontNew libyang and sysrepo versionssysrepo 0.7.8 was released 10 days ago.sysrepo 0.7.8 was released 10 days ago.Kea1.6-finalFrancis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/626yang tests fail on cassandra example config2019-05-23T15:26:04ZWlodzimierz Wencelyang tests fail on cassandra example configas title state:
```
[ RUN ] ConfigTest.examples4
Testing file /home/wlodek/dev/kea/doc/examples/kea4/advanced.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/all-keys-stable.json
Testing file /home/wlodek/dev/kea/doc/exampl...as title state:
```
[ RUN ] ConfigTest.examples4
Testing file /home/wlodek/dev/kea/doc/examples/kea4/advanced.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/all-keys-stable.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/backends.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/cassandra.json
Expected:
{
"Dhcp4": {
"interfaces-config": {
"interfaces": [ "ethX" ]
},
"lease-database": {
"connect-timeout": 5000,
"consistency": "quorum",
"contact-points": "192.0.2.1,192.0.2.2,192.0.2.3",
"keyspace": "keatest",
"port": 9042,
"reconnect-wait-time": 2000,
"request-timeout": 12000,
"serial-consistency": "serial",
"tcp-keepalive": 1200,
"tcp-nodelay": true,
"type": "cql"
},
"subnet4": [
{
"id": 1,
"interface": "ethX",
"pools": [
{
"pool": "192.0.2.1 - 192.0.2.200"
}
],
"subnet": "192.0.2.0/24"
}
],
"valid-lifetime": 4000
},
"Logging": {
"loggers": [
{
"name": "kea-dhcp4",
"output_options": [
{
"output": "stdout"
}
],
"severity": "INFO"
}
]
}
}
Actual:
{
"Dhcp4": {
"interfaces-config": {
"interfaces": [ "ethX" ]
},
"lease-database": {
"connect-timeout": 5000,
"contact-points": "192.0.2.1,192.0.2.2,192.0.2.3",
"keyspace": "keatest",
"port": 9042,
"reconnect-wait-time": 2000,
"request-timeout": 12000,
"tcp-keepalive": 1200,
"tcp-nodelay": true,
"type": "cql"
},
"subnet4": [
{
"id": 1,
"interface": "ethX",
"pools": [
{
"pool": "192.0.2.1 - 192.0.2.200"
}
],
"subnet": "192.0.2.0/24"
}
],
"valid-lifetime": 4000
},
"Logging": {
"loggers": [
{
"name": "kea-dhcp4",
"output_options": [
{
"output": "stdout"
}
],
"severity": "INFO"
}
]
}
}
Diff:
@@ -6,5 @@
"lease-database": {
"connect-timeout": 5000,
- "consistency": "quorum",
"contact-points": "192.0.2.1,192.0.2.2,192.0.2.3",
"keyspace": "keatest",
@@ -12,5 @@
"reconnect-wait-time": 2000,
"request-timeout": 12000,
- "serial-consistency": "serial",
"tcp-keepalive": 1200,
"tcp-nodelay": true,
config_unittests.cc:357: Failure
Value of: verify(json)
Actual: false
Expected: true
Testing file /home/wlodek/dev/kea/doc/examples/kea4/classify.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/classify2.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/comments.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/dhcpv4-over-dhcpv6.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/global-reservations.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/hooks.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/leases-expiration.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/multiple-options.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/mysql-reservations.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/pgsql-reservations.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/reservations.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/several-subnets.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/shared-network.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/single-subnet.json
Testing file /home/wlodek/dev/kea/doc/examples/kea4/with-ddns.json
[ FAILED ] ConfigTest.examples4 (1051 ms)
[ RUN ] ConfigTest.examples6
Testing file /home/wlodek/dev/kea/doc/examples/kea6/advanced.json
Testing file /home/wlodek/dev/kea/doc/examples/kea6/all-keys-stable.json
Testing file /home/wlodek/dev/kea/doc/examples/kea6/backends.json
Testing file /home/wlodek/dev/kea/doc/examples/kea6/cassandra.json
Expected:
{
"Dhcp6": {
"interfaces-config": {
"interfaces": [ "ethX" ]
},
"lease-database": {
"connect-timeout": 5000,
"consistency": "quorum",
"contact-points": "192.0.2.1,192.0.2.2,192.0.2.3",
"keyspace": "keatest",
"port": 9042,
"reconnect-wait-time": 2000,
"request-timeout": 12000,
"serial-consistency": "serial",
"tcp-keepalive": 1200,
"tcp-nodelay": true,
"type": "cql"
},
"preferred-lifetime": 3000,
"rebind-timer": 2000,
"renew-timer": 1000,
"subnet6": [
{
"id": 1,
"interface": "ethX",
"pools": [
{
"pool": "2001:db8:1::/80"
}
],
"subnet": "2001:db8:1::/64"
}
],
"valid-lifetime": 4000
},
"Logging": {
"loggers": [
{
"debuglevel": 0,
"name": "kea-dhcp6",
"output_options": [
{
"output": "stdout"
}
],
"severity": "INFO"
}
]
}
}
Actual:
{
"Dhcp6": {
"interfaces-config": {
"interfaces": [ "ethX" ]
},
"lease-database": {
"connect-timeout": 5000,
"contact-points": "192.0.2.1,192.0.2.2,192.0.2.3",
"keyspace": "keatest",
"port": 9042,
"reconnect-wait-time": 2000,
"request-timeout": 12000,
"tcp-keepalive": 1200,
"tcp-nodelay": true,
"type": "cql"
},
"preferred-lifetime": 3000,
"rebind-timer": 2000,
"renew-timer": 1000,
"subnet6": [
{
"id": 1,
"interface": "ethX",
"pools": [
{
"pool": "2001:db8:1::/80"
}
],
"subnet": "2001:db8:1::/64"
}
],
"valid-lifetime": 4000
},
"Logging": {
"loggers": [
{
"debuglevel": 0,
"name": "kea-dhcp6",
"output_options": [
{
"output": "stdout"
}
],
"severity": "INFO"
}
]
}
}
Diff:
@@ -6,5 @@
"lease-database": {
"connect-timeout": 5000,
- "consistency": "quorum",
"contact-points": "192.0.2.1,192.0.2.2,192.0.2.3",
"keyspace": "keatest",
@@ -12,5 @@
"reconnect-wait-time": 2000,
"request-timeout": 12000,
- "serial-consistency": "serial",
"tcp-keepalive": 1200,
"tcp-nodelay": true,
config_unittests.cc:399: Failure
Value of: verify(json)
Actual: false
Expected: true
```
```
Sysrepo:
SYSREPO_VERSION: 0.7.5
SYSREPO_CPPFLAGS: -I/usr/local/include
SYSREPO_LIBS: -L/usr/local/lib -lsysrepo -L/usr/local/lib -lSysrepo-cpp
SYSREPO_REPO: /opt/sysrepo-0.7.5/build/repository
```
```
Kea source configure results:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Package:
Name: kea
Version: 1.5.0-git
Extended version: 1.5.0-git (git 8f1fb501d6e307d8f878bdbee5cf574ecf0a4c2f)
```Wlodzimierz WencelWlodzimierz Wencelhttps://gitlab.isc.org/isc-projects/kea/-/issues/607segmentation fault when running kea+sysrepo tests2019-08-12T09:49:43ZWlodzimierz Wencelsegmentation fault when running kea+sysrepo testsThis is what happened on jenkins:
```
[----------] 1 test from YangReprTrest
[ RUN ] YangReprTrest.getTestErrors
unknown file: Failure
C++ exception with description "Sysrepo-internal error" thrown in the test body.
[ FAILED ] Yan...This is what happened on jenkins:
```
[----------] 1 test from YangReprTrest
[ RUN ] YangReprTrest.getTestErrors
unknown file: Failure
C++ exception with description "Sysrepo-internal error" thrown in the test body.
[ FAILED ] YangReprTrest.getTestErrors (13 ms)
[----------] 1 test from YangReprTrest (13 ms total)
[----------] 11 tests from ConfigTest
[ RUN ] ConfigTest.emptyIetf6
unknown file: Failure
C++ exception with description "Sysrepo-internal error" thrown in the test fixture's constructor.
/bin/bash: line 5: 9583 Segmentation fault (core dumped) /bin/bash ../../../../libtool --mode=execute ${dir}$tst
FAIL: run_unittests
======================================
1 of 1 test failed
Please report to kea-dev@lists.isc.org
======================================
Makefile:978: recipe for target 'check-TESTS' failed
make[5]: *** [check-TESTS] Error 1
make[5]: Leaving directory '/home/jenkins/workspace/kea-master-pairwise/src/lib/yang/tests'
Makefile:1101: recipe for target 'check-am' failed
make[4]: *** [check-am] Error 2
```
Jenkins report this rarely:
* https://jenkins.isc.org/job/kea-master-pairwise/127
* https://jenkins.isc.org/job/kea-master-pairwise/116
maybe someone will know what is going on here..Kea1.6-finalWlodzimierz WencelWlodzimierz Wencelhttps://gitlab.isc.org/isc-projects/kea/-/issues/433Update yang models2019-08-13T21:47:58ZFrancis DupontUpdate yang modelsUpdate Kea models for last syntax changes. Update IETF model to the last published model.Update Kea models for last syntax changes. Update IETF model to the last published model.Kea1.6-finalTomek MrugalskiTomek Mrugalskihttps://gitlab.isc.org/isc-projects/kea/-/issues/176Update to sysrepo 0.7.6 release2018-11-19T14:53:29ZFrancis DupontUpdate to sysrepo 0.7.6 releaseSome comments:
- avoid to overload #65
- if it is mainly about src/lib/yang there are impacts on src/bin/netconf too
- explicitly do not put in 1.5 milestoneSome comments:
- avoid to overload #65
- if it is mainly about src/lib/yang there are impacts on src/bin/netconf too
- explicitly do not put in 1.5 milestoneKea1.5-beta2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/127Distribute yang models2018-10-19T09:56:06ZFrancis DupontDistribute yang modelsKea1.5-beta1https://gitlab.isc.org/isc-projects/kea/-/issues/7Implement libyang library2022-10-27T12:44:25ZTomek MrugalskiImplement libyang libraryThis task covers adding a libyang library. It has at least provide:
- makefile changes to build a new lib
- unit-tests
- translation utilities for netconf primitives (int, string, bool, etc) to JSON and vice versa
- a base class for tra...This task covers adding a libyang library. It has at least provide:
- makefile changes to build a new lib
- unit-tests
- translation utilities for netconf primitives (int, string, bool, etc) to JSON and vice versa
- a base class for translator
- a base class for watcher (a piece of code that exposes a callback that can be called when certain part of netconf tree changes)Kea1.5-beta1Tomek MrugalskiTomek Mrugalski