24#include <boost/make_shared.hpp>
44 auto name = global_parameter->stringValue();
49 if (!keywords_.count(name)) {
60 for (
auto const& name_value_pair : global_parameter_data->mapValue()) {
61 auto name = name_value_pair.first;
65 auto kit = keywords_.find(name);
66 if (kit == keywords_.end()) {
70 auto parameter_value = name_value_pair.second;
71 if (parameter_value->getType() != kit->second) {
77 for (
auto const& sub_name_value_pair : parameter_value->mapValue()) {
78 auto sub_name = sub_name_value_pair.first;
79 if (sub_name.empty()) {
82 std::string full_name = name +
"." + sub_name;
83 auto kitf = keywords_.find(full_name);
84 if (kitf == keywords_.end()) {
88 auto sub_parameter_value = sub_name_value_pair.second;
89 if (sub_parameter_value->getType() != kitf->second) {
90 isc_throw(
BadValue,
"bad parameter '" << name <<
"." << sub_name <<
"' value type: "
95 copy(sub_parameter_value, 0)));
96 parsed_globals.insert(stamped_value);
99 for (
size_t i = 0; i < parameter_value->size(); ++i) {
100 auto const sub_type = parameter_value->get(i)->getType();
101 auto sub_kit = list_keywords_.find(name);
102 if (sub_kit == list_keywords_.end()) {
105 if (sub_type != sub_kit->second) {
112 parsed_globals.insert(stamped_value);
115 copy(parameter_value, 0)));
116 parsed_globals.insert(stamped_value);
120 return (parsed_globals);
127 boost::const_pointer_cast<Element>(option_def);
131 (address_family_ == AF_INET ?
143 <<
" already exists in space '"
144 << def->getOptionSpaceName() <<
"'");
148 <<
"' already exists in space '"
149 << def->getOptionSpaceName() <<
"'");
156CBOptionPairParser::OPTION_REQUIRED = {
"code" };
159CBOptionPairParser::OPTION_KEYWORDS = {
164pair<uint16_t, string>
167 if (!skip_keywords) {
170 string space = address_family_ == AF_INET ?
177 space = elem->stringValue();
182 if (address_family_ == AF_INET) {
183 max_code = numeric_limits<uint8_t>::max();
185 max_code = numeric_limits<uint16_t>::max();
187 if ((code < 0) || (code > max_code)) {
204 return (make_pair(
static_cast<uint16_t
>(code), space));
221 force = elem->boolValue();
228 return (make_tuple(opt_pair.first, opt_pair.second, force));
245 cclasses->fromElement(elem);
249 return (make_tuple(opt_pair.first, opt_pair.second, cclasses));
307 cb_defs = boost::make_shared<OptionDefContainer>
311 cb_defs = boost::make_shared<OptionDefContainer>
316 if (!cb_defs->empty()) {
320 if (std::distance(range.first, range.second) > 0) {
326 if (std::distance(range.first, range.second) > 0) {
365boost::shared_ptr<OptionDataParser>
373CBPoolRangeParser::POOL_REQUIRED = {
"pool" };
376CBPoolRangeParser::POOL_KEYWORDS = {
380std::pair<IOAddress, IOAddress>
385 if (address_family_ == AF_INET) {
387 parser.
parse(pools, pool, address_family_);
390 parser.
parse(pools, pool, address_family_);
392 if (pools->size() != 1) {
395 return (make_pair(pools->at(0)->getFirstAddress(),
396 pools->at(0)->getLastAddress()));
405boost::shared_ptr<OptionDataListParser>
407 auto parser = boost::make_shared<CBOptionDataListParser>(AF_INET6,
420boost::shared_ptr<PdPoolParser>
428CBPdPoolPrefixParser::PD_POOL_REQUIRED = {
"prefix",
"prefix-len" };
431CBPdPoolPrefixParser::PD_POOL_KEYWORDS = {
436std::pair<IOAddress, uint8_t>
441 string addr_str =
getString(pd_pool,
"prefix");
442 int64_t len =
getInteger(pd_pool,
"prefix-len");
444 if ((len <= 0) || (len > 128)) {
446 "'prefix-len' value must be in range of [1..128]");
451 }
catch (
const std::exception& ex) {
459 if (first_address != addr) {
461 <<
" is not the first address in prefix: " << first_address
462 <<
"/" <<
static_cast<uint32_t
>(len));
465 return (std::make_pair(addr,
static_cast<uint8_t
>(len)));
469CBSubnetIdParser::SUBNET_ID_REQUIRED = {
"id" };
472CBSubnetIdParser::SUBNET_ID_KEYWORDS = {
481 if ((
id <= 0) || (
id >
static_cast<int64_t
>(SUBNET_ID_MAX))) {
483 << SUBNET_ID_MAX <<
"] range");
489CBSubnetPrefixParser::SUBNET_PREFIX_REQUIRED = {
"subnet" };
492CBSubnetPrefixParser::SUBNET_PREFIX_KEYWORDS = {
500 string prefix =
getString(subnet,
"subnet");
501 if (prefix.empty()) {
504 if (address_family_ == AF_INET) {
512 if (
id && (id->intValue() != 0)) {
530 isc_throw(
BadValue,
"subnet 'id' is mandatory for the remote-subnet4-set command");
535 int64_t idv =
id->intValue();
536 int64_t idmax = SUBNET_ID_MAX;
537 if ((idv <= 0) || (idv > idmax)) {
539 << idmax <<
"] range");
549 if (!hosts->empty()) {
551 "is not supported by the remote-subnet4-set command");
557 if (
copy->contains(
"shared-network-name")) {
558 copy->remove(
"shared-network-name");
563 auto shared_network_name_element = subnet->get(
"shared-network-name");
564 if (shared_network_name_element) {
565 std::string shared_network_name;
569 shared_network_name = shared_network_name_element->stringValue();
571 }
else if ((shared_network_name_element->getType() !=
Element::null)) {
577 result->setSharedNetworkName(shared_network_name);
581 " be null or empty)");
587boost::shared_ptr<OptionDataListParser>
589 auto parser = boost::make_shared<CBOptionDataListParser>(AF_INET,
596boost::shared_ptr<dhcp::PoolsListParser>
615 isc_throw(
BadValue,
"subnet 'id' is mandatory for the remote-subnet6-set command");
620 int64_t idv =
id->intValue();
621 int64_t idmax = dhcp::SUBNET_ID_MAX;
622 if ((idv <= 0) || (idv > idmax)) {
624 << idmax <<
"] range");
634 if (!hosts->empty()) {
636 "is not supported by the remote-subnet6-set command");
642 if (
copy->contains(
"shared-network-name")) {
643 copy->remove(
"shared-network-name");
648 auto shared_network_name_element = subnet->get(
"shared-network-name");
649 if (shared_network_name_element) {
650 std::string shared_network_name;
654 shared_network_name = shared_network_name_element->stringValue();
656 }
else if ((shared_network_name_element->getType() !=
Element::null)) {
662 result->setSharedNetworkName(shared_network_name);
666 " be null or empty)");
672boost::shared_ptr<OptionDataListParser>
674 auto parser = boost::make_shared<CBOptionDataListParser>(AF_INET6,
681boost::shared_ptr<PoolsListParser>
688boost::shared_ptr<PdPoolsListParser>
701boost::shared_ptr<Subnet4ConfigParser>
713boost::shared_ptr<Subnet6ConfigParser>
720CBSharedNetworkNameParser::SHARED_NETWORK_REQUIRED = {
"name" };
723CBSharedNetworkNameParser::SHARED_NETWORK_KEYWORDS = {
731 string name =
getString(shared_network,
"name");
751 "'subnet4' must not be specified for the shared network. "
752 "Use 'remote-subnet4-set command to add a subnet to the "
765 if (net->getName().empty()) {
772boost::shared_ptr<OptionDataListParser>
774 auto parser = boost::make_shared<CBOptionDataListParser>(AF_INET,
781boost::shared_ptr<Subnets4ListConfigParser>
801 "'subnet6' must not be specified for the shared network. "
802 "Use 'remote-subnet6-set command to add a subnet to the "
815 if (net->getName().empty()) {
822boost::shared_ptr<OptionDataListParser>
824 auto parser = boost::make_shared<CBOptionDataListParser>(AF_INET6,
831boost::shared_ptr<Subnets6ListConfigParser>
843boost::shared_ptr<OptionDataListParser>
846 auto parser = boost::make_shared<CBOptionDataListParser>(address_family,
857 : family_(family), cfg_option_def_(cfg_option_def), backend_selector_(backend_selector),
858 server_selector_(server_selector) {
861std::pair<ClientClassDefPtr, std::string>
867 parser.
parse(class_dict, client_class, family_,
true,
false);
869 if (client_class->get(
"template-test")) {
873 std::string follow_class_name =
"";
874 if (client_class->contains(
"follow-class-name")) {
878 if (client_class->get(
"follow-class-name")->getType() !=
Element::null) {
880 follow_class_name =
getString(client_class,
"follow-class-name");
884 if (!class_dict->getClasses()->empty()) {
885 parsed_client_class = *(class_dict->getClasses()->begin());
887 return (std::make_pair(parsed_client_class, follow_class_name));
891CBClientClassNameParser::CLIENT_CLASS_REQUIRED = {
"name" };
894CBClientClassNameParser::CLIENT_CLASS_KEYWORDS = {
902 string name =
getString(client_class,
"name");
910ServerTagParser::SERVER_TAG_REQUIRED = {
"server-tag" };
913ServerTagParser::SERVER_TAG_KEYWORDS = {
921 string tag =
getString(server,
"server-tag");
926ServerConfigParser::SERVER_CONFIG_REQUIRED = {
"server-tag" };
929ServerConfigParser::SERVER_CONFIG_KEYWORDS = {
938 string tag =
getString(server,
"server-tag");
Parsers for a subset of an object specification, e.g.
static std::string typeToName(Element::types type)
Returns the name of the given type as a string.
A generic exception that is thrown if a parameter given to a method is considered invalid in that con...
This is a base class for exceptions thrown from the DNS library module.
A generic exception that is thrown if a parameter given to a method would refer to or modify out-of-r...
A generic exception that is thrown when an unexpected error condition occurs.
The IOAddress class represents an IP addresses (version agnostic).
bool isV6() const
Convenience function to check for an IPv6 address.
static const IOAddress & IPV6_ZERO_ADDRESS()
Returns an IPv6 zero address.
Overrides the default parser for DHCP client classes.
virtual boost::shared_ptr< OptionDataListParser > createOptionDataListParser(const uint16_t address_family, CfgOptionDefPtr cfg_option_def) const
Returns an instance of the CBOptionDataListParser.
db::BackendSelector & backend_selector_
Backend selector used to fetch option definitions during option data parsing.
CBClientClassDefParser(db::BackendSelector &backend_selector, db::ServerSelector &server_selector)
Constructor.
db::ServerSelector & server_selector_
Server selector used to fetch option definitions during option data parsing.
std::string parse(data::ConstElementPtr client_class)
Parses a client class name.
CBClientClassParser(uint16_t family, CfgOptionDefPtr cfg_option_def, db::BackendSelector &backend_selector, db::ServerSelector &server_selector)
Constructor.
std::pair< dhcp::ClientClassDefPtr, std::string > parse(data::ConstElementPtr client_class)
Parses a client class.
virtual boost::shared_ptr< OptionDataParser > createOptionDataParser() const
Returns an instance of the CBOptionDataListParser to be used in parsing options.
CBOptionDataListParser(const uint16_t address_family, CfgOptionDefPtr cfg_option_def, db::BackendSelector &backend_selector, db::ServerSelector &server_selector)
Constructor.
db::BackendSelector & backend_selector_
Backend selector used to fetch option definitions during option data parsing.
db::ServerSelector & server_selector_
Server selector used to fetch option definitions during option data parsing.
virtual dhcp::OptionDefinitionPtr findOptionDefinition(const std::string &option_space, const util::Optional< uint32_t > &option_code, const util::Optional< std::string > &option_name) const
Finds an option definition within an option space.
db::BackendSelector & backend_selector_
Backend selector to be used to fetch option definitions during option data parsing.
db::ServerSelector & server_selector_
Server selector to be used to fetch option definitions during option data parsing.
CBOptionDataParser(const uint16_t address_family, dhcp::CfgOptionDefPtr cfg_option_def, db::BackendSelector &backend_selector, db::ServerSelector &server_selector)
Constructor.
CBOptionDefDelete parse(data::ConstElementPtr option)
Parses an option into code + space pair.
dhcp::OptionDefinitionPtr parse(data::ConstElementPtr option_def)
Parses an option definition.
std::pair< uint16_t, std::string > parse(data::ConstElementPtr option, bool skip_keywords=false)
Parses an option into code + space pair.
CBOptionTuple parse(data::ConstElementPtr option)
Parses an option into code + space pair.
CBPdPoolParser(db::BackendSelector &backend_selector, db::ServerSelector &server_selector)
Constructor.
virtual boost::shared_ptr< OptionDataListParser > createOptionDataListParser() const
Returns an instance of the CBOptionDataListParser to be used in parsing the option-data structure.
db::ServerSelector & server_selector_
Server selector used to fetch option definitions during option data parsing.
db::BackendSelector & backend_selector_
Backend selector used to fetch option definitions during option data parsing.
std::pair< asiolink::IOAddress, uint8_t > parse(data::ConstElementPtr pd_pool)
Parses a prefix delegation pool prefix.
virtual boost::shared_ptr< PdPoolParser > createPdPoolConfigParser() const
Returns an instance of the CBPdPoolParser to be used in parsing the prefix delegation pools.
db::BackendSelector & backend_selector_
Backend selector used to fetch option definitions during option data parsing.
CBPdPoolsListParser(db::BackendSelector &backend_selector, db::ServerSelector &server_selector)
Constructor.
db::ServerSelector & server_selector_
Server selector used to fetch option definitions during option data parsing.
std::pair< asiolink::IOAddress, asiolink::IOAddress > parse(data::ConstElementPtr pool)
Parses an address pool range.
db::ServerSelector & server_selector_
Server selector used to fetch option definitions during option data parsing.
CBSharedNetwork4Parser(db::BackendSelector &backend_selector, db::ServerSelector &server_selector)
Constructor.
db::BackendSelector & backend_selector_
Backend selector used to fetch option definitions during option data parsing.
dhcp::SharedNetwork4Ptr parse(data::ConstElementPtr shared_network)
Parses a single IPv4 shared network configuration.
virtual boost::shared_ptr< OptionDataListParser > createOptionDataListParser() const
Returns an instance of the CBOptionDataListParser to be used in parsing the option-data structure.
virtual boost::shared_ptr< Subnets4ListConfigParser > createSubnetsListParser() const
Returns an instance of the CBSubnets4ListConfigParser to be used for parsing the subnets within the s...
db::BackendSelector & backend_selector_
Backend selector used to fetch option definitions during option data parsing.
virtual boost::shared_ptr< OptionDataListParser > createOptionDataListParser() const
Returns an instance of the CBOptionDataListParser to be used in parsing the option-data structure.
db::ServerSelector & server_selector_
Server selector used to fetch option definitions during option data parsing.
CBSharedNetwork6Parser(db::BackendSelector &backend_selector, db::ServerSelector &server_selector)
Constructor.
dhcp::SharedNetwork6Ptr parse(data::ConstElementPtr shared_network)
Parses a single IPv6 shared network configuration.
virtual boost::shared_ptr< Subnets6ListConfigParser > createSubnetsListParser() const
Returns an instance of the CBSubnets6ListConfigParser to be used for parsing the subnets within the s...
std::string parse(data::ConstElementPtr shared_network)
Parses a shared network name.
dhcp::Subnet4Ptr parse(data::ConstElementPtr subnet)
Parses a single subnet configuration.
db::BackendSelector & backend_selector_
Backend selector used for fetching option definitions during option data parsing.
virtual boost::shared_ptr< OptionDataListParser > createOptionDataListParser() const
Returns an instance of the CBOptionDataListParser to be used in parsing the option-data structure.
virtual boost::shared_ptr< dhcp::PoolsListParser > createPoolsListParser() const
Returns an instance of the CBPools4ListParser.
db::ServerSelector & server_selector_
Server selector used for fetching option definitions during option data parsing.
CBSubnet4ConfigParser(db::BackendSelector &backend_selector, db::ServerSelector &server_selector)
Constructor.
dhcp::Subnet6Ptr parse(data::ConstElementPtr subnet)
Parses a single subnet configuration.
virtual boost::shared_ptr< OptionDataListParser > createOptionDataListParser() const
Returns an instance of the CBOptionDataListParser to be used in parsing the option-data structure.
virtual boost::shared_ptr< dhcp::PoolsListParser > createPoolsListParser() const
Returns an instance of the CBPools6ListParser.
CBSubnet6ConfigParser(db::BackendSelector &backend_selector, db::ServerSelector &server_selector)
Constructor.
db::ServerSelector & server_selector_
Server selector used for fetching option definitions during option data parsing.
db::BackendSelector & backend_selector_
Backend selector used for fetching option definitions during option data parsing.
virtual boost::shared_ptr< dhcp::PdPoolsListParser > createPdPoolsListParser() const
Returns an instance of the CBPdPoolsListParser.
dhcp::SubnetID parse(data::ConstElementPtr subnet)
Parses a subnet id.
std::string parse(data::ConstElementPtr subnet)
Parses a subnet prefix.
db::BackendSelector & backend_selector_
Backend selector used to fetch option definitions during option data parsing.
CBSubnets4ListConfigParser(db::BackendSelector &backend_selector, db::ServerSelector &server_selector)
Constructor.
db::ServerSelector & server_selector_
Server selector used to fetch option definitions during option data parsing.
virtual boost::shared_ptr< Subnet4ConfigParser > createSubnetConfigParser() const
Returns an instance of the CBSubnet4ConfigParser to be used in parsing the subnets.
db::ServerSelector & server_selector_
Server selector used to fetch option definitions during option data parsing.
db::BackendSelector & backend_selector_
Backend selector used to fetch option definitions during option data parsing.
virtual boost::shared_ptr< Subnet6ConfigParser > createSubnetConfigParser() const
Returns an instance of the CBSubnet6ConfigParser to be used in parsing the subnets.
CBSubnets6ListConfigParser(db::BackendSelector &backend_selector, db::ServerSelector &server_selector)
Constructor.
std::string parse(data::ConstElementPtr global_parameter)
Parses global parameter name.
data::StampedValueCollection parse(const data::ConstElementPtr &global_parameter_data)
Parses global parameters information.
db::ServerPtr parse(data::ConstElementPtr server)
Parses a single server configuration.
data::ServerTag parse(data::ConstElementPtr server)
Parses server tag.
static void checkKeywords(const SimpleKeywords &keywords, isc::data::ConstElementPtr scope)
Checks acceptable keywords with their expected type.
static void checkRequired(const SimpleRequiredKeywords &required, isc::data::ConstElementPtr scope)
Checks that all required keywords are present.
static std::string getString(isc::data::ConstElementPtr scope, const std::string &name)
Returns a string parameter from a scope.
static int64_t getInteger(isc::data::ConstElementPtr scope, const std::string &name)
Returns an integer parameter from a scope.
static size_t setDefaults(isc::data::ElementPtr scope, const SimpleDefaults &default_values)
Sets the default values.
This class represents a named configuration parameter, e.g.
Server selector for associating objects in a database with specific servers.
static ServerPtr create(const data::ServerTag &tag, const std::string &description="")
Factory function to be used to create an instance of the Server object.
void parse(ClientClassDictionaryPtr &class_dictionary, isc::data::ConstElementPtr client_class_def, uint16_t family, bool append_error_position=true, bool check_dependencies=true)
Parses an entry that describes single client class definition.
Container for storing client class names.
static ConfigBackendDHCPv4Mgr & instance()
Returns a sole instance of the ConfigBackendDHCPv4Mgr.
static ConfigBackendDHCPv6Mgr & instance()
Returns a sole instance of the ConfigBackendDHCPv6Mgr.
static OptionDefinitionPtr getOptionDef(const std::string &space, const uint16_t code)
Return the first option definition matching a particular option code.
static OptionDefinitionPtr getVendorOptionDef(const Option::Universe u, const uint32_t vendor_id, const uint16_t code)
Returns vendor option definition for a given vendor-id and code.
static uint32_t optionSpaceToVendorId(const std::string &option_space)
Converts option space name to vendor id.
static OptionDefinitionPtr getRuntimeOptionDef(const std::string &space, const uint16_t code)
Returns runtime (non-standard) option definition by space and option code.
static OptionDefinitionPtr getLastResortOptionDef(const std::string &space, const uint16_t code)
Returns last resort option definition by space and option code.
CfgOptionDefPtr cfg_option_def_
Config option definitions.
OptionDataListParser(const uint16_t address_family, CfgOptionDefPtr cfg_option_def=CfgOptionDefPtr())
Constructor.
uint16_t address_family_
Address family: AF_INET or AF_INET6.
uint16_t address_family_
Address family: AF_INET or AF_INET6.
CfgOptionDefPtr cfg_option_def_
Config option definitions.
OptionDataParser(const uint16_t address_family, CfgOptionDefPtr cfg_option_def=CfgOptionDefPtr())
Constructor.
Parser for a single option definition.
OptionDefinitionPtr parse(isc::data::ConstElementPtr option_def)
Parses an entry that describes single option definition.
static bool validateName(const std::string &name)
Checks that the provided option space name is valid.
Universe
defines option universe DHCPv4 or DHCPv6
PdPoolParser()
Constructor.
Parser for a list of prefix delegation pools.
Parser for IPv4 pool definitions.
Parser for IPv6 pool definitions.
virtual void parse(PoolStoragePtr pools, isc::data::ConstElementPtr pool_structure, const uint16_t address_family, bool encapsulate_options=true)
parses the actual structure
SharedNetwork4Parser(bool check_iface=true)
Constructor.
SharedNetwork4Ptr parse(const data::ConstElementPtr &shared_network_data, bool encapsulate_options=true)
Parses shared configuration information for IPv4 shared network.
SharedNetwork6Parser(bool check_iface=true)
Constructor.
SharedNetwork6Ptr parse(const data::ConstElementPtr &shared_network_data, bool encapsulate_options=true)
Parses shared configuration information for IPv6 shared network.
static const isc::data::SimpleDefaults OPTION4_DEF_DEFAULTS
This table defines default values for option definitions in DHCPv4.
static const isc::data::SimpleDefaults OPTION6_DEF_DEFAULTS
This table defines default values for option definitions in DHCPv6.
Subnet4ConfigParser(bool check_iface=true)
Constructor.
Subnet4Ptr parse(data::ConstElementPtr subnet, bool encapsulate_options=true)
Parses a single IPv4 subnet configuration and adds to the Configuration Manager.
static std::pair< asiolink::IOAddress, uint8_t > parsePrefix(const std::string &prefix)
Converts subnet prefix to a pair of prefix/length pair.
Subnet6Ptr parse(data::ConstElementPtr subnet, bool encapsulate_options=true)
Parses a single IPv6 subnet configuration and adds to the Configuration Manager.
Subnet6ConfigParser(bool check_iface=true)
Constructor.
static std::pair< asiolink::IOAddress, uint8_t > parsePrefix(const std::string &prefix)
Converts subnet prefix to a pair of prefix/length pair.
Subnets4ListConfigParser(bool check_iface=true)
constructor
Subnets6ListConfigParser(bool check_iface=true)
constructor
A template representing an optional value.
void unspecified(bool unspecified)
Modifies the flag that indicates whether the value is specified or unspecified.
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
IOAddress firstAddrInPrefix(const IOAddress &prefix, uint8_t len)
This code is based on similar code from the Dibbler project.
std::tuple< uint16_t, std::string, ClientClassesPtr > CBOptionTuple
Defines a tuple for the three values that may be used as a key for an option.
std::tuple< uint16_t, std::string, bool > CBOptionDefDelete
Defines a tuple of values for deleting an option definition: the option code, option space,...
boost::shared_ptr< StampedValue > StampedValuePtr
Pointer to the stamped value.
std::vector< std::string > SimpleRequiredKeywords
This specifies all required keywords.
boost::multi_index_container< StampedValuePtr, boost::multi_index::indexed_by< boost::multi_index::hashed_non_unique< boost::multi_index::tag< StampedValueNameIndexTag >, boost::multi_index::const_mem_fun< StampedValue, std::string, &StampedValue::getName > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< StampedValueModificationTimeIndexTag >, boost::multi_index::const_mem_fun< BaseStampedElement, boost::posix_time::ptime, &BaseStampedElement::getModificationTime > > > > StampedValueCollection
Multi index container for StampedValue.
ElementPtr copy(ConstElementPtr from, unsigned level)
Copy the data up to a nesting level.
boost::shared_ptr< const Element > ConstElementPtr
boost::shared_ptr< Element > ElementPtr
std::map< std::string, isc::data::Element::types > SimpleKeywords
This specifies all accepted keywords with their types.
boost::shared_ptr< Server > ServerPtr
Shared pointer to the Server class.
boost::shared_ptr< Subnet4 > Subnet4Ptr
A pointer to a Subnet4 object.
std::vector< PoolPtr > PoolStorage
a collection of pools
boost::shared_ptr< CfgOptionDef > CfgOptionDefPtr
Non-const pointer.
boost::shared_ptr< Subnet6 > Subnet6Ptr
A pointer to a Subnet6 object.
boost::shared_ptr< ClientClasses > ClientClassesPtr
Smart pointer to ClientClasses object.
boost::shared_ptr< ClientClassDef > ClientClassDefPtr
a pointer to an ClientClassDef
boost::shared_ptr< OptionDefinition > OptionDefinitionPtr
Pointer to option definition object.
boost::shared_ptr< SharedNetwork6 > SharedNetwork6Ptr
Pointer to SharedNetwork6 object.
boost::shared_ptr< PoolStorage > PoolStoragePtr
boost::shared_ptr< ClientClassDictionary > ClientClassDictionaryPtr
Defines a pointer to a ClientClassDictionary.
std::pair< OptionDefContainerNameIndex::const_iterator, OptionDefContainerNameIndex::const_iterator > OptionDefContainerNameRange
Pair of iterators to represent the range of options definitions having the same option name.
uint32_t SubnetID
Defines unique IPv4 or IPv6 subnet identifier.
OptionDefContainer::nth_index< 2 >::type OptionDefContainerNameIndex
Type of the index #2 - option name.
std::pair< OptionDefContainerTypeIndex::const_iterator, OptionDefContainerTypeIndex::const_iterator > OptionDefContainerTypeRange
Pair of iterators to represent the range of options definitions having the same option type value.
boost::shared_ptr< SharedNetwork4 > SharedNetwork4Ptr
Pointer to SharedNetwork4 object.
OptionDefContainer::nth_index< 1 >::type OptionDefContainerTypeIndex
Type of the index #1 - option type.
boost::shared_ptr< OptionDefContainer > OptionDefContainerPtr
Pointer to an option definition container.
Defines the logger used by the top-level component of kea-lfc.
#define DHCP4_OPTION_SPACE
global std option spaces
#define DHCP6_OPTION_SPACE