Kea 2.7.6
isc::dhcp::BaseNetworkParser Class Reference

Common configuration parser for shared networks and subnets. More...

#include <base_network_parser.h>

+ Inheritance diagram for isc::dhcp::BaseNetworkParser:

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 &params)
 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::PositiongetPosition (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.
 

Detailed Description

Common configuration parser for shared networks and subnets.

Definition at line 20 of file base_network_parser.h.

Member Typedef Documentation

◆ ClassAdderFunc

Definition at line 130 of file base_network_parser.h.

Member Function Documentation

◆ getAdditionalClassesElem()

void isc::dhcp::BaseNetworkParser::getAdditionalClassesElem ( data::ConstElementPtr params,
ClassAdderFunc adder_func )
static

Fetches the element for either 'evaluate-additional-classes' or deprecated 'require-client-classes'.

Parameters
paramsconfiguration element tree to search.
adder_funcfunction to add class names to an object's additional class list.
Exceptions
DhcpConfigErrorif 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().

+ Here is the call graph for this function:

◆ getClientClassesElem()

void isc::dhcp::BaseNetworkParser::getClientClassesElem ( data::ConstElementPtr params,
ClassAdderFunc adder_func )
static

Fetches the element for either 'client-classes' or deprecated 'client-class'.

Parameters
paramsconfiguration element tree to search.
adder_funcfunction to add class names to an object's client class list.
Exceptions
DhcpConfigErrorif 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().

◆ parseAllocatorParams()

void isc::dhcp::BaseNetworkParser::parseAllocatorParams ( const data::ConstElementPtr & network_data,
NetworkPtr & network )
protected

Parses parameters pertaining to allocator selection.

The parsed parameters are:

  • allocator
Parameters
network_dataData element holding shared network configuration to be parsed.
[out]networkPointer 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().

+ Here is the call graph for this function:

◆ parseCacheParams()

void isc::dhcp::BaseNetworkParser::parseCacheParams ( const data::ConstElementPtr & network_data,
NetworkPtr & network )
protected

Parses parameters related to lease cache settings.

The parsed parameters are:

  • cache-threshold,
  • cache-max-age.
Parameters
network_dataData element holding network configuration to be parsed.
[out]networkPointer to a network in which parsed data is to be stored.
Exceptions
DhcpConfigErrorif 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().

+ Here is the call graph for this function:

◆ parseCommon()

void isc::dhcp::BaseNetworkParser::parseCommon ( const data::ConstElementPtr & network_data,
NetworkPtr & network )
protected

Parses common parameters.

The parsed parameters are:

  • renew-timer,
  • rebind-timer,
  • valid-lifetime,
  • store-extended-info
  • reservations-global
  • reservations-in-subnet
  • reservations-out-of-pool
Parameters
network_dataData element holding shared network configuration to be parsed.
[out]networkPointer 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().

+ Here is the call graph for this function:

◆ parseDdnsParams()

void isc::dhcp::BaseNetworkParser::parseDdnsParams ( const data::ConstElementPtr & network_data,
NetworkPtr & network )
protected

Parses parameters pertaining to DDNS behavior.

The parsed parameters are:

  • ddns-send-updates
  • ddns-override-no-update
  • ddns-override-client-update
  • ddns-replace-client-name
  • ddns-generated-prefix
  • ddns-qualifying-suffix
  • ddns-use-conflict-resolution (retained for backward compatibility)
  • ddns-update-on-renew
  • ddns-ttl-percent
  • ddns-conflict-resolution-mode
Parameters
network_dataData element holding shared network configuration to be parsed.
[out]networkPointer 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().

+ Here is the call graph for this function:

◆ parseOfferLft()

void isc::dhcp::BaseNetworkParser::parseOfferLft ( const data::ConstElementPtr & network_data,
Network4Ptr & network )
protected

Parses offer-lifetime parameter (v4 only)

Parameters
network_dataData element holding shared network configuration to be parsed.
[out]networkPointer to the v4 network in which parsed data is to be stored.
Exceptions
DhcpConfigErrorif 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().

+ Here is the call graph for this function:

◆ parsePdAllocatorParams()

void isc::dhcp::BaseNetworkParser::parsePdAllocatorParams ( const data::ConstElementPtr & network_data,
Network6Ptr & network )
protected

Parses parameters pertaining to prefix delegation allocator selection.

The parsed parameters are:

  • pd-allocator
Parameters
network_dataData element holding shared network configuration to be parsed.
[out]networkPointer 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().

+ Here is the call graph for this function:

◆ parseTeePercents()

void isc::dhcp::BaseNetworkParser::parseTeePercents ( const data::ConstElementPtr & network_data,
NetworkPtr & network )
protected

Parses parameters related to "percent" timers settings.

The parsed parameters are:

  • calculate-tee-times,
  • t1-percent,
  • t2-percent.
Parameters
network_dataData element holding network configuration to be parsed.
[out]networkPointer to a network in which parsed data is to be stored.
Exceptions
DhcpConfigErrorif 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().

+ Here is the call graph for this function:

The documentation for this class was generated from the following files: