Kea: srv_config.h Source File

| Kea 3.2.0-git

srv_config.h
Go to the documentation of this file.
1// Copyright (C) 2014-2026 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>
11#include <dhcpsrv/cfg_db_access.h>
12#include <dhcpsrv/cfg_duid.h>
13#include <dhcpsrv/cfg_expiration.h>
14#include <dhcpsrv/cfg_globals.h>
15#include <dhcpsrv/cfg_host_operations.h>
16#include <dhcpsrv/cfg_hosts.h>
17#include <dhcpsrv/cfg_iface.h>
18#include <dhcpsrv/cfg_option.h>
19#include <dhcpsrv/cfg_option_def.h>
20#include <dhcpsrv/cfg_rsoo.h>
21#include <dhcpsrv/cfg_shared_networks.h>
22#include <dhcpsrv/cfg_subnets4.h>
23#include <dhcpsrv/cfg_subnets6.h>
24#include <dhcpsrv/cfg_mac_source.h>
25#include <dhcpsrv/cfg_consistency.h>
26#include <dhcpsrv/client_class_def.h>
27#include <dhcpsrv/d2_client_cfg.h>
28#include <dhcpsrv/ddns_params.h>
29#include <process/config_base.h>
30#include <hooks/hooks_config.h>
31#include <cc/data.h>
32#include <cc/user_context.h>
33#include <cc/simple_parser.h>
34#include <config/http_command_config.h>
35#include <util/optional.h>
36#include <util/str.h>
37
38#include <boost/shared_ptr.hpp>
39#include <vector>
40#include <stdint.h>
41
42namespace isc {
43namespace dhcp {
44
45class CfgMgr;
46
50 class SrvConfig : public process::ConfigBase {
51public:
54
55
56 static const uint32_t CFGSEL_NONE = 0x00000000;
58 static const uint32_t CFGSEL_SUBNET4 = 0x00000001;
60 static const uint32_t CFGSEL_SUBNET6 = 0x00000002;
62 static const uint32_t CFGSEL_IFACE4 = 0x00000004;
64 static const uint32_t CFGSEL_IFACE6 = 0x00000008;
66 static const uint32_t CFGSEL_DDNS = 0x00000010;
68 static const uint32_t CFGSEL_SUBNET = 0x00000003;
70 static const uint32_t CFGSEL_GLOBALS = 0x00000020;
72 static const uint32_t CFGSEL_CFG_CTL = 0x00000040;
74 static const uint32_t CFGSEL_ALL4 = 0x00000035;
76 static const uint32_t CFGSEL_ALL6 = 0x0000003A;
78 static const uint32_t CFGSEL_ALL = 0xFFFFFFFF;
80
84 SrvConfig();
85
91 SrvConfig(const uint32_t sequence);
92
111 std::string getConfigSummary(const uint32_t selection) const;
112
116 uint32_t getSequence() const {
117 return (sequence_);
118 }
119
130 bool sequenceEquals(const SrvConfig& other);
131
138 CfgIfacePtr getCfgIface() {
139 return (cfg_iface_);
140 }
141
148 ConstCfgIfacePtr getCfgIface() const {
149 return (cfg_iface_);
150 }
151
159 CfgOptionDefPtr getCfgOptionDef() {
160 return (cfg_option_def_);
161 }
162
170 ConstCfgOptionDefPtr getCfgOptionDef() const {
171 return (cfg_option_def_);
172 }
173
180 CfgOptionPtr getCfgOption() {
181 return (cfg_option_);
182 }
183
190 const ConstCfgOptionPtr getCfgOption() const {
191 return (cfg_option_);
192 }
193
198 CfgSubnets4Ptr getCfgSubnets4() {
199 return (cfg_subnets4_);
200 }
201
207 CfgSharedNetworks4Ptr getCfgSharedNetworks4() const {
208 return (cfg_shared_networks4_);
209 }
210
216 CfgSharedNetworks6Ptr getCfgSharedNetworks6() const {
217 return (cfg_shared_networks6_);
218 }
219
224 ConstCfgSubnets4Ptr getCfgSubnets4() const {
225 return (cfg_subnets4_);
226 }
227
232 CfgSubnets6Ptr getCfgSubnets6() {
233 return (cfg_subnets6_);
234 }
235
240 ConstCfgSubnets6Ptr getCfgSubnets6() const {
241 return (cfg_subnets6_);
242 }
243
248 CfgHostsPtr getCfgHosts() {
249 return (cfg_hosts_);
250 }
251
256 ConstCfgHostsPtr getCfgHosts() const {
257 return (cfg_hosts_);
258 }
259
265 CfgRSOOPtr getCfgRSOO() {
266 return (cfg_rsoo_);
267 }
268
273 ConstCfgRSOOPtr getCfgRSOO() const {
274 return (cfg_rsoo_);
275 }
276
282 CfgExpirationPtr getCfgExpiration() {
283 return (cfg_expiration_);
284 }
285
291 ConstCfgExpirationPtr getCfgExpiration() const {
292 return (cfg_expiration_);
293 }
294
300 CfgDUIDPtr getCfgDUID() {
301 return (cfg_duid_);
302 }
303
309 ConstCfgDUIDPtr getCfgDUID() const {
310 return (cfg_duid_);
311 }
312
318 CfgDbAccessPtr getCfgDbAccess() {
319 return (cfg_db_access_);
320 }
321
327 ConstCfgDbAccessPtr getCfgDbAccess() const {
328 return (cfg_db_access_);
329 }
330
336 CfgHostOperationsPtr getCfgHostOperations4() {
337 return (cfg_host_operations4_);
338 }
339
345 ConstCfgHostOperationsPtr getCfgHostOperations4() const {
346 return (cfg_host_operations4_);
347 }
348
354 CfgHostOperationsPtr getCfgHostOperations6() {
355 return (cfg_host_operations6_);
356 }
357
363 ConstCfgHostOperationsPtr getCfgHostOperations6() const {
364 return (cfg_host_operations6_);
365 }
366
370 CfgConsistencyPtr getConsistency() {
371 return (cfg_consist_);
372 }
373
377 ConstCfgConsistencyPtr getConsistency() const {
378 return (cfg_consist_);
379 }
380
382
387 CfgMACSource& getMACSources() {
388 return (cfg_mac_source_);
389 }
390
395 const CfgMACSource& getMACSources() const {
396 return (cfg_mac_source_);
397 }
398
402 const isc::data::ConstElementPtr getUnixControlSocketInfo() const {
403 return (unix_control_socket_);
404 }
405
409 void setUnixControlSocketInfo(const isc::data::ConstElementPtr& control_socket) {
410 unix_control_socket_ = control_socket;
411 }
412
416 const isc::data::ConstElementPtr getHttpControlSocketInfo() const {
417 return (http_control_socket_);
418 }
419
423 void setHttpControlSocketInfo(const isc::data::ConstElementPtr& control_socket) {
424 http_control_socket_ = control_socket;
425 }
426
430 const isc::data::ConstElementPtr getDHCPQueueControl() const {
431 return (dhcp_queue_control_);
432 }
433
437 void setDHCPQueueControl(const isc::data::ConstElementPtr dhcp_queue_control) {
438 dhcp_queue_control_ = dhcp_queue_control;
439 }
440
444 const isc::data::ConstElementPtr getDHCPMultiThreading() const {
445 return (dhcp_multi_threading_);
446 }
447
451 void setDHCPMultiThreading(const isc::data::ConstElementPtr dhcp_multi_threading) {
452 dhcp_multi_threading_ = dhcp_multi_threading;
453 }
454
459 ClientClassDictionaryPtr getClientClassDictionary() {
460 return (class_dictionary_);
461 }
462
467 const ClientClassDictionaryPtr getClientClassDictionary() const {
468 return (class_dictionary_);
469 }
470
474 void setClientClassDictionary(const ClientClassDictionaryPtr& dictionary) {
475 class_dictionary_ = dictionary;
476 }
477
481 isc::hooks::HooksConfig& getHooksConfig() {
482 return (hooks_config_);
483 }
484
488 const isc::hooks::HooksConfig& getHooksConfig() const {
489 return (hooks_config_);
490 }
491
501 DdnsParamsPtr getDdnsParams(const ConstSubnet4Ptr& subnet) const;
502
512 DdnsParamsPtr getDdnsParams(const ConstSubnet6Ptr& subnet) const;
513
530 void copy(SrvConfig& new_config) const;
531
534
535
544 bool equals(const SrvConfig& other) const;
545
554 bool nequals(const SrvConfig& other) const {
555 return (!equals(other));
556 }
557
566 bool operator==(const SrvConfig& other) const {
567 return (equals(other));
568 }
569
578 bool operator!=(const SrvConfig& other) const {
579 return (nequals(other));
580 }
581
583
638 virtual void merge(ConfigBase& other);
639
645 void updateStatistics();
646
652 void removeStatistics();
653
660 void setDeclinePeriod(const uint32_t decline_timer) {
661 decline_timer_ = decline_timer;
662 }
663
669 uint32_t getDeclinePeriod() const {
670 return (decline_timer_);
671 }
672
679 void setEchoClientId(const bool echo) {
680 echo_v4_client_id_ = echo;
681 }
682
686 bool getEchoClientId() const {
687 return (echo_v4_client_id_);
688 }
689
696 void setDhcp4o6Port(uint16_t port) {
697 dhcp4o6_port_ = port;
698 }
699
705 uint16_t getDhcp4o6Port() const {
706 return (dhcp4o6_port_);
707 }
708
712 D2ClientConfigPtr getD2ClientConfig() {
713 return (d2_client_config_);
714 }
715
719 const D2ClientConfigPtr getD2ClientConfig() const {
720 return (d2_client_config_);
721 }
722
726 void setD2ClientConfig(const D2ClientConfigPtr& d2_client_config) {
727 d2_client_config_ = d2_client_config;
728 }
729
736 CfgGlobalsPtr getConfiguredGlobals() {
737 return (configured_globals_);
738 }
739
746 ConstCfgGlobalsPtr getConfiguredGlobals() const {
747 return (configured_globals_);
748 }
749
755 isc::data::ConstElementPtr getConfiguredGlobal(std::string name) const {
756 return (configured_globals_->get(name));
757 }
758
764 isc::data::ConstElementPtr getConfiguredGlobal(int index) const {
765 return (configured_globals_->get(index));
766 }
767
774 void clearConfiguredGlobals() {
775 configured_globals_->clear();
776 lenient_option_parsing_ = false;
777 ignore_dhcp_server_identifier_ = false;
778 ignore_rai_link_selection_ = false;
779 exclude_first_last_24_ = false;
780 unix_control_socket_.reset();
781 http_control_socket_.reset();
782 d2_client_config_.reset(new D2ClientConfig());
783 cfg_expiration_.reset(new CfgExpiration());
784 dhcp_multi_threading_.reset();
785 cfg_consist_.reset(new CfgConsistency());
786 cfg_duid_.reset(new CfgDUID());
787 dhcp_queue_control_.reset();
788 }
789
793 void applyDefaultsConfiguredGlobals(const isc::data::SimpleDefaults& defaults);
794
796 void extractConfiguredGlobals(isc::data::ConstElementPtr config);
797
802 void addConfiguredGlobal(const std::string& name, isc::data::ConstElementPtr value) {
803 configured_globals_->set(name, value);
804 }
805
809 void sanityChecksLifetime(const std::string& name) const;
810
816 void sanityChecksLifetime(const SrvConfig& target_config,
817 const std::string& name) const;
818
823 void sanityChecksSflqAllocator() const;
824
833 void sanityChecksDdnsTtlParameters() const;
834
844 void setIPReservationsUnique(const bool unique);
845
851 void setReservationsLookupFirst(const bool first) {
852 reservations_lookup_first_ = first;
853 }
854
860 bool getReservationsLookupFirst() const {
861 return (reservations_lookup_first_);
862 }
863
867 virtual isc::data::ElementPtr toElement() const;
868
873 void setLenientOptionParsing(bool const value) {
874 lenient_option_parsing_ = value;
875 }
876
880 bool getLenientOptionParsing() const {
881 return lenient_option_parsing_;
882 }
883
888 void setIgnoreServerIdentifier(bool const value) {
889 ignore_dhcp_server_identifier_ = value;
890 }
891
895 bool getIgnoreServerIdentifier() const {
896 return (ignore_dhcp_server_identifier_);
897 }
898
903 void setIgnoreRAILinkSelection(bool const value) {
904 ignore_rai_link_selection_ = value;
905 }
906
910 bool getIgnoreRAILinkSelection() const {
911 return ignore_rai_link_selection_;
912 }
913
918 void setExcludeFirstLast24(bool const value) {
919 exclude_first_last_24_ = value;
920 }
921
925 bool getExcludeFirstLast24() const {
926 return exclude_first_last_24_;
927 }
928
936 void configureLowerLevelLibraries() const;
937
938private:
939
948 void merge4(SrvConfig& other);
949
958 void merge6(SrvConfig& other);
959
982 void mergeGlobals(SrvConfig& other);
983
1006 void mergeGlobalContainers(SrvConfig& other);
1007
1012 static uint32_t rangeCheck(data::ConstElementPtr elem, std::string name);
1013
1015 uint32_t sequence_;
1016
1021 CfgIfacePtr cfg_iface_;
1022
1027 CfgOptionDefPtr cfg_option_def_;
1028
1033 CfgOptionPtr cfg_option_;
1034
1036 CfgSubnets4Ptr cfg_subnets4_;
1037
1039 CfgSubnets6Ptr cfg_subnets6_;
1040
1042 CfgSharedNetworks4Ptr cfg_shared_networks4_;
1043
1045 CfgSharedNetworks6Ptr cfg_shared_networks6_;
1046
1051 CfgHostsPtr cfg_hosts_;
1052
1054 CfgMACSource cfg_mac_source_;
1055
1060 CfgRSOOPtr cfg_rsoo_;
1061
1064 CfgExpirationPtr cfg_expiration_;
1065
1067 CfgDUIDPtr cfg_duid_;
1068
1071 CfgDbAccessPtr cfg_db_access_;
1072
1075 CfgHostOperationsPtr cfg_host_operations4_;
1076
1079 CfgHostOperationsPtr cfg_host_operations6_;
1080
1082 isc::data::ConstElementPtr unix_control_socket_;
1083
1085 isc::data::ConstElementPtr http_control_socket_;
1086
1088 isc::data::ConstElementPtr dhcp_queue_control_;
1089
1091 isc::data::ConstElementPtr dhcp_multi_threading_;
1092
1094 ClientClassDictionaryPtr class_dictionary_;
1095
1097 isc::hooks::HooksConfig hooks_config_;
1098
1103 uint32_t decline_timer_;
1104
1106 bool echo_v4_client_id_;
1107
1112 uint16_t dhcp4o6_port_;
1113
1115 D2ClientConfigPtr d2_client_config_;
1116
1118 CfgGlobalsPtr configured_globals_;
1119
1121 CfgConsistencyPtr cfg_consist_;
1122
1125
1126
1127 bool lenient_option_parsing_;
1129 bool ignore_dhcp_server_identifier_;
1131 bool ignore_rai_link_selection_;
1133 bool exclude_first_last_24_;
1135
1141 bool reservations_lookup_first_;
1142};
1143
1146
1147
1148 typedef boost::shared_ptr<SrvConfig> SrvConfigPtr;
1149
1151 typedef boost::shared_ptr<const SrvConfig> ConstSrvConfigPtr;
1153
1154} // namespace dhcp
1155} // namespace isc
1156
1157#endif // DHCPSRV_CONFIG_H
cfg_consistency.h
cfg_db_access.h
cfg_duid.h
cfg_expiration.h
cfg_globals.h
cfg_host_operations.h
cfg_hosts.h
cfg_iface.h
cfg_mac_source.h
cfg_option.h
cfg_option_def.h
cfg_rsoo.h
cfg_shared_networks.h
cfg_subnets4.h
cfg_subnets6.h
cfg_to_element.h
isc::dhcp::CfgConsistency
Parameters for various consistency checks.
Definition cfg_consistency.h:19
isc::dhcp::CfgDUID
Holds manual configuration of the server identifier (DUID).
Definition cfg_duid.h:30
isc::dhcp::CfgExpiration
Holds configuration parameters pertaining to lease expiration and lease affinity.
Definition cfg_expiration.h:61
isc::dhcp::CfgMACSource
Wrapper class that holds MAC/hardware address sources.
Definition cfg_mac_source.h:25
isc::dhcp::CfgMgr
Configuration Manager.
Definition cfgmgr.h:71
isc::dhcp::D2ClientConfig
Acts as a storage vault for D2 client configuration.
Definition d2_client_cfg.h:57
isc::dhcp::SrvConfig
Specifies current DHCP configuration.
Definition srv_config.h:50
isc::dhcp::SrvConfig::getUnixControlSocketInfo
const isc::data::ConstElementPtr getUnixControlSocketInfo() const
Returns information about UNIX control socket.
Definition srv_config.h:402
isc::dhcp::SrvConfig::getClientClassDictionary
ClientClassDictionaryPtr getClientClassDictionary()
Returns pointer to the dictionary of global client class definitions.
Definition srv_config.h:459
isc::dhcp::SrvConfig::CFGSEL_SUBNET4
static const uint32_t CFGSEL_SUBNET4
Number of IPv4 subnets.
Definition srv_config.h:58
isc::dhcp::SrvConfig::getCfgOptionDef
ConstCfgOptionDefPtr getCfgOptionDef() const
Returns pointer to the const object representing user-defined option definitions.
Definition srv_config.h:170
isc::dhcp::SrvConfig::getCfgOption
const ConstCfgOptionPtr getCfgOption() const
Returns pointer to the const object holding options.
Definition srv_config.h:190
isc::dhcp::SrvConfig::setDhcp4o6Port
void setDhcp4o6Port(uint16_t port)
Sets DHCP4o6 IPC port.
Definition srv_config.h:696
isc::dhcp::SrvConfig::addConfiguredGlobal
void addConfiguredGlobal(const std::string &name, isc::data::ConstElementPtr value)
Adds a parameter to the collection configured globals.
Definition srv_config.h:802
isc::dhcp::SrvConfig::setUnixControlSocketInfo
void setUnixControlSocketInfo(const isc::data::ConstElementPtr &control_socket)
Sets information about the UNIX control socket.
Definition srv_config.h:409
isc::dhcp::SrvConfig::getConfiguredGlobals
CfgGlobalsPtr getConfiguredGlobals()
Returns non-const pointer to configured global parameters.
Definition srv_config.h:736
isc::dhcp::SrvConfig::getConfiguredGlobals
ConstCfgGlobalsPtr getConfiguredGlobals() const
Returns const pointer to configured global parameters.
Definition srv_config.h:746
isc::dhcp::SrvConfig::setLenientOptionParsing
void setLenientOptionParsing(bool const value)
Set lenient option parsing compatibility flag.
Definition srv_config.h:873
isc::dhcp::SrvConfig::getReservationsLookupFirst
bool getReservationsLookupFirst() const
Returns whether the server does host reservations lookup before lease lookup.
Definition srv_config.h:860
isc::dhcp::SrvConfig::getClientClassDictionary
const ClientClassDictionaryPtr getClientClassDictionary() const
Returns pointer to const dictionary of global client class definitions.
Definition srv_config.h:467
isc::dhcp::SrvConfig::getD2ClientConfig
const D2ClientConfigPtr getD2ClientConfig() const
Returns pointer to const D2 client configuration.
Definition srv_config.h:719
isc::dhcp::SrvConfig::sanityChecksDdnsTtlParameters
void sanityChecksDdnsTtlParameters() const
Conducts sanity checks on global DDNS ttl parameters: ddns-ttl, ddns-ttl-percent, ddns-ttl-min,...
Definition srv_config.cc:1137
isc::dhcp::SrvConfig::clearConfiguredGlobals
void clearConfiguredGlobals()
Removes all configured global parameters.
Definition srv_config.h:774
isc::dhcp::SrvConfig::setClientClassDictionary
void setClientClassDictionary(const ClientClassDictionaryPtr &dictionary)
Sets the client class dictionary.
Definition srv_config.h:474
isc::dhcp::SrvConfig::getCfgSubnets6
ConstCfgSubnets6Ptr getCfgSubnets6() const
Returns pointer to const object holding subnets configuration for DHCPv6.
Definition srv_config.h:240
isc::dhcp::SrvConfig::merge
virtual void merge(ConfigBase &other)
Merges the configuration specified as a parameter into this configuration.
Definition srv_config.cc:184
isc::dhcp::SrvConfig::extractConfiguredGlobals
void extractConfiguredGlobals(isc::data::ConstElementPtr config)
Saves scalar elements from the global scope of a configuration.
Definition srv_config.cc:511
isc::dhcp::SrvConfig::CFGSEL_ALL
static const uint32_t CFGSEL_ALL
Whole config.
Definition srv_config.h:78
isc::dhcp::SrvConfig::setIgnoreServerIdentifier
void setIgnoreServerIdentifier(bool const value)
Set ignore DHCP Server Identifier compatibility flag.
Definition srv_config.h:888
isc::dhcp::SrvConfig::getCfgDUID
ConstCfgDUIDPtr getCfgDUID() const
Returns const pointer to the object holding configuration of the server identifier.
Definition srv_config.h:309
isc::dhcp::SrvConfig::nequals
bool nequals(const SrvConfig &other) const
Compares two objects for inequality.
Definition srv_config.h:554
isc::dhcp::SrvConfig::operator!=
bool operator!=(const SrvConfig &other) const
other An object to be compared with this object.
Definition srv_config.h:578
isc::dhcp::SrvConfig::getConfiguredGlobal
isc::data::ConstElementPtr getConfiguredGlobal(std::string name) const
Returns pointer to a given configured global parameter.
Definition srv_config.h:755
isc::dhcp::SrvConfig::getConsistency
ConstCfgConsistencyPtr getConsistency() const
Returns const pointer to object holding sanity checks flags.
Definition srv_config.h:377
isc::dhcp::SrvConfig::getCfgSharedNetworks6
CfgSharedNetworks6Ptr getCfgSharedNetworks6() const
Returns pointer to non-const object holding configuration of shared networks in DHCPv6.
Definition srv_config.h:216
isc::dhcp::SrvConfig::CFGSEL_ALL6
static const uint32_t CFGSEL_ALL6
IPv6 related config.
Definition srv_config.h:76
isc::dhcp::SrvConfig::getIgnoreRAILinkSelection
bool getIgnoreRAILinkSelection() const
Get ignore RAI Link Selection compatibility flag.
Definition srv_config.h:910
isc::dhcp::SrvConfig::setD2ClientConfig
void setD2ClientConfig(const D2ClientConfigPtr &d2_client_config)
Sets the D2 client configuration.
Definition srv_config.h:726
isc::dhcp::SrvConfig::CFGSEL_NONE
static const uint32_t CFGSEL_NONE
Nothing selected.
Definition srv_config.h:56
isc::dhcp::SrvConfig::applyDefaultsConfiguredGlobals
void applyDefaultsConfiguredGlobals(const isc::data::SimpleDefaults &defaults)
Applies defaults to global parameters.
Definition srv_config.cc:441
isc::dhcp::SrvConfig::setIPReservationsUnique
void setIPReservationsUnique(const bool unique)
Configures the server to allow or disallow specifying multiple hosts with the same IP address/subnet.
Definition srv_config.cc:991
isc::dhcp::SrvConfig::configureLowerLevelLibraries
void configureLowerLevelLibraries() const
Convenience method to propagate configuration parameters through inversion of control.
Definition srv_config.cc:1000
isc::dhcp::SrvConfig::setIgnoreRAILinkSelection
void setIgnoreRAILinkSelection(bool const value)
Set ignore RAI Link Selection compatibility flag.
Definition srv_config.h:903
isc::dhcp::SrvConfig::CFGSEL_IFACE4
static const uint32_t CFGSEL_IFACE4
Number of enabled ifaces.
Definition srv_config.h:62
isc::dhcp::SrvConfig::getCfgDUID
CfgDUIDPtr getCfgDUID()
Returns pointer to the object holding configuration of the server identifier.
Definition srv_config.h:300
isc::dhcp::SrvConfig::sanityChecksSflqAllocator
void sanityChecksSflqAllocator() const
Conducts sanity check in use of SFLQ allocator.
Definition srv_config.cc:1173
isc::dhcp::SrvConfig::sequenceEquals
bool sequenceEquals(const SrvConfig &other)
Compares configuration sequence with other sequence.
Definition srv_config.cc:131
isc::dhcp::SrvConfig::CFGSEL_GLOBALS
static const uint32_t CFGSEL_GLOBALS
Configured globals.
Definition srv_config.h:70
isc::dhcp::SrvConfig::getConfiguredGlobal
isc::data::ConstElementPtr getConfiguredGlobal(int index) const
Returns pointer to a given configured global parameter.
Definition srv_config.h:764
isc::dhcp::SrvConfig::getConsistency
CfgConsistencyPtr getConsistency()
Returns non-const pointer to object holding sanity checks flags.
Definition srv_config.h:370
isc::dhcp::SrvConfig::getCfgSubnets4
CfgSubnets4Ptr getCfgSubnets4()
Returns pointer to non-const object holding subnets configuration for DHCPv4.
Definition srv_config.h:198
isc::dhcp::SrvConfig::getHttpControlSocketInfo
const isc::data::ConstElementPtr getHttpControlSocketInfo() const
Returns information about HTTP/HTTPS control socket.
Definition srv_config.h:416
isc::dhcp::SrvConfig::getCfgSubnets6
CfgSubnets6Ptr getCfgSubnets6()
Returns pointer to non-const object holding subnets configuration for DHCPv6.
Definition srv_config.h:232
isc::dhcp::SrvConfig::getCfgOptionDef
CfgOptionDefPtr getCfgOptionDef()
Return pointer to non-const object representing user-defined option definitions.
Definition srv_config.h:159
isc::dhcp::SrvConfig::getDhcp4o6Port
uint16_t getDhcp4o6Port() const
Returns DHCP4o6 IPC port.
Definition srv_config.h:705
isc::dhcp::SrvConfig::getD2ClientConfig
D2ClientConfigPtr getD2ClientConfig()
Returns pointer to the D2 client configuration.
Definition srv_config.h:712
isc::dhcp::SrvConfig::operator==
bool operator==(const SrvConfig &other) const
Equality operator.
Definition srv_config.h:566
isc::dhcp::SrvConfig::getCfgRSOO
CfgRSOOPtr getCfgRSOO()
Returns pointer to the non-const object representing set of RSOO-enabled options.
Definition srv_config.h:265
isc::dhcp::SrvConfig::getCfgHostOperations6
CfgHostOperationsPtr getCfgHostOperations6()
Returns pointer to the object holding general configuration for host reservations in DHCPv6.
Definition srv_config.h:354
isc::dhcp::SrvConfig::setReservationsLookupFirst
void setReservationsLookupFirst(const bool first)
Sets whether the server does host reservations lookup before lease lookup.
Definition srv_config.h:851
isc::dhcp::SrvConfig::getCfgHostOperations6
ConstCfgHostOperationsPtr getCfgHostOperations6() const
Returns const pointer to the object holding general configuration for host reservations in DHCPv6.
Definition srv_config.h:363
isc::dhcp::SrvConfig::getDHCPMultiThreading
const isc::data::ConstElementPtr getDHCPMultiThreading() const
Returns DHCP multi threading information.
Definition srv_config.h:444
isc::dhcp::SrvConfig::getEchoClientId
bool getEchoClientId() const
Returns whether server should send back client-id in DHCPv4.
Definition srv_config.h:686
isc::dhcp::SrvConfig::setDHCPQueueControl
void setDHCPQueueControl(const isc::data::ConstElementPtr dhcp_queue_control)
Sets information about the dhcp queue control.
Definition srv_config.h:437
isc::dhcp::SrvConfig::getDdnsParams
DdnsParamsPtr getDdnsParams(const ConstSubnet4Ptr &subnet) const
Fetches the DDNS parameters for a given DHCPv4 subnet.
Definition srv_config.cc:979
isc::dhcp::SrvConfig::sanityChecksLifetime
void sanityChecksLifetime(const std::string &name) const
Conducts sanity checks on global lifetime parameters.
Definition srv_config.cc:545
isc::dhcp::SrvConfig::getCfgIface
ConstCfgIfacePtr getCfgIface() const
Returns const pointer to interface configuration.
Definition srv_config.h:148
isc::dhcp::SrvConfig::getCfgExpiration
ConstCfgExpirationPtr getCfgExpiration() const
Returns pointer to the const object holding configuration pertaining to processing expired leases.
Definition srv_config.h:291
isc::dhcp::SrvConfig::getConfigSummary
std::string getConfigSummary(const uint32_t selection) const
Returns summary of the configuration in the textual format.
Definition srv_config.cc:90
isc::dhcp::SrvConfig::getDHCPQueueControl
const isc::data::ConstElementPtr getDHCPQueueControl() const
Returns DHCP queue control information.
Definition srv_config.h:430
isc::dhcp::SrvConfig::getHooksConfig
const isc::hooks::HooksConfig & getHooksConfig() const
Returns const reference to configured hooks libraries.
Definition srv_config.h:488
isc::dhcp::SrvConfig::equals
bool equals(const SrvConfig &other) const
Compares two objects for equality.
Definition srv_config.cc:157
isc::dhcp::SrvConfig::getSequence
uint32_t getSequence() const
Returns configuration sequence number.
Definition srv_config.h:116
isc::dhcp::SrvConfig::getCfgIface
CfgIfacePtr getCfgIface()
Returns non-const pointer to interface configuration.
Definition srv_config.h:138
isc::dhcp::SrvConfig::CFGSEL_DDNS
static const uint32_t CFGSEL_DDNS
DDNS enabled/disabled.
Definition srv_config.h:66
isc::dhcp::SrvConfig::setDeclinePeriod
void setDeclinePeriod(const uint32_t decline_timer)
Sets decline probation-period.
Definition srv_config.h:660
isc::dhcp::SrvConfig::getDeclinePeriod
uint32_t getDeclinePeriod() const
Returns probation-period.
Definition srv_config.h:669
isc::dhcp::SrvConfig::removeStatistics
void removeStatistics()
Removes statistics.
Definition srv_config.cc:397
isc::dhcp::SrvConfig::getCfgHosts
ConstCfgHostsPtr getCfgHosts() const
Returns pointer to the const objects representing host reservations for different IPv4 and IPv6 subne...
Definition srv_config.h:256
isc::dhcp::SrvConfig::getCfgExpiration
CfgExpirationPtr getCfgExpiration()
Returns pointer to the object holding configuration pertaining to processing expired leases.
Definition srv_config.h:282
isc::dhcp::SrvConfig::getMACSources
const CfgMACSource & getMACSources() const
Returns const reference to an array that stores MAC/hardware address sources.
Definition srv_config.h:395
isc::dhcp::SrvConfig::getCfgOption
CfgOptionPtr getCfgOption()
Returns pointer to the non-const object holding options.
Definition srv_config.h:180
isc::dhcp::SrvConfig::toElement
virtual isc::data::ElementPtr toElement() const
Unparse a configuration object.
Definition srv_config.cc:735
isc::dhcp::SrvConfig::getLenientOptionParsing
bool getLenientOptionParsing() const
Get lenient option parsing compatibility flag.
Definition srv_config.h:880
isc::dhcp::SrvConfig::getCfgRSOO
ConstCfgRSOOPtr getCfgRSOO() const
Returns pointer to the const object representing set of RSOO-enabled options.
Definition srv_config.h:273
isc::dhcp::SrvConfig::CFGSEL_SUBNET6
static const uint32_t CFGSEL_SUBNET6
Number of IPv6 subnets.
Definition srv_config.h:60
isc::dhcp::SrvConfig::getExcludeFirstLast24
bool getExcludeFirstLast24() const
Get exclude .0 and .255 addresses in subnets bigger than /24 flag.
Definition srv_config.h:925
isc::dhcp::SrvConfig::getHooksConfig
isc::hooks::HooksConfig & getHooksConfig()
Returns non-const reference to configured hooks libraries.
Definition srv_config.h:481
isc::dhcp::SrvConfig::updateStatistics
void updateStatistics()
Updates statistics.
Definition srv_config.cc:404
isc::dhcp::SrvConfig::getCfgDbAccess
ConstCfgDbAccessPtr getCfgDbAccess() const
Returns const pointer to the object holding configuration of the lease and host database connection p...
Definition srv_config.h:327
isc::dhcp::SrvConfig::setExcludeFirstLast24
void setExcludeFirstLast24(bool const value)
Set exclude .0 and .255 addresses in subnets bigger than /24 flag.
Definition srv_config.h:918
isc::dhcp::SrvConfig::CFGSEL_SUBNET
static const uint32_t CFGSEL_SUBNET
Number of all subnets.
Definition srv_config.h:68
isc::dhcp::SrvConfig::CFGSEL_ALL4
static const uint32_t CFGSEL_ALL4
IPv4 related config.
Definition srv_config.h:74
isc::dhcp::SrvConfig::setDHCPMultiThreading
void setDHCPMultiThreading(const isc::data::ConstElementPtr dhcp_multi_threading)
Sets information about the dhcp multi threading.
Definition srv_config.h:451
isc::dhcp::SrvConfig::getCfgDbAccess
CfgDbAccessPtr getCfgDbAccess()
Returns pointer to the object holding configuration of the lease and host database connection paramet...
Definition srv_config.h:318
isc::dhcp::SrvConfig::setEchoClientId
void setEchoClientId(const bool echo)
Sets whether server should send back client-id in DHCPv4.
Definition srv_config.h:679
isc::dhcp::SrvConfig::copy
void copy(SrvConfig &new_config) const
Copies the current configuration to a new configuration.
Definition srv_config.cc:136
isc::dhcp::SrvConfig::getCfgSharedNetworks4
CfgSharedNetworks4Ptr getCfgSharedNetworks4() const
Returns pointer to non-const object holding configuration of shared networks in DHCPv4;.
Definition srv_config.h:207
isc::dhcp::SrvConfig::getCfgHosts
CfgHostsPtr getCfgHosts()
Returns pointer to the non-const objects representing host reservations for different IPv4 and IPv6 s...
Definition srv_config.h:248
isc::dhcp::SrvConfig::setHttpControlSocketInfo
void setHttpControlSocketInfo(const isc::data::ConstElementPtr &control_socket)
Sets information about the HTTP/HTTPS control socket.
Definition srv_config.h:423
isc::dhcp::SrvConfig::CFGSEL_IFACE6
static const uint32_t CFGSEL_IFACE6
Number of v6 ifaces.
Definition srv_config.h:64
isc::dhcp::SrvConfig::getIgnoreServerIdentifier
bool getIgnoreServerIdentifier() const
Get ignore DHCP Server Identifier compatibility flag.
Definition srv_config.h:895
isc::dhcp::SrvConfig::getCfgSubnets4
ConstCfgSubnets4Ptr getCfgSubnets4() const
Returns pointer to const object holding subnets configuration for DHCPv4.
Definition srv_config.h:224
isc::dhcp::SrvConfig::CFGSEL_CFG_CTL
static const uint32_t CFGSEL_CFG_CTL
Config control info.
Definition srv_config.h:72
isc::dhcp::SrvConfig::SrvConfig
SrvConfig()
Default constructor.
Definition srv_config.cc:49
isc::dhcp::SrvConfig::getCfgHostOperations4
ConstCfgHostOperationsPtr getCfgHostOperations4() const
Returns const pointer to the object holding general configuration for host reservations in DHCPv4.
Definition srv_config.h:345
isc::dhcp::SrvConfig::getCfgHostOperations4
CfgHostOperationsPtr getCfgHostOperations4()
Returns pointer to the object holding general configuration for host reservations in DHCPv4.
Definition srv_config.h:336
isc::dhcp::SrvConfig::getMACSources
CfgMACSource & getMACSources()
Returns non-const reference to an array that stores MAC/hardware address sources.
Definition srv_config.h:387
isc::hooks::HooksConfig
Wrapper class that holds hooks libraries configuration.
Definition hooks_config.h:36
isc::process::ConfigBase
Base class for all configurations.
Definition config_base.h:33
client_class_def.h
Defines classes for storing client class definitions.
config_base.h
d2_client_cfg.h
Defines the D2ClientConfig class.
data.h
ddns_params.h
hooks_config.h
http_command_config.h
simple_parser.h
isc::config
Definition command_interpreter.cc:23
isc::data::ConstElementPtr
boost::shared_ptr< const Element > ConstElementPtr
Definition data.h:30
isc::data::SimpleDefaults
std::vector< SimpleDefault > SimpleDefaults
This specifies all default values in a given scope (e.g. a subnet).
Definition lib/cc/simple_parser.h:39
isc::data::ElementPtr
boost::shared_ptr< Element > ElementPtr
Definition data.h:29
isc::dhcp
Definition dhcp4/client_handler.cc:20
isc::dhcp::ConstCfgOptionDefPtr
boost::shared_ptr< const CfgOptionDef > ConstCfgOptionDefPtr
Const pointer.
Definition cfg_option_def.h:189
isc::dhcp::CfgDUIDPtr
boost::shared_ptr< CfgDUID > CfgDUIDPtr
Pointer to the Non-const object.
Definition cfg_duid.h:161
isc::dhcp::CfgHostOperationsPtr
boost::shared_ptr< CfgHostOperations > CfgHostOperationsPtr
Pointer to the Non-const object.
Definition cfg_host_operations.h:25
isc::dhcp::ConstCfgDUIDPtr
boost::shared_ptr< const CfgDUID > ConstCfgDUIDPtr
Pointer to the const object.
Definition cfg_duid.h:164
isc::dhcp::ConstCfgGlobalsPtr
boost::shared_ptr< const CfgGlobals > ConstCfgGlobalsPtr
Const shared pointer to a CfgGlobals instance.
Definition cfg_globals.h:176
isc::dhcp::ConstCfgHostsPtr
boost::shared_ptr< const CfgHosts > ConstCfgHostsPtr
Const pointer.
Definition cfg_hosts.h:976
isc::dhcp::D2ClientConfigPtr
boost::shared_ptr< D2ClientConfig > D2ClientConfigPtr
Defines a pointer for D2ClientConfig instances.
Definition d2_client_cfg.h:236
isc::dhcp::ConstSrvConfigPtr
boost::shared_ptr< const SrvConfig > ConstSrvConfigPtr
Const pointer to the SrvConfig.
Definition srv_config.h:1151
isc::dhcp::CfgOptionPtr
boost::shared_ptr< CfgOption > CfgOptionPtr
Non-const pointer.
Definition cfg_option.h:973
isc::dhcp::ConstSubnet6Ptr
boost::shared_ptr< const Subnet6 > ConstSubnet6Ptr
A const pointer to a Subnet6 object.
Definition subnet.h:620
isc::dhcp::ConstSubnet4Ptr
boost::shared_ptr< const Subnet4 > ConstSubnet4Ptr
A const pointer to a Subnet4 object.
Definition subnet.h:455
isc::dhcp::CfgOptionDefPtr
boost::shared_ptr< CfgOptionDef > CfgOptionDefPtr
Non-const pointer.
Definition cfg_option_def.h:186
isc::dhcp::CfgDbAccessPtr
boost::shared_ptr< CfgDbAccess > CfgDbAccessPtr
A pointer to the CfgDbAccess.
Definition cfg_db_access.h:151
isc::dhcp::ConstCfgExpirationPtr
boost::shared_ptr< const CfgExpiration > ConstCfgExpirationPtr
Pointer to the const object.
Definition cfg_expiration.h:278
isc::dhcp::ConstCfgIfacePtr
boost::shared_ptr< const CfgIface > ConstCfgIfacePtr
A pointer to the const CfgIface.
Definition cfg_iface.h:525
isc::dhcp::ConstCfgDbAccessPtr
boost::shared_ptr< const CfgDbAccess > ConstCfgDbAccessPtr
A pointer to the const CfgDbAccess.
Definition cfg_db_access.h:154
isc::dhcp::ConstCfgRSOOPtr
boost::shared_ptr< const CfgRSOO > ConstCfgRSOOPtr
Pointer to the const object.
Definition cfg_rsoo.h:74
isc::dhcp::ConstCfgHostOperationsPtr
boost::shared_ptr< const CfgHostOperations > ConstCfgHostOperationsPtr
Pointer to the const object.
Definition cfg_host_operations.h:29
isc::dhcp::CfgIfacePtr
boost::shared_ptr< CfgIface > CfgIfacePtr
A pointer to the CfgIface .
Definition cfg_iface.h:522
isc::dhcp::DdnsParamsPtr
boost::shared_ptr< DdnsParams > DdnsParamsPtr
Defines a pointer for DdnsParams instances.
Definition ddns_params.h:191
isc::dhcp::SrvConfigPtr
boost::shared_ptr< SrvConfig > SrvConfigPtr
Non-const pointer to the SrvConfig.
Definition srv_config.h:1148
isc::dhcp::CfgSubnets6Ptr
boost::shared_ptr< CfgSubnets6 > CfgSubnets6Ptr
Non-const pointer.
Definition cfg_subnets6.h:348
isc::dhcp::CfgExpirationPtr
boost::shared_ptr< CfgExpiration > CfgExpirationPtr
Pointer to the Non-const object.
Definition cfg_expiration.h:275
isc::dhcp::CfgGlobalsPtr
boost::shared_ptr< CfgGlobals > CfgGlobalsPtr
Non-const shared pointer to a CfgGlobals instance.
Definition cfg_globals.h:173
isc::dhcp::ClientClassDictionaryPtr
boost::shared_ptr< ClientClassDictionary > ClientClassDictionaryPtr
Defines a pointer to a ClientClassDictionary.
Definition client_class_def.h:517
isc::dhcp::CfgSharedNetworks6Ptr
boost::shared_ptr< CfgSharedNetworks6 > CfgSharedNetworks6Ptr
Pointer to the configuration of IPv6 shared networks.
Definition cfg_shared_networks.h:240
isc::dhcp::CfgHostsPtr
boost::shared_ptr< CfgHosts > CfgHostsPtr
Non-const pointer.
Definition cfg_hosts.h:973
isc::dhcp::CfgSubnets4Ptr
boost::shared_ptr< CfgSubnets4 > CfgSubnets4Ptr
Non-const pointer.
Definition cfg_subnets4.h:350
isc::dhcp::ConstCfgSubnets4Ptr
boost::shared_ptr< const CfgSubnets4 > ConstCfgSubnets4Ptr
Const pointer.
Definition cfg_subnets4.h:353
isc::dhcp::ConstCfgSubnets6Ptr
boost::shared_ptr< const CfgSubnets6 > ConstCfgSubnets6Ptr
Const pointer.
Definition cfg_subnets6.h:351
isc::dhcp::CfgConsistencyPtr
boost::shared_ptr< CfgConsistency > CfgConsistencyPtr
Type used to for pointing to CfgConsistency structure.
Definition cfg_consistency.h:103
isc::dhcp::CfgSharedNetworks4Ptr
boost::shared_ptr< CfgSharedNetworks4 > CfgSharedNetworks4Ptr
Pointer to the configuration of IPv4 shared networks.
Definition cfg_shared_networks.h:232
isc::dhcp::CfgRSOOPtr
boost::shared_ptr< CfgRSOO > CfgRSOOPtr
Pointer to the Non-const object.
Definition cfg_rsoo.h:71
isc::dhcp::ConstCfgConsistencyPtr
boost::shared_ptr< const CfgConsistency > ConstCfgConsistencyPtr
Type used to for pointing to const CfgConsistency structure.
Definition cfg_consistency.h:106
isc::dhcp::ConstCfgOptionPtr
boost::shared_ptr< const CfgOption > ConstCfgOptionPtr
Const pointer.
Definition cfg_option.h:976
isc
Defines the logger used by the top-level component of kea-lfc.
Definition check_exists_add.cc:18
optional.h
str.h
user_context.h