1. [ ] Check that a previously released schema has not been changed.
1. [ ] Check that the additions to `dhcpdb_create.*sql`, and nothing more nor less than what was added in this release, is present in a `upgrade_*_to_*.sh.in` script that should also have been added in this release.
1. [ ] Prepare release notes.
- 1. [ ] Create a draft of the release notes on the [Kea GitLab wiki](https://gitlab.isc.org/isc-projects/kea/-/wikis/home). It should be created under [the Releases directory](https://gitlab.isc.org/isc-projects/kea/-/wikis/Releases), like this one: https://gitlab.isc.org/isc-projects/kea/-/wikis/Releases/Release-notes-2.3.4.
+ 1. [ ] Create a draft of the release notes on the [Kea GitLab wiki](https://gitlab.isc.org/isc-projects/kea/-/wikis/home). It should be created under [the Release-Notes directory](https://gitlab.isc.org/isc-projects/kea/-/wikis/Release-Notes), like this one: https://gitlab.isc.org/isc-projects/kea/-/wikis/Release-Notes/release-notes-2.3.4.
1. [ ] Notify @tomek that the draft is ready to be redacted. Wait for that to be done.
1. [ ] Notify support that release notes are ready for review. To avoid conflicts in edits wait with next step after review is done. Due to the time difference, please do this at least 36 hours before the planned release.
1. [ ] Check that packages can be uploaded to Cloudsmith.
### Coding guidelines
Does your patch conform to [Kea coding
-guidelines](https://gitlab.isc.org/isc-projects/kea/wikis/coding-guidelines)? You can submit a
+guidelines](https://gitlab.isc.org/isc-projects/kea/-/wikis/Processes/Coding-Guidelines)? You can submit a
patch that does not adhere to them, but that will reduce its chances of being accepted. If the
deviations are minor, one of the Kea engineers who does the review will likely fix the issues.
However, if there are lots of issues, the reviewer may simply reject the patch and ask you to fix it
The first step in writing the patch or new feature should be to get the source code from our Git
repository. The procedure is very easy and is [explained
-here](https://gitlab.isc.org/isc-projects/kea/wikis/processes/gitlab-howto). While it is possible
+here](https://gitlab.isc.org/isc-projects/kea/-/wikis/processes/Gitlab-HowTo). While it is possible
to provide a patch against the latest stable release, it makes the review process much easier if it
is for latest code from the Git master branch.
Other issues with the old parsers are discussed here: @ref dhcpv6ConfigParserBison (this section is
focused on DHCPv6, but the same issues affected DHCPv4 and D2) and here:
-https://gitlab.isc.org/isc-projects/kea/wikis/designs/simple-parser-design.
+https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/simple-parser-design.
@section parserBisonIntro Flex/Bison Based Parser
* development version of the manual</a> is recommended.
*
* Regardless of your field of expertise, you are encouraged to visit the
- * <a href="https://gitlab.isc.org/isc-projects/kea/wikis/home">Kea wikipage (https://gitlab.isc.org/isc-projects/kea/wikis/home)</a>
+ * <a href="https://gitlab.isc.org/isc-projects/kea/-/wikis/Home">Kea wikipage (https://gitlab.isc.org/isc-projects/kea/-/wikis/Home)</a>
*
* @section contrib Contributor's Guide
* - @subpage contributorGuide - This page describes the process of sending
To understand the logging statements, it is essential to understand a bit about
how expressions are evaluated; for a more complete description, refer to
-[the design document](https://gitlab.isc.org/isc-projects/kea/-/wikis/designs/client-classification-design).
+[the design document](https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/client-classification-design).
In brief, there are two structures used during the evaluation of an
expression: a list of tokens which represent the expressions, and a value
stack which represents the values being manipulated.
Related design documents are available in our GitLab:
-- `CB Design <https://gitlab.isc.org/isc-projects/kea/wikis/designs/configuration-in-db-design>`__
-- `Client Classes in CB Design <https://gitlab.isc.org/isc-projects/kea/wikis/designs/client-classes-in-cb>`__
+- `CB Design <https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/configuration-in-db-design>`__
+- `Client Classes in CB Design <https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/client-classes-in-cb>`__
.. _cb-install:
Kea provides a dedicated hook for managing reservations in a
database; section :ref:`hooks-host-cmds` provides detailed information.
The `Kea wiki
-<https://gitlab.isc.org/isc-projects/kea/wikis/designs/commands#23-host-reservations-hr-management>`__
+<https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/commands#23-host-reservations-hr-management>`__
provides some examples of how to conduct common host reservation
operations.
Kea provides a dedicated hook for managing reservations in a
database; section :ref:`hooks-host-cmds` provides detailed information.
The `Kea wiki
-<https://gitlab.isc.org/isc-projects/kea/wikis/designs/commands#23-host-reservations-hr-management>`__
+<https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/commands#23-host-reservations-hr-management>`__
provides some examples of how to conduct common host reservation
operations.
volatile and can be made permanent by sending the :isccmd:`config-write` command.
For a description of proposed future commands, see the `Control API
-Requirements <https://gitlab.isc.org/isc-projects/kea/wikis/designs/commands>`__
+Requirements <https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/commands>`__
document.
All host commands use JSON syntax. They can be issued either using the
ISC hopes to see more hook libraries become available as time
progresses, developed both internally and externally. Since this list
may evolve dynamically, it is maintained on a wiki page, available
-at https://gitlab.isc.org/isc-projects/kea/wikis/Hooks-available.
+at https://gitlab.isc.org/isc-projects/kea/-/wikis/Hooks-Available.
Developers or others who are aware of any hook libraries not listed there
are asked to please send a note to the kea-users or kea-dev mailing lists for
updating. (Information on all of ISC's public mailing lists can be found
cannot open shared object file: No such file or directory
-Cross-Building
---------------
-
-It is possible to cross-build Kea, i.e. to create binaries in a separate
-system (the ``build`` system) from the one where Kea runs
-(the ``host`` system).
-
-It is outside of the scope of common administrator operations and requires
-some developer skills, but the Developer Guide explains how to do that
-using an x86_64 Linux system to build Kea for a Raspberry Pi box running
-Raspbian: see this `Kea Cross-Compiling Example
-<https://reports.kea.isc.org/dev_guide/de/d9a/crossCompile.html>`__.
-
.. _dhcp-install-configure:
DHCP Database Installation and Configuration
-// Copyright (C) 2014-2018 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2014-2025 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
update the DNS data.
The design documentation for D2 can be found here:
-<a href="https://gitlab.isc.org/isc-projects/kea/wikis/designs/ddns-design">D2 Design</a>.
+<a href="https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/ddns-design">D2 Design</a>.
The implementation is split in several libraries which can be used separately
(linked only when required):
-// Copyright (C) 2012-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2012-2025 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
descriptive if the input string does not parse properly.
Details of the refactor of the classes derived from DhcpConfigParser are
-documented in https://gitlab.isc.org/isc-projects/kea/wikis/designs/simple-parser-design.
+documented in https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/simple-parser-design.
For a generic description of the conflict avoidance, see @ref parserFlex.
// even influence how the server processes packets. Those libraries include
// additional forensic logging capabilities, ability to reserve hosts in
// more flexible ways, and even add extra commands. For a list of available
- // hook libraries, see https://gitlab.isc.org/isc-projects/kea/wikis/Hooks-available.
+ // hook libraries, see https://gitlab.isc.org/isc-projects/kea/-/wikis/Hooks-Available.
// "hooks-libraries": [
// {
// // Forensic Logging library generates forensic type of audit trail
// even influence how the server processes packets. Those libraries include
// additional forensic logging capabilities, ability to reserve hosts in
// more flexible ways, and even add extra commands. For a list of available
- // hook libraries, see https://gitlab.isc.org/isc-projects/kea/wikis/Hooks-available.
+ // hook libraries, see https://gitlab.isc.org/isc-projects/kea/-/wikis/Hooks-Available.
// "hooks-libraries": [
// {
// // Forensic Logging library generates forensic type of audit trail
-// Copyright (C) 2015-2018 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2015-2025 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
reading the leases it will write the unique leases to the output file.
The design documentation for kea-lfc can be found here:
-<a href="https://gitlab.isc.org/isc-projects/kea/wikis/Lease-File-Cleanup-design"> LFC Design</a>
+<a href="https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/lease-file-cleanup-design">LFC Design</a>
While kea-lfc can be started externally, there is usually no need to do this as the
Kea servers will run it on a periodic basis.
This section is intended to provide a brief overview of how kea-lfc uses its
files. For a more in depth discussion of the design see
-<a href="https://gitlab.isc.org/isc-projects/kea/wikis/designs/Lease-File-Cleanup-design">LFC Design</a>
+<a href="https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/lease-file-cleanup-design">LFC Design</a>
There are four files used during the kea-lfc process: previous, input, output
and finish. They are used to both hold the leases and to indicate to the Kea
-// Copyright (C) 2015-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2015-2025 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
/// Provides the control logic to combine two lease files and
/// weed out duplicate and expired leases. A description of
/// the design can be found at
- /// https://gitlab.isc.org/isc-projects/kea/wikis/designs/Lease-File-Cleanup-design
+ /// https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/lease-file-cleanup-design
///
/// -# parse command line arguments
/// -# verify that it is the only instance
-// Copyright (C) 2017-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2017-2025 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
the word "Failover" in the context of this library.
The HA feature design can be found at
-<a href="https://gitlab.isc.org/isc-projects/kea/wikis/designs/High-Availability-Design">Kea HA Design page</a>.
+<a href="https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/High-Availability-Design">Kea HA Design page</a>.
@section haWhyHookLibrary Why Hook Library?
-// Copyright (C) 2018-2023 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2018-2025 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
corresponds to the file name of the library: isc::stat_cmds.
For background on the design and design choices please refer to: <a
-href="https://gitlab.isc.org/isc-projects/kea/wikis/designs/shared-lease-storage-statistics">Shared Lease Stats Design</a>
+href="https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/shared-lease-storage-statistics">Shared Lease Stats Design</a>
@section stat_cmdsCode Stat Commands Code Overview
-// Copyright (C) 2016-2020 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2016-2025 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
more interdependent values) and as of Kea 1.1 release it became very difficult
to manage. The decision has been made to significantly refactor or even
partially rewrite the parser code. The design for this effort is documented
-here: https://gitlab.isc.org/isc-projects/kea/wikis/designs/simple-parser-design. It discusses the original issues
+here: https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/simple-parser-design. It discusses the original issues
and the proposed architecture.
There are several aspects of this new approach. The base class for all
-// Copyright (C) 2009-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2009-2025 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
///
/// This file contains several functions and constants that are used for
/// handling commands and responses sent over control channel. The design
-/// is described here: https://gitlab.isc.org/isc-projects/kea/wikis/Stats-design, but also
+/// is described here: https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/Stats-design, but also
/// in @ref ctrlSocket section in the Developer's Guide.
namespace isc {
-// Copyright (C) 2017-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2017-2025 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
/// uses the command as an input and invokes appropriate handlers.
///
/// The commands and responses are formatted using JSON.
-/// See https://gitlab.isc.org/isc-projects/kea/wikis/designs/Stats-design
+/// See https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/Stats-design
/// for details.
///
/// Below is an example of the command using JSON format:
-// Copyright (C) 2015-2018 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2015-2025 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
/// This is an implementation of the DHCPv4-query/response DHCPv6 messages
/// defined in RFC 7341 (http://ietf.org/rfc/rfc7341.txt).
/// See also
-/// https://gitlab.isc.org/isc-projects/kea/wikis/designs/dhcpv4o6-design
+/// https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/dhcpv4o6-design
/// for design discussions.
class Pkt4o6 : public Pkt4 {
public:
/// @brief Definitions of vendor-specific DHCPv6 options, defined by ISC.
/// 4o6-* options are used for inter-process communication. For details, see
-/// https://gitlab.isc.org/isc-projects/kea/wikis/designs/dhcpv4o6-design
+/// https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/dhcpv4o6-design
///
/// @todo: As those options are defined by ISC, they do not belong in std_option_defs.h.
/// We need to move them to a separate file, e.g. isc_option_defs.h
///
/// This method retrieves a collection of expired leases and reclaims them.
/// See
- /// https://gitlab.isc.org/isc-projects/kea/wikis/designs/lease-expiration#leases-reclamation-routine
+ /// https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/lease-expiration#leases-reclamation-routine
/// for the details.
///
/// This method is executed periodically to act upon expired leases. This
///
/// This method retrieves a collection of expired leases and reclaims them.
/// See
- /// https://gitlab.isc.org/isc-projects/kea/wikis/designs/lease-expiration#leases-reclamation-routine
+ /// https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/lease-expiration#leases-reclamation-routine
/// for the details.
///
/// This method is executed periodically to act upon expired leases. This
-// Copyright (C) 2014-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2014-2025 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
/// received over.
///
/// @todo: Add additional selection criteria. See
- /// https://gitlab.isc.org/isc-projects/kea/wikis/designs/dhcpv4o6-design for details.
+ /// https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/dhcpv4o6-design for details.
///
/// @param selector Const reference to the selector structure which holds
/// various information extracted from the client's packet which are used
/// file will contain many entries for each lease. In order to mitigate this
/// problem, the backend implements the Lease File Cleanup mechanism which is
/// described on the Kea wiki:
-/// https://gitlab.isc.org/isc-projects/kea/wikis/designs/Lease-File-Cleanup-design.
+/// https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/lease-file-cleanup-design.
///
/// The backend installs an @c asiolink::IntervalTimer to periodically execute
/// the @c Memfile_LeaseMgr::lfcCallback. This callback function controls
/// - LFC PID File: ".pid"
///
/// See
- /// https://gitlab.isc.org/isc-projects/kea/wikis/designs/Lease-File-Cleanup-design
+ /// https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/lease-file-cleanup-design
/// for details.
///
/// @param file_name A base file name to which suffix is appended.
/// The <filename>.2, <filename>.1 and <filename>.completed are the
/// products of the lease file cleanups (LFC).
/// See:
- /// https://gitlab.isc.org/isc-projects/kea/wikis/designs/Lease-File-Cleanup-design
+ /// https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/lease-file-cleanup-design
/// for details.
///
/// @note: When the server starts up or is reconfigured it will try to
/// the lease files.
///
/// For the design and the terminology used in this description refer to
- /// the https://gitlab.isc.org/isc-projects/kea/wikis/designs/Lease-File-Cleanup-design.
+ /// the https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/lease-file-cleanup-design.
///
/// If the method finds that the %Lease File Copy exists it simply runs
/// the @c kea-lfc application.
-// Copyright (C) 2015-2024 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2015-2025 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
}
// Checks whether an integer statistic can generate proper JSON structures.
-// See https://gitlab.isc.org/isc-projects/kea/wikis/designs/Stats-design
+// See https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/Stats-design
/// for details.
TEST_F(ObservationTest, integerToJSON) {
// String which contains first added sample
// Checks whether a floating point statistic can generate proper JSON
// structures. See
-/// https://gitlab.isc.org/isc-projects/kea/wikis/designs/Stats-design
+/// https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/Stats-design
/// for details.
TEST_F(ObservationTest, floatToJSON) {
// String which contains first added sample
}
// Checks whether a time duration statistic can generate proper JSON structures.
-// See https://gitlab.isc.org/isc-projects/kea/wikis/designs/Stats-design for
+// See https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/Stats-design for
// details.
TEST_F(ObservationTest, durationToJSON) {
// String which contains first added sample
}
// Checks whether a string statistic can generate proper JSON structures.
-// See https://gitlab.isc.org/isc-projects/kea/wikis/designs/Stats-design
+// See https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/Stats-design
// for details.
TEST_F(ObservationTest, stringToJSON) {
// String which contains first added sample
}
// Checks whether a big integer statistic can generate proper JSON structures.
-// See https://gitlab.isc.org/isc-projects/kea/wikis/designs/Stats-design
+// See https://gitlab.isc.org/isc-projects/kea/-/wikis/Designs/Stats-design
// for details.
TEST_F(ObservationTest, bigIntegerToJSON) {
// String which contains first added sample