Kea: isc::dhcp::SrvConfig Class Reference

| Kea 3.2.0-git

isc::dhcp::SrvConfig Class Reference

Specifies current DHCP configuration. More...

`#include <srv_config.h>`

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

## Constants for selection of parameters returned by @c getConfigSummary
static const uint32_t | CFGSEL_NONE = 0x00000000
| Nothing selected.
static const uint32_t | CFGSEL_SUBNET4 = 0x00000001
| Number of IPv4 subnets.
static const uint32_t | CFGSEL_SUBNET6 = 0x00000002
| Number of IPv6 subnets.
static const uint32_t | CFGSEL_IFACE4 = 0x00000004
| Number of enabled ifaces.
static const uint32_t | CFGSEL_IFACE6 = 0x00000008
| Number of v6 ifaces.
static const uint32_t | CFGSEL_DDNS = 0x00000010
| DDNS enabled/disabled.
static const uint32_t | CFGSEL_SUBNET = 0x00000003
| Number of all subnets.
static const uint32_t | CFGSEL_GLOBALS = 0x00000020
| Configured globals.
static const uint32_t | CFGSEL_CFG_CTL = 0x00000040
| Config control info.
static const uint32_t | CFGSEL_ALL4 = 0x00000035
| IPv4 related config.
static const uint32_t | CFGSEL_ALL6 = 0x0000003A
| IPv6 related config.
static const uint32_t | CFGSEL_ALL = 0xFFFFFFFF
| Whole config.
| SrvConfig ()
| Default constructor.
| SrvConfig (const uint32_t sequence)
| Constructor.
std::string | getConfigSummary (const uint32_t selection) const
| Returns summary of the configuration in the textual format.
uint32_t | getSequence () const
| Returns configuration sequence number.
bool | sequenceEquals (const SrvConfig &other)
| Compares configuration sequence with other sequence.
CfgIfacePtr | getCfgIface ()
| Returns non-const pointer to interface configuration.
ConstCfgIfacePtr | getCfgIface () const
| Returns const pointer to interface configuration.
CfgOptionDefPtr | getCfgOptionDef ()
| Return pointer to non-const object representing user-defined option definitions.
ConstCfgOptionDefPtr | getCfgOptionDef () const
| Returns pointer to the const object representing user-defined option definitions.
CfgOptionPtr | getCfgOption ()
| Returns pointer to the non-const object holding options.
const ConstCfgOptionPtr | getCfgOption () const
| Returns pointer to the const object holding options.
CfgSubnets4Ptr | getCfgSubnets4 ()
| Returns pointer to non-const object holding subnets configuration for DHCPv4.
CfgSharedNetworks4Ptr | getCfgSharedNetworks4 () const
| Returns pointer to non-const object holding configuration of shared networks in DHCPv4;.
CfgSharedNetworks6Ptr | getCfgSharedNetworks6 () const
| Returns pointer to non-const object holding configuration of shared networks in DHCPv6.
ConstCfgSubnets4Ptr | getCfgSubnets4 () const
| Returns pointer to const object holding subnets configuration for DHCPv4.
CfgSubnets6Ptr | getCfgSubnets6 ()
| Returns pointer to non-const object holding subnets configuration for DHCPv6.
ConstCfgSubnets6Ptr | getCfgSubnets6 () const
| Returns pointer to const object holding subnets configuration for DHCPv6.
CfgHostsPtr | getCfgHosts ()
| Returns pointer to the non-const objects representing host reservations for different IPv4 and IPv6 subnets.
ConstCfgHostsPtr | getCfgHosts () const
| Returns pointer to the const objects representing host reservations for different IPv4 and IPv6 subnets.
CfgRSOOPtr | getCfgRSOO ()
| Returns pointer to the non-const object representing set of RSOO-enabled options.
ConstCfgRSOOPtr | getCfgRSOO () const
| Returns pointer to the const object representing set of RSOO-enabled options.
CfgExpirationPtr | getCfgExpiration ()
| Returns pointer to the object holding configuration pertaining to processing expired leases.
ConstCfgExpirationPtr | getCfgExpiration () const
| Returns pointer to the const object holding configuration pertaining to processing expired leases.
CfgDUIDPtr | getCfgDUID ()
| Returns pointer to the object holding configuration of the server identifier.
ConstCfgDUIDPtr | getCfgDUID () const
| Returns const pointer to the object holding configuration of the server identifier.
CfgDbAccessPtr | getCfgDbAccess ()
| Returns pointer to the object holding configuration of the lease and host database connection parameters.
ConstCfgDbAccessPtr | getCfgDbAccess () const
| Returns const pointer to the object holding configuration of the lease and host database connection parameters.
CfgHostOperationsPtr | getCfgHostOperations4 ()
| Returns pointer to the object holding general configuration for host reservations in DHCPv4.
ConstCfgHostOperationsPtr | getCfgHostOperations4 () const
| Returns const pointer to the object holding general configuration for host reservations in DHCPv4.
CfgHostOperationsPtr | getCfgHostOperations6 ()
| Returns pointer to the object holding general configuration for host reservations in DHCPv6.
ConstCfgHostOperationsPtr | getCfgHostOperations6 () const
| Returns const pointer to the object holding general configuration for host reservations in DHCPv6.
CfgConsistencyPtr | getConsistency ()
| Returns non-const pointer to object holding sanity checks flags.
ConstCfgConsistencyPtr | getConsistency () const
| Returns const pointer to object holding sanity checks flags.
CfgMACSource & | getMACSources ()
| Returns non-const reference to an array that stores MAC/hardware address sources.
const CfgMACSource & | getMACSources () const
| Returns const reference to an array that stores MAC/hardware address sources.
const isc::data::ConstElementPtr | getUnixControlSocketInfo () const
| Returns information about UNIX control socket.
void | setUnixControlSocketInfo (const isc::data::ConstElementPtr &control_socket)
| Sets information about the UNIX control socket.
const isc::data::ConstElementPtr | getHttpControlSocketInfo () const
| Returns information about HTTP/HTTPS control socket.
void | setHttpControlSocketInfo (const isc::data::ConstElementPtr &control_socket)
| Sets information about the HTTP/HTTPS control socket.
const isc::data::ConstElementPtr | getDHCPQueueControl () const
| Returns DHCP queue control information.
void | setDHCPQueueControl (const isc::data::ConstElementPtr dhcp_queue_control)
| Sets information about the dhcp queue control.
const isc::data::ConstElementPtr | getDHCPMultiThreading () const
| Returns DHCP multi threading information.
void | setDHCPMultiThreading (const isc::data::ConstElementPtr dhcp_multi_threading)
| Sets information about the dhcp multi threading.
ClientClassDictionaryPtr | getClientClassDictionary ()
| Returns pointer to the dictionary of global client class definitions.
const ClientClassDictionaryPtr | getClientClassDictionary () const
| Returns pointer to const dictionary of global client class definitions.
void | setClientClassDictionary (const ClientClassDictionaryPtr &dictionary)
| Sets the client class dictionary.
isc::hooks::HooksConfig & | getHooksConfig ()
| Returns non-const reference to configured hooks libraries.
const isc::hooks::HooksConfig & | getHooksConfig () const
| Returns const reference to configured hooks libraries.
DdnsParamsPtr | getDdnsParams (const ConstSubnet4Ptr &subnet) const
| Fetches the DDNS parameters for a given DHCPv4 subnet.
DdnsParamsPtr | getDdnsParams (const ConstSubnet6Ptr &subnet) const
| Fetches the DDNS parameters for a given DHCPv6 subnet.
void | copy (SrvConfig &new_config) const
| Copies the current configuration to a new configuration.

