Kea 3.3.4
isc::cb::CBSubnet4ConfigParser Class Reference

Implements a parser for IPv4 subnets. More...

#include <cb_parsers.h>

Inheritance diagram for isc::cb::CBSubnet4ConfigParser:

Public Member Functions

 CBSubnet4ConfigParser (db::BackendSelector &backend_selector, db::ServerSelector &server_selector)
 Constructor.
dhcp::Subnet4Ptr parse (data::ConstElementPtr subnet)
 Parses a single subnet configuration.
Public Member Functions inherited from isc::dhcp::Subnet4ConfigParser
 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.
Public Member Functions inherited from isc::dhcp::SubnetConfigParser
 SubnetConfigParser (uint16_t family, bool check_iface=true)
 constructor
virtual ~SubnetConfigParser ()
 virtual destructor (does nothing)
Public Member Functions inherited from isc::dhcp::BaseNetworkParser
template<typename DdnsOwnerTypePtr>
void parseDdnsParameters (const data::ConstElementPtr &config, DdnsOwnerTypePtr owner)
 Parses parameters pertaining to DDNS behavior.
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.

Protected Member Functions

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.
Protected Member Functions inherited from isc::dhcp::Subnet4ConfigParser
void initSubnet (data::ConstElementPtr params, asiolink::IOAddress addr, uint8_t len)
 Instantiates the IPv4 Subnet based on a given IPv4 address and prefix length.
void validateResv (const Subnet4Ptr &subnet, ConstHostPtr host)
 Verifies the host reservation address is in the subnet range.
Protected Member Functions inherited from isc::dhcp::SubnetConfigParser
void createSubnet (isc::data::ConstElementPtr data)
 Create a new subnet using a data from child parsers.
SubnetPtr parse (isc::data::ConstElementPtr subnet, bool encapsulate_options)
 parses a subnet description and returns Subnet{4,6} structure
Protected Member Functions inherited from isc::dhcp::BaseNetworkParser
void parseAdaptiveLeaseTimeParam (const data::ConstElementPtr &network_data, NetworkPtr &network)
 Parses parameter related to adaptive lease time.
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.

Protected Attributes

db::BackendSelector & backend_selector_
 Backend selector used for fetching option definitions during option data parsing.
db::ServerSelector & server_selector_
 Server selector used for fetching option definitions during option data parsing.
Protected Attributes inherited from isc::dhcp::SubnetConfigParser
uint16_t address_family_
 Address family: AF_INET or AF_INET6.
bool check_iface_
 Check if the specified interface exists in the system.
PoolStoragePtr pools_
 Storage for pools belonging to this subnet.
isc::dhcp::Network::RelayInfoPtr relay_info_
 Pointer to relay information.
isc::dhcp::SubnetPtr subnet_
 Pointer to the created subnet object.

Additional Inherited Members

Public Types inherited from isc::dhcp::BaseNetworkParser
typedef std::function< void(const isc::dhcp::ClientClass &)> ClassAdderFunc
Static Public Member Functions inherited from isc::dhcp::BaseNetworkParser
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::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.
template<typename T>
static void rangeCheckedInteger (isc::data::ConstElementPtr scope, const std::string &name, T &output_value)
 Fetches a range-checked integer 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.

Detailed Description

Implements a parser for IPv4 subnets.

It rejects host reservations and uses CB specific parser for option data.

Definition at line 634 of file cb_parsers.h.

Constructor & Destructor Documentation

◆ CBSubnet4ConfigParser()

isc::cb::CBSubnet4ConfigParser::CBSubnet4ConfigParser ( db::BackendSelector & backend_selector,
db::ServerSelector & server_selector )

Constructor.

Call the parent class constructor with check_iface set to false.

Parameters
backend_selectorbackend selector for fetching option definitions during option data parsing.
server_selectorserver selector for fetching option definitions during option data parsing.

Definition at line 518 of file cb_parsers.cc.

References isc::dhcp::Subnet4ConfigParser::Subnet4ConfigParser(), backend_selector_, and server_selector_.

Here is the call graph for this function:

Member Function Documentation

◆ createOptionDataListParser()

boost::shared_ptr< OptionDataListParser > isc::cb::CBSubnet4ConfigParser::createOptionDataListParser ( ) const
protectedvirtual

Returns an instance of the CBOptionDataListParser to be used in parsing the option-data structure.

Returns
an instance of the CBOptionDataListParser.

Reimplemented from isc::dhcp::SubnetConfigParser.

Definition at line 588 of file cb_parsers.cc.

References backend_selector_, and server_selector_.

◆ createPoolsListParser()

boost::shared_ptr< dhcp::PoolsListParser > isc::cb::CBSubnet4ConfigParser::createPoolsListParser ( ) const
protectedvirtual

Returns an instance of the CBPools4ListParser.

Returns
an instance of the CBPools4ListParser.

Reimplemented from isc::dhcp::Subnet4ConfigParser.

Definition at line 597 of file cb_parsers.cc.

References backend_selector_, and server_selector_.

◆ parse()

Subnet4Ptr isc::cb::CBSubnet4ConfigParser::parse ( data::ConstElementPtr subnet)

Parses a single subnet configuration.

Specialization of Subnet4ConfigParser expecting subnet id, rejecting reservations and requiring shared-network-name being a string or null value.

Parameters
subneta subnet being configured.
Returns
a pointer to created Subnet4 object.
Exceptions
BadValueif the subnet has a reservations entry which is not a list or is not empty.

Definition at line 525 of file cb_parsers.cc.

References isc::data::copy(), Element::integer, isc_throw, Element::list, Element::null, isc::dhcp::Subnet4ConfigParser::parse(), and Element::string.

Here is the call graph for this function:

Member Data Documentation

◆ backend_selector_

db::BackendSelector& isc::cb::CBSubnet4ConfigParser::backend_selector_
protected

Backend selector used for fetching option definitions during option data parsing.

Definition at line 676 of file cb_parsers.h.

Referenced by CBSubnet4ConfigParser(), createOptionDataListParser(), and createPoolsListParser().

◆ server_selector_

db::ServerSelector& isc::cb::CBSubnet4ConfigParser::server_selector_
protected

Server selector used for fetching option definitions during option data parsing.

Definition at line 680 of file cb_parsers.h.

Referenced by CBSubnet4ConfigParser(), createOptionDataListParser(), and createPoolsListParser().


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