Hello Kea-Announce Subscribers --

Last week the Kea team was excited to complete the release of Kea 1.8.0.
Unfortunately we dropped the ball on informing you about that at the time.
We offer our apologies for the delayed announcement but we would like you
to know that 1.8.0 is finally finished and available for download.

Under the alternating "stable branch / development branch" numbering
scheme used by the Kea project, this marks the end of the Kea 1.7
development branch.  The work done to add new features to 1.7 has now
been deemed mature enough to be promoted to become the base for this
new stable production branch and so with the release of Kea 1.8.0 the
experimental features (such as multi-threading) that were added in 1.7
are now available in a branch which is designated stable and recommended
for production.

ISC is committed to continuing support for the previous production
branch, Kea 1.6, until Kea 2.0 is ready to debut, so bug fixes and
security patches will be provided in parallel for the 1.6 and 1.8
production branches for some time to come, while the next development
release of Kea will mark the beginning of the new 1.9 experimental branch.

Kea 1.8.0 is available from our website:
   https://www.isc.org/download/#Kea

Or directly from our downloads server:
   https://downloads.isc.org/isc/kea/1.8.0

====

# Kea 1.8.0, Aug 26th 2020, Release Notes

Welcome to Kea 1.8.0, the first release of the 1.8 series. 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.

If you are interested in the latest development releases with new
features, please look at the upcoming 1.9.x series.

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

The following major features and bugfixes were implemented since the 1.6
series:

1. **Multi-threading**. Kea is now able to take advantage of multiple
CPU cores and process many packets in parallel. In many cases, this
improves overall performance. We have observed a substantial increase in
LPS (Leases Per Second) with multi-threading vs the single-threaded mode
in configurations without High Availability. Many factors contribute to
overall performance, including `enable-multi-threading`,
`thread-pool-size`, `packet-queue-size`, what kind of backend is used,
whether the database is local or remote, and some of these can limit the
performance improvement with multi-threading.

ISC has published the results of our performance tests on our Jenkins
System
(https://jenkins.isc.org/job/kea-1.7/job/performance/KeaPerformanceReport
/). There are new sections in Kea ARM dedicated to enabling and tuning
multi-threaded performance.

2. **Stork support**. Stork, our new open source management application,
monitors many aspects of Kea and presents its status in an easy-to-use
graphical interface. Stork can also export statistics to Prometheus and
Grafana. Stork relies on the `status-get` API command, available in this
version of Kea. You can learn more about Stork here:
https://gitlab.isc.org/isc-projects/stork/

3. **HA improvements**. Many improvements have been made in Kea's High
Availability feature. A new mode of operation `passive-backup` has been
implemented. In this mode there is one primary server and an arbitrary
number of backup servers that get updates from the primary. It is
different than other HA modes in the sense that there is no dedicated
secondary server. The updates to backup servers are now asynchronous,
which greatly reduces the performance penalty for adding new backup
servers. Also, a set of new commands to manipulate HA status
(`ha-maintenance-start`, `ha-maintenance-notify` and
`ha-maintenance-cancel`) are now available. They are useful to perform a
controlled shutdown with faster recovery. Finally, the HTTP connection
recovery has been improved. The server pairs are now able to reestablish
connection more reliably.

4. **Fine grained DNS Updates**. Earlier Kea versions supported global
DNS update parameters. Kea 1.8 makes it possible to specify many DNS
update parameters at the global, shared network and subnet levels. In
particular, it is possible to specify whether to send the updates or not
(`ddns-send-updates`), control whether to sanity-check the client update
(`ddns-replace-client-name`, `hostname-char-set`,
`hostname-char-replacement`), replace (`ddns-generated-prefix`) or
expand the update (`ddns-qualifying-suffix`) on a per shared network or
subnet basis. This provides more flexibility over DNS updating.

5. **New API commands**. Many new API commands have been implemented.
There are new commands to retrieve leases using certain patterns
(`lease4-get-by-client-id`, `lease4-get-by-hostname`,
`lease4-get-by-hw-address`, `lease6-get-by-duid`,
`lease6-get-by-hostname`).  Other new commands instruct Kea to retrieve
new configuration from the Config Backend immediately rather than
waiting for a timer to expire (`config-backend-pull`), or to trigger DNS
updates (`lease4-resend-ddns`, `lease6-resend-ddns`).

6. **New open source hook**.
[flex_option](https://kea.readthedocs.io/en/latest/arm/hooks.html#flex-op
tion-flexible-option-for-option-value-settings). This new hook enables
you to add, supersede or remove an option based upon on the result of an
expression.  The option raw value can be determined by an expression.