## Methods and operators used to compare configurations.
bool | equals (const SrvConfig &other) const
| Compares two objects for equality.
bool | nequals (const SrvConfig &other) const
| Compares two objects for inequality.
bool | operator== (const SrvConfig &other) const
| Equality operator.
bool | operator!= (const SrvConfig &other) const
| other An object to be compared with this object.
virtual void | merge (ConfigBase &other)
| Merges the configuration specified as a parameter into this configuration.
void | updateStatistics ()
| Updates statistics.
void | removeStatistics ()
| Removes statistics.
void | setDeclinePeriod (const uint32_t decline_timer)
| Sets decline probation-period.
uint32_t | getDeclinePeriod () const
| Returns probation-period.
void | setEchoClientId (const bool echo)
| Sets whether server should send back client-id in DHCPv4.
bool | getEchoClientId () const
| Returns whether server should send back client-id in DHCPv4.
void | setDhcp4o6Port (uint16_t port)
| Sets DHCP4o6 IPC port.
uint16_t | getDhcp4o6Port () const
| Returns DHCP4o6 IPC port.
D2ClientConfigPtr | getD2ClientConfig ()
| Returns pointer to the D2 client configuration.
const D2ClientConfigPtr | getD2ClientConfig () const
| Returns pointer to const D2 client configuration.
void | setD2ClientConfig (const D2ClientConfigPtr &d2_client_config)
| Sets the D2 client configuration.
CfgGlobalsPtr | getConfiguredGlobals ()
| Returns non-const pointer to configured global parameters.
ConstCfgGlobalsPtr | getConfiguredGlobals () const
| Returns const pointer to configured global parameters.
isc::data::ConstElementPtr | getConfiguredGlobal (std::string name) const
| Returns pointer to a given configured global parameter.
isc::data::ConstElementPtr | getConfiguredGlobal (int index) const
| Returns pointer to a given configured global parameter.
void | clearConfiguredGlobals ()
| Removes all configured global parameters.
void | applyDefaultsConfiguredGlobals (const isc::data::SimpleDefaults &defaults)
| Applies defaults to global parameters.
void | extractConfiguredGlobals (isc::data::ConstElementPtr config)
| Saves scalar elements from the global scope of a configuration.
void | addConfiguredGlobal (const std::string &name, isc::data::ConstElementPtr value)
| Adds a parameter to the collection configured globals.
void | sanityChecksLifetime (const std::string &name) const
| Conducts sanity checks on global lifetime parameters.
void | sanityChecksLifetime (const SrvConfig &target_config, const std::string &name) const
| Conducts sanity checks on global lifetime parameters before merge from the external configuration to the target one.
void | sanityChecksSflqAllocator () const
| Conducts sanity check in use of SFLQ allocator.
void | sanityChecksDdnsTtlParameters () const
| Conducts sanity checks on global DDNS ttl parameters: ddns-ttl, ddns-ttl-percent, ddns-ttl-min, ddns-ttl-max.
void | setIPReservationsUnique (const bool unique)
| Configures the server to allow or disallow specifying multiple hosts with the same IP address/subnet.
void | setReservationsLookupFirst (const bool first)
| Sets whether the server does host reservations lookup before lease lookup.
bool | getReservationsLookupFirst () const
| Returns whether the server does host reservations lookup before lease lookup.
virtual isc::data::ElementPtr | toElement () const
| Unparse a configuration object.
void | setLenientOptionParsing (bool const value)
| Set lenient option parsing compatibility flag.
bool | getLenientOptionParsing () const
| Get lenient option parsing compatibility flag.
void | setIgnoreServerIdentifier (bool const value)
| Set ignore DHCP Server Identifier compatibility flag.
bool | getIgnoreServerIdentifier () const
| Get ignore DHCP Server Identifier compatibility flag.
void | setIgnoreRAILinkSelection (bool const value)
| Set ignore RAI Link Selection compatibility flag.
bool | getIgnoreRAILinkSelection () const
| Get ignore RAI Link Selection compatibility flag.
void | setExcludeFirstLast24 (bool const value)
| Set exclude .0 and .255 addresses in subnets bigger than /24 flag.
bool | getExcludeFirstLast24 () const
| Get exclude .0 and .255 addresses in subnets bigger than /24 flag.
void | configureLowerLevelLibraries () const
| Convenience method to propagate configuration parameters through inversion of control.

## Additional Inherited Members
const process::LoggingInfoStorage & | getLoggingInfo () const
| Returns logging specific configuration.
void | addLoggingInfo (const process::LoggingInfo &logging_info)
| Sets logging specific configuration.
void | applyLoggingCfg () const
| Apply logging configuration to log4cplus.
bool | equals (const ConfigBase &other) const
| Compares two configuration.
virtual void | merge (ConfigBase &other)
| Merges specified configuration into this configuration.
process::ConstConfigControlInfoPtr | getConfigControlInfo () const
| Fetches a read-only copy of the configuration control information.
void | setConfigControlInfo (const process::ConfigControlInfoPtr &config_ctl_info)
| Set the configuration control information.
void | setServerTag (const util::Optional< std::string > &server_tag)
| Sets the server's logical name.
util::Optional< std::string > | getServerTag () const
| Returns the server's logical name.
boost::posix_time::ptime | getLastCommitTime () const
| Returns the last commit timestamp.
void | setLastCommitTime (const boost::posix_time::ptime &last_commit_time)
| Sets the last commit timestamp.
Public Member Functions inherited from isc::data::UserContext
void | contextToElement (data::ElementPtr map) const
| Merge unparse a user_context object.
data::ConstElementPtr | getContext () const
| Returns const pointer to the user context.
void | setContext (const data::ConstElementPtr &ctx)
| Sets user context.
Public Member Functions inherited from isc::data::CfgToElement
virtual | ~CfgToElement ()
| Destructor.
Static Public Member Functions inherited from isc::data::UserContext
static data::ElementPtr | toElement (data::ConstElementPtr map)
| Copy an Element map.
void | copy (ConfigBase &new_config) const
| Copies the current configuration to a new configuration.
Protected Attributes inherited from isc::data::UserContext
data::ConstElementPtr | user_context_
| Pointer to the user context (may be NULL).

## Detailed Description

Specifies current DHCP configuration.

Todo
  Migrate all other configuration parameters from cfgmgr.h here

Definition at line 50 of file srv_config.h.

## Constructor & Destructor Documentation

## ◆ SrvConfig() [1/2]

isc::dhcp::SrvConfig::SrvConfig | ( |  | ) |

Default constructor.

This constructor sets configuration sequence number to 0.

Definition at line 49 of file srv_config.cc.

Referenced by copy(), equals(), merge(), nequals(), operator!=(), operator==(), sanityChecksLifetime(), and sequenceEquals().

## ◆ SrvConfig() [2/2]

isc::dhcp::SrvConfig::SrvConfig | ( | const uint32_t | sequence | ) |

