Kea 3.1.1
Kea DDNS Tuning Hooks Library

Welcome to Kea DDNS Tuning Hooks Library. This documentation is addressed at developers who are interested in internal operation of the library. This file provides information needed to understand and perhaps extend this library.

This documentation is stand-alone: you should have read and understood Kea Developer's Guide and in particular its section about hooks: Hooks Developer's Guide.

Overview

The ddns_tuning hooks library provides customized behavior regarding dynamic DNS updates request generation in kea-dhcp4 and kea-dhcp6.

Currently the library provides two functions:

  1. The ability to generate host-names based on expressions. These expressions may be defined globally via hook library parameter, or per subnet via the user-context.
  2. The ability to skip DDNS updates for clients that belong to a dedicated, built-in "SKIP_DDNS".

In order to improve runtime performance, the library maintains an internal cache of expressions keyed by subnet ID. This cached is populated whenever the server is re-configured, a Config Back End update indicates subnets have changed, or a subnet is updated via subnet_cmds commands.

Library Internals

In addition to the requisite load() and unload() functions, the library implements the following callouts:

The load() function instantiates an instance of isc::ddns_tuning::DdnsTuningImpl. This class is the top level object that provides configuration processing and higher order hostname expression logic. Expression caching is implemented by isc::ddns_tuning::ExpressionCache.

Multi-Threading Compatibility

The ddns_tuning hooks library is compatible with multi-threading. (it is orthogonal to the DHCP service).