Kea 2.0.2
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
16namespace isc {
17namespace yang {
18
26 public AdaptorSubnet {
27public:
28
31
33 virtual ~AdaptorConfig();
34
45 static void preProcess4(isc::data::ConstElementPtr config);
46
57 static void preProcess6(isc::data::ConstElementPtr config);
58
59protected:
71 SubnetIDSet& set);
72
85 SubnetIDSet& set,
86 const std::string& subsel);
87
99
111 SubnetIDSet& set,
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
231
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 Kea server configurations.
static void sanitizeRequireClassesPools(isc::data::ConstElementPtr pools)
Process require client classes in a pool list.
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 subnetsAssignID(isc::data::ConstElementPtr subnets, SubnetIDSet &set, isc::dhcp::SubnetID &next)
Assigns subnet-id to every subnet in a subnet list.
static void sanitizeRelaySubnets(isc::data::ConstElementPtr subnets)
Sanitizes relay information in subnets in a subnet list.
static void sanitizeHostSubnets(isc::data::ConstElementPtr subnets)
Process host reservations 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 void sanitizeDatabase(isc::data::ConstElementPtr dhcp)
Update (hosts) database.
static void preProcess(isc::data::ElementPtr dhcp, const std::string &subsel, const std::string &space)
Pre process a configuration.
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.
static void sanitizePoolsInSubnets(isc::data::ConstElementPtr subnets)
Sanitizes all pools in a subnets list.
static void requireClassesSharedNetworks(isc::data::ConstElementPtr networks, const std::string &subsel)
Process require client classes in a shared network list.
static void preProcess4(isc::data::ConstElementPtr config)
Pre process a DHCPv4 configuration.
static bool subnetsCollectID(isc::data::ConstElementPtr subnets, SubnetIDSet &set)
Collects subnet-ids on all subnets.
static void sanitizeOptionHosts(isc::data::ConstElementPtr hosts, const std::string &space, const OptionCodes &codes)
Set missing option codes to a host reservation list.
static void sanitizeHostList(isc::data::ConstElementPtr hosts)
Process host reservation list.
static void SanitizeHostsInSharedNetworks(isc::data::ConstElementPtr networks, const std::string &space)
Process host reservations in a shared network list.
static void sanitizeOptionDefList(isc::data::ConstElementPtr defs, const std::string &space, OptionCodes &codes)
Collect option definitions from an option definition list.
virtual ~AdaptorConfig()
Destructor.
static void sanitizeRequireClassesSubnets(isc::data::ConstElementPtr subnets)
Process require client classes in a subnet list.
static void sanitizeOptionSubnets(isc::data::ConstElementPtr subnets, const std::string &space, const OptionCodes &codes)
Set missing option codes to a subnet list.
static void sanitizePools(isc::data::ConstElementPtr pools)
Sanitizes all pools in a pools 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 sanitizeOptionClasses(isc::data::ConstElementPtr classes, const std::string &space, OptionCodes &codes)
Collect option definitions from a client class list and set missing option codes.
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 sanitizeRelaySuppliedOptions(isc::data::ConstElementPtr dhcp)
Update relay supplied options.
static void preProcess6(isc::data::ConstElementPtr config)
Pre process a DHCPv6 configuration.
static void sanitizeOptionDataList(isc::data::ConstElementPtr options, const std::string &space, const OptionCodes &codes)
Set missing option codes to an option data list.
static void sanitizeRelayInSharedNetworks(isc::data::ConstElementPtr networks, const std::string &subsel)
Sanitizes relay information in a shared network list.
JSON adaptor for host reservations quoting identifiers.
Definition: adaptor_host.h:21
JSON adaptor for option data or definition setting defaults.
JSON adaptor for subnets adding IDs and canonizes relays.
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:27
boost::shared_ptr< Element > ElementPtr
Definition: data.h:24
uint32_t SubnetID
Unique identifier for a subnet (both v4 and v6)
Definition: lease.h:24
std::set< isc::dhcp::SubnetID > SubnetIDSet
Set of SubnetIDs.
std::map< std::string, uint16_t > OptionCodes
Map for DHCP option definitions handling code and an index built from space and name.
Defines the logger used by the top-level component of kea-lfc.