Constructor.

Sets arbitrary configuration sequence number.

Parameters

  sequence | The configuration sequence.

Definition at line 69 of file srv_config.cc.

## Member Function Documentation

## ◆ addConfiguredGlobal()

void isc::dhcp::SrvConfig::addConfiguredGlobal | ( | const std::string & | name,
|  | isc::data::ConstElementPtr | value )
| inline

Adds a parameter to the collection configured globals.

Parameters

  name | std::string name of the global to add.
  value | ElementPtr containing the value of the global.

Definition at line 802 of file srv_config.h.

Referenced by applyDefaultsConfiguredGlobals(), and extractConfiguredGlobals().

## ◆ applyDefaultsConfiguredGlobals()

void isc::dhcp::SrvConfig::applyDefaultsConfiguredGlobals | ( | const isc::data::SimpleDefaults & | defaults | ) |

Applies defaults to global parameters.

Parameters

  defaults | vector of (name, type, value) defaults to apply.

Definition at line 441 of file srv_config.cc.

References addConfiguredGlobal(), isc::data::Element::boolean, getConfiguredGlobal(), isc::data::Element::integer, isc_throw, isc::data::Element::real, and isc::data::Element::string.

Here is the call graph for this function:

## ◆ clearConfiguredGlobals()

void isc::dhcp::SrvConfig::clearConfiguredGlobals | ( |  | ) |
| inline

Removes all configured global parameters.

Note
  This removes the default values too so either `applyDefaultsConfiguredGlobals` and `mergeGlobals`, or `isc::data::SimpleParser::setDefaults` and `extractConfiguredGlobals` should be called after.

Definition at line 774 of file srv_config.h.

## ◆ configureLowerLevelLibraries()

void isc::dhcp::SrvConfig::configureLowerLevelLibraries | ( |  | ) | const

Convenience method to propagate configuration parameters through inversion of control.

To be used as a last resort when CfgMgr::instance().getCurrentCfg() can't be easily called from where the configuration parameter is used, usually because that particular library is lower in the dependency tree. Happens on configuration commit.

Definition at line 1000 of file srv_config.cc.

References isc::dhcp::Option::lenient_parsing_.

## ◆ copy()

void isc::dhcp::SrvConfig::copy | ( | SrvConfig & | new_config | ) | const

Copies the current configuration to a new configuration.

This method copies the parameters stored in the configuration to an object passed as parameter. The configuration sequence is not copied.

Warning
  Some of the configuration objects are not copied at this point, e.g. subnets. This is because they contain quite complex data structures and they make use of pointers, so in many cases the default copy constructors can't be used. Implementing this requires quite a lot of time so this is left as is for now. The lack of ability to copy the entire configuration makes revert function of the `CfgMgr` unusable.

Parameters

  [out] | new_config | An object to which the configuration will be copied.

Definition at line 136 of file srv_config.cc.

References SrvConfig(), isc::hooks::HooksConfig::add(), isc::hooks::HooksConfig::clear(), isc::process::ConfigBase::copy(), getD2ClientConfig(), and setD2ClientConfig().

Here is the call graph for this function:

## ◆ equals()

bool isc::dhcp::SrvConfig::equals | ( | const SrvConfig & | other | ) | const

Compares two objects for equality.

It ignores the configuration sequence number when checking for equality of objects.

Parameters

  other | An object to be compared with this object.

Returns
  true if two objects are equal, false otherwise.

Definition at line 157 of file srv_config.cc.

References SrvConfig(), isc::process::ConfigBase::equals(), and isc::hooks::HooksConfig::get().

Referenced by nequals(), and operator==().

Here is the call graph for this function:

## ◆ extractConfiguredGlobals()

void isc::dhcp::SrvConfig::extractConfiguredGlobals | ( | isc::data::ConstElementPtr | config | ) |

Saves scalar elements from the global scope of a configuration.

Definition at line 511 of file srv_config.cc.

References addConfiguredGlobal(), isc_throw, isc::data::Element::list, and isc::data::Element::map.

Here is the call graph for this function:

## ◆ getCfgDbAccess() [1/2]

CfgDbAccessPtr isc::dhcp::SrvConfig::getCfgDbAccess | ( |  | ) |
| inline

Returns pointer to the object holding configuration of the lease and host database connection parameters.

Returns
  Pointer to the object holding configuration of the lease and host database connection parameters.

Definition at line 318 of file srv_config.h.

Referenced by setIPReservationsUnique().

## ◆ getCfgDbAccess() [2/2]

ConstCfgDbAccessPtr isc::dhcp::SrvConfig::getCfgDbAccess | ( |  | ) | const
| inline

Returns const pointer to the object holding configuration of the lease and host database connection parameters.

Returns
  Const pointer to the object holding configuration of the lease and host database connection parameters.

Definition at line 327 of file srv_config.h.

## ◆ getCfgDUID() [1/2]

CfgDUIDPtr isc::dhcp::SrvConfig::getCfgDUID | ( |  | ) |
| inline

Returns pointer to the object holding configuration of the server identifier.

Returns
  Pointer to the object holding configuration of the server identifier.

Definition at line 300 of file srv_config.h.

## ◆ getCfgDUID() [2/2]

ConstCfgDUIDPtr isc::dhcp::SrvConfig::getCfgDUID | ( |  | ) | const
| inline

Returns const pointer to the object holding configuration of the server identifier.

Returns
  Const pointer to the object holding configuration of the server identifier.

Definition at line 309 of file srv_config.h.

## ◆ getCfgExpiration() [1/2]

CfgExpirationPtr isc::dhcp::SrvConfig::getCfgExpiration | ( |  | ) |
| inline

Returns pointer to the object holding configuration pertaining to processing expired leases.

Returns
  Pointer to the object holding configuration pertaining to processing expired leases.

Definition at line 282 of file srv_config.h.

## ◆ getCfgExpiration() [2/2]

ConstCfgExpirationPtr isc::dhcp::SrvConfig::getCfgExpiration | ( |  | ) | const
| inline

Returns pointer to the const object holding configuration pertaining to processing expired leases.

Returns
  Pointer to the const object holding configuration pertaining to processing expired leases.

Definition at line 291 of file srv_config.h.

## ◆ getCfgHostOperations4() [1/2]

CfgHostOperationsPtr isc::dhcp::SrvConfig::getCfgHostOperations4 | ( |  | ) |
| inline

Returns pointer to the object holding general configuration for host reservations in DHCPv4.

Returns
  Pointer to the object holding general configuration for host reservations in DHCPv4.

Definition at line 336 of file srv_config.h.

## ◆ getCfgHostOperations4() [2/2]

ConstCfgHostOperationsPtr isc::dhcp::SrvConfig::getCfgHostOperations4 | ( |  | ) | const
| inline

Returns const pointer to the object holding general configuration for host reservations in DHCPv4.

Returns
  Const pointer to the object holding general configuration for host reservations in DHCPv4.

Definition at line 345 of file srv_config.h.

## ◆ getCfgHostOperations6() [1/2]

CfgHostOperationsPtr isc::dhcp::SrvConfig::getCfgHostOperations6 | ( |  | ) |
| inline

Returns pointer to the object holding general configuration for host reservations in DHCPv6.

Returns
  Pointer to the object holding general configuration for host reservations in DHCPv6.

