Kea 2.7.1
srv_config.h
Go to the documentation of this file.
1// Copyright (C) 2014-2024 Internet Systems Consortium, Inc. ("ISC")
2//
3// This Source Code Form is subject to the terms of the Mozilla Public
4// License, v. 2.0. If a copy of the MPL was not distributed with this
5// file, You can obtain one at http://mozilla.org/MPL/2.0/.
6
7#ifndef DHCPSRV_CONFIG_H
8#define DHCPSRV_CONFIG_H
9
10#include <cc/cfg_to_element.h>
12#include <dhcpsrv/cfg_duid.h>
14#include <dhcpsrv/cfg_globals.h>
16#include <dhcpsrv/cfg_hosts.h>
17#include <dhcpsrv/cfg_iface.h>
18#include <dhcpsrv/cfg_option.h>
20#include <dhcpsrv/cfg_rsoo.h>
28#include <process/config_base.h>
29#include <hooks/hooks_config.h>
30#include <cc/data.h>
31#include <cc/user_context.h>
32#include <cc/simple_parser.h>
33#include <util/optional.h>
34#include <util/str.h>
35
36#include <boost/shared_ptr.hpp>
37#include <vector>
38#include <stdint.h>
39
40namespace isc {
41namespace dhcp {
42
43class CfgMgr;
44
49public:
51 DdnsParams() : subnet_(), d2_client_enabled_(false) {};
52
60 DdnsParams(const Subnet4Ptr& subnet, bool d2_client_enabled)
61 : subnet_(boost::dynamic_pointer_cast<Subnet>(subnet)),
62 d2_client_enabled_(d2_client_enabled) {}
63
71 DdnsParams(const Subnet6Ptr& subnet, bool d2_client_enabled)
72 : subnet_(boost::dynamic_pointer_cast<Subnet>(subnet)),
73 d2_client_enabled_(d2_client_enabled) {}
74
81 bool getEnableUpdates() const;
82
87 bool getOverrideNoUpdate() const;
88
93 bool getOverrideClientUpdate() const;
94
100
104 std::string getGeneratedPrefix() const;
105
110 std::string getQualifyingSuffix() const;
111
116 std::string getHostnameCharSet() const;
117
122 std::string getHostnameCharReplacement() const;
123
134
142 bool getUpdateOnRenew() const;
143
151
157 std::string getConflictResolutionMode() const;
158
163 if (subnet_) {
164 return (subnet_->getID());
165 } else {
166 return (0);
167 }
168 }
169
170private:
172 SubnetPtr subnet_;
173
175 bool d2_client_enabled_;
176};
177
179typedef boost::shared_ptr<DdnsParams> DdnsParamsPtr;
180
185public:
188
189
190 static const uint32_t CFGSEL_NONE = 0x00000000;
192 static const uint32_t CFGSEL_SUBNET4 = 0x00000001;
194 static const uint32_t CFGSEL_SUBNET6 = 0x00000002;
196 static const uint32_t CFGSEL_IFACE4 = 0x00000004;
198 static const uint32_t CFGSEL_IFACE6 = 0x00000008;
200 static const uint32_t CFGSEL_DDNS = 0x00000010;
202 static const uint32_t CFGSEL_SUBNET = 0x00000003;
204 static const uint32_t CFGSEL_GLOBALS = 0x00000020;
206 static const uint32_t CFGSEL_CFG_CTL = 0x00000040;
208 static const uint32_t CFGSEL_ALL4 = 0x00000035;
210 static const uint32_t CFGSEL_ALL6 = 0x0000003A;
212 static const uint32_t CFGSEL_ALL = 0xFFFFFFFF;
214
218 SrvConfig();
219
225 SrvConfig(const uint32_t sequence);
226
245 std::string getConfigSummary(const uint32_t selection) const;
246
250 uint32_t getSequence() const {
251 return (sequence_);
252 }
253
264 bool sequenceEquals(const SrvConfig& other);
265
273 return (cfg_iface_);
274 }
275
283 return (cfg_iface_);
284 }
285
294 return (cfg_option_def_);
295 }
296
305 return (cfg_option_def_);
306 }
307
315 return (cfg_option_);
316 }
317
325 return (cfg_option_);
326 }
327
333 return (cfg_subnets4_);
334 }
335
342 return (cfg_shared_networks4_);
343 }
344
351 return (cfg_shared_networks6_);
352 }
353
359 return (cfg_subnets4_);
360 }
361
367 return (cfg_subnets6_);
368 }
369
375 return (cfg_subnets6_);
376 }
377
383 return (cfg_hosts_);
384 }
385
391 return (cfg_hosts_);
392 }
393
400 return (cfg_rsoo_);
401 }
402
408 return (cfg_rsoo_);
409 }
410
417 return (cfg_expiration_);
418 }
419
426 return (cfg_expiration_);
427 }
428
435 return (cfg_duid_);
436 }
437
444 return (cfg_duid_);
445 }
446
453 return (cfg_db_access_);
454 }
455
462 return (cfg_db_access_);
463 }
464
471 return (cfg_host_operations4_);
472 }
473
480 return (cfg_host_operations4_);
481 }
482
489 return (cfg_host_operations6_);
490 }
491
498 return (cfg_host_operations6_);
499 }
500
505 return (cfg_consist_);
506 }
507
512 return (cfg_consist_);
513 }
514
516
522 return (cfg_mac_source_);
523 }
524
530 return (cfg_mac_source_);
531 }
532
537 return (control_socket_);
538 }
539
544 control_socket_ = control_socket;
545 }
546
551 return (dhcp_queue_control_);
552 }
553
557 void setDHCPQueueControl(const isc::data::ConstElementPtr dhcp_queue_control) {
558 dhcp_queue_control_ = dhcp_queue_control;
559 }
560
565 return (dhcp_multi_threading_);
566 }
567
571 void setDHCPMultiThreading(const isc::data::ConstElementPtr dhcp_multi_threading) {
572 dhcp_multi_threading_ = dhcp_multi_threading;
573 }
574
580 return (class_dictionary_);
581 }
582
588 return (class_dictionary_);
589 }
590
595 class_dictionary_ = dictionary;
596 }
597
602 return (hooks_config_);
603 }
604
609 return (hooks_config_);
610 }
611
621 DdnsParamsPtr getDdnsParams(const Subnet4Ptr& subnet) const;
622
632 DdnsParamsPtr getDdnsParams(const Subnet6Ptr& subnet) const;
633
650 void copy(SrvConfig& new_config) const;
651
654
655
664 bool equals(const SrvConfig& other) const;
665
674 bool nequals(const SrvConfig& other) const {
675 return (!equals(other));
676 }
677
686 bool operator==(const SrvConfig& other) const {
687 return (equals(other));
688 }
689
698 bool operator!=(const SrvConfig& other) const {
699 return (nequals(other));
700 }
701
703
758 virtual void merge(ConfigBase& other);
759
765 void updateStatistics();
766
772 void removeStatistics();
773
780 void setDeclinePeriod(const uint32_t decline_timer) {
781 decline_timer_ = decline_timer;
782 }
783
789 uint32_t getDeclinePeriod() const {
790 return (decline_timer_);
791 }
792
799 void setEchoClientId(const bool echo) {
800 echo_v4_client_id_ = echo;
801 }
802
806 bool getEchoClientId() const {
807 return (echo_v4_client_id_);
808 }
809
816 void setDhcp4o6Port(uint16_t port) {
817 dhcp4o6_port_ = port;
818 }
819
825 uint16_t getDhcp4o6Port() const {
826 return (dhcp4o6_port_);
827 }
828
833 return (d2_client_config_);
834 }
835
840 return (d2_client_config_);
841 }
842
846 void setD2ClientConfig(const D2ClientConfigPtr& d2_client_config) {
847 d2_client_config_ = d2_client_config;
848 }
849
857 return (configured_globals_);
858 }
859
867 return (configured_globals_);
868 }
869
876 return (configured_globals_->get(name));
877 }
878
885 return (configured_globals_->get(index));
886 }
887
895 configured_globals_->clear();
896 lenient_option_parsing_ = false;
897 ignore_dhcp_server_identifier_ = false;
898 ignore_rai_link_selection_ = false;
899 exclude_first_last_24_ = false;
900 control_socket_.reset();
901 d2_client_config_.reset(new D2ClientConfig());
902 cfg_expiration_.reset(new CfgExpiration());
903 dhcp_multi_threading_.reset();
904 cfg_consist_.reset(new CfgConsistency());
905 cfg_duid_.reset(new CfgDUID());
906 dhcp_queue_control_.reset();
907 }
908
913
916
921 void addConfiguredGlobal(const std::string& name, isc::data::ConstElementPtr value) {
922 configured_globals_->set(name, value);
923 }
924
928 void sanityChecksLifetime(const std::string& name) const;
929
935 void sanityChecksLifetime(const SrvConfig& target_config,
936 const std::string& name) const;
937
947 void setIPReservationsUnique(const bool unique);
948
954 void setReservationsLookupFirst(const bool first) {
955 reservations_lookup_first_ = first;
956 }
957
964 return (reservations_lookup_first_);
965 }
966
970 virtual isc::data::ElementPtr toElement() const;
971
976 void setLenientOptionParsing(bool const value) {
977 lenient_option_parsing_ = value;
978 }
979
984 return lenient_option_parsing_;
985 }
986
991 void setIgnoreServerIdentifier(bool const value) {
992 ignore_dhcp_server_identifier_ = value;
993 }
994
999 return (ignore_dhcp_server_identifier_);
1000 }
1001
1006 void setIgnoreRAILinkSelection(bool const value) {
1007 ignore_rai_link_selection_ = value;
1008 }
1009
1014 return ignore_rai_link_selection_;
1015 }
1016
1021 void setExcludeFirstLast24(bool const value) {
1022 exclude_first_last_24_ = value;
1023 }
1024
1029 return exclude_first_last_24_;
1030 }
1031
1039 void configureLowerLevelLibraries() const;
1040
1041private:
1042
1051 void merge4(SrvConfig& other);
1052
1061 void merge6(SrvConfig& other);
1062
1085 void mergeGlobals(SrvConfig& other);
1086
1109 void mergeGlobalMaps(SrvConfig& other);
1110
1112 uint32_t sequence_;
1113
1118 CfgIfacePtr cfg_iface_;
1119
1124 CfgOptionDefPtr cfg_option_def_;
1125
1130 CfgOptionPtr cfg_option_;
1131
1133 CfgSubnets4Ptr cfg_subnets4_;
1134
1136 CfgSubnets6Ptr cfg_subnets6_;
1137
1139 CfgSharedNetworks4Ptr cfg_shared_networks4_;
1140
1142 CfgSharedNetworks6Ptr cfg_shared_networks6_;
1143
1148 CfgHostsPtr cfg_hosts_;
1149
1151 CfgMACSource cfg_mac_source_;
1152
1157 CfgRSOOPtr cfg_rsoo_;
1158
1161 CfgExpirationPtr cfg_expiration_;
1162
1164 CfgDUIDPtr cfg_duid_;
1165
1168 CfgDbAccessPtr cfg_db_access_;
1169
1172 CfgHostOperationsPtr cfg_host_operations4_;
1173
1176 CfgHostOperationsPtr cfg_host_operations6_;
1177
1179 isc::data::ConstElementPtr control_socket_;
1180
1182 isc::data::ConstElementPtr dhcp_queue_control_;
1183
1185 isc::data::ConstElementPtr dhcp_multi_threading_;
1186
1188 ClientClassDictionaryPtr class_dictionary_;
1189
1191 isc::hooks::HooksConfig hooks_config_;
1192
1197 uint32_t decline_timer_;
1198
1200 bool echo_v4_client_id_;
1201
1206 uint16_t dhcp4o6_port_;
1207
1209 D2ClientConfigPtr d2_client_config_;
1210
1212 CfgGlobalsPtr configured_globals_;
1213
1215 CfgConsistencyPtr cfg_consist_;
1216
1219
1220
1221 bool lenient_option_parsing_;
1223 bool ignore_dhcp_server_identifier_;
1225 bool ignore_rai_link_selection_;
1227 bool exclude_first_last_24_;
1229
1235 bool reservations_lookup_first_;
1236};
1237
1240
1241
1242typedef boost::shared_ptr<SrvConfig> SrvConfigPtr;
1243
1245typedef boost::shared_ptr<const SrvConfig> ConstSrvConfigPtr;
1247
1248} // namespace dhcp
1249} // namespace isc
1250
1251#endif // DHCPSRV_CONFIG_H
Parameters for various consistency checks.
Holds manual configuration of the server identifier (DUID).
Definition cfg_duid.h:30
Holds configuration parameters pertaining to lease expiration and lease affinity.
Wrapper class that holds MAC/hardware address sources.
Acts as a storage vault for D2 client configuration.
ReplaceClientNameMode
Defines the client name replacement modes.
Convenience container for conveying DDNS behavioral parameters It is intended to be created per Packe...
Definition srv_config.h:48
std::string getHostnameCharReplacement() const
Returns the string to replace invalid characters when scrubbing hostnames.
D2ClientConfig::ReplaceClientNameMode getReplaceClientNameMode() const
Returns how Kea should handle the domain-name supplied by the client.
std::string getGeneratedPrefix() const
Returns the Prefix Kea should use when generating domain-names.
util::Optional< double > getTtlPercent() const
Returns percent of lease lifetime to use for TTL.
isc::util::str::StringSanitizerPtr getHostnameSanitizer() const
Returns a regular expression string sanitizer.
std::string getHostnameCharSet() const
Returns the regular expression describing invalid characters for client hostnames.
SubnetID getSubnetId() const
Returns the subnet-id of the subnet associated with these parameters.
Definition srv_config.h:162
std::string getConflictResolutionMode() const
Returns the DDNS config resolution mode for kea-dhcp-ddns.
DdnsParams(const Subnet4Ptr &subnet, bool d2_client_enabled)
Constructor for DHPCv4 subnets.
Definition srv_config.h:60
std::string getQualifyingSuffix() const
Returns the suffix Kea should use when to qualify partial domain-names.
bool getUpdateOnRenew() const
Returns whether or not DNS should be updated when leases renew.
bool getOverrideNoUpdate() const
Returns whether or not Kea should perform updates, even if client requested no updates.
DdnsParams(const Subnet6Ptr &subnet, bool d2_client_enabled)
Constructor for DHPCv6 subnets.
Definition srv_config.h:71
DdnsParams()
Default constructor.
Definition srv_config.h:51
bool getEnableUpdates() const
Returns whether or not DHCP DDNS updating is enabled.
bool getOverrideClientUpdate() const
Returns whether or not Kea should perform updates, even if client requested delegation.
Specifies current DHCP configuration.
Definition srv_config.h:184
ClientClassDictionaryPtr getClientClassDictionary()
Returns pointer to the dictionary of global client class definitions.
Definition srv_config.h:579
static const uint32_t CFGSEL_SUBNET4
Number of IPv4 subnets.
Definition srv_config.h:192
ConstCfgOptionDefPtr getCfgOptionDef() const
Returns pointer to the const object representing user-defined option definitions.
Definition srv_config.h:304
const ConstCfgOptionPtr getCfgOption() const
Returns pointer to the const object holding options.
Definition srv_config.h:324
void setDhcp4o6Port(uint16_t port)
Sets DHCP4o6 IPC port.
Definition srv_config.h:816
void addConfiguredGlobal(const std::string &name, isc::data::ConstElementPtr value)
Adds a parameter to the collection configured globals.
Definition srv_config.h:921
CfgGlobalsPtr getConfiguredGlobals()
Returns non-const pointer to configured global parameters.
Definition srv_config.h:856
ConstCfgGlobalsPtr getConfiguredGlobals() const
Returns const pointer to configured global parameters.
Definition srv_config.h:866
void setLenientOptionParsing(bool const value)
Set lenient option parsing compatibility flag.
Definition srv_config.h:976
bool getReservationsLookupFirst() const
Returns whether the server does host reservations lookup before lease lookup.
Definition srv_config.h:963
const ClientClassDictionaryPtr getClientClassDictionary() const
Returns pointer to const dictionary of global client class definitions.
Definition srv_config.h:587
const D2ClientConfigPtr getD2ClientConfig() const
Returns pointer to const D2 client configuration.
Definition srv_config.h:839
void clearConfiguredGlobals()
Removes all configured global parameters.
Definition srv_config.h:894
void setClientClassDictionary(const ClientClassDictionaryPtr &dictionary)
Sets the client class dictionary.
Definition srv_config.h:594
ConstCfgSubnets6Ptr getCfgSubnets6() const
Returns pointer to const object holding subnets configuration for DHCPv6.
Definition srv_config.h:374
virtual void merge(ConfigBase &other)
Merges the configuration specified as a parameter into this configuration.
void extractConfiguredGlobals(isc::data::ConstElementPtr config)
Saves scalar elements from the global scope of a configuration.
static const uint32_t CFGSEL_ALL
Whole config.
Definition srv_config.h:212
void setIgnoreServerIdentifier(bool const value)
Set ignore DHCP Server Identifier compatibility flag.
Definition srv_config.h:991
ConstCfgDUIDPtr getCfgDUID() const
Returns const pointer to the object holding configuration of the server identifier.
Definition srv_config.h:443
bool nequals(const SrvConfig &other) const
Compares two objects for inequality.
Definition srv_config.h:674
bool operator!=(const SrvConfig &other) const
other An object to be compared with this object.
Definition srv_config.h:698
isc::data::ConstElementPtr getConfiguredGlobal(std::string name) const
Returns pointer to a given configured global parameter.
Definition srv_config.h:875
ConstCfgConsistencyPtr getConsistency() const
Returns const pointer to object holding sanity checks flags.
Definition srv_config.h:511
CfgSharedNetworks6Ptr getCfgSharedNetworks6() const
Returns pointer to non-const object holding configuration of shared networks in DHCPv6.
Definition srv_config.h:350
static const uint32_t CFGSEL_ALL6
IPv6 related config.
Definition srv_config.h:210
bool getIgnoreRAILinkSelection() const
Get ignore RAI Link Selection compatibility flag.
void setD2ClientConfig(const D2ClientConfigPtr &d2_client_config)
Sets the D2 client configuration.
Definition srv_config.h:846
static const uint32_t CFGSEL_NONE
Nothing selected.
Definition srv_config.h:190
void applyDefaultsConfiguredGlobals(const isc::data::SimpleDefaults &defaults)
Applies defaults to global parameters.
void setIPReservationsUnique(const bool unique)
Configures the server to allow or disallow specifying multiple hosts with the same IP address/subnet.
void configureLowerLevelLibraries() const
Convenience method to propagate configuration parameters through inversion of control.
void setIgnoreRAILinkSelection(bool const value)
Set ignore RAI Link Selection compatibility flag.
static const uint32_t CFGSEL_IFACE4
Number of enabled ifaces.
Definition srv_config.h:196
CfgDUIDPtr getCfgDUID()
Returns pointer to the object holding configuration of the server identifier.
Definition srv_config.h:434
bool sequenceEquals(const SrvConfig &other)
Compares configuration sequence with other sequence.
static const uint32_t CFGSEL_GLOBALS
Configured globals.
Definition srv_config.h:204
isc::data::ConstElementPtr getConfiguredGlobal(int index) const
Returns pointer to a given configured global parameter.
Definition srv_config.h:884
CfgConsistencyPtr getConsistency()
Returns non-const pointer to object holding sanity checks flags.
Definition srv_config.h:504
CfgSubnets4Ptr getCfgSubnets4()
Returns pointer to non-const object holding subnets configuration for DHCPv4.
Definition srv_config.h:332
CfgSubnets6Ptr getCfgSubnets6()
Returns pointer to non-const object holding subnets configuration for DHCPv6.
Definition srv_config.h:366
CfgOptionDefPtr getCfgOptionDef()
Return pointer to non-const object representing user-defined option definitions.
Definition srv_config.h:293
uint16_t getDhcp4o6Port() const
Returns DHCP4o6 IPC port.
Definition srv_config.h:825
D2ClientConfigPtr getD2ClientConfig()
Returns pointer to the D2 client configuration.
Definition srv_config.h:832
bool operator==(const SrvConfig &other) const
Equality operator.
Definition srv_config.h:686
CfgRSOOPtr getCfgRSOO()
Returns pointer to the non-const object representing set of RSOO-enabled options.
Definition srv_config.h:399
CfgHostOperationsPtr getCfgHostOperations6()
Returns pointer to the object holding general configuration for host reservations in DHCPv6.
Definition srv_config.h:488
void setReservationsLookupFirst(const bool first)
Sets whether the server does host reservations lookup before lease lookup.
Definition srv_config.h:954
ConstCfgHostOperationsPtr getCfgHostOperations6() const
Returns const pointer to the object holding general configuration for host reservations in DHCPv6.
Definition srv_config.h:497
const isc::data::ConstElementPtr getDHCPMultiThreading() const
Returns DHCP multi threading information.
Definition srv_config.h:564
bool getEchoClientId() const
Returns whether server should send back client-id in DHCPv4.
Definition srv_config.h:806
void setDHCPQueueControl(const isc::data::ConstElementPtr dhcp_queue_control)
Sets information about the dhcp queue control.
Definition srv_config.h:557
void sanityChecksLifetime(const std::string &name) const
Conducts sanity checks on global lifetime parameters.
ConstCfgIfacePtr getCfgIface() const
Returns const pointer to interface configuration.
Definition srv_config.h:282
ConstCfgExpirationPtr getCfgExpiration() const
Returns pointer to the const object holding configuration pertaining to processing expired leases.
Definition srv_config.h:425
std::string getConfigSummary(const uint32_t selection) const
Returns summary of the configuration in the textual format.
Definition srv_config.cc:86
const isc::data::ConstElementPtr getDHCPQueueControl() const
Returns DHCP queue control information.
Definition srv_config.h:550
const isc::hooks::HooksConfig & getHooksConfig() const
Returns const reference to configured hooks libraries.
Definition srv_config.h:608
bool equals(const SrvConfig &other) const
Compares two objects for equality.
uint32_t getSequence() const
Returns configuration sequence number.
Definition srv_config.h:250
CfgIfacePtr getCfgIface()
Returns non-const pointer to interface configuration.
Definition srv_config.h:272
static const uint32_t CFGSEL_DDNS
DDNS enabled/disabled.
Definition srv_config.h:200
void setDeclinePeriod(const uint32_t decline_timer)
Sets decline probation-period.
Definition srv_config.h:780
uint32_t getDeclinePeriod() const
Returns probation-period.
Definition srv_config.h:789
void removeStatistics()
Removes statistics.
ConstCfgHostsPtr getCfgHosts() const
Returns pointer to the const objects representing host reservations for different IPv4 and IPv6 subne...
Definition srv_config.h:390
CfgExpirationPtr getCfgExpiration()
Returns pointer to the object holding configuration pertaining to processing expired leases.
Definition srv_config.h:416
const CfgMACSource & getMACSources() const
Returns const reference to an array that stores MAC/hardware address sources.
Definition srv_config.h:529
CfgOptionPtr getCfgOption()
Returns pointer to the non-const object holding options.
Definition srv_config.h:314
virtual isc::data::ElementPtr toElement() const
Unparse a configuration object.
bool getLenientOptionParsing() const
Get lenient option parsing compatibility flag.
Definition srv_config.h:983
ConstCfgRSOOPtr getCfgRSOO() const
Returns pointer to the const object representing set of RSOO-enabled options.
Definition srv_config.h:407
static const uint32_t CFGSEL_SUBNET6
Number of IPv6 subnets.
Definition srv_config.h:194
bool getExcludeFirstLast24() const
Get exclude .0 and .255 addresses in subnets bigger than /24 flag.
isc::hooks::HooksConfig & getHooksConfig()
Returns non-const reference to configured hooks libraries.
Definition srv_config.h:601
void updateStatistics()
Updates statistics.
ConstCfgDbAccessPtr getCfgDbAccess() const
Returns const pointer to the object holding configuration of the lease and host database connection p...
Definition srv_config.h:461
void setExcludeFirstLast24(bool const value)
Set exclude .0 and .255 addresses in subnets bigger than /24 flag.
static const uint32_t CFGSEL_SUBNET
Number of all subnets.
Definition srv_config.h:202
static const uint32_t CFGSEL_ALL4
IPv4 related config.
Definition srv_config.h:208
void setDHCPMultiThreading(const isc::data::ConstElementPtr dhcp_multi_threading)
Sets information about the dhcp multi threading.
Definition srv_config.h:571
CfgDbAccessPtr getCfgDbAccess()
Returns pointer to the object holding configuration of the lease and host database connection paramet...
Definition srv_config.h:452
void setEchoClientId(const bool echo)
Sets whether server should send back client-id in DHCPv4.
Definition srv_config.h:799
void copy(SrvConfig &new_config) const
Copies the current configuration to a new configuration.
CfgSharedNetworks4Ptr getCfgSharedNetworks4() const
Returns pointer to non-const object holding configuration of shared networks in DHCPv4;.
Definition srv_config.h:341
CfgHostsPtr getCfgHosts()
Returns pointer to the non-const objects representing host reservations for different IPv4 and IPv6 s...
Definition srv_config.h:382
void setControlSocketInfo(const isc::data::ConstElementPtr &control_socket)
Sets information about the control socket.
Definition srv_config.h:543
static const uint32_t CFGSEL_IFACE6
Number of v6 ifaces.
Definition srv_config.h:198
bool getIgnoreServerIdentifier() const
Get ignore DHCP Server Identifier compatibility flag.
Definition srv_config.h:998
ConstCfgSubnets4Ptr getCfgSubnets4() const
Returns pointer to const object holding subnets configuration for DHCPv4.
Definition srv_config.h:358
static const uint32_t CFGSEL_CFG_CTL
Config control info.
Definition srv_config.h:206
const isc::data::ConstElementPtr getControlSocketInfo() const
Returns information about control socket.
Definition srv_config.h:536
DdnsParamsPtr getDdnsParams(const Subnet4Ptr &subnet) const
Fetches the DDNS parameters for a given DHCPv4 subnet.
SrvConfig()
Default constructor.
Definition srv_config.cc:45
ConstCfgHostOperationsPtr getCfgHostOperations4() const
Returns const pointer to the object holding general configuration for host reservations in DHCPv4.
Definition srv_config.h:479
CfgHostOperationsPtr getCfgHostOperations4()
Returns pointer to the object holding general configuration for host reservations in DHCPv4.
Definition srv_config.h:470
CfgMACSource & getMACSources()
Returns non-const reference to an array that stores MAC/hardware address sources.
Definition srv_config.h:521
Wrapper class that holds hooks libraries configuration.
Base class for all configurations.
Definition config_base.h:33
A template representing an optional value.
Definition optional.h:36
Defines classes for storing client class definitions.
Defines the D2ClientConfig class.
boost::shared_ptr< const Element > ConstElementPtr
Definition data.h:29
std::vector< SimpleDefault > SimpleDefaults
This specifies all default values in a given scope (e.g. a subnet).
boost::shared_ptr< Element > ElementPtr
Definition data.h:28
boost::shared_ptr< const CfgOptionDef > ConstCfgOptionDefPtr
Const pointer.
boost::shared_ptr< CfgDUID > CfgDUIDPtr
Pointer to the Non-const object.
Definition cfg_duid.h:161
boost::shared_ptr< CfgHostOperations > CfgHostOperationsPtr
Pointer to the Non-const object.
boost::shared_ptr< const CfgDUID > ConstCfgDUIDPtr
Pointer to the const object.
Definition cfg_duid.h:164
boost::shared_ptr< const CfgGlobals > ConstCfgGlobalsPtr
Const shared pointer to a CfgGlobals instance.
boost::shared_ptr< Subnet > SubnetPtr
A generic pointer to either Subnet4 or Subnet6 object.
Definition subnet.h:449
boost::shared_ptr< Subnet4 > Subnet4Ptr
A pointer to a Subnet4 object.
Definition subnet.h:458
boost::shared_ptr< const CfgHosts > ConstCfgHostsPtr
Const pointer.
Definition cfg_hosts.h:976
boost::shared_ptr< D2ClientConfig > D2ClientConfigPtr
Defines a pointer for D2ClientConfig instances.
boost::shared_ptr< const SrvConfig > ConstSrvConfigPtr
Const pointer to the SrvConfig.
boost::shared_ptr< CfgOption > CfgOptionPtr
Non-const pointer.
Definition cfg_option.h:803
boost::shared_ptr< CfgOptionDef > CfgOptionDefPtr
Non-const pointer.
boost::shared_ptr< CfgDbAccess > CfgDbAccessPtr
A pointer to the CfgDbAccess.
boost::shared_ptr< const CfgExpiration > ConstCfgExpirationPtr
Pointer to the const object.
boost::shared_ptr< const CfgIface > ConstCfgIfacePtr
A pointer to the const CfgIface.
Definition cfg_iface.h:504
boost::shared_ptr< Subnet6 > Subnet6Ptr
A pointer to a Subnet6 object.
Definition subnet.h:623
boost::shared_ptr< const CfgDbAccess > ConstCfgDbAccessPtr
A pointer to the const CfgDbAccess.
boost::shared_ptr< const CfgRSOO > ConstCfgRSOOPtr
Pointer to the const object.
Definition cfg_rsoo.h:74
boost::shared_ptr< const CfgHostOperations > ConstCfgHostOperationsPtr
Pointer to the const object.
boost::shared_ptr< CfgIface > CfgIfacePtr
A pointer to the CfgIface .
Definition cfg_iface.h:501
boost::shared_ptr< DdnsParams > DdnsParamsPtr
Defines a pointer for DdnsParams instances.
Definition srv_config.h:179
boost::shared_ptr< SrvConfig > SrvConfigPtr
Non-const pointer to the SrvConfig.
boost::shared_ptr< CfgSubnets6 > CfgSubnets6Ptr
Non-const pointer.
boost::shared_ptr< CfgExpiration > CfgExpirationPtr
boost::shared_ptr< CfgGlobals > CfgGlobalsPtr
Non-const shared pointer to a CfgGlobals instance.
boost::shared_ptr< ClientClassDictionary > ClientClassDictionaryPtr
Defines a pointer to a ClientClassDictionary.
boost::shared_ptr< CfgSharedNetworks6 > CfgSharedNetworks6Ptr
Pointer to the configuration of IPv6 shared networks.
uint32_t SubnetID
Defines unique IPv4 or IPv6 subnet identifier.
Definition subnet_id.h:25
boost::shared_ptr< CfgHosts > CfgHostsPtr
Non-const pointer.
Definition cfg_hosts.h:973
boost::shared_ptr< CfgSubnets4 > CfgSubnets4Ptr
Non-const pointer.
boost::shared_ptr< const CfgSubnets4 > ConstCfgSubnets4Ptr
Const pointer.
boost::shared_ptr< const CfgSubnets6 > ConstCfgSubnets6Ptr
Const pointer.
boost::shared_ptr< CfgConsistency > CfgConsistencyPtr
Type used to for pointing to CfgConsistency structure.
boost::shared_ptr< CfgSharedNetworks4 > CfgSharedNetworks4Ptr
Pointer to the configuration of IPv4 shared networks.
boost::shared_ptr< CfgRSOO > CfgRSOOPtr
Pointer to the Non-const object.
Definition cfg_rsoo.h:71
boost::shared_ptr< const CfgConsistency > ConstCfgConsistencyPtr
Type used to for pointing to const CfgConsistency structure.
boost::shared_ptr< const CfgOption > ConstCfgOptionPtr
Const pointer.
Definition cfg_option.h:806
std::unique_ptr< StringSanitizer > StringSanitizerPtr
Type representing the pointer to the StringSanitizer.
Definition str.h:263
Defines the logger used by the top-level component of kea-lfc.