# Kea 1.7.8, May 27th 2020, Release Notes

Welcome to Kea 1.7.8, a monthly development release of Kea. As with any 
other development release, use this with caution. Development releases 
are not recommended for production use.

The most significant changes introduced in this version are:

1. **High Availability multithreading**. The HA hook now has 
experimental mulit-threading support.
2. **HA backup non blocking**. Active servers no longer wait for lease 
update acknowledgments from backup servers.
3. **HA passive backup mode**  The new passive-backup mode allows for 
running a single active server with a number of backup servers.
4. **Multithreading support improved**. We will be releasing Kea 1.8.0 
when the multithreading is complete and stable. This release takes 
another step towards that goal.
5. **Congestion-control disabled for multithreading**.  Multi-threading 
and congestion handling are incompatible. When both are enabled by a 
configuration the dhcp-queue-control is silently disabled, when 
packet-queue-size is not 0 and the multi-threading packet queue is full 
the oldest packet is dropped to make room for a new received one.


## Release Model
The Kea project has a significant production deployment base with users 
who are looking for stability, rather than a constant stream of new 
"bleeding-edge" features. At the same time, we want to continue 
developing the software and add some new powerful, but 
difficult-to-implement, features. To meet both of these requirements we 
have both Stable and Development branches.

Stable releases are what you would expect: stable, released 
infrequently, without new features or significant changes, very 
well-tested. These can be identified by an even-numbered major version 
number. The current stable release is 1.6.2, with a major version of 
1.6, and minor version 2. If we discover important bugs that require 
fixing, we may release 1.6.3, but that will be determined on a 
case-by-case basis. The next major stable version will be 1.8.0, 
followed by 2.0.0 in the future.

Development releases can be easily identified by an odd major version 
number: for example, 1.7.7 is a development release. In June 2020 we 
expect to release 1.7.8, the next development version. Once 1.8.0 is 
out, we will continue our development work with 1.9.0, then 1.9.1, and 
so on.

Our goal is to make the development release available on the last 
Wednesday of each month. There may be exceptions (such as during 
holidays), but that's the general plan. 

We encourage users to test the development releases and report back 
their findings. 

For more details on the plan, see ISC's Software Support Policy at 
https://kb.isc.org/docs/aa-00896.

## Kea overview
Kea is a DHCP implementation developed by Internet Systems Consortium, 
Inc. that features fully functional DHCPv4 and DHCPv6 servers, a dynamic 
DNS update daemon, a Control Agent (CA) that provides a REST API to 
control the DHCP and DNS update servers, an example shell client to 
connect to the CA, a daemon that is able to retrieve YANG configuration 
and updates from Sysrepo, and a DHCP performance-measurement tool. Both 
DHCP servers support server discovery, address assignment, renewal, 
rebinding, release, decline, information request, DNS updates, client 
classification, and host reservations. The DHCPv6 server also supports 
prefix delegation. Lease information is stored in a CSV file by default; 
it can optionally be stored in a MySQL, PostgreSQL, or Cassandra 
database instead. Host reservations can be stored in a configuration 
file, or in a MySQL, PostgreSQL, or Cassandra database. They can also be 
retrieved from a RADIUS server, although this functionality is somewhat 
limited. Kea DHCPv4 and DHCPv6 daemons provide support for YANG models, 
which are stored in a Sysrepo datastore and can be configured via the 
NETCONF protocol.

This text references issue numbers. For more details, visit the Kea 
GitLab page at https://gitlab.isc.org/isc-projects/kea/issues.

## License
This version of Kea is released under the Mozilla Public License, 
version 2.0.

   https://www.mozilla.org/en-US/MPL/2.0

The premium and subscriber-only hook libraries are provided in source 
code form, under the terms of an End User License Agreement (you will 
get the source code that you can modify freely, but you are not 
permitted to redistribute it).

## Download
Pre-built ISC packages for current versions of the most popular Linux 
operating systems are available at:

   https://cloudsmith.io/~isc/repos/

The Kea source and PGP signature for this release may be downloaded from:

   https://www.isc.org/download

The signature was generated with the ISC code signing key which is 
available at:

   https://www.isc.org/pgpkey

ISC provides detailed documentation, including installation instructions 
and usage tutorials, in the Kea Administrator Reference Manual. 
Documentation is included with the installation, at 
https://kea.readthedocs.io/en/latest/, or via 
https://kb.isc.org/docs/kea-administrator-reference-manual in HTML, 
plain text, or PDF formats. ISC maintains a public open source code 
tree, a wiki, an issue tracking system, milestone planning, and a 
roadmap at https://gitlab.isc.org/isc-projects/kea.

Limitations and known issues with this release can be found at 
https://gitlab.isc.org/isc-projects/kea/wikis/known-issues-list.

We ask users of this software to please let us know how it worked for 
you and what operating system you tested on. Feel free to share your 
feedback on the Kea Users mailing list 
(https://lists.isc.org/mailman/listinfo/kea-users).  Also we would like 
to hear whether the documentation is adequate and accurate. Please open 
tickets in the Kea GitLab project for bugs, documentation omissions and 
errors, and enhancement requests. We want to hear from you even if 
everything worked.

## Support
Professional support for Kea is available from ISC. We encourage all 
professional users to consider this option; Kea development and 
maintenance are funded with support subscriptions. For more information 
on ISC's Kea and DHCP software support see https://www.isc.org/support/.

Free best-effort support is provided by our user community via a mailing 
list. Information on all public email lists is available at 
https://www.isc.org/community/mailing-list. If you have any comments or 
questions about working with Kea, please share them to the Kea Users 
List (https://lists.isc.org/mailman/listinfo/kea-users). Bugs and 
feature requests may be submitted via GitLab at 
https://gitlab.isc.org/isc-projects/kea/issues.

## Changes
The following summarizes changes and important upgrade notes since the 
previous release (1.7.7).

```
1750.	[func]		razvan
	Refactored HooksManager so that no lazy initialization is 
possible
	from dhcp processing functions. The function getHooksManager is 
now
	private.
	(Gitlab #1227)

1749.	[func]		fdupont
	When the version is a development (vs. stable) one (second
	number is odd, e.g. in 1.7.x) a server or agent logs a
	warning to dissuade use in production.
	(Gitlab #1184)

1748.	[func]		marcin
	Added two extensions to the HA hooks library. Firstly, the active
	servers no longer wait for the lease update acknowledgments from
	the backup servers. Secondly, the new passive-backup mode allows
	for running a single active server with a number of backup
	servers.
	(Gitlab #999)

1747.	[bug]		fdupont
	Multi-threading and congestion handling were made incompatible:
	when both are enabled by a configuration the dhcp-queue-control 
is
	silently disabled, when packet-queue-size is not 0 and the
	multi-threading packet queue is full the oldest packet is dropped
	to make room for a new received one.
	(Gitlab #1173)

1746.	[bug]		fdupont
	lease4-add and lease6-add commands now return an error when the
	lease already exists.
	(Gitlab #1170)

1745.	[bug]		fdupont
	Made state model and external sockets thread safe.
	(Gitlab #1095)

1744.	[func]		razvan
	Stopping packet processing when changing or reloading 
configuration.
	(Gitlab #1188)
```

Thank you again to everyone who assisted us in making this release 
possible. 

We look forward to receiving your feedback.