Definition at line 354 of file srv_config.h.

## ◆ getCfgHostOperations6() [2/2]

ConstCfgHostOperationsPtr isc::dhcp::SrvConfig::getCfgHostOperations6 | ( |  | ) | const
| inline

Returns const pointer to the object holding general configuration for host reservations in DHCPv6.

Returns
  Const pointer to the object holding general configuration for host reservations in DHCPv6.

Definition at line 363 of file srv_config.h.

## ◆ getCfgHosts() [1/2]

CfgHostsPtr isc::dhcp::SrvConfig::getCfgHosts | ( |  | ) |
| inline

Returns pointer to the non-const objects representing host reservations for different IPv4 and IPv6 subnets.

Returns
  Pointer to the non-const object holding host reservations.

Definition at line 248 of file srv_config.h.

Referenced by setIPReservationsUnique().

## ◆ getCfgHosts() [2/2]

ConstCfgHostsPtr isc::dhcp::SrvConfig::getCfgHosts | ( |  | ) | const
| inline

Returns pointer to the const objects representing host reservations for different IPv4 and IPv6 subnets.

Returns
  Pointer to the const object holding host reservations.

Definition at line 256 of file srv_config.h.

## ◆ getCfgIface() [1/2]

CfgIfacePtr isc::dhcp::SrvConfig::getCfgIface | ( |  | ) |
| inline

Returns non-const pointer to interface configuration.

This function returns a non-const pointer to the interface configuration.

Returns
  Object representing configuration of interfaces.

Definition at line 138 of file srv_config.h.

## ◆ getCfgIface() [2/2]

ConstCfgIfacePtr isc::dhcp::SrvConfig::getCfgIface | ( |  | ) | const
| inline

Returns const pointer to interface configuration.

This function returns a const pointer to the interface configuration.

Returns
  Object representing configuration of interfaces.

Definition at line 148 of file srv_config.h.

## ◆ getCfgOption() [1/2]

CfgOptionPtr isc::dhcp::SrvConfig::getCfgOption | ( |  | ) |
| inline

Returns pointer to the non-const object holding options.

This method returns a pointer to the object which holds instances of the options to be returned to the clients belonging to any subnet.

Returns
  Pointer to the object holding options.

Definition at line 180 of file srv_config.h.

Referenced by merge().

## ◆ getCfgOption() [2/2]

const ConstCfgOptionPtr isc::dhcp::SrvConfig::getCfgOption | ( |  | ) | const
| inline

Returns pointer to the const object holding options.

This method returns a pointer to the object which holds instances of the options to be returned to the clients belonging to any subnet.

Returns
  Pointer to the object holding options.

Definition at line 190 of file srv_config.h.

## ◆ getCfgOptionDef() [1/2]

CfgOptionDefPtr isc::dhcp::SrvConfig::getCfgOptionDef | ( |  | ) |
| inline

Return pointer to non-const object representing user-defined option definitions.

This function returns a pointer to the object which represents the user defined option definitions grouped by option space name.

Returns
  Pointer to an object holding option definitions.

Definition at line 159 of file srv_config.h.

Referenced by merge().

## ◆ getCfgOptionDef() [2/2]

ConstCfgOptionDefPtr isc::dhcp::SrvConfig::getCfgOptionDef | ( |  | ) | const
| inline

Returns pointer to the const object representing user-defined option definitions.

This function returns a pointer to the object which represents the user defined option definitions grouped by option space name.

Returns
  Pointer to an object holding option definitions.

Definition at line 170 of file srv_config.h.

## ◆ getCfgRSOO() [1/2]

CfgRSOOPtr isc::dhcp::SrvConfig::getCfgRSOO | ( |  | ) |
| inline

Returns pointer to the non-const object representing set of RSOO-enabled options.

Returns
  Pointer to the non-const object holding RSOO-enabled options.

Definition at line 265 of file srv_config.h.

## ◆ getCfgRSOO() [2/2]

ConstCfgRSOOPtr isc::dhcp::SrvConfig::getCfgRSOO | ( |  | ) | const
| inline

Returns pointer to the const object representing set of RSOO-enabled options.

Returns
  Pointer to the const object holding RSOO-enabled options.

Definition at line 273 of file srv_config.h.

## ◆ getCfgSharedNetworks4()

CfgSharedNetworks4Ptr isc::dhcp::SrvConfig::getCfgSharedNetworks4 | ( |  | ) | const
| inline

Returns pointer to non-const object holding configuration of shared networks in DHCPv4;.

Returns
  Pointer to the object holding shared networks configuration for DHCPv4.

Definition at line 207 of file srv_config.h.

## ◆ getCfgSharedNetworks6()

CfgSharedNetworks6Ptr isc::dhcp::SrvConfig::getCfgSharedNetworks6 | ( |  | ) | const
| inline

Returns pointer to non-const object holding configuration of shared networks in DHCPv6.

Returns
  Pointer to the object holding shared networks configuration for DHCPv6.

Definition at line 216 of file srv_config.h.

## ◆ getCfgSubnets4() [1/2]

CfgSubnets4Ptr isc::dhcp::SrvConfig::getCfgSubnets4 | ( |  | ) |
| inline

Returns pointer to non-const object holding subnets configuration for DHCPv4.

Returns
  Pointer to the object holding subnets configuration for DHCPv4.

Definition at line 198 of file srv_config.h.

Referenced by getConfigSummary(), removeStatistics(), sanityChecksSflqAllocator(), and updateStatistics().

## ◆ getCfgSubnets4() [2/2]

ConstCfgSubnets4Ptr isc::dhcp::SrvConfig::getCfgSubnets4 | ( |  | ) | const
| inline

Returns pointer to const object holding subnets configuration for DHCPv4.

Returns
  Pointer to the object holding subnets configuration for DHCPv4.

Definition at line 224 of file srv_config.h.

## ◆ getCfgSubnets6() [1/2]

CfgSubnets6Ptr isc::dhcp::SrvConfig::getCfgSubnets6 | ( |  | ) |
| inline

Returns pointer to non-const object holding subnets configuration for DHCPv6.

Returns
  Pointer to the object holding subnets configuration for DHCPv6.

Definition at line 232 of file srv_config.h.

Referenced by getConfigSummary(), removeStatistics(), sanityChecksSflqAllocator(), and updateStatistics().

## ◆ getCfgSubnets6() [2/2]

ConstCfgSubnets6Ptr isc::dhcp::SrvConfig::getCfgSubnets6 | ( |  | ) | const
| inline

Returns pointer to const object holding subnets configuration for DHCPv6.

Returns
  Pointer to the object holding subnets configuration for DHCPv6.

Definition at line 240 of file srv_config.h.

## ◆ getClientClassDictionary() [1/2]

ClientClassDictionaryPtr isc::dhcp::SrvConfig::getClientClassDictionary | ( |  | ) |
| inline

Returns pointer to the dictionary of global client class definitions.

Returns
  Pointer to the dictionary of global client class definitions

Definition at line 459 of file srv_config.h.

Referenced by merge().

## ◆ getClientClassDictionary() [2/2]

const ClientClassDictionaryPtr isc::dhcp::SrvConfig::getClientClassDictionary | ( |  | ) | const
| inline

Returns pointer to const dictionary of global client class definitions.

