Kea 2.7.1
isc::dhcp::SrvConfig Class Reference

Specifies current DHCP configuration. More...

#include <srv_config.h>

+ Inheritance diagram for isc::dhcp::SrvConfig:

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.
 
CfgMACSourcegetMACSources ()
 Returns non-const reference to an array that stores MAC/hardware address sources.
 
const CfgMACSourcegetMACSources () const
 Returns const reference to an array that stores MAC/hardware address sources.
 
const isc::data::ConstElementPtr getControlSocketInfo () const
 Returns information about control socket.
 
void setControlSocketInfo (const isc::data::ConstElementPtr &control_socket)
 Sets information about the 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::HooksConfiggetHooksConfig ()
 Returns non-const reference to configured hooks libraries.
 
const isc::hooks::HooksConfiggetHooksConfig () const
 Returns const reference to configured hooks libraries.
 
DdnsParamsPtr getDdnsParams (const Subnet4Ptr &subnet) const
 Fetches the DDNS parameters for a given DHCPv4 subnet.
 
DdnsParamsPtr getDdnsParams (const Subnet6Ptr &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 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

- Public Member Functions inherited from isc::process::ConfigBase
const process::LoggingInfoStoragegetLoggingInfo () 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.
 
- Protected Member Functions inherited from isc::process::ConfigBase
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 184 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 45 of file srv_config.cc.

◆ SrvConfig() [2/2]

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

Constructor.

Sets arbitrary configuration sequence number.

Parameters
sequenceThe configuration sequence.

Definition at line 65 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
namestd::string name of the global to add.
valueElementPtr containing the value of the global.

Definition at line 921 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
defaultsvector of (name, type, value) defaults to apply.

Definition at line 429 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 894 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 966 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_configAn object to which the configuration will be copied.

Definition at line 132 of file srv_config.cc.

References isc::process::ConfigBase::copy(), isc::hooks::HooksConfig::get(), and getD2ClientConfig().

+ 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
otherAn object to be compared with this object.
Returns
true if two objects are equal, false otherwise.

Definition at line 153 of file srv_config.cc.

References isc::hooks::HooksConfig::equal(), 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 499 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 452 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 461 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 434 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 443 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 416 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 425 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 470 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 479 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 488 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 497 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 382 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 390 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 272 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 282 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 314 of file srv_config.h.

◆ 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 324 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 293 of file srv_config.h.

◆ 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 304 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 399 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 407 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 341 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 350 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 332 of file srv_config.h.

Referenced by getConfigSummary(), removeStatistics(), 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 358 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 366 of file srv_config.h.

Referenced by getConfigSummary(), removeStatistics(), 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 374 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 579 of file srv_config.h.

◆ 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 587 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
selectionIs a bitfield which describes the parts of the configuration to be returned.
Returns
Summary of the configuration in the textual format.

Definition at line 86 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
indexIndex of the parameter to fetch.
Returns
Pointer to the parameter if it exists, otherwise an empty pointer.

Definition at line 884 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
nameName of the parameter to fetch.
Returns
Pointer to the parameter if it exists, otherwise an empty pointer.

Definition at line 875 of file srv_config.h.

Referenced by applyDefaultsConfiguredGlobals(), 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 856 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 866 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 504 of file srv_config.h.

◆ 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 511 of file srv_config.h.

◆ getControlSocketInfo()

const isc::data::ConstElementPtr isc::dhcp::SrvConfig::getControlSocketInfo ( ) const
inline

Returns information about control socket.

Returns
pointer to the Element that holds control-socket map

Definition at line 536 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 832 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 839 of file srv_config.h.

◆ getDdnsParams() [1/2]

DdnsParamsPtr isc::dhcp::SrvConfig::getDdnsParams ( const Subnet4Ptr & 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
subnetDHCPv4 Subnet for which DDNS parameters are desired.
Returns
pointer to DddnParams instance

Definition at line 945 of file srv_config.cc.

References getD2ClientConfig().

+ Here is the call graph for this function:

◆ getDdnsParams() [2/2]

DdnsParamsPtr isc::dhcp::SrvConfig::getDdnsParams ( const Subnet6Ptr & 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
subnetDHCPv6 Subnet for which DDNS parameters are desired.
Returns
pointer to DddnParams instance

Definition at line 951 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 789 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 825 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 564 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 550 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 806 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 1028 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 601 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 608 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 1013 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 998 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 983 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 521 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 529 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 963 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 250 of file srv_config.h.

Referenced by sequenceEquals().

◆ 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
otherAn object holding the configuration to be merged into this configuration.

Definition at line 179 of file srv_config.cc.

References 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
otherAn object to be compared with this object.
Returns
true if two objects are not equal, false otherwise.

Definition at line 674 of file srv_config.h.

References 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
otherAn object to be compared with this object.
Returns
true if two objects are not equal, false otherwise.

Definition at line 698 of file srv_config.h.

References 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
otherAn object to be compared with this object.
Returns
true if two objects are equal, false otherwise.

Definition at line 686 of file srv_config.h.

References 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 385 of file srv_config.cc.

References getCfgSubnets4(), and getCfgSubnets6().

+ 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_configTarget configuration.
nameBase name of the lifetime parameter.

Definition at line 591 of file srv_config.cc.

References 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
nameBase name of the lifetime parameter.

Definition at line 514 of file srv_config.cc.

References getConfiguredGlobal(), and isc_throw.

+ 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
otherConfiguration which sequence number should be compared with the sequence number of this configuration.
Returns
true if sequence numbers are equal.

Definition at line 127 of file srv_config.cc.

References 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
dictionarypointer to the new class dictionary

Definition at line 594 of file srv_config.h.

Referenced by merge().

◆ setControlSocketInfo()

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

Sets information about the control socket.

Parameters
control_socketElement that holds control-socket map

Definition at line 543 of file srv_config.h.

◆ setD2ClientConfig()

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

Sets the D2 client configuration.

Parameters
d2_client_configpointer to the new D2 client configuration

Definition at line 846 of file srv_config.h.

◆ 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_timernumber of seconds after declined lease is restored

Definition at line 780 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
portport and port + 1 to use

Definition at line 816 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_threadingnew dhcp multi threading information

Definition at line 571 of file srv_config.h.

◆ setDHCPQueueControl()

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

Sets information about the dhcp queue control.

Parameters
dhcp_queue_controlnew dhcp queue control information

Definition at line 557 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
echoshould the client-id be sent or not

Definition at line 799 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
valuethe boolean value to be set when excluding .0 .255 from subnets bigger than /24.

Definition at line 1021 of file srv_config.h.

◆ setIgnoreRAILinkSelection()

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

Set ignore RAI Link Selection compatibility flag.

Parameters
valuethe boolean value to be set when configuring RAI Link Selection usage preferences

Definition at line 1006 of file srv_config.h.

◆ setIgnoreServerIdentifier()

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

Set ignore DHCP Server Identifier compatibility flag.

Parameters
valuethe boolean value to be set when configuring DHCP Server Identifier usage preferences.

Definition at line 991 of file srv_config.h.

◆ 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
uniqueBoolean value indicating if it is allowed (when false) or disallowed to specify multiple hosts with the same IP reservation.

Definition at line 957 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
valuethe boolean value to be set when configuring lenient option parsing

Definition at line 976 of file srv_config.h.

◆ setReservationsLookupFirst()

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

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

Parameters
firstBoolean value indicating if host reservations lookup should be performed before lease lookup.

Definition at line 954 of file srv_config.h.

◆ toElement()

◆ 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 392 of file srv_config.cc.

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

+ 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 212 of file srv_config.h.

◆ CFGSEL_ALL4

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

IPv4 related config.

Definition at line 208 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 210 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 206 of file srv_config.h.

◆ CFGSEL_DDNS

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

DDNS enabled/disabled.

Definition at line 200 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 204 of file srv_config.h.

◆ CFGSEL_IFACE4

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

Number of enabled ifaces.

Definition at line 196 of file srv_config.h.

◆ CFGSEL_IFACE6

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

Number of v6 ifaces.

Definition at line 198 of file srv_config.h.

◆ CFGSEL_NONE

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

Nothing selected.

Definition at line 190 of file srv_config.h.

◆ CFGSEL_SUBNET

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

Number of all subnets.

Definition at line 202 of file srv_config.h.

◆ CFGSEL_SUBNET4

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

Number of IPv4 subnets.

Definition at line 192 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 194 of file srv_config.h.

Referenced by getConfigSummary().


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