Kea  2.3.3-git
srv_config.h
Go to the documentation of this file.
1 // Copyright (C) 2014-2022 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>
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>
22 #include <dhcpsrv/cfg_subnets4.h>
23 #include <dhcpsrv/cfg_subnets6.h>
24 #include <dhcpsrv/cfg_mac_source.h>
27 #include <dhcpsrv/d2_client_cfg.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/strutil.h>
34 
35 #include <boost/shared_ptr.hpp>
36 #include <vector>
37 #include <stdint.h>
38 
39 namespace isc {
40 namespace dhcp {
41 
42 class CfgMgr;
43 
47 class DdnsParams {
48 public:
50  DdnsParams() : subnet_(), d2_client_enabled_(false) {};
51 
59  DdnsParams(const Subnet4Ptr& subnet, bool d2_client_enabled)
60  : subnet_(boost::dynamic_pointer_cast<Subnet>(subnet)),
61  d2_client_enabled_(d2_client_enabled) {}
62 
70  DdnsParams(const Subnet6Ptr& subnet, bool d2_client_enabled)
71  : subnet_(boost::dynamic_pointer_cast<Subnet>(subnet)),
72  d2_client_enabled_(d2_client_enabled) {}
73 
80  bool getEnableUpdates() const;
81 
86  bool getOverrideNoUpdate() const;
87 
92  bool getOverrideClientUpdate() const;
93 
99 
103  std::string getGeneratedPrefix() const;
104 
109  std::string getQualifyingSuffix() const;
110 
115  std::string getHostnameCharSet() const;
116 
121  std::string getHostnameCharReplacement() const;
122 
133 
141  bool getUpdateOnRenew() const;
142 
150  bool getUseConflictResolution() const;
151 
156  if (subnet_) {
157  return (subnet_->getID());
158  } else {
159  return (0);
160  }
161  }
162 
163 private:
165  SubnetPtr subnet_;
166 
168  bool d2_client_enabled_;
169 };
170 
172 typedef boost::shared_ptr<DdnsParams> DdnsParamsPtr;
173 
178 public:
181 
182  static const uint32_t CFGSEL_NONE = 0x00000000;
185  static const uint32_t CFGSEL_SUBNET4 = 0x00000001;
187  static const uint32_t CFGSEL_SUBNET6 = 0x00000002;
189  static const uint32_t CFGSEL_IFACE4 = 0x00000004;
191  static const uint32_t CFGSEL_IFACE6 = 0x00000008;
193  static const uint32_t CFGSEL_DDNS = 0x00000010;
195  static const uint32_t CFGSEL_SUBNET = 0x00000003;
197  static const uint32_t CFGSEL_GLOBALS = 0x00000020;
199  static const uint32_t CFGSEL_CFG_CTL = 0x00000040;
201  static const uint32_t CFGSEL_ALL4 = 0x00000035;
203  static const uint32_t CFGSEL_ALL6 = 0x0000003A;
205  static const uint32_t CFGSEL_ALL = 0xFFFFFFFF;
207 
211  SrvConfig();
212 
218  SrvConfig(const uint32_t sequence);
219 
238  std::string getConfigSummary(const uint32_t selection) const;
239 
243  uint32_t getSequence() const {
244  return (sequence_);
245  }
246 
257  bool sequenceEquals(const SrvConfig& other);
258 
266  return (cfg_iface_);
267  }
268 
276  return (cfg_iface_);
277  }
278 
287  return (cfg_option_def_);
288  }
289 
298  return (cfg_option_def_);
299  }
300 
308  return (cfg_option_);
309  }
310 
318  return (cfg_option_);
319  }
320 
326  return (cfg_subnets4_);
327  }
328 
335  return (cfg_shared_networks4_);
336  }
337 
344  return (cfg_shared_networks6_);
345  }
346 
352  return (cfg_subnets4_);
353  }
354 
360  return (cfg_subnets6_);
361  }
362 
368  return (cfg_subnets6_);
369  }
370 
376  return (cfg_hosts_);
377  }
378 
384  return (cfg_hosts_);
385  }
386 
393  return (cfg_rsoo_);
394  }
395 
401  return (cfg_rsoo_);
402  }
403 
410  return (cfg_expiration_);
411  }
412 
419  return (cfg_expiration_);
420  }
421 
428  return (cfg_duid_);
429  }
430 
437  return (cfg_duid_);
438  }
439 
446  return (cfg_db_access_);
447  }
448 
455  return (cfg_db_access_);
456  }
457 
464  return (cfg_host_operations4_);
465  }
466 
473  return (cfg_host_operations4_);
474  }
475 
482  return (cfg_host_operations6_);
483  }
484 
491  return (cfg_host_operations6_);
492  }
493 
498  return (cfg_consist_);
499  }
500 
505  return (cfg_consist_);
506  }
507 
509 
515  return (cfg_mac_source_);
516  }
517 
522  const CfgMACSource& getMACSources() const {
523  return (cfg_mac_source_);
524  }
525 
530  return (control_socket_);
531  }
532 
536  void setControlSocketInfo(const isc::data::ConstElementPtr& control_socket) {
537  control_socket_ = control_socket;
538  }
539 
544  return (dhcp_queue_control_);
545  }
546 
550  void setDHCPQueueControl(const isc::data::ConstElementPtr dhcp_queue_control) {
551  dhcp_queue_control_ = dhcp_queue_control;
552  }
553 
558  return (dhcp_multi_threading_);
559  }
560 
564  void setDHCPMultiThreading(const isc::data::ConstElementPtr dhcp_multi_threading) {
565  dhcp_multi_threading_ = dhcp_multi_threading;
566  }
567 
573  return (class_dictionary_);
574  }
575 
581  return (class_dictionary_);
582  }
583 
588  class_dictionary_ = dictionary;
589  }
590 
595  return (hooks_config_);
596  }
597 
602  return (hooks_config_);
603  }
604 
614  DdnsParamsPtr getDdnsParams(const Subnet4Ptr& subnet) const;
615 
625  DdnsParamsPtr getDdnsParams(const Subnet6Ptr& subnet) const;
626 
643  void copy(SrvConfig& new_config) const;
644 
647 
648  bool equals(const SrvConfig& other) const;
658 
667  bool nequals(const SrvConfig& other) const {
668  return (!equals(other));
669  }
670 
679  bool operator==(const SrvConfig& other) const {
680  return (equals(other));
681  }
682 
691  bool operator!=(const SrvConfig& other) const {
692  return (nequals(other));
693  }
694 
696 
751  virtual void merge(ConfigBase& other);
752 
758  void updateStatistics();
759 
765  void removeStatistics();
766 
773  void setDeclinePeriod(const uint32_t decline_timer) {
774  decline_timer_ = decline_timer;
775  }
776 
782  uint32_t getDeclinePeriod() const {
783  return (decline_timer_);
784  }
785 
792  void setEchoClientId(const bool echo) {
793  echo_v4_client_id_ = echo;
794  }
795 
799  bool getEchoClientId() const {
800  return (echo_v4_client_id_);
801  }
802 
809  void setDhcp4o6Port(uint16_t port) {
810  dhcp4o6_port_ = port;
811  }
812 
818  uint16_t getDhcp4o6Port() const {
819  return (dhcp4o6_port_);
820  }
821 
826  return (d2_client_config_);
827  }
828 
833  return (d2_client_config_);
834  }
835 
839  void setD2ClientConfig(const D2ClientConfigPtr& d2_client_config) {
840  d2_client_config_ = d2_client_config;
841  }
842 
850  return (configured_globals_);
851  }
852 
860  return (configured_globals_);
861  }
862 
869  return (configured_globals_->get(name));
870  }
871 
878  return (configured_globals_->get(index));
879  }
880 
888  configured_globals_->clear();
889  }
890 
894  void applyDefaultsConfiguredGlobals(const isc::data::SimpleDefaults& defaults);
895 
897  void extractConfiguredGlobals(isc::data::ConstElementPtr config);
898 
903  void addConfiguredGlobal(const std::string& name, isc::data::ConstElementPtr value) {
904  configured_globals_->set(name, value);
905  }
906 
910  void sanityChecksLifetime(const std::string& name) const;
911 
917  void sanityChecksLifetime(const SrvConfig& target_config,
918  const std::string& name) const;
919 
943  static void moveDdnsParams(isc::data::ElementPtr srv_elem);
944 
954  void setIPReservationsUnique(const bool unique);
955 
961  void setReservationsLookupFirst(const bool first) {
962  reservations_lookup_first_ = first;
963  }
964 
971  return (reservations_lookup_first_);
972  }
973 
977  virtual isc::data::ElementPtr toElement() const;
978 
983  void setLenientOptionParsing(bool const value) {
984  lenient_option_parsing_ = value;
985  }
986 
990  bool getLenientOptionParsing() const {
991  return lenient_option_parsing_;
992  }
993 
998  void setIgnoreRAILinkSelection(bool const value) {
999  ignore_rai_link_selection_ = value;
1000  }
1001 
1006  return ignore_rai_link_selection_;
1007  }
1008 
1016  void configureLowerLevelLibraries() const;
1017 
1018 private:
1019 
1028  void merge4(SrvConfig& other);
1029 
1038  void merge6(SrvConfig& other);
1039 
1062  void mergeGlobals(SrvConfig& other);
1063 
1065  uint32_t sequence_;
1066 
1071  CfgIfacePtr cfg_iface_;
1072 
1077  CfgOptionDefPtr cfg_option_def_;
1078 
1083  CfgOptionPtr cfg_option_;
1084 
1086  CfgSubnets4Ptr cfg_subnets4_;
1087 
1089  CfgSubnets6Ptr cfg_subnets6_;
1090 
1092  CfgSharedNetworks4Ptr cfg_shared_networks4_;
1093 
1095  CfgSharedNetworks6Ptr cfg_shared_networks6_;
1096 
1101  CfgHostsPtr cfg_hosts_;
1102 
1104  CfgMACSource cfg_mac_source_;
1105 
1110  CfgRSOOPtr cfg_rsoo_;
1111 
1114  CfgExpirationPtr cfg_expiration_;
1115 
1117  CfgDUIDPtr cfg_duid_;
1118 
1121  CfgDbAccessPtr cfg_db_access_;
1122 
1125  CfgHostOperationsPtr cfg_host_operations4_;
1126 
1129  CfgHostOperationsPtr cfg_host_operations6_;
1130 
1132  isc::data::ConstElementPtr control_socket_;
1133 
1135  isc::data::ConstElementPtr dhcp_queue_control_;
1136 
1138  isc::data::ConstElementPtr dhcp_multi_threading_;
1139 
1141  ClientClassDictionaryPtr class_dictionary_;
1142 
1144  isc::hooks::HooksConfig hooks_config_;
1145 
1150  uint32_t decline_timer_;
1151 
1153  bool echo_v4_client_id_;
1154 
1159  uint16_t dhcp4o6_port_;
1160 
1162  D2ClientConfigPtr d2_client_config_;
1163 
1165  CfgGlobalsPtr configured_globals_;
1166 
1168  CfgConsistencyPtr cfg_consist_;
1169 
1172 
1173  bool lenient_option_parsing_;
1176  bool ignore_rai_link_selection_;
1178 
1184  bool reservations_lookup_first_;
1185 };
1186 
1189 
1190 typedef boost::shared_ptr<SrvConfig> SrvConfigPtr;
1192 
1194 typedef boost::shared_ptr<const SrvConfig> ConstSrvConfigPtr;
1196 
1197 } // namespace dhcp
1198 } // namespace isc
1199 
1200 #endif // DHCPSRV_CONFIG_H
const isc::data::ConstElementPtr getControlSocketInfo() const
Returns information about control socket.
Definition: srv_config.h:529
Defines the D2ClientConfig class.
D2ClientConfigPtr getD2ClientConfig()
Returns pointer to the D2 client configuration.
Definition: srv_config.h:825
boost::shared_ptr< CfgSharedNetworks6 > CfgSharedNetworks6Ptr
Pointer to the configuration of IPv6 shared networks.
uint32_t getSequence() const
Returns configuration sequence number.
Definition: srv_config.h:243
const CfgMACSource & getMACSources() const
Returns const reference to an array that stores MAC/hardware address sources.
Definition: srv_config.h:522
boost::shared_ptr< CfgOption > CfgOptionPtr
Non-const pointer.
Definition: cfg_option.h:745
ConstCfgRSOOPtr getCfgRSOO() const
Returns pointer to the const object representing set of RSOO-enabled options.
Definition: srv_config.h:400
ConstCfgDbAccessPtr getCfgDbAccess() const
Returns const pointer to the object holding configuration of the lease and host database connection p...
Definition: srv_config.h:454
bool getOverrideClientUpdate() const
Returns whether or not Kea should perform updates, even if client requested delegation.
Definition: srv_config.cc:924
boost::shared_ptr< const CfgOptionDef > ConstCfgOptionDefPtr
Const pointer.
D2ClientConfig::ReplaceClientNameMode getReplaceClientNameMode() const
Returns how Kea should handle the domain-name supplied by the client.
Definition: srv_config.cc:933
boost::shared_ptr< CfgGlobals > CfgGlobalsPtr
Non-const shared pointer to a CfgGlobals instance.
Definition: cfg_globals.h:156
std::string getQualifyingSuffix() const
Returns the suffix Kea should use when to qualify partial domain-names.
Definition: srv_config.cc:951
std::vector< SimpleDefault > SimpleDefaults
This specifies all default values in a given scope (e.g. a subnet).
bool getReservationsLookupFirst() const
Returns whether the server does host reservations lookup before lease lookup.
Definition: srv_config.h:970
boost::shared_ptr< const CfgOption > ConstCfgOptionPtr
Const pointer.
Definition: cfg_option.h:748
CfgConsistencyPtr getConsistency()
Returns non-const pointer to object holding sanity checks flags.
Definition: srv_config.h:497
Base class for all configurations.
Definition: config_base.h:33
uint16_t getDhcp4o6Port() const
Returns DHCP4o6 IPC port.
Definition: srv_config.h:818
boost::shared_ptr< SrvConfig > SrvConfigPtr
Non-const pointer to the SrvConfig.
Definition: srv_config.h:1191
const isc::data::ConstElementPtr getDHCPMultiThreading() const
Returns DHCP multi threading information.
Definition: srv_config.h:557
boost::shared_ptr< Subnet4 > Subnet4Ptr
A pointer to a Subnet4 object.
Definition: subnet.h:446
boost::shared_ptr< const CfgRSOO > ConstCfgRSOOPtr
Pointer to the const object.
Definition: cfg_rsoo.h:74
boost::shared_ptr< const CfgHosts > ConstCfgHostsPtr
Const pointer.
Definition: cfg_hosts.h:944
boost::shared_ptr< const CfgGlobals > ConstCfgGlobalsPtr
Const shared pointer to a CfgGlobals instance.
Definition: cfg_globals.h:159
void setControlSocketInfo(const isc::data::ConstElementPtr &control_socket)
Sets information about the control socket.
Definition: srv_config.h:536
ConstCfgConsistencyPtr getConsistency() const
Returns const pointer to object holding sanity checks flags.
Definition: srv_config.h:504
boost::shared_ptr< Element > ElementPtr
Definition: data.h:24
boost::shared_ptr< CfgIface > CfgIfacePtr
A pointer to the CfgIface .
Definition: cfg_iface.h:501
std::string getHostnameCharSet() const
Returns the regular expression describing invalid characters for client hostnames.
Definition: srv_config.cc:960
isc::data::ConstElementPtr getConfiguredGlobal(int index) const
Returns pointer to a given configured global parameter.
Definition: srv_config.h:877
ConstCfgHostsPtr getCfgHosts() const
Returns pointer to the const objects representing host reservations for different IPv4 and IPv6 subne...
Definition: srv_config.h:383
Wrapper class that holds hooks libraries configuration.
Definition: hooks_config.h:36
CfgSubnets6Ptr getCfgSubnets6()
Returns pointer to non-const object holding subnets configuration for DHCPv6.
Definition: srv_config.h:359
void setLenientOptionParsing(bool const value)
Set lenient option parsing compatibility flag.
Definition: srv_config.h:983
boost::shared_ptr< CfgOptionDef > CfgOptionDefPtr
Non-const pointer.
bool nequals(const SrvConfig &other) const
Compares two objects for inequality.
Definition: srv_config.h:667
bool operator!=(const SrvConfig &other) const
other An object to be compared with this object.
Definition: srv_config.h:691
boost::shared_ptr< CfgConsistency > CfgConsistencyPtr
Type used to for pointing to CfgConsistency structure.
const isc::data::ConstElementPtr getDHCPQueueControl() const
Returns DHCP queue control information.
Definition: srv_config.h:543
boost::shared_ptr< const CfgDUID > ConstCfgDUIDPtr
Pointer to the const object.
Definition: cfg_duid.h:164
uint32_t getDeclinePeriod() const
Returns probation-period.
Definition: srv_config.h:782
boost::shared_ptr< CfgSubnets4 > CfgSubnets4Ptr
Non-const pointer.
Definition: cfg_subnets4.h:345
void setDHCPQueueControl(const isc::data::ConstElementPtr dhcp_queue_control)
Sets information about the dhcp queue control.
Definition: srv_config.h:550
isc::data::ConstElementPtr getConfiguredGlobal(std::string name) const
Returns pointer to a given configured global parameter.
Definition: srv_config.h:868
boost::shared_ptr< const CfgSubnets4 > ConstCfgSubnets4Ptr
Const pointer.
Definition: cfg_subnets4.h:348
boost::shared_ptr< DdnsParams > DdnsParamsPtr
Defines a pointer for DdnsParams instances.
Definition: srv_config.h:172
boost::shared_ptr< CfgExpiration > CfgExpirationPtr
bool getLenientOptionParsing() const
Get lenient option parsing compatibility flag.
Definition: srv_config.h:990
CfgOptionDefPtr getCfgOptionDef()
Return pointer to non-const object representing user-defined option definitions.
Definition: srv_config.h:286
boost::shared_ptr< const CfgDbAccess > ConstCfgDbAccessPtr
A pointer to the const CfgDbAccess.
void setEchoClientId(const bool echo)
Sets whether server should send back client-id in DHCPv4.
Definition: srv_config.h:792
bool getEchoClientId() const
Returns whether server should send back client-id in DHCPv4.
Definition: srv_config.h:799
bool getUseConflictResolution() const
Returns whether or not keah-dhcp-ddns should use conflict resolution.
Definition: srv_config.cc:1006
boost::shared_ptr< CfgSharedNetworks4 > CfgSharedNetworks4Ptr
Pointer to the configuration of IPv4 shared networks.
boost::shared_ptr< const SrvConfig > ConstSrvConfigPtr
Const pointer to the SrvConfig.
Definition: srv_config.h:1194
CfgSharedNetworks6Ptr getCfgSharedNetworks6() const
Returns pointer to non-const object holding configuration of shared networks in DHCPv6.
Definition: srv_config.h:343
void setIgnoreRAILinkSelection(bool const value)
Set ignore RAI Link Selection compatibility flag.
Definition: srv_config.h:998
ConstCfgSubnets6Ptr getCfgSubnets6() const
Returns pointer to const object holding subnets configuration for DHCPv6.
Definition: srv_config.h:367
Wrapper class that holds MAC/hardware address sources.
ElementPtr copy(ConstElementPtr from, int level)
Copy the data up to a nesting level.
Definition: data.cc:1360
ConstCfgExpirationPtr getCfgExpiration() const
Returns pointer to the const object holding configuration pertaining to processing expired leases...
Definition: srv_config.h:418
boost::shared_ptr< CfgDbAccess > CfgDbAccessPtr
A pointer to the CfgDbAccess.
bool getEnableUpdates() const
Returns whether or not DHCP DDNS updating is enabled.
Definition: srv_config.cc:907
void setDeclinePeriod(const uint32_t decline_timer)
Sets decline probation-period.
Definition: srv_config.h:773
void setReservationsLookupFirst(const bool first)
Sets whether the server does host reservations lookup before lease lookup.
Definition: srv_config.h:961
const ConstCfgOptionPtr getCfgOption() const
Returns pointer to the const object holding options.
Definition: srv_config.h:317
boost::shared_ptr< const CfgSubnets6 > ConstCfgSubnets6Ptr
Const pointer.
Definition: cfg_subnets6.h:346
const isc::hooks::HooksConfig & getHooksConfig() const
Returns const reference to configured hooks libraries.
Definition: srv_config.h:601
boost::shared_ptr< ClientClassDictionary > ClientClassDictionaryPtr
Defines a pointer to a ClientClassDictionary.
void addConfiguredGlobal(const std::string &name, isc::data::ConstElementPtr value)
Adds a parameter to the collection configured globals.
Definition: srv_config.h:903
boost::shared_ptr< const CfgExpiration > ConstCfgExpirationPtr
Pointer to the const object.
ConstCfgSubnets4Ptr getCfgSubnets4() const
Returns pointer to const object holding subnets configuration for DHCPv4.
Definition: srv_config.h:351
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:27
boost::shared_ptr< CfgRSOO > CfgRSOOPtr
Pointer to the Non-const object.
Definition: cfg_rsoo.h:71
CfgDbAccessPtr getCfgDbAccess()
Returns pointer to the object holding configuration of the lease and host database connection paramet...
Definition: srv_config.h:445
boost::shared_ptr< CfgSubnets6 > CfgSubnets6Ptr
Non-const pointer.
Definition: cfg_subnets6.h:343
CfgExpirationPtr getCfgExpiration()
Returns pointer to the object holding configuration pertaining to processing expired leases...
Definition: srv_config.h:409
CfgHostOperationsPtr getCfgHostOperations4()
Returns pointer to the object holding general configuration for host reservations in DHCPv4...
Definition: srv_config.h:463
const D2ClientConfigPtr getD2ClientConfig() const
Returns pointer to const D2 client configuration.
Definition: srv_config.h:832
Convenience container for conveying DDNS behavioral parameters It is intended to be created per Packe...
Definition: srv_config.h:47
CfgIfacePtr getCfgIface()
Returns non-const pointer to interface configuration.
Definition: srv_config.h:265
ConstCfgHostOperationsPtr getCfgHostOperations6() const
Returns const pointer to the object holding general configuration for host reservations in DHCPv6...
Definition: srv_config.h:490
bool getOverrideNoUpdate() const
Returns whether or not Kea should perform updates, even if client requested no updates.
Definition: srv_config.cc:916
isc::util::str::StringSanitizerPtr getHostnameSanitizer() const
Returns a regular expression string sanitizer.
Definition: srv_config.cc:978
Specifies current DHCP configuration.
Definition: srv_config.h:177
CfgRSOOPtr getCfgRSOO()
Returns pointer to the non-const object representing set of RSOO-enabled options. ...
Definition: srv_config.h:392
Defines the logger used by the top-level component of kea-lfc.
DdnsParams(const Subnet4Ptr &subnet, bool d2_client_enabled)
Constructor for DHPCv4 subnets.
Definition: srv_config.h:59
void clearConfiguredGlobals()
Removes all configured global parameters.
Definition: srv_config.h:887
void merge(ElementPtr element, ConstElementPtr other)
Merges the data from other into element.
Definition: data.cc:1139
CfgMACSource & getMACSources()
Returns non-const reference to an array that stores MAC/hardware address sources. ...
Definition: srv_config.h:514
ReplaceClientNameMode
Defines the client name replacement modes.
Definition: d2_client_cfg.h:76
CfgDUIDPtr getCfgDUID()
Returns pointer to the object holding configuration of the server identifier.
Definition: srv_config.h:427
ConstCfgOptionDefPtr getCfgOptionDef() const
Returns pointer to the const object representing user-defined option definitions. ...
Definition: srv_config.h:297
void setClientClassDictionary(const ClientClassDictionaryPtr &dictionary)
Sets the client class dictionary.
Definition: srv_config.h:587
isc::hooks::HooksConfig & getHooksConfig()
Returns non-const reference to configured hooks libraries.
Definition: srv_config.h:594
std::string getHostnameCharReplacement() const
Returns the string to replace invalid characters when scrubbing hostnames.
Definition: srv_config.cc:969
boost::shared_ptr< const CfgIface > ConstCfgIfacePtr
A pointer to the const CfgIface.
Definition: cfg_iface.h:504
ClientClassDictionaryPtr getClientClassDictionary()
Returns pointer to the dictionary of global client class definitions.
Definition: srv_config.h:572
bool getUpdateOnRenew() const
Returns whether or not DNS should be updated when leases renew.
Definition: srv_config.cc:997
boost::shared_ptr< const CfgHostOperations > ConstCfgHostOperationsPtr
Pointer to the const object.
CfgHostsPtr getCfgHosts()
Returns pointer to the non-const objects representing host reservations for different IPv4 and IPv6 s...
Definition: srv_config.h:375
CfgSubnets4Ptr getCfgSubnets4()
Returns pointer to non-const object holding subnets configuration for DHCPv4.
Definition: srv_config.h:325
ConstCfgGlobalsPtr getConfiguredGlobals() const
Returns const pointer to configured global parameters.
Definition: srv_config.h:859
void setDHCPMultiThreading(const isc::data::ConstElementPtr dhcp_multi_threading)
Sets information about the dhcp multi threading.
Definition: srv_config.h:564
ConstCfgIfacePtr getCfgIface() const
Returns const pointer to interface configuration.
Definition: srv_config.h:275
boost::shared_ptr< Subnet6 > Subnet6Ptr
A pointer to a Subnet6 object.
Definition: subnet.h:604
boost::shared_ptr< StringSanitizer > StringSanitizerPtr
Type representing the pointer to the StringSanitizer.
Definition: strutil.h:359
CfgOptionPtr getCfgOption()
Returns pointer to the non-const object holding options.
Definition: srv_config.h:307
CfgHostOperationsPtr getCfgHostOperations6()
Returns pointer to the object holding general configuration for host reservations in DHCPv6...
Definition: srv_config.h:481
ConstCfgHostOperationsPtr getCfgHostOperations4() const
Returns const pointer to the object holding general configuration for host reservations in DHCPv4...
Definition: srv_config.h:472
boost::shared_ptr< CfgDUID > CfgDUIDPtr
Pointer to the Non-const object.
Definition: cfg_duid.h:161
bool operator==(const SrvConfig &other) const
Equality operator.
Definition: srv_config.h:679
CfgSharedNetworks4Ptr getCfgSharedNetworks4() const
Returns pointer to non-const object holding configuration of shared networks in DHCPv4;.
Definition: srv_config.h:334
boost::shared_ptr< D2ClientConfig > D2ClientConfigPtr
Defines a pointer for D2ClientConfig instances.
std::string getGeneratedPrefix() const
Returns the Prefix Kea should use when generating domain-names.
Definition: srv_config.cc:942
boost::shared_ptr< const CfgConsistency > ConstCfgConsistencyPtr
Type used to for pointing to const CfgConsistency structure.
void setDhcp4o6Port(uint16_t port)
Sets DHCP4o6 IPC port.
Definition: srv_config.h:809
Defines classes for storing client class definitions.
DdnsParams()
Default constructor.
Definition: srv_config.h:50
void setD2ClientConfig(const D2ClientConfigPtr &d2_client_config)
Sets the D2 client configuration.
Definition: srv_config.h:839
boost::shared_ptr< Subnet > SubnetPtr
A generic pointer to either Subnet4 or Subnet6 object.
Definition: subnet.h:437
ConstCfgDUIDPtr getCfgDUID() const
Returns const pointer to the object holding configuration of the server identifier.
Definition: srv_config.h:436
SubnetID getSubnetId() const
Returns the subnet-id of the subnet associated with these parameters.
Definition: srv_config.h:155
boost::shared_ptr< CfgHostOperations > CfgHostOperationsPtr
Pointer to the Non-const object.
uint32_t SubnetID
Defines unique IPv4 or IPv6 subnet identifier.
Definition: subnet_id.h:25
CfgGlobalsPtr getConfiguredGlobals()
Returns non-const pointer to configured global parameters.
Definition: srv_config.h:849
bool getIgnoreRAILinkSelection() const
Get ignore RAI Link Selection compatibility flag.
Definition: srv_config.h:1005
const ClientClassDictionaryPtr getClientClassDictionary() const
Returns pointer to const dictionary of global client class definitions.
Definition: srv_config.h:580
DdnsParams(const Subnet6Ptr &subnet, bool d2_client_enabled)
Constructor for DHPCv6 subnets.
Definition: srv_config.h:70
boost::shared_ptr< CfgHosts > CfgHostsPtr
Non-const pointer.
Definition: cfg_hosts.h:941