Returns
  Pointer to const dictionary of global client class definitions

Definition at line 467 of file srv_config.h.

## ◆ getConfigSummary()

std::string isc::dhcp::SrvConfig::getConfigSummary | ( | const uint32_t | selection | ) | const

Returns summary of the configuration in the textual format.

This method returns the brief text describing the current configuration. It may be used for logging purposes, e.g. when the new configuration is committed to notify a user about the changes in configuration.

Todo
  Currently this method uses `CfgMgr` accessors to get the configuration parameters. Once these parameters are migrated from the `CfgMgr` this method will have to be modified accordingly.

Todo
  Implement reporting a summary of interfaces being used for receiving and sending DHCP messages. This will be implemented with ticket #3512.

Parameters

  selection | Is a bitfield which describes the parts of the configuration to be returned.

Returns
  Summary of the configuration in the textual format.

Definition at line 90 of file srv_config.cc.

References CFGSEL_DDNS, CFGSEL_SUBNET4, CFGSEL_SUBNET6, getCfgSubnets4(), getCfgSubnets6(), and getD2ClientConfig().

Here is the call graph for this function:

## ◆ getConfiguredGlobal() [1/2]

isc::data::ConstElementPtr isc::dhcp::SrvConfig::getConfiguredGlobal | ( | int | index | ) | const
| inline

Returns pointer to a given configured global parameter.

Parameters

  index | Index of the parameter to fetch.

Returns
  Pointer to the parameter if it exists, otherwise an empty pointer.

Definition at line 764 of file srv_config.h.

## ◆ getConfiguredGlobal() [2/2]

isc::data::ConstElementPtr isc::dhcp::SrvConfig::getConfiguredGlobal | ( | std::string | name | ) | const
| inline

Returns pointer to a given configured global parameter.

Parameters

  name | Name of the parameter to fetch.

Returns
  Pointer to the parameter if it exists, otherwise an empty pointer.

Definition at line 755 of file srv_config.h.

Referenced by applyDefaultsConfiguredGlobals(), sanityChecksDdnsTtlParameters(), sanityChecksLifetime(), sanityChecksLifetime(), and updateStatistics().

## ◆ getConfiguredGlobals() [1/2]

CfgGlobalsPtr isc::dhcp::SrvConfig::getConfiguredGlobals | ( |  | ) |
| inline

Returns non-const pointer to configured global parameters.

This function returns a non-const pointer to the configured global parameters.

Returns
  Object representing configured global parameters.

Definition at line 736 of file srv_config.h.

## ◆ getConfiguredGlobals() [2/2]

ConstCfgGlobalsPtr isc::dhcp::SrvConfig::getConfiguredGlobals | ( |  | ) | const
| inline

Returns const pointer to configured global parameters.

This function returns a const pointer to the configured global parameters.

Returns
  Object representing configured global parameters.

Definition at line 746 of file srv_config.h.

## ◆ getConsistency() [1/2]

CfgConsistencyPtr isc::dhcp::SrvConfig::getConsistency | ( |  | ) |
| inline

Returns non-const pointer to object holding sanity checks flags.

Returns
  Pointer to object holding sanity checks flags

Definition at line 370 of file srv_config.h.

Referenced by isc::dhcp::SanityChecksParser::parse().

## ◆ getConsistency() [2/2]

ConstCfgConsistencyPtr isc::dhcp::SrvConfig::getConsistency | ( |  | ) | const
| inline

Returns const pointer to object holding sanity checks flags.

Returns
  Const pointer to object holding sanity checks flags

Definition at line 377 of file srv_config.h.

## ◆ getD2ClientConfig() [1/2]

D2ClientConfigPtr isc::dhcp::SrvConfig::getD2ClientConfig | ( |  | ) |
| inline

Returns pointer to the D2 client configuration.

Returns
  Pointer to the D2 client configuration

Definition at line 712 of file srv_config.h.

Referenced by copy(), getConfigSummary(), getDdnsParams(), and getDdnsParams().

## ◆ getD2ClientConfig() [2/2]

const D2ClientConfigPtr isc::dhcp::SrvConfig::getD2ClientConfig | ( |  | ) | const
| inline

Returns pointer to const D2 client configuration.

Returns
  Pointer to const D2 client configuration

Definition at line 719 of file srv_config.h.

## ◆ getDdnsParams() [1/2]

DdnsParamsPtr isc::dhcp::SrvConfig::getDdnsParams | ( | const ConstSubnet4Ptr & | subnet | ) | const

Fetches the DDNS parameters for a given DHCPv4 subnet.

Creates a DdnsParams structure which retain and thereafter use the given subnet to fetch DDNS behavioral parameters. The values are fetched with the inheritance scope mode of Network::ALL.

Parameters

  subnet | DHCPv4 Subnet for which DDNS parameters are desired.

Returns
  pointer to DddnParams instance

Definition at line 979 of file srv_config.cc.

References getD2ClientConfig().

Here is the call graph for this function:

## ◆ getDdnsParams() [2/2]

DdnsParamsPtr isc::dhcp::SrvConfig::getDdnsParams | ( | const ConstSubnet6Ptr & | subnet | ) | const

Fetches the DDNS parameters for a given DHCPv6 subnet.

Creates a DdnsParams structure which retain and thereafter use the given subnet to fetch DDNS behavioral parameters. The values are fetched with the inheritance scope mode of Network::ALL.

Parameters

  subnet | DHCPv6 Subnet for which DDNS parameters are desired.

Returns
  pointer to DddnParams instance

Definition at line 985 of file srv_config.cc.

References getD2ClientConfig().

Here is the call graph for this function:

## ◆ getDeclinePeriod()

uint32_t isc::dhcp::SrvConfig::getDeclinePeriod | ( |  | ) | const
| inline

Returns probation-period.

See setDeclinePeriod for brief discussion.

Returns
  value of probation-period, expressed in seconds

Definition at line 669 of file srv_config.h.

## ◆ getDhcp4o6Port()

uint16_t isc::dhcp::SrvConfig::getDhcp4o6Port | ( |  | ) | const
| inline

Returns DHCP4o6 IPC port.

See setDhcp4o6Port for brief discussion.

Returns
  value of DHCP4o6 IPC port

Definition at line 705 of file srv_config.h.

## ◆ getDHCPMultiThreading()

const isc::data::ConstElementPtr isc::dhcp::SrvConfig::getDHCPMultiThreading | ( |  | ) | const
| inline

Returns DHCP multi threading information.

Returns
  pointer to the DHCP multi threading information

Definition at line 444 of file srv_config.h.

Referenced by toElement().

## ◆ getDHCPQueueControl()

const isc::data::ConstElementPtr isc::dhcp::SrvConfig::getDHCPQueueControl | ( |  | ) | const
| inline

Returns DHCP queue control information.

Returns
  pointer to the DHCP queue control information

Definition at line 430 of file srv_config.h.

Referenced by toElement().

## ◆ getEchoClientId()

bool isc::dhcp::SrvConfig::getEchoClientId | ( |  | ) | const
| inline

Returns whether server should send back client-id in DHCPv4.

Returns
  true if client-id should be returned, false otherwise.

Definition at line 686 of file srv_config.h.

## ◆ getExcludeFirstLast24()

bool isc::dhcp::SrvConfig::getExcludeFirstLast24 | ( |  | ) | const
| inline