7. **New subscriber-only hook**.
[Leasequery](https://kea.readthedocs.io/en/latest/arm/hooks.html#lease-qu
ery-leasequery). This library provides support for DHCPv4 Leasequery as
described in RFC 4388, and for DHCPv6 Lease Query (RFC 5007). This
feature is primarily used by hardware relays (Cisco in particular) to
update their state after a reboot, but can be used by any device or
software that is capable of using the Leasequery protocol.

8. **New open source hook**.
[BOOTP](https://kea.readthedocs.io/en/latest/arm/hooks.html#bootp-support
). This legacy feature was added using a hook module so that it can
easily be omitted from more modern deployments. Surprisingly enough,
there are still many legacy devices that require BOOTP.

9. **Bugfixes**. There are 41 tickets marked as bugs that were fixed
since the 1.6.0 release. Even more small improvements have been
implemented. For a complete list, please see the Changelog below. Two
most notable bug fixes provide a more robust database connection
recovery and improve handling of broken configurations.

10. **Documentation and test reports**. There were 19 documentation
updates that were deemed big enough to be listed in the Changelog. In
addition to that, we now publish weekly performance test reports (see
our
[Jenkins](https://jenkins.isc.org/job/kea-1.7/job/performance/KeaPerforma
nceReport/) test system). This is especially important in the context of
tuning multi-threaded Kea deployments.

11. **Kea Migration Assistant (keama) packages**. Keama is a tool that
reads ISC DHCP's configuration file and produces a Kea configuration
file based on it. ISC DHCP and Kea are very different, so a complete
conversion is impossible, but this provides a starting place for people
who are migrating. It is now much easier to try it, as Keama packages
are now available at https://cloudsmith.io/~isc/repos/keama/packages/.
You can learn more about Keama from our [KB
article](https://kb.isc.org/docs/migrating-from-isc-dhcp-to-kea-dhcp-usin
g-the-migration-assistant).

## 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 hooks 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 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, wiki, issue tracking system, milestone planner, and 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).  We would also 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 maintenance is 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
1.6.0

