Kea 2.2.0
adaptor_config.h
Go to the documentation of this file.
1// Copyright (C) 2018-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 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
98
109 SubnetIDSet& set,
111 const std::string& subsel);
112
119 static void sanitizePools(isc::data::ConstElementPtr pools);
120
125
131 const std::string& subsel);
132
142 const std::string& space,
143 OptionCodes& codes);
144
151 const std::string& space,
152 const OptionCodes& codes);
153
161 const std::string& space,
162 OptionCodes& codes);
163
170 const std::string& space,
171 const OptionCodes& codes);
172
179 const std::string& space,
180 const OptionCodes& codes);
181
188 const std::string& space,
189 const OptionCodes& codes);
190
197 const std::string& space,
198 const OptionCodes& codes);
199
206
213
221 const std::string& subsel);
222
229
236
244 const std::string& space);
245
252
260 const std::string& subsel);
261
268
275
284 static void preProcess(isc::data::ElementPtr dhcp,
285 const std::string& subsel,
286 const std::string& space);
287};
288
289} // end of namespace isc::yang
290} // end of namespace isc
291
292#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
Defines unique IPv4 or IPv6 subnet identifier.
Definition: subnet_id.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.