Get exclude .0 and .255 addresses in subnets bigger than /24 flag.

Returns
  the configured value for exclude .0 and .255 flag.

Definition at line 925 of file srv_config.h.

Referenced by toElement().

## ◆ getHooksConfig() [1/2]

isc::hooks::HooksConfig & isc::dhcp::SrvConfig::getHooksConfig | ( |  | ) |
| inline

Returns non-const reference to configured hooks libraries.

Returns
  non-const reference to configured hooks libraries.

Definition at line 481 of file srv_config.h.

## ◆ getHooksConfig() [2/2]

const isc::hooks::HooksConfig & isc::dhcp::SrvConfig::getHooksConfig | ( |  | ) | const
| inline

Returns const reference to configured hooks libraries.

Returns
  const reference to configured hooks libraries.

Definition at line 488 of file srv_config.h.

## ◆ getHttpControlSocketInfo()

const isc::data::ConstElementPtr isc::dhcp::SrvConfig::getHttpControlSocketInfo | ( |  | ) | const
| inline

Returns information about HTTP/HTTPS control socket.

Returns
  pointer to the HTTP/HTTPS control socket config

Definition at line 416 of file srv_config.h.

## ◆ getIgnoreRAILinkSelection()

bool isc::dhcp::SrvConfig::getIgnoreRAILinkSelection | ( |  | ) | const
| inline

Get ignore RAI Link Selection compatibility flag.

Returns
  the configured value for RAI Link Selection usage preferences

Definition at line 910 of file srv_config.h.

Referenced by toElement().

## ◆ getIgnoreServerIdentifier()

bool isc::dhcp::SrvConfig::getIgnoreServerIdentifier | ( |  | ) | const
| inline

Get ignore DHCP Server Identifier compatibility flag.

Returns
  the configured value for DHCP Server Identifier usage preferences.

Definition at line 895 of file srv_config.h.

Referenced by toElement().

## ◆ getLenientOptionParsing()

bool isc::dhcp::SrvConfig::getLenientOptionParsing | ( |  | ) | const
| inline

Get lenient option parsing compatibility flag.

Returns
  the configured value for lenient option parsing

Definition at line 880 of file srv_config.h.

Referenced by toElement().

## ◆ getMACSources() [1/2]

CfgMACSource & isc::dhcp::SrvConfig::getMACSources | ( |  | ) |
| inline

Returns non-const reference to an array that stores MAC/hardware address sources.

Returns
  non-const reference to MAC/hardware address sources

Definition at line 387 of file srv_config.h.

## ◆ getMACSources() [2/2]

const CfgMACSource & isc::dhcp::SrvConfig::getMACSources | ( |  | ) | const
| inline

Returns const reference to an array that stores MAC/hardware address sources.

Returns
  const reference to MAC/hardware address sources

Definition at line 395 of file srv_config.h.

## ◆ getReservationsLookupFirst()

bool isc::dhcp::SrvConfig::getReservationsLookupFirst | ( |  | ) | const
| inline

Returns whether the server does host reservations lookup before lease lookup.

Returns
  Boolean value indicating if host reservations lookup should be performed before lease lookup.

Definition at line 860 of file srv_config.h.

## ◆ getSequence()

uint32_t isc::dhcp::SrvConfig::getSequence | ( |  | ) | const
| inline

Returns configuration sequence number.

Returns
  The configuration sequence number.

Definition at line 116 of file srv_config.h.

Referenced by sequenceEquals().

## ◆ getUnixControlSocketInfo()

const isc::data::ConstElementPtr isc::dhcp::SrvConfig::getUnixControlSocketInfo | ( |  | ) | const
| inline

Returns information about UNIX control socket.

Returns
  pointer to the UNIX control socket config

Definition at line 402 of file srv_config.h.

## ◆ merge()

void isc::dhcp::SrvConfig::merge | ( | ConfigBase & | other | ) |
| virtual

Merges the configuration specified as a parameter into this configuration.

This method is used when two or more configurations held in the `SrvConfig` objects need to be combined into a single configuration. Specifically, when the configuration backend is used, then part of the server configuration comes from the configuration file and stored in the staging configuration. The other part of the configuration comes from the database. The configuration fetched from the database is stored in a separate `SrvConfig` instance and then merged into the staging configuration prior to committing it.

The merging strategy depends on the underlying data being merged. For example: subnets are merged using the algorithm implemented in the `CfgSubnets4`. Other data structures are merged using the algorithms implemented in their respective configuration containers.

The general rule is that the configuration data from the `other` object replaces configuration data held in this object instance. The data that do not overlap between the two objects is simply inserted into this configuration.

Due to the nature of the client classes, i.e. they are ordered and depend on each other, individual classes are not merged. Instead, the new list of classes entirely replaces the existing list. It implies that client classes should not be defined in a config file if there are classes defined in the config backend for this server.

Warning
  The call to `merge` may modify the data in the `other` object. Therefore, the caller must not rely on the data held in the `other` object after the call to `merge`. Also, the data held in `other` must not be modified after the call to `merge` because it may affect the merged configuration.

The `other` parameter must be a `SrvConfig` or its derivation.

This method calls either `merge4` or `merge6` based on

Currently, the following parts of the configuration are merged:

- globals
- option definitions
- options
- client classes

- via `merge4` or `merge6` depending on `CfgMgr::family_:`

  - shared networks
  - subnets
  Todo
    Add support for merging other configuration elements.

Parameters

  other | An object holding the configuration to be merged into this configuration.

Definition at line 184 of file srv_config.cc.

References SrvConfig(), getCfgOption(), getCfgOptionDef(), getClientClassDictionary(), isc::dhcp::CfgMgr::instance(), isc_throw, isc::process::ConfigBase::merge(), and setClientClassDictionary().

Here is the call graph for this function:

## ◆ nequals()

bool isc::dhcp::SrvConfig::nequals | ( | const SrvConfig & | other | ) | const
| inline

Compares two objects for inequality.

It ignores the configuration sequence number when checking for inequality of objects.

Parameters

  other | An object to be compared with this object.

Returns
  true if two objects are not equal, false otherwise.

Definition at line 554 of file srv_config.h.

References SrvConfig(), and equals().

Referenced by operator!=().

Here is the call graph for this function:

## ◆ operator!=()

bool isc::dhcp::SrvConfig::operator!= | ( | const SrvConfig & | other | ) | const
| inline

other An object to be compared with this object.

It ignores the configuration sequence number when checking for inequality of objects.

Parameters

  other | An object to be compared with this object.

Returns
  true if two objects are not equal, false otherwise.

Definition at line 578 of file srv_config.h.

References SrvConfig(), and nequals().

Here is the call graph for this function:

## ◆ operator==()

bool isc::dhcp::SrvConfig::operator== | ( | const SrvConfig & | other | ) | const
| inline

Equality operator.

It ignores the configuration sequence number when checking for equality of objects.

Parameters

  other | An object to be compared with this object.

Returns
  true if two objects are equal, false otherwise.

Definition at line 566 of file srv_config.h.

References SrvConfig(), and equals().

Here is the call graph for this function:

## ◆ removeStatistics()

void isc::dhcp::SrvConfig::removeStatistics | ( |  | ) |

Removes statistics.

