Kea  1.9.9-git
adaptor_config.h
Go to the documentation of this file.
1 // Copyright (C) 2018-2019 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 ISC_ADAPTOR_CONFIG_H
8 #define ISC_ADAPTOR_CONFIG_H 1
9 
10 #include <yang/adaptor_host.h>
11 #include <yang/adaptor_option.h>
12 #include <yang/adaptor_pool.h>
13 #include <yang/adaptor_subnet.h>
14 #include <list>
15 
16 namespace isc {
17 namespace yang {
18 
25 class AdaptorConfig : public AdaptorHost, public AdaptorOption,
26  public AdaptorSubnet {
27 public:
28 
30  AdaptorConfig();
31 
33  virtual ~AdaptorConfig();
34 
45  static void preProcess4(isc::data::ConstElementPtr config);
46 
57  static void preProcess6(isc::data::ConstElementPtr config);
58 
59 protected:
70  static bool subnetsCollectID(isc::data::ConstElementPtr subnets,
71  SubnetIDSet& set);
72 
85  SubnetIDSet& set,
86  const std::string& subsel);
87 
97  static void subnetsAssignID(isc::data::ConstElementPtr subnets,
98  SubnetIDSet& set, isc::dhcp::SubnetID& next);
99 
111  SubnetIDSet& set,
112  isc::dhcp::SubnetID& next,
113  const std::string& subsel);
114 
121  static void sanitizePools(isc::data::ConstElementPtr pools);
122 
127 
133  const std::string& subsel);
134 
144  const std::string& space,
145  OptionCodes& codes);
146 
153  const std::string& space,
154  const OptionCodes& codes);
155 
163  const std::string& space,
164  OptionCodes& codes);
165 
172  const std::string& space,
173  const OptionCodes& codes);
174 
181  const std::string& space,
182  const OptionCodes& codes);
183 
190  const std::string& space,
191  const OptionCodes& codes);
192 
199  const std::string& space,
200  const OptionCodes& codes);
201 
208 
215 
223  const std::string& subsel);
224 
230  static void sanitizeHostList(isc::data::ConstElementPtr hosts);
231 
237  static void sanitizeHostSubnets(isc::data::ConstElementPtr subnets);
238 
246  const std::string& space);
247 
254 
262  const std::string& subsel);
263 
270 
277 
286  static void preProcess(isc::data::ElementPtr dhcp,
287  const std::string& subsel,
288  const std::string& space);
289 };
290 
291 }; // end of namespace isc::yang
292 }; // end of namespace isc
293 
294 #endif // ISC_ADAPTOR_CONFIG_H
JSON adaptor for subnets adding IDs and canonizes relays.
virtual ~AdaptorConfig()
Destructor.
static void sanitizeOptionSharedNetworks(isc::data::ConstElementPtr networks, const std::string &space, const OptionCodes &codes)
Set missing option codes to a shared network list.
static void preProcess(isc::data::ElementPtr dhcp, const std::string &subsel, const std::string &space)
Pre process a configuration.
std::map< std::string, uint16_t > OptionCodes
Map for DHCP option definitions handling code and an index built from space and name.
static void sanitizeOptionDefList(isc::data::ConstElementPtr defs, const std::string &space, OptionCodes &codes)
Collect option definitions from an option definition list.
static void sharedNetworksAssignID(isc::data::ConstElementPtr networks, SubnetIDSet &set, isc::dhcp::SubnetID &next, const std::string &subsel)
Assigns subnet-id to every subnet in a shared network list.
boost::shared_ptr< Element > ElementPtr
Definition: data.h:20
static void subnetsAssignID(isc::data::ConstElementPtr subnets, SubnetIDSet &set, isc::dhcp::SubnetID &next)
Assigns subnet-id to every subnet in a subnet list.
static void sanitizeOptionPools(isc::data::ConstElementPtr pools, const std::string &space, const OptionCodes &codes)
Set missing option codes to a pool list.
static bool subnetsCollectID(isc::data::ConstElementPtr subnets, SubnetIDSet &set)
Collects subnet-ids on all subnets.
static void sanitizeOptionSubnets(isc::data::ConstElementPtr subnets, const std::string &space, const OptionCodes &codes)
Set missing option codes to a subnet list.
static void requireClassesSharedNetworks(isc::data::ConstElementPtr networks, const std::string &subsel)
Process require client classes in a shared network list.
static void sanitizeOptionDataList(isc::data::ConstElementPtr options, const std::string &space, const OptionCodes &codes)
Set missing option codes to an option data list.
JSON adaptor for Kea server configurations.
static void sanitizeRelayInSharedNetworks(isc::data::ConstElementPtr networks, const std::string &subsel)
Sanitizes relay information in a shared network list.
static void sanitizeDatabase(isc::data::ConstElementPtr dhcp)
Update (hosts) database.
static void sanitizeHostSubnets(isc::data::ConstElementPtr subnets)
Process host reservations in a subnet list.
static void SanitizeHostsInSharedNetworks(isc::data::ConstElementPtr networks, const std::string &space)
Process host reservations in a shared network list.
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:23
AdaptorConfig()
Constructor.
static void sanitizeRelaySubnets(isc::data::ConstElementPtr subnets)
Sanitizes relay information in subnets in a subnet list.
static void preProcess4(isc::data::ConstElementPtr config)
Pre process a DHCPv4 configuration.
static void sanitizeOptionClasses(isc::data::ConstElementPtr classes, const std::string &space, OptionCodes &codes)
Collect option definitions from a client class list and set missing option codes. ...
Defines the logger used by the top-level component of kea-dhcp-ddns.
static void sanitizeHostList(isc::data::ConstElementPtr hosts)
Process host reservation list.
JSON adaptor for option data or definition setting defaults.
static void preProcess6(isc::data::ConstElementPtr config)
Pre process a DHCPv6 configuration.
std::set< isc::dhcp::SubnetID > SubnetIDSet
Set of SubnetIDs.
JSON adaptor for host reservations quoting identifiers.
Definition: adaptor_host.h:21
static void sanitizeRequireClassesSubnets(isc::data::ConstElementPtr subnets)
Process require client classes in a subnet list.
static void sanitizePools(isc::data::ConstElementPtr pools)
Sanitizes all pools in a pools list.
static void sanitizeRelaySuppliedOptions(isc::data::ConstElementPtr dhcp)
Update relay supplied options.
static void sanitizeRequireClassesPools(isc::data::ConstElementPtr pools)
Process require client classes in a pool list.
static void sanitizePoolsInSharedNetworks(isc::data::ConstElementPtr networks, const std::string &subsel)
Sanitizes all pools in all subnets in a shared network list.
static void sanitizePoolsInSubnets(isc::data::ConstElementPtr subnets)
Sanitizes all pools in a subnets list.
static bool sharedNetworksCollectID(isc::data::ConstElementPtr networks, SubnetIDSet &set, const std::string &subsel)
Collects subnet-ids in all subnets in all shared network list.
static void sanitizeOptionHosts(isc::data::ConstElementPtr hosts, const std::string &space, const OptionCodes &codes)
Set missing option codes to a host reservation list.
uint32_t SubnetID
Unique identifier for a subnet (both v4 and v6)
Definition: lease.h:24