Kea: isc::dhcp::D2ClientConfigParser Class Reference

| Kea 3.2.0-git

isc::dhcp::D2ClientConfigParser Class Reference

Parser for D2ClientConfig. More...

`#include <dhcp_parsers.h>`

Inheritance diagram for isc::dhcp::D2ClientConfigParser:
[legend]

## Public Member Functions
D2ClientConfigPtr | parse (isc::data::ConstElementPtr d2_client_cfg)
| Parses a given dhcp-ddns element into D2ClientConfig.
Public Member Functions inherited from isc::data::SimpleParser
uint16_t | getUint16 (isc::data::ConstElementPtr scope, const std::string &name)
| Returns a value converted to uint16_t.
uint32_t | getUint32 (isc::data::ConstElementPtr scope, const std::string &name)
| Returns a value converted to uint32_t.
uint8_t | getUint8 (ConstElementPtr scope, const std::string &name)
| Get an uint8_t value.
const isc::util::Triplet< uint32_t > | parseIntTriplet (const data::ConstElementPtr &scope, const std::string &name)
| Parses an integer triplet.

## Static Public Member Functions
static size_t | setAllDefaults (isc::data::ConstElementPtr d2_config)
| Sets all defaults for D2 client configuration.
Static Public Member Functions inherited from isc::data::SimpleParser
static void | checkKeywords (const SimpleKeywords &keywords, isc::data::ConstElementPtr scope)
| Checks acceptable keywords with their expected type.
static void | checkRequired (const SimpleRequiredKeywords &required, isc::data::ConstElementPtr scope)
| Checks that all required keywords are present.
static size_t | deriveParams (isc::data::ConstElementPtr parent, isc::data::ElementPtr child, const ParamsList &params)
| Derives (inherits) parameters from parent scope to a child.
static isc::asiolink::IOAddress | getAddress (const ConstElementPtr &scope, const std::string &name)
| Returns a IOAddress parameter from a scope.
static bool | getBoolean (isc::data::ConstElementPtr scope, const std::string &name)
| Returns a boolean parameter from a scope.
static double | getDouble (const ConstElementPtr &scope, const std::string &name)
| Returns a floating point parameter from a scope.
static int64_t | getInteger (isc::data::ConstElementPtr scope, const std::string &name)
| Returns an integer parameter from a scope.
static int64_t | getInteger (isc::data::ConstElementPtr scope, const std::string &name, int64_t min, int64_t max)
| Returns an integer parameter from a scope and checks its range.
static const data::Element::Position & | getPosition (const std::string &name, const data::ConstElementPtr parent)
| Utility method that returns position of an element.
static std::string | getString (isc::data::ConstElementPtr scope, const std::string &name)
| Returns a string parameter from a scope.
template<typename T>
static void | rangeCheckedInteger (isc::data::ConstElementPtr scope, const std::string &name, T &output_value)
| Fetches a range-checked integer parameter from a scope.
static size_t | setDefaults (isc::data::ElementPtr scope, const SimpleDefaults &default_values)
| Sets the default values.
static size_t | setListDefaults (isc::data::ConstElementPtr list, const SimpleDefaults &default_values)
| Sets the default values for all entries in a list.

## Static Public Attributes
static const isc::data::SimpleDefaults | D2_CLIENT_CONFIG_DEFAULTS
| Defaults for the D2 client configuration.

## Additional Inherited Members
Protected Member Functions inherited from isc::data::SimpleParser
template<typename target_type, target_type convert>
target_type | getAndConvert (isc::data::ConstElementPtr scope, const std::string &name, const std::string &type_name)
| Returns a converted value from a scope.
template<typename int_type>
int_type | getIntType (isc::data::ConstElementPtr scope, const std::string &name)
| Returns an integer value with range checking from a scope.

## Detailed Description

Parser for D2ClientConfig.

This class parses the configuration element "dhcp-ddns" common to the config files for both dhcp4 and dhcp6. It creates an instance of a D2ClientConfig.

Definition at line 1013 of file dhcp_parsers.h.

## Member Function Documentation

## ◆ parse()

D2ClientConfigPtr isc::dhcp::D2ClientConfigParser::parse | ( | isc::data::ConstElementPtr | d2_client_cfg | ) |

Parses a given dhcp-ddns element into D2ClientConfig.

Parameters

  d2_client_cfg | is the "dhcp-ddns" configuration to parse

The elements currently supported are (see isc::dhcp::D2ClientConfig for details on each):

1. enable-updates
2. server-ip
3. server-port
4. sender-ip
5. sender-port
6. max-queue-size
7. ncr-protocol
8. ncr-format

Returns
  returns a pointer to newly created D2ClientConfig.

Definition at line 1563 of file dhcp_parsers.cc.

References isc::dhcp_ddns::FMT_JSON, isc::data::SimpleParser::getAddress(), isc::data::SimpleParser::getBoolean(), isc::asiolink::IOAddress::getFamily(), isc::data::SimpleParser::getPosition(), isc::data::SimpleParser::getString(), isc::data::SimpleParser::getUint32(), isc::asiolink::IOAddress::IPV4_ZERO_ADDRESS(), isc::asiolink::IOAddress::IPV6_ZERO_ADDRESS(), isc_throw, isc::asiolink::IOAddress::isV4(), isc::dhcp_ddns::NCR_UDP, isc::dhcp_ddns::ncrFormatToString(), isc::dhcp_ddns::ncrProtocolToString(), and isc::asiolink::IOAddress::toText().

Referenced by isc::dhcp::processDhcp4Config(), and isc::dhcp::processDhcp6Config().

Here is the call graph for this function:

## ◆ setAllDefaults()

size_t isc::dhcp::D2ClientConfigParser::setAllDefaults | ( | isc::data::ConstElementPtr | d2_config | ) |
| static

Sets all defaults for D2 client configuration.

This method sets defaults value. It must not be called before the short cut disabled updates condition was checked.

Parameters

  d2_config | d2 client configuration (will be const cast

Returns
  number of parameters inserted

Definition at line 1674 of file dhcp_parsers.cc.

References D2_CLIENT_CONFIG_DEFAULTS, and isc::data::SimpleParser::setDefaults().

Referenced by isc::dhcp::processDhcp4Config(), and isc::dhcp::processDhcp6Config().

Here is the call graph for this function:

## Member Data Documentation

## ◆ D2_CLIENT_CONFIG_DEFAULTS

const SimpleDefaults isc::dhcp::D2ClientConfigParser::D2_CLIENT_CONFIG_DEFAULTS
| static

Initial value:
= {
{ "server-ip", Element::string, "127.0.0.1" },
{ "server-port", Element::integer, "53001" },
{ "sender-ip", Element::string, "" },
{ "sender-port", Element::integer, "0" },
{ "max-queue-size", Element::integer, "1024" },
{ "ncr-protocol", Element::string, "UDP" },
{ "ncr-format", Element::string, "JSON" }
}
Element::integer
@ integer
Definition data.h:153
isc::data::Element::integer
@ integer
Definition data.h:153
isc::data::Element::string
@ string
Definition data.h:157

Defaults for the D2 client configuration.

This table defines default values for D2 client configuration.

Definition at line 1035 of file dhcp_parsers.h.

Referenced by setAllDefaults().

The documentation for this class was generated from the following files:

- dhcp_parsers.h
- dhcp_parsers.cc