This method calls appropriate methods in child objects that remove related statistics. See CfgSubnets4::removeStatistics and CfgSubnets6::removeStatistics for details.

Definition at line 397 of file srv_config.cc.

References getCfgSubnets4(), and getCfgSubnets6().

Here is the call graph for this function:

## ◆ sanityChecksDdnsTtlParameters()

void isc::dhcp::SrvConfig::sanityChecksDdnsTtlParameters | ( |  | ) | const

Conducts sanity checks on global DDNS ttl parameters: ddns-ttl, ddns-ttl-percent, ddns-ttl-min, ddns-ttl-max.

If ddns-ttl is specified none of the others can be. If ddns-ttl-min and ddns-ttl-max are specified max cannot be less than min.

Exceptions

  Throws | BadValue if any of the rules are violated.

Definition at line 1137 of file srv_config.cc.

References getConfiguredGlobal(), and isc_throw.

Here is the call graph for this function:

## ◆ sanityChecksLifetime() [1/2]

void isc::dhcp::SrvConfig::sanityChecksLifetime | ( | const SrvConfig & | target_config,
|  | const std::string & | name ) const

Conducts sanity checks on global lifetime parameters before merge from the external configuration to the target one.

Parameters

  target_config | Target configuration.
  name | Base name of the lifetime parameter.

Definition at line 623 of file srv_config.cc.

References SrvConfig(), getConfiguredGlobal(), and isc_throw.

Here is the call graph for this function:

## ◆ sanityChecksLifetime() [2/2]

void isc::dhcp::SrvConfig::sanityChecksLifetime | ( | const std::string & | name | ) | const

Conducts sanity checks on global lifetime parameters.

Parameters

  name | Base name of the lifetime parameter.

Definition at line 545 of file srv_config.cc.

References getConfiguredGlobal(), and isc_throw.

Here is the call graph for this function:

## ◆ sanityChecksSflqAllocator()

void isc::dhcp::SrvConfig::sanityChecksSflqAllocator | ( |  | ) | const

Conducts sanity check in use of SFLQ allocator.

Exceptions

  InvalidParameter | if lease back end is not MySQL or PostgreSQL.

Definition at line 1173 of file srv_config.cc.

References getCfgSubnets4(), getCfgSubnets6(), isc::dhcp::CfgMgr::instance(), isc_throw, isc::db::DatabaseConnection::parse(), isc::db::DatabaseConnection::redactedAccessString(), isc::dhcp::SharedFlqAllocator::sanityChecksSflqAllocator4(), and isc::dhcp::SharedFlqAllocator::sanityChecksSflqAllocator6().

Here is the call graph for this function:

## ◆ sequenceEquals()

bool isc::dhcp::SrvConfig::sequenceEquals | ( | const SrvConfig & | other | ) |

Compares configuration sequence with other sequence.

This method compares sequence numbers of two configurations for equality. The sequence numbers are meant to be unique, so if they are equal it means that they point to the same configuration.

Parameters

  other | Configuration which sequence number should be compared with the sequence number of this configuration.

Returns
  true if sequence numbers are equal.

Definition at line 131 of file srv_config.cc.

References SrvConfig(), and getSequence().

Here is the call graph for this function:

## ◆ setClientClassDictionary()

void isc::dhcp::SrvConfig::setClientClassDictionary | ( | const ClientClassDictionaryPtr & | dictionary | ) |
| inline

Sets the client class dictionary.

Parameters

  dictionary | pointer to the new class dictionary

Definition at line 474 of file srv_config.h.

Referenced by merge().

## ◆ setD2ClientConfig()

void isc::dhcp::SrvConfig::setD2ClientConfig | ( | const D2ClientConfigPtr & | d2_client_config | ) |
| inline

Sets the D2 client configuration.

Parameters

  d2_client_config | pointer to the new D2 client configuration

Definition at line 726 of file srv_config.h.

Referenced by copy().

## ◆ setDeclinePeriod()

void isc::dhcp::SrvConfig::setDeclinePeriod | ( | const uint32_t | decline_timer | ) |
| inline

Sets decline probation-period.

Probation-period is the timer, expressed, in seconds, that specifies how long a lease is unavailable after reported as declined.

Parameters

  decline_timer | number of seconds after declined lease is restored

Definition at line 660 of file srv_config.h.

## ◆ setDhcp4o6Port()

void isc::dhcp::SrvConfig::setDhcp4o6Port | ( | uint16_t | port | ) |
| inline

Sets DHCP4o6 IPC port.

DHCPv4-over-DHCPv6 uses a UDP socket for inter-server communication, this socket is bound and connected to this port and port + 1

Parameters

  port | port and port + 1 to use

Definition at line 696 of file srv_config.h.

## ◆ setDHCPMultiThreading()

void isc::dhcp::SrvConfig::setDHCPMultiThreading | ( | const isc::data::ConstElementPtr | dhcp_multi_threading | ) |
| inline

Sets information about the dhcp multi threading.

Parameters

  dhcp_multi_threading | new dhcp multi threading information

Definition at line 451 of file srv_config.h.

Referenced by isc::dhcp::MultiThreadingConfigParser::parse().

## ◆ setDHCPQueueControl()

void isc::dhcp::SrvConfig::setDHCPQueueControl | ( | const isc::data::ConstElementPtr | dhcp_queue_control | ) |
| inline

Sets information about the dhcp queue control.

Parameters

  dhcp_queue_control | new dhcp queue control information

Definition at line 437 of file srv_config.h.

## ◆ setEchoClientId()

void isc::dhcp::SrvConfig::setEchoClientId | ( | const bool | echo | ) |
| inline

Sets whether server should send back client-id in DHCPv4.

This is a compatibility flag. The default (true) is compliant with RFC6842. False is for backward compatibility.

Parameters

  echo | should the client-id be sent or not

Definition at line 679 of file srv_config.h.

## ◆ setExcludeFirstLast24()

void isc::dhcp::SrvConfig::setExcludeFirstLast24 | ( | bool const | value | ) |
| inline

Set exclude .0 and .255 addresses in subnets bigger than /24 flag.

Parameters

  value | the boolean value to be set when excluding .0 .255 from subnets bigger than /24.

Definition at line 918 of file srv_config.h.

Referenced by isc::dhcp::CompatibilityParser::parse().

## ◆ setHttpControlSocketInfo()

void isc::dhcp::SrvConfig::setHttpControlSocketInfo | ( | const isc::data::ConstElementPtr & | control_socket | ) |
| inline

Sets information about the HTTP/HTTPS control socket.

Parameters

  control_socket | HTTP/HTTPS control socket config

Definition at line 423 of file srv_config.h.

Referenced by isc::dhcp::ControlSocketsParser::parse().

## ◆ setIgnoreRAILinkSelection()

void isc::dhcp::SrvConfig::setIgnoreRAILinkSelection | ( | bool const | value | ) |
| inline

Set ignore RAI Link Selection compatibility flag.

Parameters

  value | the boolean value to be set when configuring RAI Link Selection usage preferences

Definition at line 903 of file srv_config.h.

Referenced by isc::dhcp::CompatibilityParser::parse().

## ◆ setIgnoreServerIdentifier()

void isc::dhcp::SrvConfig::setIgnoreServerIdentifier | ( | bool const | value | ) |
| inline

