Kea 2.7.6
|
Common configuration parser for shared networks and subnets. More...
#include <base_network_parser.h>
Public Types | |
typedef std::function< void(const isc::dhcp::ClientClass &)> | ClassAdderFunc |
Static Public Member Functions | |
static void | getAdditionalClassesElem (data::ConstElementPtr params, ClassAdderFunc adder_func) |
Fetches the element for either 'evaluate-additional-classes' or deprecated 'require-client-classes'. | |
static void | getClientClassesElem (data::ConstElementPtr params, ClassAdderFunc adder_func) |
Fetches the element for either 'client-classes' or deprecated 'client-class'. | |
Static Public Member Functions inherited from isc::data::SimpleParser | |
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 size_t | deriveParams (isc::data::ConstElementPtr parent, isc::data::ElementPtr child, const ParamsList ¶ms) |
Derives (inherits) parameters from parent scope to a child. | |
static isc::asiolink::IOAddress | getAddress (const ConstElementPtr &scope, const std::string &name) |
Returns a IOAddress parameter from a scope. | |
static bool | getBoolean (isc::data::ConstElementPtr scope, const std::string &name) |
Returns a boolean parameter from a scope. | |
static double | getDouble (const ConstElementPtr &scope, const std::string &name) |
Returns a floating point parameter from a scope. | |
static int64_t | getInteger (isc::data::ConstElementPtr scope, const std::string &name) |
Returns an integer parameter from a scope. | |
static int64_t | getInteger (isc::data::ConstElementPtr scope, const std::string &name, int64_t min, int64_t max) |
Returns an integer parameter from a scope and checks its range. | |
static const data::Element::Position & | getPosition (const std::string &name, const data::ConstElementPtr parent) |
Utility method that returns position of an element. | |
static std::string | getString (isc::data::ConstElementPtr scope, const std::string &name) |
Returns a string parameter from a scope. | |
static size_t | setDefaults (isc::data::ElementPtr scope, const SimpleDefaults &default_values) |
Sets the default values. | |
static size_t | setListDefaults (isc::data::ConstElementPtr list, const SimpleDefaults &default_values) |
Sets the default values for all entries in a list. | |
Protected Member Functions | |
void | parseAllocatorParams (const data::ConstElementPtr &network_data, NetworkPtr &network) |
Parses parameters pertaining to allocator selection. | |
void | parseCacheParams (const data::ConstElementPtr &network_data, NetworkPtr &network) |
Parses parameters related to lease cache settings. | |
void | parseCommon (const data::ConstElementPtr &network_data, NetworkPtr &network) |
Parses common parameters. | |
void | parseDdnsParams (const data::ConstElementPtr &network_data, NetworkPtr &network) |
Parses parameters pertaining to DDNS behavior. | |
void | parseOfferLft (const data::ConstElementPtr &network_data, Network4Ptr &network) |
Parses offer-lifetime parameter (v4 only) | |
void | parsePdAllocatorParams (const data::ConstElementPtr &network_data, Network6Ptr &network) |
Parses parameters pertaining to prefix delegation allocator selection. | |
void | parseTeePercents (const data::ConstElementPtr &network_data, NetworkPtr &network) |
Parses parameters related to "percent" timers settings. | |
Protected Member Functions inherited from isc::data::SimpleParser | |
template<typename target_type , target_type convert> | |
target_type | getAndConvert (isc::data::ConstElementPtr scope, const std::string &name, const std::string &type_name) |
Returns a converted value from a scope. | |
template<typename int_type > | |
int_type | getIntType (isc::data::ConstElementPtr scope, const std::string &name) |
Returns an integer value with range checking from a scope. | |
Additional Inherited Members | |
Public Member Functions inherited from isc::data::SimpleParser | |
uint16_t | getUint16 (isc::data::ConstElementPtr scope, const std::string &name) |
Returns a value converted to uint16_t. | |
uint32_t | getUint32 (isc::data::ConstElementPtr scope, const std::string &name) |
Returns a value converted to uint32_t. | |
uint8_t | getUint8 (ConstElementPtr scope, const std::string &name) |
Get an uint8_t value. | |
const isc::util::Triplet< uint32_t > | parseIntTriplet (const data::ConstElementPtr &scope, const std::string &name) |
Parses an integer triplet. | |
Common configuration parser for shared networks and subnets.
Definition at line 20 of file base_network_parser.h.
std::function<void(const isc::dhcp::ClientClass&)> isc::dhcp::BaseNetworkParser::ClassAdderFunc |
Definition at line 130 of file base_network_parser.h.
|
static |
Fetches the element for either 'evaluate-additional-classes' or deprecated 'require-client-classes'.
params | configuration element tree to search. |
adder_func | function to add class names to an object's additional class list. |
DhcpConfigError | if both entries are present. |
Definition at line 291 of file base_network_parser.cc.
References isc::dhcp::dhcpsrv_logger, isc::dhcp::DHCPSRV_REQUIRE_CLIENT_CLASSES_DEPRECATED, isc::util::Optional< T >::get(), isc_throw, LOG_WARN, and isc::data::Element::string.
Referenced by isc::dhcp::Subnet4ConfigParser::initSubnet(), isc::dhcp::Subnet6ConfigParser::initSubnet(), isc::dhcp::PdPoolParser::parse(), isc::dhcp::PoolParser::parse(), isc::dhcp::SharedNetwork4Parser::parse(), and isc::dhcp::SharedNetwork6Parser::parse().
|
static |
Fetches the element for either 'client-classes' or deprecated 'client-class'.
params | configuration element tree to search. |
adder_func | function to add class names to an object's client class list. |
DhcpConfigError | if both entries are present. |
Definition at line 321 of file base_network_parser.cc.
References isc::dhcp::DHCPSRV_CLIENT_CLASS_DEPRECATED, isc::dhcp::dhcpsrv_logger, isc_throw, LOG_WARN, and isc::data::Element::string.
Referenced by isc::dhcp::Subnet4ConfigParser::initSubnet(), isc::dhcp::Subnet6ConfigParser::initSubnet(), isc::dhcp::PdPoolParser::parse(), isc::dhcp::PoolParser::parse(), isc::dhcp::SharedNetwork4Parser::parse(), and isc::dhcp::SharedNetwork6Parser::parse().
|
protected |
Parses parameters pertaining to allocator selection.
The parsed parameters are:
network_data | Data element holding shared network configuration to be parsed. | |
[out] | network | Pointer to a network in which parsed data is to be stored. |
Definition at line 248 of file base_network_parser.cc.
References isc::data::SimpleParser::getString(), and isc_throw.
Referenced by isc::dhcp::SharedNetwork4Parser::parse(), isc::dhcp::SharedNetwork6Parser::parse(), isc::dhcp::Subnet4ConfigParser::parse(), and isc::dhcp::Subnet6ConfigParser::parse().
|
protected |
Parses parameters related to lease cache settings.
The parsed parameters are:
network_data | Data element holding network configuration to be parsed. | |
[out] | network | Pointer to a network in which parsed data is to be stored. |
DhcpConfigError | if configuration of these parameters is invalid. |
Definition at line 124 of file base_network_parser.cc.
References isc::data::SimpleParser::getDouble(), isc::data::SimpleParser::getInteger(), and isc_throw.
Referenced by isc::dhcp::Subnet4ConfigParser::initSubnet(), isc::dhcp::Subnet6ConfigParser::initSubnet(), isc::dhcp::SharedNetwork4Parser::parse(), and isc::dhcp::SharedNetwork6Parser::parse().
|
protected |
Parses common parameters.
The parsed parameters are:
network_data | Data element holding shared network configuration to be parsed. | |
[out] | network | Pointer to a network in which parsed data is to be stored. |
Definition at line 22 of file base_network_parser.cc.
References isc::dhcp::DHCPSRV_CFGMGR_RENEW_GTR_REBIND, isc::dhcp::dhcpsrv_logger, isc::data::SimpleParser::getBoolean(), isc::data::SimpleParser::getInteger(), isc_throw, LOG_WARN, and isc::data::SimpleParser::parseIntTriplet().
Referenced by isc::dhcp::Subnet4ConfigParser::initSubnet(), isc::dhcp::Subnet6ConfigParser::initSubnet(), isc::dhcp::SharedNetwork4Parser::parse(), and isc::dhcp::SharedNetwork6Parser::parse().
|
protected |
Parses parameters pertaining to DDNS behavior.
The parsed parameters are:
network_data | Data element holding shared network configuration to be parsed. | |
[out] | network | Pointer to a network in which parsed data is to be stored. |
Definition at line 141 of file base_network_parser.cc.
References isc::data::SimpleParser::getAndConvert(), isc::data::SimpleParser::getBoolean(), isc::data::SimpleParser::getDouble(), isc::data::SimpleParser::getInteger(), isc::data::SimpleParser::getString(), isc_throw, and isc::dhcp::D2ClientConfig::stringToReplaceClientNameMode().
Referenced by isc::dhcp::Subnet4ConfigParser::initSubnet(), isc::dhcp::Subnet6ConfigParser::initSubnet(), isc::dhcp::SharedNetwork4Parser::parse(), and isc::dhcp::SharedNetwork6Parser::parse().
|
protected |
Parses offer-lifetime parameter (v4 only)
network_data | Data element holding shared network configuration to be parsed. | |
[out] | network | Pointer to the v4 network in which parsed data is to be stored. |
DhcpConfigError | if the value is less than 0. |
Definition at line 276 of file base_network_parser.cc.
References isc::data::SimpleParser::getInteger(), isc::data::SimpleParser::getPosition(), and isc_throw.
Referenced by isc::dhcp::Subnet4ConfigParser::initSubnet(), and isc::dhcp::SharedNetwork4Parser::parse().
|
protected |
Parses parameters pertaining to prefix delegation allocator selection.
The parsed parameters are:
network_data | Data element holding shared network configuration to be parsed. | |
[out] | network | Pointer to a network in which parsed data is to be stored. |
Definition at line 262 of file base_network_parser.cc.
References isc::data::SimpleParser::getString(), and isc_throw.
Referenced by isc::dhcp::SharedNetwork6Parser::parse(), and isc::dhcp::Subnet6ConfigParser::parse().
|
protected |
Parses parameters related to "percent" timers settings.
The parsed parameters are:
network_data | Data element holding network configuration to be parsed. | |
[out] | network | Pointer to a network in which parsed data is to be stored. |
DhcpConfigError | if configuration of these parameters is invalid. |
Definition at line 81 of file base_network_parser.cc.
References isc::util::Optional< T >::get(), isc::data::SimpleParser::getBoolean(), isc::data::SimpleParser::getDouble(), isc_throw, and isc::util::Optional< T >::unspecified().
Referenced by isc::dhcp::Subnet4ConfigParser::initSubnet(), isc::dhcp::Subnet6ConfigParser::initSubnet(), isc::dhcp::SharedNetwork4Parser::parse(), and isc::dhcp::SharedNetwork6Parser::parse().