1484. [bug] marcin Resolved issues with MySQL backend failing to insert a lease to the MariaDB database on OpenSUSE. This fix may also improve stability of the MySQL backend on other systems running MariaDB. (Gitlab #53,!125, git 038eddbc7b904289e4b74b5ef2406cb57f79a646)

1483. [func] tmark Use of congestion handling is now optional via the 'enable-queue' flag added to 'dhcp-queue-control'. It is disabled by default. When disabled Kea's DHCPv4 and DHCPv6 servers will consume packets

1480. [func] fdupont The unused cconfiguration parameter "always-include-fqdn" was removed. Configurations using it will be rejected as it is no longer recognized. (Gitlab #182,!128, git cafeba167e7c64370dd39eca4551f61acd89d3da)

Added initial implementation of congestion handling to kea-dhcp4 and kea-dhcpt6. This adds a new top level element to the server configurations, "dhcp-queue-control". Both servers will now read client packets from interface sockets in a separate thread queueing them for server level processing. For Kea 1.5-Beta this feature is always on. (Gitlab #42, !103, git 09d5ffebc8f9bfab2ab99c384eec9c3a3c915f39)

Add authoritative feature for DHCPv4 from ISC DHCP: requests from unknown clients are dropped (default/previous behavior) or answered with DHCPNAK (new behevior with new authoritative flag set to true for the subnet). Patch proposed by Sebastian Schrader.

1472. [bug] marcin Timeout is now reported by the HTTP client when connecting to the server takes too long. This eliminates HTTP client hangs when firewall is misconfigured and causes connection to never be established. This issue was found during Kea High Availability testing. (Gitlab #26,!106, git 9724823f160af0ef5e8ccdf779087ff08a04457a)

1470. [func] marcin Improved lease database synchronization mechanisms in High Availability hooks library. The new implementation uses lease4-get-page and lease6-get-page commands to fetch leases from the partner server. This prevents timeouts occurring during long synchronizations as well as decreases CPU and memory consumption on the HA enabled servers during lease database synchronization. (Gitlab #78,!85, git c54ea216463dcc6df693c96c4a5f82c0fbec2ff6)

1462. [build,doc] tomek,sgoldlust,vicky Kea REST API is now documented. Thanks to Suzanne Goldlust for providing descriptions for great majority of commands and to Vicky Risk for review and corrections. Also, docgen, a new tool for documentation generation has been written. (Gitlab #10,!3, git 5d2e4d6fcc182a19eafa895abc35b1aee599fd23)

1458. [func] fdupont Control sockets for kea-netconf has been implemented. The code is not functional yet, but the capability of the kea-netconf daemon to communicate with CA, D2, DHCPv4 and DHCPv6 daemons is there. (Gitlab #153,!60, git 11486e255aef704114645f8e7c5fee9c3abf9e76)

1448. [build]* marcin Created new Kea libraries: libkea-database, libkea-mysql, libkea-pgsql and libkea-cql. Some database specific code was moved from libkea-dhcpsrv to those new libraries. (Gitlab #92,!13, git 5feb6b8a53675c27715e9e8fbeb312bd6eb17547)

1446. [func] tmark kea-dhcp6 now supports global host reservations and a new global reservations-mode . Prior to this reservations could only be specified per subnet. This is supported by by Memfile, MySQL, PostgreSQL, and Cassandra host data sources. (Gitlab #13,!6, git# a5484c4d8852662be7da1e6e8b1d4c1a19e6502f)

1445. [func] tomek Implemented initial skeleton version of the kea-netconf tool. Currently it can't do anything, but the build system is now capable of detecting sysrepo (use --with-sysrepo in configure), there's a very basic documentation and unit-tests. (gitlab !1, git 89ff2093811d65220d99dc2a6516375c4ec953dc)

1443. [func] tmark kea-dhcp4 now supports global host reservations and a new global reservations-mode . Prior to this reservations could only be specified per subnet. This is supported by by Memfile, MySQL,PostgreSQL,and Cassandra host data sources. (Trac #5705, git f991cffd06add941f8bf2937232f51d597623e21)1442. [func] MayyaSunil Implemented new queries for IPv6 leases by DUID. (Github #99, git c20b5248da1283e596e35ad057ae242f4d613965)1441. [func] marcin Added log message indicating that the control socket has been opened by a server. (Gitlab #8, git 3dbaf4917bea112466f1ee5726870c545950e114)

1438. [func] tomek subnet-id parameter is now optional in lease4-add, lease6-add, lease4-update and lease6-update commands. If not specified or its value is zero, Kea will attempt to figure out the correct value of subnet-id. If there is no matching subnet configured, the lease will be rejected. (Trac #5683, git a8ce7a78b5b294e6bce02de887552a1e4593db4e)

1437. [func] tomek DHCPv4 and DHCPv6 servers are now able to sanity check and possibly correct some inconsistencies in leases when loaded from disk (memfile). A new parameter to govern this behavior has been added. (Trac #5682, git 609bfa0a67caa91fac6834eb39260acfd19e3be4)1436. [func] tmark

DhcpDdns sections: 'hostname-char-set' and 'hostname-char-replacment'. These values (when not empty) are used by the server to sanitize host name and FQDN domain names sent by clients prior to using them to construct DNS names. (Trac #5680, git 32466ab3d4688e66c8c2f9fd24d4a98fcc871ff6)

1428. [bug] marcin Corrected behavior of the standby server in the HA hot-standby mode, which failed to monitor delays in responses to the DHCP queries sent to the primary server after the primary server became unavailable. This resulted in transition of the standby server to the partner-down state immediately after detecting interruption in communication with the primary over the control channel. (Trac #5654, git 7a83f05fe40fb1b6812b055e2d6d633d9e00160c)

1426. [func] fdupont Added KNOWN and UNKNOWN built-in client classes: after host lookup if a matching host entry is found the incoming packet is added to the KNOWN class, if none is found to the UNKNOWN class. Then expressions depending directly or indirectly on these classes are evaluated. Note these classes may be used to select a pool but they may not to select a subnet.

1424. [doc] marcin List of hooks libraries provided by ISC includes an information which Kea servers the libraries can be attached to. The detailed description of each supported hooks library also contains this information. (Trac #5613, git 9d6f8de3d988c42c413a7d628e31854e9c80d8c9)

1421. [build] marcin Moved libdhcp_ha (High Availability) hooks library from premium to main Kea repository and changed its license to MPLv2.0. Future ChangeLog entries for this library will be tracked in the Kea ChangeLog file. (Trac #5645, git 19b2553d4869bdd52b63b6f7969052d8a724f78d)

1418. [bug] marcin Corrected bug in the allocation engine which caused occasional lease allocation failures when a loaded hooks library set the callout status to non default value, e.g. "skip" rather than "continue". In such cases, the server reported that it failed to allocate a lease "after 0 attempts". (Trac #5638, git f2e9b686ae52e1b06f660e1b522588b1440e2620)

1415. [bug] tmark kea-dhcp4 and kea-dhcp6 now validate the schema version of lease and host back ends after establishing a connection. If a schema version does not match the version the server expects, the server will emit an error log and close the connection. This applies to MySQL, PostgreSQL, and Cassandra. (Trac #5629, git 15c34afdba45be609e35284a209ad18ed66605f8)

1414. [bug] tmark kea-dhcp4 parsing now treats renew-timer and rebind-timer as optional with no defaults. The logic for sending them to the client was changed to: send rebind-timer only when it is less than the lease lifetime; and send renew-timer only when it less than either the rebind-timer if specified, or lease lifetime in the absence of rebind-timer. (Trac #5596, git 38426e16ec04a786e35a65d27cbcb7dbabfe79b5)

1412. [func]* marcin The client classes used by the High Availability hook library use upper case "HA_" prefix and they are now built-in classes. This means that those classes do not need to be declared in the server configuration. (Trac #5632, git 2d590bfd7d1b0eca377eb99eef83a3083a1d7399)

1407. [bug] tmark Corrected an issue where the destruction of loggers prior to the destruction of the TimerMgr singleton caused unit tests to segfault. (Trac #5626, git 9f4e3f9cd8acf8e7d1d3e714d8f904754377c00f)

(Trac #5625, git df3068ba0e520df4d96dd38e2de679beb99f2e23)Kea 1.4.0-beta released on May 18, 20181404. [doc] tomek Hooks package installation intruction added to Kea User's Guide. (Trac #5427, git 7bc5e4297e8b2ccb87d5d5d79ae066fe32964841)1403. [build] tomek Support for hook packages has been updated. The --with-tierX flags have been removed. Each hook library is now detected independently. (Trac #5619, git aa1f95d699dc664a5660db120ef71edee910a9b3)1402. [bug] tomek Fixed a crash that was caused by hook library registering new hook points. This fixes unit-tests with forensic logging, but the problem was generic and could cause other libraries to segfault during unloading or reconfiguration. (Trac #5577, git 2f9d1aa95c16e12fabc50d581b966f20b6d8a950)1401. [bug] tmark Corrected an issue which caused kea-dhcp4 and kea-dhcp6 servers to unload their hooks libraries upon receipt of the first client message following a dynamic reconfigure. (Trac #5564, git 5111f569bd251c2a98a2e6d958e8f6b640a1802d)1400. [func] tmark A new hooks library, Stat Cmds, has been added to the open source distribution. This library provides commands for fetching lease allocation statistics using lease backend as the source for lease counts per state. This resolves an issue in deployments, where multiple Kea servers share a common lease backend, which made it difficult to obtain accurate lease statistics. (Trac #5589, git 36f20f1c8b28f629fe2896b817ac0f3c6026fe0e)1399. [func] tmark Support for fetching lease allocation statistics by subnet-id or subnet-id range has been added to the Cassandra back end. This allows it to be used in conjunction with the Stat Cmds hooks library commands for fetching shared lease statistics. (Trac #5588, git 3fcfefdea5ac838936c2109ecbbbc32eabc8fdba)1398. [bug] fdupont Fixed bug in configurations where "outbound-interface" parameter was set to "use-routing", which in some cases would reset outbound interface index to a negative value and cause the server to fail to respond to the clients. (Trac #5515, git 9d8d00f1f127ee606f09f7ff6006f0d142aac976)1397. [bug] marcin A bug in http client library was fixed. The IPv6 address specified in brackets is now supported properly. (Trac #5620, git fe38c4368853e47bc993d6c3844cdddba5effde5)1396. [bug] tmark The PostgreSQL schema was expanded to include two new tables: lease4-stat and lease6-stat and triggers to update them as leases are modified. This resolves an issue in deployments, where multiple Kea servers share a common PostgreSQL lease database, which made it difficult to obtain accurate lease statistics. Since these statistics are now tracked by the database, they do not have to be recalculated at startup or following reconfiguration. This may result in less processing overhead during these events. The new statistics will be accessible via a new Hooks library, being developed for Kea 1.4 under #5589. (Trac #5587, git 36a0160de0df7789eea224954717be05c08638b7)1395. [bug] tmark The MySQL schema was expanded to include two new tables: lease4-stat and lease6-stat and triggers to update them as leases are modified. This resolves an issue in deployments, where multiple Kea servers share a common MySQL lease database, which made it difficult to obtain accurate lease statistics. Since these statistics are now tracked by the database, they do not have to be recalculated at startup or following reconfiguration. This may result in less processing overhead during these events. The new statistics will be accessible via a new Hooks

1161. [bug] fdupont Fixed interface manager receive methods which raise a bug on Fedora 24 / gcc 6.1? (Trac #4551, git 8d590e434062535e850a60a7892481df845ff390)Kea 1.1.0-beta released on August 31, 20161160. [build] marcin Bumped up version numbers of Kea libraries and KEA_HOOKS_VERSION for the Kea 1.1.0 beta release. (Trac #4632, git 93941523e039a1cc4bb34182a290f9d7b805df34)1159. [func] marcin MySQL database schema updated to version 5.0. (Trac #4562, git 0e40b35e280f0845686bcfdb2efb577c7878ede6)1158. [func] tomek It is now possible to specify fixed fields (next-server, server-hostname and boot-file-name parameters) for client classes. (Trac #4626, git 89cf54524d8b55cc982ab2146915c0a90fc6efe2)1157. [func] marcin Added support for static reservations for fixed fields in DHCPv4 messages: siaddr, sname and file. (Trac #4552, git 9b79fe005dd77328ea7c596fc6886f8fb838d1cf)1156. [bug] tmark Lease statistics are now recalculated during server startup and after each successful reconfiguration for Memfile, MySQL, and PostgreSQL back ends. This addresses issues caused by accumulated values being lost across restarts and reconfigurations making rendering values incorrect. (Trac #4294 git 0abdcf15f85861ffcb67d50fa4ce3965d25e4a9f)1155. [func] marcin Kea can be configured to operate using read-only host database. This is only supported for MySQL and PostgreSQL databases. (Trac #4489 git 0d8dc7affb67ad8066b44c6f81532b79a641d50b)1154. [bug] stephen Changes to logging to avoid premature destruction of some objects during program exit. On some systems this caused one of the unit test programs to crash when it terminated. (Trac #4494, git 023c2fc3688bcdbccb4b286bea873c8f9c06cd5f)1153. [func] tomek Integers can now be used in client classification. (Trac #4483, git e90cf0ee4007521b86177be6d5fbb970c02c1075)1152. [doc] marcin Use of PostgreSQL as a storage for host reservations is now documented in the Kea Administrator Reference Manual. (Trac #4282, git f2879919772c10b1ae8c45d0e761ef199cf84061)1151. [func] tmark Support for assigning client classes to host reservations has been added to both the PostgreSQL and MySQL backends. (Trac #4277, #4213 git 6990ab9d542e984c59ce5a11ff926c3c732a75fc)1150. [bug] tomek Extended gcc bug workaround to work on all versions of gcc from 5.2 up to, but not including 6.0. See ChangeLog entry 1103 or Trac ticket #4243 for details. (Trac #4553, git 80243d9d246b982d86dd7e0d00597383cae01706)1149. [bug] marcin Corrected a bug whereby clients were not assigned reserved addresses from an external database, as a result of unexpected closure of a connection to that database. (Trac #4544, git 7f682112dd5ab9fcd6bfa4e10505c246775f353d)1148. [func] tomek The vendor options (124, 125 in DHCPv4 and 16, 17 in DHCPv6) are now accessible from client classification. (Trac #4270, #4271, git ef676368f9036625d73f7f34e3fe9b5eeeaee7f1)1148. [func] fdupont Added the pkt classification token to extract incoming packet meta-data (receiving interface name, source and destination address, length). (Trac #4272, git 9a3bdfa43cf65ef56a8d63580dd5d7414fc41373)1147. [func] stephen -Werror is no longer the default for compilation. Promotion of all compilation warnings to errors now requires the --with-werror switch to be specified when running configure. (Trac #4533, git 874e3a3f5cb10313856284646fcee7cf86e4fcce)1146. [func] sar Add the forensic hook library documentation to the admin guide. (Trac #4511, git 0bb39840a3cbdaf815819f846120c90d9ca038ff)1145. [func] tmark The Postgresql backend now supports host reservations for both DHCPv4 and DHCPv6, with options and IPv6 reservations. (Trac #4277 git ac1eaa1026987c2d86d57b4aa0dc9a4d093787f0)1144. [bug] mihu Response to DHCPINFORM is generally sent to port 68, rather than port 67. Thanks to Michal Humpula for providing a patch.