Set ignore DHCP Server Identifier compatibility flag.

Parameters

  value | the boolean value to be set when configuring DHCP Server Identifier usage preferences.

Definition at line 888 of file srv_config.h.

Referenced by isc::dhcp::CompatibilityParser::parse().

## ◆ setIPReservationsUnique()

void isc::dhcp::SrvConfig::setIPReservationsUnique | ( | const bool | unique | ) |

Configures the server to allow or disallow specifying multiple hosts with the same IP address/subnet.

This setting is applied in `CfgDbAccess` and `CfgHosts`. This function should be called when the server is being configured using the configuration file, config-set command or via the configuration backend.

Parameters

  unique | Boolean value indicating if it is allowed (when false) or disallowed to specify multiple hosts with the same IP reservation.

Definition at line 991 of file srv_config.cc.

References isc::dhcp::DHCPSRV_CFGMGR_IP_RESERVATIONS_UNIQUE_DUPLICATES_POSSIBLE, isc::dhcp::dhcpsrv_logger, getCfgDbAccess(), getCfgHosts(), and LOG_WARN.

Here is the call graph for this function:

## ◆ setLenientOptionParsing()

void isc::dhcp::SrvConfig::setLenientOptionParsing | ( | bool const | value | ) |
| inline

Set lenient option parsing compatibility flag.

Parameters

  value | the boolean value to be set when configuring lenient option parsing

Definition at line 873 of file srv_config.h.

Referenced by isc::dhcp::CompatibilityParser::parse().

## ◆ setReservationsLookupFirst()

void isc::dhcp::SrvConfig::setReservationsLookupFirst | ( | const bool | first | ) |
| inline

Sets whether the server does host reservations lookup before lease lookup.

Parameters

  first | Boolean value indicating if host reservations lookup should be performed before lease lookup.

Definition at line 851 of file srv_config.h.

## ◆ setUnixControlSocketInfo()

void isc::dhcp::SrvConfig::setUnixControlSocketInfo | ( | const isc::data::ConstElementPtr & | control_socket | ) |
| inline

Sets information about the UNIX control socket.

Parameters

  control_socket | UNIX control socket config

Definition at line 409 of file srv_config.h.

Referenced by isc::dhcp::ControlSocketsParser::parse().

## ◆ toElement()

ElementPtr isc::dhcp::SrvConfig::toElement | ( |  | ) | const
| virtual

Unparse a configuration object.

Returns
  a pointer to unparsed configuration

Todo
  accept empty list

Reimplemented from isc::process::ConfigBase.

Definition at line 735 of file srv_config.cc.

References isc::data::UserContext::contextToElement(), isc::data::Element::create(), isc::data::Element::createList(), isc::data::Element::createMap(), isc::dhcp::CfgHostsList::get(), isc::process::ConfigBase::getConfigControlInfo(), getDHCPMultiThreading(), getDHCPQueueControl(), getExcludeFirstLast24(), isc::dhcp::CfgMgr::getFamily(), getIgnoreRAILinkSelection(), getIgnoreServerIdentifier(), getLenientOptionParsing(), isc::process::ConfigBase::getLoggingInfo(), isc::db::info, isc::dhcp::CfgMgr::instance(), isc::dhcp::CfgHostsList::internalize(), isc_throw, isc::data::isNull(), isc::data::UserContext::toElement(), isc::dhcp::CfgHostDbAccess::toElement(), and isc::dhcp::CfgLeaseDbAccess::toElement().

Here is the call graph for this function:

## ◆ updateStatistics()

void isc::dhcp::SrvConfig::updateStatistics | ( |  | ) |

Updates statistics.

This method calls appropriate methods in child objects that update related statistics. See CfgSubnets4::updateStatistics and CfgSubnets6::updateStatistics for details.

Definition at line 404 of file srv_config.cc.

References getCfgSubnets4(), getCfgSubnets6(), getConfiguredGlobal(), isc::dhcp::LeaseMgrFactory::haveInstance(), isc::stats::StatsMgr::instance(), isc::stats::StatsMgr::setMaxSampleAgeAll(), isc::stats::StatsMgr::setMaxSampleAgeDefault(), isc::stats::StatsMgr::setMaxSampleCountAll(), and isc::stats::StatsMgr::setMaxSampleCountDefault().

Here is the call graph for this function:

## Member Data Documentation

## ◆ CFGSEL_ALL

const uint32_t isc::dhcp::SrvConfig::CFGSEL_ALL = 0xFFFFFFFF
| static

Whole config.

Definition at line 78 of file srv_config.h.

## ◆ CFGSEL_ALL4

const uint32_t isc::dhcp::SrvConfig::CFGSEL_ALL4 = 0x00000035
| static

IPv4 related config.

Definition at line 74 of file srv_config.h.

Referenced by isc::dhcp::configureDhcp4Server().

## ◆ CFGSEL_ALL6

const uint32_t isc::dhcp::SrvConfig::CFGSEL_ALL6 = 0x0000003A
| static

IPv6 related config.

Definition at line 76 of file srv_config.h.

Referenced by isc::dhcp::configureDhcp6Server().

## ◆ CFGSEL_CFG_CTL

const uint32_t isc::dhcp::SrvConfig::CFGSEL_CFG_CTL = 0x00000040
| static

Config control info.

Definition at line 72 of file srv_config.h.

## ◆ CFGSEL_DDNS

const uint32_t isc::dhcp::SrvConfig::CFGSEL_DDNS = 0x00000010
| static

DDNS enabled/disabled.

Definition at line 66 of file srv_config.h.

Referenced by getConfigSummary().

## ◆ CFGSEL_GLOBALS

const uint32_t isc::dhcp::SrvConfig::CFGSEL_GLOBALS = 0x00000020
| static

Configured globals.

Definition at line 70 of file srv_config.h.

## ◆ CFGSEL_IFACE4

const uint32_t isc::dhcp::SrvConfig::CFGSEL_IFACE4 = 0x00000004
| static

Number of enabled ifaces.

Definition at line 62 of file srv_config.h.

## ◆ CFGSEL_IFACE6

const uint32_t isc::dhcp::SrvConfig::CFGSEL_IFACE6 = 0x00000008
| static

Number of v6 ifaces.

Definition at line 64 of file srv_config.h.

## ◆ CFGSEL_NONE

const uint32_t isc::dhcp::SrvConfig::CFGSEL_NONE = 0x00000000
| static

Nothing selected.

Definition at line 56 of file srv_config.h.

## ◆ CFGSEL_SUBNET

const uint32_t isc::dhcp::SrvConfig::CFGSEL_SUBNET = 0x00000003
| static

Number of all subnets.

Definition at line 68 of file srv_config.h.

## ◆ CFGSEL_SUBNET4

const uint32_t isc::dhcp::SrvConfig::CFGSEL_SUBNET4 = 0x00000001
| static

Number of IPv4 subnets.

Definition at line 58 of file srv_config.h.

Referenced by getConfigSummary().

## ◆ CFGSEL_SUBNET6

const uint32_t isc::dhcp::SrvConfig::CFGSEL_SUBNET6 = 0x00000002
| static

Number of IPv6 subnets.

Definition at line 60 of file srv_config.h.

Referenced by getConfigSummary().

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

- srv_config.h
- srv_config.cc