Kea issueshttps://gitlab.isc.org/isc-projects/kea/-/issues2019-09-02T07:12:00Zhttps://gitlab.isc.org/isc-projects/kea/-/issues/229config data provided via API to hooks or commands with unknown fields are acc...2019-09-02T07:12:00ZMichal Nowikowskiconfig data provided via API to hooks or commands with unknown fields are accepted and silently ignoredexample data:
` {"command": "class-add", "arguments": {"client-classes": [{"name": "ipxe", "unknown": "123"}]}`
In that case "unknown" field is accepted and silently ignored.
Kea should raise an error that data violates a schema, ie...example data:
` {"command": "class-add", "arguments": {"client-classes": [{"name": "ipxe", "unknown": "123"}]}`
In that case "unknown" field is accepted and silently ignored.
Kea should raise an error that data violates a schema, ie. expected format.
Otherwise in case of e.g. a typo it may be annoying that expected behavior is not observed while no error is returned.Kea1.5-beta2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/195Document sample NETCONF operation2018-11-28T22:03:52ZTomek MrugalskiDocument sample NETCONF operationThe User's Guide does not have a clear, simple example how to use kea-netconf. We need a simple example that will cover:
- start kea-dhcp4
- load basic config into sysrepo using sysrepocfg
- start kea-netconf and explain what's going on...The User's Guide does not have a clear, simple example how to use kea-netconf. We need a simple example that will cover:
- start kea-dhcp4
- load basic config into sysrepo using sysrepocfg
- start kea-netconf and explain what's going on
- change the configuration a bit
- explain how kea-netconf picks up the changes
Also clean up example sysrepo configs (they're in src/bin/netconf/configs, should be moved to doc/examples/netconf).Kea1.5-beta2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/182Remove always-include-fqdn configuration parameter from D2ClientConfig2018-11-20T13:52:16ZThomas MarkwalderRemove always-include-fqdn configuration parameter from D2ClientConfigDHCP DDNS configuration for Kea includes a parameter, always-include-fqdn. The intent to not include the FQDN option in the response back to a client, unless it was in the request's PRL. After some discussion this was deemed to be an unn...DHCP DDNS configuration for Kea includes a parameter, always-include-fqdn. The intent to not include the FQDN option in the response back to a client, unless it was in the request's PRL. After some discussion this was deemed to be an unneeded ability.
The current behavior will always include an FQDN option in the response if the request included an FQDN option.
This was formerly Trac issue: http://kea.isc.org/ticket/3294Kea1.5-beta2https://gitlab.isc.org/isc-projects/kea/-/issues/180Address some doxygen warnings / errors2018-11-05T08:06:52ZFrancis DupontAddress some doxygen warnings / errorsKea1.5-beta2https://gitlab.isc.org/isc-projects/kea/-/issues/178Use detected python in shell unitests2018-11-28T14:45:12ZFrancis DupontUse detected python in shell unitestsI propose to replace python by @PYTHON@ in src/lib/shell/tests/Makefile.am so on (more and more common) systems where the default python is a python3 without a link to python (link which is explicitly **not** recommended to manually add)...I propose to replace python by @PYTHON@ in src/lib/shell/tests/Makefile.am so on (more and more common) systems where the default python is a python3 without a link to python (link which is explicitly **not** recommended to manually add) the shell unit tests can pass.
A good candidate for a final if we do not want it as soon as possible.Kea1.5-beta2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/177serialize netconf tests2018-11-26T16:55:46ZFrancis Dupontserialize netconf testsNetconf has both unit tests and shell tests which interfere badly when run in parallel.
The obvious round about is to not call make check with a -j parameter including make distcheck.
IMHO the problem belongs in Sysrepo which was not d...Netconf has both unit tests and shell tests which interfere badly when run in parallel.
The obvious round about is to not call make check with a -j parameter including make distcheck.
IMHO the problem belongs in Sysrepo which was not designed to support parallel activities on same objects.
If nobody (Stephen?) proposes something simpler I'll put the shell script into a separated directory.
Note I leave the classification of this to QA, i.e. is the constraint to not run make distcheck in parallel is a problem.Kea1.5-beta2https://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/158reservation is allowed for out-of-subnet address and/or non-existent subnet-id2020-05-27T08:08:16ZCathy Almondreservation is allowed for out-of-subnet address and/or non-existent subnet-idReported by a Support customer:
https://support.isc.org/Ticket/Display.html?id=13626
---
name: Bug report
about: Kea 1.4.0 P1
---
kea-dhcp4 API accepts the creation of reservations for non-existent subnet-IDs and/or for out-of-subnet ...Reported by a Support customer:
https://support.isc.org/Ticket/Display.html?id=13626
---
name: Bug report
about: Kea 1.4.0 P1
---
kea-dhcp4 API accepts the creation of reservations for non-existent subnet-IDs and/or for out-of-subnet ip addresses, tested with mysql backend for hosts.
To reproduce:
1) create a new subnet 192.0.0.0/24, with subnet id 999
REQUEST:
{
"arguments": {
"subnet4": [
{
"id": 999,
"match-client-id": true,
"option-data": [
{
"always-send": false,
"code": 3,
"csv-format": false,
"data": "c0000001",
"name": "routers",
"space": "dhcp4"
}
],
"pools": [
{
"pool": "192.0.0.2-192.0.0.254"
}
],
"rebind-timer": 2970,
"relay": {
"ip-addresses": [
"192.0.0.1"
]
},
"renew-timer": 1800,
"reservation-mode": "all",
"subnet": "192.0.0.0/24",
"valid-lifetime": 3600
}
]
},
"command": "subnet4-add",
"service": [
"dhcp4"
]
}
RESPONSE:
[ { "arguments": { "subnets": [ { "id": 999, "subnet": "192.0.0.0/24" } ] }, "result": 0, "text": "IPv4 subnet added" } ]
2) create a reservation for out-of-subnet address using 1.2.3.4 as IP and 999 as subnet-id
REQUEST:
{
"arguments": {
"reservation": {
"hw-address": "ca:fe:ca:fe:ca:fe",
"ip-address": "1.2.3.4",
"subnet-id": 999
}
},
"command": "reservation-add",
"service": [
"dhcp4"
]
}
RESPONSE:
[ { "result": 0, "text": "Host added." } ]
3) create a reservation for a non-existent subnet-id using 192.0.0.10 as IP and 123 as subnet-id
REQUEST:
{
"arguments": {
"reservation": {
"hw-address": "fa:ce:fa:ce:fa:ce",
"ip-address": "192.0.0.10",
"subnet-id": 123
}
},
"command": "reservation-add",
"service": [
"dhcp4"
]
}
RESPONSE:
[ { "result": 0, "text": "Host added." } ]
4) verify the presence of both reservations in the "hosts" tableKea1.5-beta2Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/136Add global host reservation examples2018-11-27T21:38:10ZFrancis DupontAdd global host reservation examplesFor at least 1.5-beta: there is no kea4 or kea6 examples with global host reservations.For at least 1.5-beta: there is no kea4 or kea6 examples with global host reservations.Kea1.5-beta2Francis DupontFrancis Duponthttps://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/87Kea memory leak (radius)2018-12-06T23:26:42ZGhost UserKea memory leak (radius)we have 2 kea servers (1.4.0 P1) that work with one mysql server as the lease database.
host-cache + flex_id + radius hooks loaded.
Only one server is active.
My Users are stable,
About 1330 users and + 50 new users each day.
If I ...we have 2 kea servers (1.4.0 P1) that work with one mysql server as the lease database.
host-cache + flex_id + radius hooks loaded.
Only one server is active.
My Users are stable,
About 1330 users and + 50 new users each day.
If I reload the kea-dhcp4 process the memory goes down to 0.4%.
the host-cache fills up pretty fast to 1330 records, most of my users has lease "renew-timer": 200.
From that point the memory consumption rises about 3% each hour
[root@kea1rvt log]# date
Thu Aug 9 14:09:56 IDT 2018
[root@kea1rvt log]# ps -auxw | grep kea-dhcp4
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 21929 6.1 5.1 380612 200848 pts/1 S 12:36 5:46 /usr/local/sbin/kea-dhcp4 -c /usr/local/etc/kea/kea-dhcp4.conf
[root@kea1rvt log]# date
Thu Aug 9 14:57:04 IDT 2018
[root@kea1rvt log]# ps -auxw | grep kea-dhcp4
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 21929 6.1 7.4 468052 288272 pts/1 S 12:36 8:40 /usr/local/sbin/kea-dhcp4 -c /usr/local/etc/kea/kea-dhcp4.conf
[root@kea1rvt log]# date
Thu Aug 9 15:09:16 IDT 2018
[root@kea1rvt log]# ps -auxw | grep kea-dhcp4
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 21929 6.1 8.1 494848 315096 pts/1 R 12:36 9:25 /usr/local/sbin/kea-dhcp4 -c /usr/local/etc/kea/kea-dhcp4.conf
itayKea1.5-beta2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/85stat commands missing in `List of available hooks libraries` table2018-12-06T23:24:04ZGhost Userstat commands missing in `List of available hooks libraries` tableThere are 9 entries in the table but 10 hooks described in the `Available Hooks Libraries'` section: the missing hook is `stat_cmds`.There are 9 entries in the table but 10 hooks described in the `Available Hooks Libraries'` section: the missing hook is `stat_cmds`.Kea1.5-beta2https://gitlab.isc.org/isc-projects/kea/-/issues/75RADIUS documentation needs an update2018-11-27T13:35:28ZGhost UserRADIUS documentation needs an updateI've spotted couple small issues in section 14.4.8:
- It still mentions --with-tier2
- STEP 2 the last sentence misses word "download": To and compile this version, please use the following steps:
- The last sentence in Step 3 says tha...I've spotted couple small issues in section 14.4.8:
- It still mentions --with-tier2
- STEP 2 the last sentence misses word "download": To and compile this version, please use the following steps:
- The last sentence in Step 3 says that boost has no explicit make install step. But it has b2 install, so that remark doesn't make much sense.
Also, need to provide links to the bug fixes Francis reported back to FreeRADIUS.Kea1.5-beta2Francis DupontFrancis Duponthttps://gitlab.isc.org/isc-projects/kea/-/issues/59configure.ac log message "checking for premium hooks..." is confusing to users2018-11-27T12:30:17ZGhost Userconfigure.ac log message "checking for premium hooks..." is confusing to usersThe configure script emits text like the following:
checking for premium hook forensic_log availability...... found
checking for premium hook flex_id availability...... found
checking for premium hook host_cmds availability...... found
...The configure script emits text like the following:
checking for premium hook forensic_log availability...... found
checking for premium hook flex_id availability...... found
checking for premium hook host_cmds availability...... found
checking for premium hook subnet_cmds availability...... no
checking for premium hook radius availability...... no
checking for premium hook host_cache availability...... no
The word "premium" here is confusing, as the list being checked for includes all non-open source hooks (i.e. premium, subscriber...). People purchasing the Premium tar ball think things are missing.
We should either remove the message or the word "premium". We've had at least one user contact us, thinking there is an issue.Kea1.5-beta2Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/57Fixes as a result of profiling the HTTP code and control channel2018-11-15T12:24:25ZGhost UserFixes as a result of profiling the HTTP code and control channelThere are the following issues pertaining to JSONFeed and Http parsers which per my profiling tests seems to be first candidates for fixing:
* JSONFeed::postBuffer expensive because of making new allocations all the time
* JSONFeed::pop...There are the following issues pertaining to JSONFeed and Http parsers which per my profiling tests seems to be first candidates for fixing:
* JSONFeed::postBuffer expensive because of making new allocations all the time
* JSONFeed::popNextFromBuffer makes many buffer de-allocations
* JSONFeed::innerJSONHandler should not transition if the state remains the same
* HttpResponseParser body handler is inefficient as it reads characters one by one
* Connection::doTransaction should not reinitialize the parser all the time as it triggers expensive reinitialization of the state machineKea1.5-beta2https://gitlab.isc.org/isc-projects/kea/-/issues/53Problems with maria database, fields in store proc wrong2018-11-21T20:46:59ZGhost UserProblems with maria database, fields in store proc wrongI have just upgraded to Opensuse 15, and since there are problems with boost in previous versions, I upgraded to the 14 beta.
However, with a mysql database, trying to populate the lease4 & lease6 tables fail with...
2018-05-28 11:53:0...I have just upgraded to Opensuse 15, and since there are problems with boost in previous versions, I upgraded to the 14 beta.
However, with a mysql database, trying to populate the lease4 & lease6 tables fail with...
2018-05-28 11:53:09.332 ERROR [kea-dhcp6.alloc-engine/11431] ALLOC_ENGINE_V6_ALLOC_ERROR duid=[00:01:00:01:1e:da:f1:1b:b8:27:eb:8f:fe:67], tid=0x2cec69: error during attempt to allocate an IPv6 address: unable to bind parameters for <INSERT INTO lease6(address, duid, valid_lifetime, expire, subnet_id, pref_lifetime, lease_type, iaid, prefix_len, fqdn_fwd, fqdn_rev, hostname, hwaddr, hwtype, hwaddr_source, state) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)>, reason: (error code 0)
&
2018-05-28 11:54:01.657 ERROR [kea-dhcp4.alloc-engine/11424] ALLOC_ENGINE_V4_ALLOC_ERROR [hwtype=1 b8:27:eb:da:12:3b], cid=[ff:eb:da:12:3b:00:01:00:01:1e:da:f1:13:b8:27:eb:8f:47:6e], tid=0xde2380dc: error during attempt to allocate an IPv4 address: unable to bind parameters for <INSERT INTO lease4(address, hwaddr, client_id, valid_lifetime, expire, subnet_id, fqdn_fwd, fqdn_rev, hostname, state) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)>, reason: (error code 0)
There seemed to be a similar problem mentioned in the forums, but there does not seem to anything which matches this.
It was mentioned something to do with timers, but I have them now set to:
"reclaim-timer-wait-time": 100,
"flush-reclaimed-timer-wait-time": 250,
"hold-reclaimed-time": 36000,
"max-reclaim-leases": 1000,
"max-reclaim-time": 2500,
"unwarned-reclaim-cycles": 5
...
"valid-lifetime": 36000,
"renew-timer": 9000,
"rebind-timer": 18000,
What is strange though, when I take a tcpdump of the connection, I see a number of packets setting SOME of the bind fields, most seem to be set to the the IP address which kea attempts to assign.
It's as if all the bind fields are corrupted.Kea1.5-beta2Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/27CqlHostDataSource::del4 () and del6() fail when given a non-existent host res...2018-11-28T09:21:55ZThomas MarkwalderCqlHostDataSource::del4 () and del6() fail when given a non-existent host reservationNeither function checks for the case of host not found, and causes the server to SIGABRT. They should both be modified to simply return true if the host does not exist. This is in keeping with our philosophy that attempting to delete an...Neither function checks for the case of host not found, and causes the server to SIGABRT. They should both be modified to simply return true if the host does not exist. This is in keeping with our philosophy that attempting to delete an object that does not exist equates to a successful delete.
There are apparently no unit tests for this scenario and there most certainly should be. We need to verify that MySQL and PostgreSQL behave properly and have unit tests for this.Kea1.5-beta2Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/62Missing header files in installation directories and bump up lib version numb...2018-11-28T16:40:11ZGhost UserMissing header files in installation directories and bump up lib version numbers for Kea 1.5.0-beta2We appear not to be installing the various *_message.h files when doing a "make install".We appear not to be installing the various *_message.h files when doing a "make install".Kea1.5-beta2Marcin SiodelskiMarcin Siodelskihttps://gitlab.isc.org/isc-projects/kea/-/issues/294Linux packet filter send() emits valgrind error2018-11-28T16:53:54ZThomas MarkwalderLinux packet filter send() emits valgrind errorOn the first packet send, the linux packet filter emits the following valgrind error:
```
2018-11-28 10:57:04.527 DEBUG [kea-dhcp4.packets/12342] DHCP4_RESPONSE_DATA [hwtype=1 08:00:27:25:d3:f4], cid=[32:32:32:32], tid=0x91bfb7: respond...On the first packet send, the linux packet filter emits the following valgrind error:
```
2018-11-28 10:57:04.527 DEBUG [kea-dhcp4.packets/12342] DHCP4_RESPONSE_DATA [hwtype=1 08:00:27:25:d3:f4], cid=[32:32:32:32], tid=0x91bfb7: responding with packet DHCPOFFER (type 2), packet details: local_address=178.16.1.30:67, remote_address=178.16.1.78:68, msg_type=DHCPOFFER (2), transid=0x91bfb7,
options:
type=001, len=004: 4294967040 (uint32)
type=051, len=004: 7200 (uint32)
type=053, len=001: 2 (uint8)
type=054, len=004: 178.16.1.30
type=061, len=004: 32:32:32:32
==12342== Syscall param socketcall.sendto(to.sa_data) points to uninitialised byte(s)
==12342== at 0x80FADC3: ??? (syscall-template.S:81)
==12342== by 0x64E2C21: isc::dhcp::PktFilterLPF::send(isc::dhcp::Iface const&, unsigned short, boost::shared_ptr<isc::dhcp::Pkt4> const&) (in /labspace/var/kea/radius-150-b2/lib/libkea-dhcp++.so.9.0.0)
==12342== by 0x64478CB: isc::dhcp::IfaceMgr::send(boost::shared_ptr<isc::dhcp::Pkt4> const&) (in /labspace/var/kea/radius-150-b2/lib/libkea-dhcp++.so.9.0.0)
==12342== by 0x4AC873: isc::dhcp::Dhcpv4Srv::sendPacket(boost::shared_ptr<isc::dhcp::Pkt4> const&) (in /labspace/var/kea/radius-150-b2/sbin/kea-dhcp4)
==12342== by 0x4B0167: isc::dhcp::Dhcpv4Srv::processPacketBufferSend(boost::shared_ptr<isc::hooks::CalloutHandle>&, boost::shared_ptr<isc::dhcp::Pkt4>&) (in /labspace/var/kea/radius-150-b2/sbin/kea-dhcp4)
==12342== by 0x4ACD98: isc::dhcp::Dhcpv4Srv::run_one() (in /labspace/var/kea/radius-150-b2/sbin/kea-dhcp4)
==12342== by 0x4AC890: isc::dhcp::Dhcpv4Srv::run() (in /labspace/var/kea/radius-150-b2/sbin/kea-dhcp4)
==12342== by 0x4833F5: main (in /labspace/var/kea/radius-150-b2/sbin/kea-dhcp4)
==12342== Address 0x1ffefffa58 is on thread 1's stack
==12342== in frame #1, created by isc::dhcp::PktFilterLPF::send(isc::dhcp::Iface const&, unsigned short, boost::shared_ptr<isc::dhcp::Pkt4> const&) (???:)
==12342==
```
It may not be harmful but it is distraction and something any user doing testing would point out. The fix is a one liner:
```
diff --git a/src/lib/dhcp/pkt_filter_lpf.cc b/src/lib/dhcp/pkt_filter_lpf.cc
index ba64b00..158754d 100644
--- a/src/lib/dhcp/pkt_filter_lpf.cc
+++ b/src/lib/dhcp/pkt_filter_lpf.cc
@@ -305,6 +305,7 @@ PktFilterLPF::send(const Iface& iface, uint16_t sockfd, const Pkt4Ptr& pkt) {
buf.writeData(pkt->getBuffer().getData(), pkt->getBuffer().getLength());
sockaddr_ll sa;
+ memset(&sa, 0x0, sizeof(sa));
sa.sll_family = AF_PACKET;
sa.sll_ifindex = iface.getIndex();
sa.sll_protocol = htons(ETH_P_IP);
```Kea1.5-beta2Thomas MarkwalderThomas Markwalderhttps://gitlab.isc.org/isc-projects/kea/-/issues/270Update docs bison to the last version2018-11-17T21:57:54ZFrancis DupontUpdate docs bison to the last versionKea1.5-beta2Francis DupontFrancis Dupont