1797.   [build]         razvan
        Bump up libs version for Kea 1.8.0 release.
        (Gitlab #1395)

1796.   [bug]           marcin
        Kea HTTP client re-establishes connection with the HTTP server
when
        timeout occurs. Prior to this change the client tried to reuse
        the connection after timeout often getting subsequent timeouts.
        Re-establishing the connection may help avoid further timeouts
        during the High Availability operation.
        (Gitlab #1390)

1795.   [bug]           razvan
        Added check for 'renew-timer' value to be lower than or equal to
        'rebind-timer' value at subnet and shared network level.
        (Gitlab #505)

1794.   [func]          razvan
        The 'status-get' command send to DHCPv4 or DHCPv6 servers will
return
        information about multi threading settings
('multi-threading-enabled',
        and only if this setting is active, 'thread-pool-size' and
        'packet-queue-size').
        (Gitlab #1305)

1793.   [doc]           tmark
        Added Leasequery hook library to the list of available hook
        libraries in the ARM.
        (Gitlab #1372)

1792.   [doc]           tmark
        Added the Database Connectivity section to the ARM which explains
        how Kea servers respond to back end database connectivity issues.
        (Gitlab #1284)

1791.   [doc]           tmark
        Updated the ARM section for the Lease Commands hook library
        which incorrectly stated that a command return value of 2 would
        be returned when no lease(s) matched the command. The value
        returned is actually 3.
        (Gitlab #1384)

1790.   [bug]           marcin
        Fixed a bug in Kea Configuration Backend observed when using
certain
        MariaDB database versions. As a result of this bug the Kea
servers were
        unable to fetch configurations stored in the database upon
startup. The
        bug was related to the usage of timestamps which in MariaDB must
be
        set to 1970-01-01 00:00:01 UTC or later. In some cases the Kea
CB used
        out of bounds timestamp values. This bug was observed when using
MariaDB
        10.4.13.
        (Gitlab #1382)

1789.   [bug]           razvan
        Fixed a bug in the lease reclaim process which would not
reschedule the
        timer if the operation failed.
        (Gitlab #1335)

1788.   [bug]*          fdupont
        When a host reservation in a subnet reserves an address, the
        address must be within the subnet. This check was previously
        only done by the host command hook library. Note it does not
        apply to prefix delegation.
        (Gitlab #1254)

1787.   [bug]           razvan
        The recount leases functions consider leases in 'declined' state
as
        'assigned' so that when the lease is reclaimed or reused, no
negative
        counters are generated. The 'subnet[X].reclaimed-leases' and
        'reclaimed-leases' are now cumulative counters and are never
        decremented or reset until server restart. Removed references to
non
        existent 'declined-reclaimed-addresses' counters.
        (Gitlab #1336)

1786.   [bug]           razvan
        Update lease stats when using commands from lease-cmds hook.
        (Gitlab #1065)

1785.   [func]          fdupont
        If enabled, the default value for queue capacity in congestion
control
        has been trimmed down from 500 to 64. The feature continues to
be disabled
        by default.
        (Gitlab #285)

1784.   [build]         wlodek
        Socket path in kea ddns default config was changed to
        /tmp/kea-ddns-ctrl-socket.
        (Gitlab #1379)

1783.   [doc]           tomek
        Installation instructions for RADIUS hook updated.
        (Gitlab #1310)

1782.   [bug]           tmark
        Corrected a bug that causes kea-dhcp4/kea-dhcp6 servers to crash
after
        losing connectivity to a configuration backend database. The
servers
        now correctly honor the max-reconnect-tries parameter.
        (Gitlab #1369)

1781.   [bug]           razvan
        Reject invalid declined state for PD prefix in add and update
        commands in lease-cmds hook.
        (Gitlab #1349)

Kea 1.7.10 (development) released on Jul 29, 2020

1780.   [doc]           wlodek
        Added a section to Kea ARM about tuning performance for kea-dhcp4
        and kea-dhcp6.
        (Gitlab #1285)

1779.   [build]         tmark
        Library version numbers bumped for release.
        (Gitlab #1346)

1778.   [func]*         fdupont
        Changed the order of subnets to follow ascending subnet
identifier.
        (Gitlab #1265)

1777.   [doc]           fdupont
        Added in the Developer's Guide an example about how to cross
        compile Kea for a Raspberry Pi.
        (Gitlab #1221)

1776.   [func]          fdupont
        DHCP servers now log a fatal error message when a reconfiguration
        attempt left a no longer working server. Documentation was
        updated tp propose remedy actions.
        (Gitlab #507,#1166)

1775.   [doc]           vicky
        A Code of Conduct has been added.
        (Gitlab #1143)

1774.   [func]          tmark
        leaseX-del commands now support a new parameter, update-ddns,
        which instructs the server to remove DNS entries for a
        lease after it has been deleted.
        (Gitlab #544)

1773.   [perf]          fdupont
        Kea statistics now uses standard c++11 chrono library instead
        of POSIX time library from boost.
        (Gitlab #1174)

1772.   [perf]          fdupont
        Set kea-lfc process priority to lower than default.
        This change should alleviate CPU utilization spikes caused
        by LFC process observed on some systems.
        (Gitlab #1311)

1771.   [func]          fdupont
        Duplicate ChangeLog entry removed.

1770.   [func]          fdupont
        Added kea-admin lease-stat-recount command which recounts cached
        statistics in MySQL and PostgreSQL lease databases.
        (Gitlab #1196)

1769.   [build]         fdupont
        Added detection of the musl libc which implements dlclose() as
        a no-operation: this behavior breaks Kea expectations for
        hook library unloading.
        (Gitlab #771)

1768.   [func]*         fdupont
        Removed the support of the Logging toplevel entry. Now loggers
must
        be defined in each server toplevel entry.
        (Gitlab #916)

1767.   [bug]           fdupont
        Fixed unit tests failing on systems where an interface is named 
eth0.
        (Gitlab #1043)

1766.   [func]          fdupont
        Optimized the interface manager code and removed the 16 bit limit
        to interface indexes.
        (Gitlab #553)

1765.   [bug]           fdupont
        Corrected a bug in MySQL Config Backend which occasionally caused
        the DHCP servers to overlook some configuration changes. This
        issue could occur when the server fetched configuration changes
        within one second after they they were applied in the database.
        (Gitlab #1247)

1764.   [doc]           fdupont
        Added thread safety consideration sections to library
documentations
        in the developer guide.
        (Gitlab #996,#1264)

1763.   [bug]           fdupont
        Changed the way hook libraries are unloaded. Now unload is done
        in two phases: the first phase calls unload() entry points and
        removes callouts, the second phase unmaps hook library memory
        spaces. This should lead to fewer problems including fewer
crashes
        at exit time. On the other hand, incorrect libraries can stay
        in memory until exit and prevent any (re)load.
        (Gitlab #1282)

Kea 1.7.9 (development) released on June 24, 2020

1762.   [bug]           fdupont
        Fixed the control command execution: either it was deferred by
        DHCP packet processing or a spurious error message was logged.
        (Gitlab #1234)

1761.   [bug]           fdupont
        Found and fixed a possible source of incorrect statistics cached
        in MySQL and PostgreSQL lease databases which in some cases
        made servers fail to start.
        (Gitlab #944,#1196)

1760.   [bug]           razvan
        Fixed log message on DHCPv6 IA_NA lease renew.
        (Gitlab #1276)

1759.   [bug]*          fdupont
        Fixed the way configuration global entries are parsed in DHCPv4
        and DHCPv6 servers. We expect that the change will not be visible
        for sane configurations.
        (Gitlab #1245)

1758.   [func]*         fdupont
        Earlier Kea versions converted "comment" entries to
"user-context"
        scope in the configuration when using config-get. This backwards
        compatibility has now been removed. This may affect users who use
        config-get or config-write commands and use comments in their
        configurations.
        (Gitlab #1100)

1757.   [bug]           fdupont
        config-backend-pull commands were fixed to be applied to the
        current configuration
        (Gitlab #1189)

1756.   [bug]           fdupont
        Made the parking lot API generic thread safe.
        (Gitlab #1255)

1755.   [func]*         fdupont
        Implemented various race avoidance mechanisms in the
multi-threaded
        packet processing: only one query from the same client is
processed,
        subsequent queries from the same client are dropped at the
exception
        of the most recent which will be processed after. When picking
        a free address or prefix from a pool the resource is considered
        as not free for other threads. This is used by the lease commands
        hooks library to avoid conflicts with a minimal overhead.
        Finally individual lease reclamation is exclusive of
multi-threaded
        packet processing.
        (Gitlab #1147)

Kea 1.7.8 (development) released on May 27, 2020

1754.   [func]          marcin
        Improved the procedure of restarting the servers in the
terminated
        HA state. The servers can now be restarted sequentially without
the
        risk of returning to the terminated state right after restart.
        Previously, the servers had to be both shutdown before being
        restarted to avoid returning to the terminated state.
        (Gitlab #1205)

1753.   [func]*         marcin
        Extended the response to the status-get command to include
        information about the progress of the failover procedure
        while the active servers are in the communication interrupted
        state. The new data allow for monitoring the number of clients
        attempting to communicate with the partner which is presumably
        offline, total number of packets sent to the partner and so on.
        The syntax of the response was modified and is incompatible with
        previous Kea versions.
        (Gitlab #1087)

1752.   [doc]           tmark
        Added documentation for the Leasequery premium
        hook library to the ARM.
        (Gitlab #1180)

1751.   [perf]          marcin
        Corrected performance issue occurring while loading large
configurations
        via the MySQL Config Backend. Improper database indexing caused
long
        server startup time as well as long time to respond to various
        commands, such as subnet4-list or subnet6-list.
        (Gitlab #1242)

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)

Kea 1.7.7 (development) released on Apr 29, 2020

1743.   [doc]           tomek
        ISC now provides a dashboard solution for Kea. Added
documentation
        pointers about the ISC Stork project.
        (Gitlab #1191)

1742.   [func]          fdupont
        Added new cumulative statistics: for each assigned IPv4 address,
        IPv6 NA address or IPv6 PD prefixes
cumulative-assigned-addresses,
        cumulative-assigned-nas or cumulative-assigned-pds global and
        per subnet is increased. A spelling error in the result-set of
        the stat-lease4-get of the stat cmds hook library was fixed.
        (Gitlab #816)

1741.   [func]          fdupont
        When the MySQL InnoDB reports a deadlock (very rare event)
        the failed query is rerun.
        (Gitlab #1160)

1740.   [bug]           fdupont
        Incorrect signal handling in the process library (used for
        control agent, d2 and netconf server but not by DHCPv4 or
        DHCPv6 servers) was replaced by the boost ASIO signal set.
        (Gitlab #1096)

1739.   [func]          razvan
        Added multi threading configuration parameters which can be used
        to adjust server performance according to setup resources and
needs:
        enable-multi-threading, thread-pool-size and packet-queue-size.
        There is also an automatic detection implemented by using
        thread-pool-size set to 0. However, the packet-queue-size must be
        manually configured and does not scale automatically.
        The temporary -N command line option was removed.
        The multi threading is disabled by default.
        (Gitlab #893)

1738.   [func]          fdupont
        Added new global parameters statistic-default-sample-count and
        statistic-default-sample-age to set the default values used
        for sample keeping limits.
        (Gitlab #1005)

1737.   [func]          tmark
        Added store-extended-info parameter to kea-dhcp4 and kea-dhcp6
        which enables the storage of additional information per lease.
        This has been added in anticipation of supporting LeaseQuery.
        (Gitlab #1010)

1736.   [doc]           fdupont
        A default logging syntax has been updated to reflect recently
added
        multi-threading capabilities. The process is now identified by
        name/process-id.thread-id, e.g. kea-dhcp4.dhcpsrv/8475.12345,
where
        12345 is the thread-id. Its exact syntax is OS dependent. The
        logging syntax can be tweaked using `pattern` option for logging.
        (Gitlab #1150)

Kea 1.7.6 (development) released on Mar 25, 2020

1735.   [func]          wlodek
        Added clean output mode to perfdhcp with configurable separator
        for periodic reports.
        (Gitlab #1046)

1734.   [doc]           vicky
        A list of supported OSes is now described in a separate
        platforms.rst file.
        (Gitlab #1055)

1733.   [func]          tmark
        Added lease4-resend-ddns and lease6-resend-ddns commands to
        the Lease Commands hook library.  These commands may be used to
        instruct kea-dhcp4 or kea-dhcp6 to resend a request to update a
        lease's DNS entries to kea-dhcp-ddns.
        (Gitlab #1106)

1732.   [func]          marcin
        Client classes specified within host reservations can be used
        to influence subnet choice within a shared network and pool
        selection within a subnet.
        (Gitlab #1139)

1731.   [func]          razvan
        The NameChangeSender class is thread safe, making DNS updates
        compatible with multi-threading packet processing.
        (Gitlab #1148)

1730.   [func]          razvan
        Added -N command line switch that enables experimental
multi-threading
        support. Number of threads can be specified (e.g. -N8) or Kea
can be
        told to autodetect number of CPU threads (-N0). This feature is
        experimental. It hasn't been tested extensively and is known to
cause
        problems with DDNS and HA. Do not use in production!
        (Gitlab #893)

1729.   [func]          razvan
        The RAII MultiThreadingCriticalSection class is now able to
        automatically stop and start the packet thread pool in order to
        perform server configuration and avoid race conditions in non
        thread safe code.
        (Gitlab #1016)

1728.   [bug]           tmark
        Memfile now supports commas in the hostname and user-context
        columns.  Commas in either column now escaped as "&#x2c" when
        written out, and unescaped when read back in.
        (Gitlab #608)

1727.   [bug]           tmark
        When shutting down due to lost backend database connectivity,
        kea-dhcp4 and kea-dhcp6 processes will exit with a non-zero
value.
        This was temporarily altered by #1108. In addition, the
"shutdown"
        command now supports an "exit-value" argument.
        (Gitlab #1115)

1726.   [func]          razvan
        Handling SKIP and DROP state in hooks so that the same operation
        is not performed multiple times. Some hooks will throw exceptions
        if the pktX_receive or pktX_send is handled by other hooks, in
        such case, the configuration order of the hooks must be changed.
        (Gitlab #1088)

Kea 1.7.5 (development) released on Feb 26, 2020

1725.   [func]          wlodek
        Added perfdhcp command option to enable checking address
        and/or prefix uniqueness.
        (Gitlab #1021)

1724.   [func]          razvan
        Added packet thread pool in dhcpv4 and dhcpv6 servers. It adds
        the ability to handle processPacket function on multiple threads.
        When enabled, parked packets are also added to the queue of items
        to be handles by the thread pool. The packet thread pool is
        currently disabled and there is no option to enable it yet.
        (Gitlab #892)

1723.   [func]          tmark
        Hostname sanitizing is now globally enabled by default.  Prior
        to this it was disabled.
        (Gitlab #1048)

1722.   [bug]           razvan
        Compilation fix for MySQL/MariaDB on Ubuntu 19.10.
        (Gitlab #1071)

1721.   [func]*         fdupont
        Added multi_threading_compatible function in hooks to retrieve
        the compatibility with multi-threading. This function is called
        when the library is loaded and if it reports 0 (incompatible) and
        multi-threading is enabled, then the configuration will be
        rejected. The absence of this function from the library defaults
        to incompatibility with multi-threading. All hooks and premium
        hooks must be updated to be able to be used with multi-threading.
        However, not all libraries are (or will ever be) compatible.
        (Gitlab #947)

1720.   [func]*         tomek
        The next step status in pkt4_send hook point now is able to
        distinguish between SKIP (Kea will skip packing the packet with
        the assumption that a hook already did that) and DROP (Kea will
        drop the packet). Previously both SKIP and DROP were interpreted
        as skip packing.
        (Gitlab #1090)

1719.   [func]          razvan
        Prepared CalloutManager to be used in multi-threading by moving
        the current library index and hook index to the CalloutHandle.
        This change removes the CallountHandle::getLibraryHandle, along
        with the possibility of dynamically registering/deregistering
        callouts inside callouts.
        (Gitlab #957)

1718.   [bug]           tmark
        kea-dhcp4 and kea-dhcp6 now shutdown gracefully by executing
        the shutdown command, if connectivity with a backend database
        has been lost and retries are either disabled or have been
        exhausted. Prior to this they simply invoked exit() which
        could orphan control socket files or cause segfaults unloading
        the CB Cmds hook library.
        (Gitlab #1108)

1717.   [func]          razvan
        Prepared PgSqlHostMgr to be used with multi-threading by using a
        connection pool with thread context.
        (Gitlab #1074)

1716.   [func]          razvan
        Implemented thread safe stats manager and stats context.
        (Gitlab #891)

1715.   [bug]           tmark
        Kea servers now detect and remove orphaned control channel
        sockets.  This corrects a failure of the servers to restart
        with an error of "address already in use" following a fatal
        loss of database connectivity.
        (Gitlab #1097)

Kea 1.7.4 (development) released on Jan 29, 2020

1714.   [build]         razvan
        Bumped up library version numbers for Kea 1.7.4 release.
        (Gitlab #1101)

1713.   [bug]*          tmark
        Code added under #35 to permit scoping of DDNS behavioral
parameters
        was refactored to improve performance.
        (Gitlab #981)

1712.   [bug]           tmark
        Corrected an issue in the MySQL CB hook library which could
        cause subnet and shared-network options, properly added to
        the CB database, to be discarded when fetched from the backend.
        (Gitlab #1093)

1711.   [func]          razvan
        Prepared MySqlHostMgr to be used with multi-threading by using a
        connection pool with thread context.
        (Gitlab #1073)

1710.   [bug]           fdupont
        The code that handles default parameters and parameters
        inheritance, such as applying global values to subnet level,
        has been updated slightly. Although unlikely, there is small
        possibility this may affect boot-file-name, client-class,
        interface, match-client-id, authoritative, next-server,
        reservation-mode, and server-hostname values in Subnet4 and
        client-class, interface, interface-id, rapid-commit, and
        reservation-mode in Subnet6.
        (Gitlab #724)

1709.   [func]          fdupont
        MySQL Configuration Backend now allows for storing DDNS related
        configuration in the database.
        (Gitlab #946)

1708.   [doc]           tomek
        Clarified the relationship between comments and user context.
        (Gitlab #1079)

1707.   [func]          marcin
        High Availability hooks library supports controlled maintenance
        of the servers. The new ha-maintenance-start command puts one
        of the servers in the partner-in-maintenance state and causes
        this server to take over the entire DHCP traffic directed to the
        HA service. The second server in the in-maintenance state can be
        safely shutdown for the maintenance. This new mechanism solves
        the problem present in earlier versions of Kea when the
        administrator had to rely on the failover mechanism to promote
        one of the servers to handle the DHCP traffic while the other
        server was down.
        (Gitlab #1024)

1706.   [bug]           fdupont
        Fixed BOOTP hook. It now properly handles BOOTP packets and sends
        valid responses.
        (Gitlab #1064)

1705.   [bug]           fdupont
        Modified option 43 parsing to interpret sub-option codes 0 and
255
        as PAD and END when no sub-option with these codes are defined.
        This adds control of illegal but common use of these reserved
        code points in option 43.
        (Gitlab #950)

1704.   [func]          fdupont
        Prepared memfile lease manager to be used with multi-threading.
        (Gitlab #894)

1703.   [bug]           niclas rozenvik
        A fix in the --with-gtest option. It is now able to detect the
        libgtest.a. Thank you to Niclas Rozenvik for reporting the issue
        and proposing a fix!
        (Gitlab #1080)

1702.   [func]          razvan
        Update and delete operations on database back-ends use lease old
        expire value (internal storage) to detect concurrent actions on
        the same lease.
        (Gitlab #1040)

1701.   [func]          razvan
        Initialize all option definitions at program startup instead of
        using lazy initialization to make access thread safe and
lock-less.
        (Gitlab #889)

1700.   [func]          godfryd
        Enabled checking Kea merge request in GitLab CI by Danger tool
        (see https://danger.systems/guides/dangerfile.html).
        (Gitlab #672)

Kea 1.7.3 (development) released on Nov 18th, 2019

1699.   [func]          fdupont, marcin
        Implemented status-get command which returns general status
        information about a Kea server status and optionally
        HA specific information if the HA hooks library is present.
        (Gitlab #1041)

1698.   [doc]           wlodek
        Avalanche scenario for perfdhcp is now documented.
        (Gitlab #876)

1697.   [doc]           wlodek
        Forensic logging documentation now mentions database
        configuration.
        (Gitlab #943)

1696.   [func]          fdupont
        A new hook library libdhcp_bootp has been implemented. Once
        loaded, this hook will provide support for BOOTP packets, as
        defined in RFC1497. Please see the "BOOTP support" Section in the
        ARM for details.
        (Gitlab #898)

1695.   [func]          fdupont
        Added support of BOOTP leases with infinite valid lifetime.
        This includes representation of such leases in MySQL and
        PostgreSQL databases which the expire date can be a 32 bit
        integer.
        (Gitlab #897)

1694.   [doc]           marcin
        Described the usage of the ha-heartbeat command to check the
        states of the HA enabled DHCP servers.
        (Gitlab #998)

1693.   [func]          fdupont
        Client supplied ciaddr is now sent back when responding to
        DHCPINFORM
        (Gitlab #992)

1692.   [build]         fdupont
        Better support for google test 1.10.0.
        (Gitlab #954)

1691.   [build]         tomek
        Google test version detection improved.
        (Gitlab #206)

1690.   [func]          fdupont, razvan
        As a preparation for upcoming multi-threading, the PgSQL
        connection pool has been implemented. This code is not
        usable on its own yet, but it will allow all threads
        to share a pool of connections in the future. This
        should improve the overall PgSQL lease backend performance.
        Fixed some log messages that were missing lease type details
        in DHCPv6 PostgreSQL lease manager actions.
        (Gitlab #1044)

Kea 1.7.2 (development) released on Nov 27, 2019

1689.   [bug]*          fdupont
        The default Kea Control Agent's configuration file uses port 8000
        instead of 8080 for the agent. This corrects the mismatch between
        the default port number used by the kea-shell and the agent.
        (Gitlab #793)

1688.   [func]          fdupont
        Added a new callout (hook point) executed when the server has
        completed a configuration update using the Config Backend.
        (Gitlab #596)

1687.   [doc]           fdupont
        Described for developers the way for a hook library to be
loadable
        only for specific server(s) and applied as an example to ha.
        (Gitlab #50)

1686.   [func]          razvan
        Added a generic ThreadPool class which can be used to process
        functor work items in parallel, on multiple threads. It uses
        a queue container to manage the work items.
        (Gitlab #883)

1685.   [build]         fdupont
        Small build improvement. The fcntl.h header is included in more
        portable way. This should make it easier to build on Alpine
systems and
        possibly other systems.
        (Gitlab #765)

1684.   [func]          fdupont
        As a preparation for upcoming multi-threading, the MySQL
        connection pool has been implemented. This code is not
        usable on its own yet, but it will allow all threads
        to share a pool of connections in the future. This
        should improve the overall MySQL lease backend performance.
        (Gitlab #960)

1683.   [bug]           wlodek
        Perfdhcp is able to parse incoming packet and determine
        if included IA_NA/IA_PD options are correct, counter
        of rejected leases is introduced for all DHCP v6 message
        exchanges. Perfdhcp will no longer send Request/Renew/Release
        message without proper IA_NA/IA_PD included.
        (Gitlab #572)

1682.   [bug]*          tmark
        Added logic to core code and HA hook lib to allow HA peers
        to detect and handle out of bandwidth socket events.  This
        corrects a defect introduced in Kea 1.6.0 that can cause
        an HA server to become unresponsive when an HA socket has
        been closed by a peer.  Note that there is a change to the
        signature of the external socket callback handler invoked
        by IfaceMgr.  Custome hook libraries happen register external
        sockets with IfaceMgr will require modification and
        recompilation.
        (Gitlab #964)

Kea 1.7.1 (development) released on Oct 30, 2019

1681.   [func]          fdupont
        Added new command config-backend-pull which forces the server
        to immediately poll the configuration updates from the
        configuration backend
        (Gitlab #904)

1680.   [bug,build]     Kristoffer Larsen
        A bug in Makefile has been fixed. The changes made to
        src/lib/dhcpsrv/alloc_engine_messages.mes are now picked up
        properly.
        (Gitlab #752)

1679.   [func]          fdupont
        Added new commands to the lease_cmds hooks library to search for
        leases by hardware address, client-id, DUID and hostname. Now
        hostnames are stored in lower case within the lease database.
        (Gitlab #393)

1678.   [build]         fdupont
        The arguments passed to configure are now stored and are
available
        using -W command line option.
        (Gitlab #869)

1677.   [doc]           wlodek
        Sample configs now all use the same paths for control sockets.
        (Gitlab #795)

1676.   [func]          fdupont
        A new hook - flex-option - has been developed. It allows setting
        up DHCPv4 and DHCPv6 option values dynamically, using expression.
        This capability is very useful when you want to generate option
        value procedurally. For details, see new section "Flexible Option
        for Option value settings" in the Kea Administrator Reference
        Manual.
        (Gitlab #219,!523, git 2bf854c029b9b07ee6161bc1fcb4dfdc9846ee42)

1675.   [func]          fdupont
        Both DHCPv4 and DHCPv6 can now listen on and send responses
        to a custom UDP port, as specified with the -p command line
        option. This capability is mostly useful for testing.
        (Gitlab #677,!548, git 47e709fb7b89464d4473e8c7cb138f539042d68b)

1674.   [perf]          fdupont
        Added a Multi Threading Manager singleton class in the util
library.
        (Gitlab #962,!566, git 66b090e54b45bdeefda266ddd62e42b46ed48d1d)

1673.   [bug]           tmark
        Fixed a bug introduced in Kea 1.6.0 (see #539) that caused
        kea-dhcp4 and kea-dhcp6 to discard inbound packets containing
        string options that consist solely of nulls.  The servers
        will now quietly omit empty or all-null string options from
        inbound packets.
        (Gitlab #900,!561, git c75a7c10bde74f59d481a7717b4e03b9cb2268a6)

1672.   [build]         fdupont
        Deprecated bind1st and bind2nd templates were replaced with
        lambda expressions or plain bind templates.
        (Gitlab #919,!521, git b12fa3374454c9c0d749557d5532aab55dbc58d9)

1671.   [bug]           tmark
        Corrected an issue in kea-dhcp6 where the server would fail
        to extend the expiry of a existing dynamic lease assigned to
        client with host reservation.
        (Gitlab #754,!558, git c223380012b82c93292528b593002c2b80b5361b)

1670.   [func]          fdupont
        Added searches for host reservations by hostname and by hostname
        and subnet.
        (Gitlan #392,!529, git 50068ada6b277c9251de9062501d8c478a8f5529)

1669.   [func]          tmark
        Rather than within the 'dhcp-ddns' section, DDNS behavioral
        parameters may now be specified at global, shared-network,
        and subnet scopes.  Implemented for both kea-dhcp4 and
        kea-dhcp6.  Not yet supported by Config Backend or Netconf.
        (Gitlab #35,!517, git 49ce6286f5d00f99c1c890f12cbc0fd633c9dbf6)

1668.   [build]         fdupont
        The Kea util thread library was removed.
        (Gitlab #907,!519, git 1b27dc52aae23753643461086f0950b125bf9c93)

1667.   [build]         fdupont
        The availability of C++11 thread, mutex, condition variable and
        atomic libraries is now checked by ./configure.
        (Gitlab #918,!520, git baf4097520c1cd38366ee4f33a95dde040906e9e)

1666.   [doc]           tmark
        Added note in ARM about manually admining cb data being possible
        but not supported.
        (Gitlab #917,!518, git f242e5c2e0e14331172671477dce3a6597691b55)

Kea 1.7.0 (development) released on Sep 25, 2019

1665.   [build]         tmark
        Bumped up library version numbers for Kea 1.7.0 final release.
        (Gitlab #924,!526, git c4061d0fdd660c8e375b4e1317603935ccc00b39)

1664.   [build]         razvan
        Make sysrepo_config detect installed sysrepo version.
        (Gitlab #766,!449, git e1a236fa4f4680d3eadade6b5f5a6a6065620a5b)

1663.   [build]         fdupont
        Dropped support for Botan 1.x crypto library in Kea as these
        versions are now end of life.
        (Gitlab #345,!498, git ba028eee986c0da963754c6fcb74790081557bec)

1662.   [bug]           marcin
        Prevent deadlock in the Kea DHCP servers caused by allocating
        memory in the system signal handler. The issue was found on
        CentOS 7.6, but could possibly affect Kea running on any other
        OS.
        (Gitlab #796,!504, git f858d9d0b63a18370ebb8bd7d1b8250d0c5a1cb5)

1661.   [bug]           tmark
        kea-dhcp4 now rejects inbound client messages that have
        neither a hardware address nor a client identifier.
        (Gitlab #821,!501, git 60baf65d0c9de384b0da147b50b7fc3180fc54dd)

1660.   [func]          franek
        Statistics of the DHCP packets are now initialized upon the
        server startup. This makes the statistics available for fetching
        via control channel immediately after the server is started.
        (Gitlab #755,!503, git f0238d1b6e88dfedaa91029ec3b65e06c14cab34)

1659.   [bug]           razvan
        Corrected an issue in the DHCPv4 server logic whereby the
user-defined
        option definitions were not committed which could result in
        configuration failures when values for such options were
specified.
        (Gitlab #729, !434, git e5b68fb226161dcdef0e4d2d9d03d9bdb95af5e2)

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

We look forward to receiving your feedback.

_______________________________________________
Kea-announce mailing list
[email protected]
https://lists.isc.org/mailman/listinfo/kea-announce

Reply via email to