Kea 2.5.9
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:

Static Public Member Functions

static void moveReservationMode (CfgGlobalsPtr config)
 Moves deprecated reservation-mode parameter to new reservations flags.
 
static void moveReservationMode (isc::data::ElementPtr config)
 Moves deprecated reservation-mode parameter to new reservations flags.
 
- 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 Function Documentation

◆ moveReservationMode() [1/2]

void isc::dhcp::BaseNetworkParser::moveReservationMode ( CfgGlobalsPtr  config)
static

Moves deprecated reservation-mode parameter to new reservations flags.

Parameters
config[in/out] global parameters to alter.
Exceptions
DhcpConfigErroron error e.g. when both reservation-mode and a flag are specified.

Definition at line 56 of file base_network_parser.cc.

References isc::data::Element::create(), isc_throw, isc::dhcp::CfgGlobals::RESERVATION_MODE, isc::dhcp::CfgGlobals::RESERVATIONS_GLOBAL, isc::dhcp::CfgGlobals::RESERVATIONS_IN_SUBNET, and isc::dhcp::CfgGlobals::RESERVATIONS_OUT_OF_POOL.

+ Here is the call graph for this function:

◆ moveReservationMode() [2/2]

void isc::dhcp::BaseNetworkParser::moveReservationMode ( isc::data::ElementPtr  config)
static

Moves deprecated reservation-mode parameter to new reservations flags.

Parameters
config[in/out] configuration to alter.
Exceptions
DhcpConfigErroron error e.g. when both reservation-mode and a flag are specified.

Definition at line 21 of file base_network_parser.cc.

References isc::data::Element::create(), isc::data::SimpleParser::getPosition(), isc::data::SimpleParser::getString(), and isc_throw.

Referenced by isc::dhcp::Subnet4ConfigParser::initSubnet(), isc::dhcp::Subnet6ConfigParser::initSubnet(), isc::dhcp::SharedNetwork4Parser::parse(), isc::dhcp::SharedNetwork6Parser::parse(), isc::dhcp::processDhcp4Config(), and isc::dhcp::processDhcp6Config().

+ Here is the call graph for this function:

◆ 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 282 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 194 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 92 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 211 of file base_network_parser.cc.

References isc::data::SimpleParser::getAndConvert(), isc::data::SimpleParser::getBoolean(), isc::data::SimpleParser::getDouble(), 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 310 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 296 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 151 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: