Kea  1.5.0
dhcp_parsers.h
Go to the documentation of this file.
1 // Copyright (C) 2013-2018 Internet Systems Consortium, Inc. ("ISC")
2 //
3 // This Source Code Form is subject to the terms of the Mozilla Public
4 // License, v. 2.0. If a copy of the MPL was not distributed with this
5 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 
7 #ifndef DHCP_PARSERS_H
8 #define DHCP_PARSERS_H
9 
10 #include <asiolink/io_address.h>
11 #include <cc/data.h>
12 #include <dhcp/option_definition.h>
14 #include <dhcpsrv/d2_client_cfg.h>
15 #include <dhcpsrv/cfg_iface.h>
16 #include <dhcpsrv/cfg_option.h>
17 #include <dhcpsrv/network.h>
18 #include <dhcpsrv/subnet.h>
19 #include <dhcpsrv/cfg_option_def.h>
20 #include <dhcpsrv/cfg_mac_source.h>
21 #include <dhcpsrv/srv_config.h>
22 #include <cc/simple_parser.h>
23 #include <exceptions/exceptions.h>
24 #include <util/optional_value.h>
25 
26 #include <boost/shared_ptr.hpp>
27 
28 #include <stdint.h>
29 #include <string>
30 #include <vector>
31 
32 namespace isc {
33 namespace dhcp {
34 
37 typedef OptionSpaceContainer<OptionContainer, OptionDescriptor,
38  std::string> OptionStorage;
40 typedef boost::shared_ptr<OptionStorage> OptionStoragePtr;
41 
53 template<typename ValueType>
54 class ValueStorage {
55 public:
67  void setParam(const std::string& name, const ValueType& value,
68  const data::Element::Position& position) {
69  values_[name] = value;
70  positions_[name] = position;
71  }
72 
81  ValueType getParam(const std::string& name) const {
82  typename std::map<std::string, ValueType>::const_iterator param
83  = values_.find(name);
84 
85  if (param == values_.end()) {
86  isc_throw(DhcpConfigError, "Missing parameter '"
87  << name << "'");
88  }
89 
90  return (param->second);
91  }
92 
107  getPosition(const std::string& name, const data::ConstElementPtr parent =
108  data::ConstElementPtr()) const {
109  typename std::map<std::string, data::Element::Position>::const_iterator
110  pos = positions_.find(name);
111  if (pos == positions_.end()) {
112  return (parent ? parent->getPosition() :
114  }
115 
116  return (pos->second);
117  }
118 
129  ValueType getOptionalParam(const std::string& name,
130  const ValueType& default_value) const {
131  typename std::map<std::string, ValueType>::const_iterator param
132  = values_.find(name);
133 
134  if (param == values_.end()) {
135  return (default_value);
136  }
137 
138  return (param->second);
139  }
140 
147  void delParam(const std::string& name) {
148  values_.erase(name);
149  positions_.erase(name);
150  }
151 
154  void clear() {
155  values_.clear();
156  positions_.clear();
157  }
158 
159 private:
161  std::map<std::string, ValueType> values_;
162 
168  std::map<std::string, data::Element::Position> positions_;
169 
170 };
171 
173 typedef std::pair<std::string, isc::data::ConstElementPtr> ConfigPair;
174 
177 typedef boost::shared_ptr<Uint32Storage> Uint32StoragePtr;
178 
181 typedef boost::shared_ptr<StringStorage> StringStoragePtr;
182 
185 typedef boost::shared_ptr<BooleanStorage> BooleanStoragePtr;
186 
194 public:
202  void parse(CfgMACSource& mac_sources, isc::data::ConstElementPtr value);
203 };
204 
210 public:
220  void parse(SrvConfig& srv_cfg, isc::data::ConstElementPtr value);
221 };
222 
223 typedef std::pair<isc::dhcp::OptionDefinitionPtr, std::string> OptionDefinitionTuple;
224 
229 public:
237  parse(isc::data::ConstElementPtr option_def);
238 };
239 
247 public:
257 };
258 
263 typedef std::vector<PoolPtr> PoolStorage;
264 typedef boost::shared_ptr<PoolStorage> PoolStoragePtr;
265 
274 public:
275 
277  virtual ~PoolParser() {
278  }
279 
289  virtual void parse(PoolStoragePtr pools,
290  isc::data::ConstElementPtr pool_structure,
291  const uint16_t address_family);
292 
293 protected:
300  virtual PoolPtr poolMaker(isc::asiolink::IOAddress &addr, uint32_t len,
301  int32_t ptype = 0) = 0;
302 
311  int32_t ptype = 0) = 0;
312 };
313 
322 class Pool4Parser : public PoolParser {
323 protected:
331  PoolPtr poolMaker (asiolink::IOAddress &addr, uint32_t len,
332  int32_t ignored);
333 
342  int32_t ignored);
343 };
344 
351 public:
352 
354  virtual ~PoolsListParser() {
355  }
356 
364  virtual void parse(PoolStoragePtr pools,
365  isc::data::ConstElementPtr pools_list) = 0;
366 };
367 
370 public:
371 
379  void parse(PoolStoragePtr pools, data::ConstElementPtr pools_list);
380 };
381 
390 public:
391 
394  explicit RelayInfoParser(const isc::dhcp::Option::Universe& family);
395 
410  void parse(const isc::dhcp::Network::RelayInfoPtr& relay_info,
411  isc::data::ConstElementPtr relay_elem);
412 
423  void addAddress(const std::string& name, const std::string& address_str,
424  isc::data::ConstElementPtr relay_elem,
425  const isc::dhcp::Network::RelayInfoPtr& relay_info);
426 private:
427 
429  Option::Universe family_;
430 };
431 
452 
454 public:
455 
459  explicit SubnetConfigParser(uint16_t family);
460 
462  virtual ~SubnetConfigParser() { }
463 
464 protected:
475 
483  isc::asiolink::IOAddress addr, uint8_t len) = 0;
484 
495  static Network::HRMode hrModeFromText(const std::string& txt);
496 
497 private:
498 
504  void createSubnet(isc::data::ConstElementPtr data);
505 
506 protected:
507 
510 
513 
515  uint16_t address_family_;
516 
519 
522 };
523 
531 public:
536 
543 
544 protected:
545 
552  void initSubnet(data::ConstElementPtr params,
553  asiolink::IOAddress addr, uint8_t len);
554 };
555 
562 public:
563 
573  size_t parse(SrvConfigPtr cfg, data::ConstElementPtr subnets_list);
574 
580  size_t parse(Subnet4Collection& subnets,
581  data::ConstElementPtr subnets_list);
582 };
583 
592 class Pool6Parser : public PoolParser {
593 protected:
602  PoolPtr poolMaker (asiolink::IOAddress &addr, uint32_t len, int32_t ptype);
603 
613  int32_t ptype);
614 };
615 
618 public:
619 
627  void parse(PoolStoragePtr pools, data::ConstElementPtr pools_list);
628 };
629 
648 public:
649 
652  PdPoolParser();
653 
664  void parse(PoolStoragePtr pools, data::ConstElementPtr pd_pool_);
665 
666 private:
667 
669  isc::dhcp::Pool6Ptr pool_;
670 
672  CfgOptionPtr options_;
673 
677  isc::data::ConstElementPtr user_context_;
678 
682  isc::data::ConstElementPtr client_class_;
683 };
684 
691 public:
692 
703  void parse(PoolStoragePtr pools, data::ConstElementPtr pd_pool_list);
704 };
705 
713 public:
714 
719 
726 
727 protected:
735  virtual void duplicate_option_warning(uint32_t code,
736  asiolink::IOAddress& addr);
737 
745  isc::asiolink::IOAddress addr, uint8_t len);
746 };
747 
748 
755 public:
756 
766  size_t parse(SrvConfigPtr cfg, data::ConstElementPtr subnets_list);
767 
773  size_t parse(Subnet6Collection& subnets,
774  data::ConstElementPtr subnets_list);
775 
776 };
777 
784 public:
785 
808 
811 
818  // to ElementPtr)
820  static size_t setAllDefaults(isc::data::ConstElementPtr d2_config);
821 
822 private:
823 
832  getProtocol(isc::data::ConstElementPtr scope, const std::string& name);
833 
842  getFormat(isc::data::ConstElementPtr scope, const std::string& name);
843 
852  getMode(isc::data::ConstElementPtr scope, const std::string& name);
853 };
854 
855 }; // end of isc::dhcp namespace
856 }; // end of isc namespace
857 
858 #endif // DHCP_PARSERS_H
isc::dhcp::RelayInfoParser::parse
void parse(const isc::dhcp::Network::RelayInfoPtr &relay_info, isc::data::ConstElementPtr relay_elem)
parses the actual relay parameters
Definition: dhcp_parsers.cc:232
isc::dhcp::OptionDefListParser::parse
void parse(CfgOptionDefPtr cfg, isc::data::ConstElementPtr def_list)
Parses a list of option definitions, create them and store in cfg.
Definition: dhcp_parsers.cc:199
isc::dhcp::Subnet6Collection
boost::multi_index_container< Subnet6Ptr, boost::multi_index::indexed_by< boost::multi_index::random_access< boost::multi_index::tag< SubnetRandomAccessIndexTag > >, boost::multi_index::ordered_unique< boost::multi_index::tag< SubnetSubnetIdIndexTag >, boost::multi_index::const_mem_fun< Subnet, SubnetID, &Subnet::getID > >, boost::multi_index::ordered_unique< boost::multi_index::tag< SubnetPrefixIndexTag >, boost::multi_index::const_mem_fun< Subnet, std::string, &Subnet::toText > > >> Subnet6Collection
A collection of Subnet6 objects.
Definition: subnet.h:843
isc::dhcp::CfgOptionDefPtr
boost::shared_ptr< CfgOptionDef > CfgOptionDefPtr
Non-const pointer.
Definition: cfg_option_def.h:139
optional_value.h
isc::dhcp::DhcpConfigError
To be removed. Please use ConfigError instead.
Definition: dhcp_config_error.h:58
isc::dhcp::PdPoolParser
Parser for IPv6 prefix delegation definitions.
Definition: dhcp_parsers.h:647
isc::dhcp::Subnet6ConfigParser
This class parses a single IPv6 subnet.
Definition: dhcp_parsers.h:712
isc::dhcp::SubnetConfigParser::hrModeFromText
static Network::HRMode hrModeFromText(const std::string &txt)
Attempts to convert text representation to HRMode enum.
Definition: dhcp_parsers.cc:519
isc::dhcp::SubnetPtr
boost::shared_ptr< Subnet > SubnetPtr
A generic pointer to either Subnet4 or Subnet6 object.
Definition: subnet.h:455
isc::dhcp::SubnetConfigParser::initSubnet
virtual void initSubnet(isc::data::ConstElementPtr params, isc::asiolink::IOAddress addr, uint8_t len)=0
Instantiates the subnet based on a given IP prefix and prefix length.
isc::dhcp::RelayInfoParser::addAddress
void addAddress(const std::string &name, const std::string &address_str, isc::data::ConstElementPtr relay_elem, const isc::dhcp::Network::RelayInfoPtr &relay_info)
Attempts to add an IP address to list of relay addresses.
Definition: dhcp_parsers.cc:275
isc::dhcp::Subnet6ConfigParser::duplicate_option_warning
virtual void duplicate_option_warning(uint32_t code, asiolink::IOAddress &addr)
Issues a DHCP6 server specific warning regarding duplicate subnet options.
Definition: dhcp_parsers.cc:1097
isc::dhcp::OptionDefParser::parse
OptionDefinitionTuple parse(isc::data::ConstElementPtr option_def)
Parses an entry that describes single option definition.
Definition: dhcp_parsers.cc:112
isc::dhcp::Subnets4ListConfigParser
this class parses list of DHCP4 subnets
Definition: dhcp_parsers.h:561
srv_config.h
isc::dhcp::Pools6ListParser::parse
void parse(PoolStoragePtr pools, data::ConstElementPtr pools_list)
parses the actual structure
Definition: dhcp_parsers.cc:934
io_address.h
isc::dhcp::ValueStorage::getPosition
const data::Element::Position & getPosition(const std::string &name, const data::ConstElementPtr parent=data::ConstElementPtr()) const
Returns position of the data element in the configuration string.
Definition: dhcp_parsers.h:107
isc::dhcp::SubnetConfigParser::pools_
PoolStoragePtr pools_
Storage for pools belonging to this subnet.
Definition: dhcp_parsers.h:509
isc::dhcp::Pool4Parser
Parser for IPv4 pool definitions.
Definition: dhcp_parsers.h:322
isc::dhcp::PoolsListParser::~PoolsListParser
virtual ~PoolsListParser()
destructor.
Definition: dhcp_parsers.h:354
d2_client_cfg.h
isc::dhcp::PoolParser
parser for a single pool definition
Definition: dhcp_parsers.h:273
isc::dhcp::BooleanStoragePtr
boost::shared_ptr< BooleanStorage > BooleanStoragePtr
Definition: dhcp_parsers.h:185
isc::data::SimpleDefaults
std::vector< SimpleDefault > SimpleDefaults
This specifies all default values in a given scope (e.g. a subnet)
Definition: lib/cc/simple_parser.h:31
isc::dhcp::SubnetConfigParser::relay_info_
isc::dhcp::Network::RelayInfoPtr relay_info_
Pointer to relay information.
Definition: dhcp_parsers.h:518
isc::dhcp::Network::RelayInfoPtr
boost::shared_ptr< Network::RelayInfo > RelayInfoPtr
Pointer to the RelayInfo structure.
Definition: network.h:116
isc::dhcp::Uint32StoragePtr
boost::shared_ptr< Uint32Storage > Uint32StoragePtr
Definition: dhcp_parsers.h:177
isc::dhcp::SubnetConfigParser::address_family_
uint16_t address_family_
Address family: AF_INET or AF_INET6.
Definition: dhcp_parsers.h:515
isc::dhcp::StringStorage
ValueStorage< std::string > StringStorage
a collection of elements that store string values
Definition: dhcp_parsers.h:180
isc::dhcp::Pool6Parser::poolMaker
PoolPtr poolMaker(asiolink::IOAddress &addr, uint32_t len, int32_t ptype)
Creates a Pool6 object given a IPv6 prefix and the prefix length.
Definition: dhcp_parsers.cc:917
isc::dhcp::PdPoolsListParser
Parser for a list of prefix delegation pools.
Definition: dhcp_parsers.h:690
isc::dhcp::CfgMACSource
Wrapper class that holds MAC/hardware address sources.
Definition: cfg_mac_source.h:25
isc::dhcp::Pools4ListParser::parse
void parse(PoolStoragePtr pools, data::ConstElementPtr pools_list)
parses the actual structure
Definition: dhcp_parsers.cc:475
isc::dhcp::SubnetConfigParser::subnet_
isc::dhcp::SubnetPtr subnet_
Pointer to the created subnet object.
Definition: dhcp_parsers.h:512
isc::dhcp::PdPoolParser::PdPoolParser
PdPoolParser()
Constructor.
Definition: dhcp_parsers.cc:943
isc
Defines the logger used by the top-level component of kea-dhcp-ddns.
Definition: agent_parser.cc:144
isc::dhcp::D2ClientConfigParser::parse
D2ClientConfigPtr parse(isc::data::ConstElementPtr d2_client_cfg)
Parses a given dhcp-ddns element into D2ClientConfig.
Definition: dhcp_parsers.cc:1291
isc::dhcp::D2ClientConfig::ReplaceClientNameMode
ReplaceClientNameMode
Defines the client name replacement modes.
Definition: d2_client_cfg.h:72
isc::dhcp::Pool6Ptr
boost::shared_ptr< Pool6 > Pool6Ptr
a pointer an IPv6 Pool
Definition: pool.h:402
isc::dhcp::PoolParser::parse
virtual void parse(PoolStoragePtr pools, isc::data::ConstElementPtr pool_structure, const uint16_t address_family)
parses the actual structure
Definition: dhcp_parsers.cc:312
isc::dhcp::Subnet4ConfigParser::parse
Subnet4Ptr parse(data::ConstElementPtr subnet)
Parses a single IPv4 subnet configuration and adds to the Configuration Manager.
Definition: dhcp_parsers.cc:624
isc_throw
#define isc_throw(type, stream)
A shortcut macro to insert known values into exception arguments.
Definition: exceptions/exceptions.h:192
isc::dhcp::ValueStorage::delParam
void delParam(const std::string &name)
Remove the parameter from the store.
Definition: dhcp_parsers.h:147
cfg_iface.h
isc::data::Element::Position
Represents the position of the data element within a configuration string.
Definition: data.h:88
isc::dhcp::Subnets4ListConfigParser::parse
size_t parse(SrvConfigPtr cfg, data::ConstElementPtr subnets_list)
parses contents of the list
Definition: dhcp_parsers.cc:869
cfg_mac_source.h
isc::dhcp::PoolStoragePtr
boost::shared_ptr< PoolStorage > PoolStoragePtr
Definition: dhcp_parsers.h:264
isc::dhcp::PoolStorage
std::vector< PoolPtr > PoolStorage
a collection of pools
Definition: dhcp_parsers.h:263
isc::dhcp::Subnet4ConfigParser
This class parses a single IPv4 subnet.
Definition: dhcp_parsers.h:530
isc::dhcp::OptionContainer
boost::multi_index_container< OptionDescriptor, boost::multi_index::indexed_by< boost::multi_index::sequenced<>, boost::multi_index::hashed_non_unique< KeyFromKeyExtractor< boost::multi_index::const_mem_fun< Option, uint16_t, &Option::getType >, boost::multi_index::member< OptionDescriptor, OptionPtr, &OptionDescriptor::option_ > > >, boost::multi_index::hashed_non_unique< boost::multi_index::member< OptionDescriptor, bool, &OptionDescriptor::persistent_ > > >> OptionContainer
Multi index container for DHCP option descriptors.
Definition: cfg_option.h:203
isc::dhcp::Uint32Storage
ValueStorage< uint32_t > Uint32Storage
a collection of elements that store uint32 values
Definition: dhcp_parsers.h:176
subnet.h
isc::data::SimpleParser
A simple parser.
Definition: lib/cc/simple_parser.h:60
isc::dhcp::PoolParser::~PoolParser
virtual ~PoolParser()
destructor.
Definition: dhcp_parsers.h:277
isc::data::Element::ZERO_POSITION
static const Position & ZERO_POSITION()
Returns Position object with line_ and pos_ set to 0, and with an empty file name.
Definition: data.h:120
cfg_option.h
isc::dhcp::Subnet4Ptr
boost::shared_ptr< Subnet4 > Subnet4Ptr
A pointer to a Subnet4 object.
Definition: subnet.h:464
isc::dhcp::PdPoolParser::parse
void parse(PoolStoragePtr pools, data::ConstElementPtr pd_pool_)
Builds a prefix delegation pool from the given configuration.
Definition: dhcp_parsers.cc:947
isc::dhcp::OptionStorage
OptionSpaceContainer< OptionContainer, OptionDescriptor, std::string > OptionStorage
Collection of containers holding option spaces.
Definition: dhcp_parsers.h:38
isc::dhcp::PoolPtr
boost::shared_ptr< Pool > PoolPtr
a pointer to either IPv4 or IPv6 Pool
Definition: pool.h:405
isc::dhcp::Subnet6ConfigParser::parse
Subnet6Ptr parse(data::ConstElementPtr subnet)
Parses a single IPv6 subnet configuration and adds to the Configuration Manager.
Definition: dhcp_parsers.cc:1047
isc::dhcp::OptionDefinitionTuple
std::pair< isc::dhcp::OptionDefinitionPtr, std::string > OptionDefinitionTuple
Definition: dhcp_parsers.h:223
isc::dhcp::ValueStorage::getParam
ValueType getParam(const std::string &name) const
Returns the data value for the given parameter.
Definition: dhcp_parsers.h:81
option_definition.h
isc::dhcp::D2ClientConfigPtr
boost::shared_ptr< D2ClientConfig > D2ClientConfigPtr
Defines a pointer for D2ClientConfig instances.
Definition: d2_client_cfg.h:323
isc::dhcp::Subnet6ConfigParser::initSubnet
void initSubnet(isc::data::ConstElementPtr params, isc::asiolink::IOAddress addr, uint8_t len)
Instantiates the IPv6 Subnet based on a given IPv6 address and prefix length.
Definition: dhcp_parsers.cc:1104
isc::dhcp::Subnet4ConfigParser::initSubnet
void initSubnet(data::ConstElementPtr params, asiolink::IOAddress addr, uint8_t len)
Instantiates the IPv4 Subnet based on a given IPv4 address and prefix length.
Definition: dhcp_parsers.cc:668
isc::dhcp::OptionDefListParser
Parser for a list of option definitions.
Definition: dhcp_parsers.h:246
isc::dhcp::RelayInfoParser::RelayInfoParser
RelayInfoParser(const isc::dhcp::Option::Universe &family)
constructor
Definition: dhcp_parsers.cc:227
isc::dhcp::ValueStorage::setParam
void setParam(const std::string &name, const ValueType &value, const data::Element::Position &position)
Stores the the parameter, its value and the position in the store.
Definition: dhcp_parsers.h:67
isc::dhcp::PoolsListParser
Parser for a list of pools.
Definition: dhcp_parsers.h:350
isc::dhcp::Subnets6ListConfigParser
this class parses a list of DHCP6 subnets
Definition: dhcp_parsers.h:754
isc::dhcp::Subnet6ConfigParser::Subnet6ConfigParser
Subnet6ConfigParser()
Constructor.
Definition: dhcp_parsers.cc:1042
isc::dhcp::D2ClientConfigParser::setAllDefaults
static size_t setAllDefaults(isc::data::ConstElementPtr d2_config)
Sets all defaults for D2 client configuration.
Definition: dhcp_parsers.cc:1450
isc::dhcp::PoolParser::poolMaker
virtual PoolPtr poolMaker(isc::asiolink::IOAddress &min, isc::asiolink::IOAddress &max, int32_t ptype=0)=0
Creates a Pool object given starting and ending IP addresses.
isc::dhcp::ConfigPair
std::pair< std::string, isc::data::ConstElementPtr > ConfigPair
Combination of parameter name and configuration contents.
Definition: dhcp_parsers.h:173
isc::dhcp::Subnet6Ptr
boost::shared_ptr< Subnet6 > Subnet6Ptr
A pointer to a Subnet6 object.
Definition: subnet.h:629
isc::dhcp::PdPoolsListParser::parse
void parse(PoolStoragePtr pools, data::ConstElementPtr pd_pool_list)
Parse configuration entries.
Definition: dhcp_parsers.cc:1032
isc::dhcp::PoolParser::poolMaker
virtual PoolPtr poolMaker(isc::asiolink::IOAddress &addr, uint32_t len, int32_t ptype=0)=0
Creates a Pool object given a IPv4 prefix and the prefix length.
cfg_option_def.h
isc::dhcp::Pool6Parser
Parser for IPv6 pool definitions.
Definition: dhcp_parsers.h:592
isc::dhcp::Network::HRMode
HRMode
Specifies allowed host reservation mode.
Definition: network.h:91
data.h
isc::dhcp::ValueStorage::clear
void clear()
Deletes all of the entries from the store.
Definition: dhcp_parsers.h:154
exceptions.h
isc::dhcp::ValueStorage::getOptionalParam
ValueType getOptionalParam(const std::string &name, const ValueType &default_value) const
Returns the data value for an optional parameter.
Definition: dhcp_parsers.h:129
network.h
isc::dhcp::OptionStoragePtr
boost::shared_ptr< OptionStorage > OptionStoragePtr
Shared pointer to option storage.
Definition: dhcp_parsers.h:40
isc::dhcp::Subnet4ConfigParser::Subnet4ConfigParser
Subnet4ConfigParser()
Constructor.
Definition: dhcp_parsers.cc:619
isc::dhcp::Pools6ListParser
Specialization of the pool list parser for DHCPv6.
Definition: dhcp_parsers.h:617
isc::dhcp::ControlSocketParser::parse
void parse(SrvConfig &srv_cfg, isc::data::ConstElementPtr value)
"Parses" control-socket structure
Definition: dhcp_parsers.cc:69
isc::dhcp::SubnetConfigParser::parse
SubnetPtr parse(isc::data::ConstElementPtr subnet)
parses a subnet description and returns Subnet{4,6} structure
Definition: dhcp_parsers.cc:492
isc::dhcp::D2ClientConfigParser
Parser for D2ClientConfig.
Definition: dhcp_parsers.h:783
isc::dhcp::MACSourcesListConfigParser
parser for MAC/hardware acquisition sources
Definition: dhcp_parsers.h:193
isc::dhcp::CfgOptionPtr
boost::shared_ptr< CfgOption > CfgOptionPtr
Non-const pointer.
Definition: cfg_option.h:497
isc::dhcp::Option::Universe
Universe
defines option universe DHCPv4 or DHCPv6
Definition: option.h:67
isc::dhcp::SrvConfig
Specifies current DHCP configuration.
Definition: srv_config.h:44
isc::dhcp::Pool4Parser::poolMaker
PoolPtr poolMaker(asiolink::IOAddress &addr, uint32_t len, int32_t ignored)
Creates a Pool4 object given a IPv4 prefix and the prefix length.
Definition: dhcp_parsers.cc:463
isc::data::ConstElementPtr
boost::shared_ptr< const Element > ConstElementPtr
Definition: data.h:23
isc::dhcp::SubnetConfigParser
this class parses a single subnet
Definition: dhcp_parsers.h:453
isc::dhcp::OptionDefParser
Parser for a single option definition.
Definition: dhcp_parsers.h:228
isc::dhcp::BooleanStorage
ValueStorage< bool > BooleanStorage
Storage for parsed boolean values.
Definition: dhcp_parsers.h:184
isc::dhcp::ControlSocketParser
Parser for the control-socket structure.
Definition: dhcp_parsers.h:209
isc::dhcp::StringStoragePtr
boost::shared_ptr< StringStorage > StringStoragePtr
Definition: dhcp_parsers.h:181
isc::dhcp::D2ClientConfigParser::D2_CLIENT_CONFIG_DEFAULTS
static const isc::data::SimpleDefaults D2_CLIENT_CONFIG_DEFAULTS
Defaults for the D2 client configuration.
Definition: dhcp_parsers.h:810
isc::dhcp::SrvConfigPtr
boost::shared_ptr< SrvConfig > SrvConfigPtr
Non-const pointer to the SrvConfig.
Definition: srv_config.h:707
isc::dhcp::RelayInfoParser
parser for additional relay information
Definition: dhcp_parsers.h:389
isc::dhcp::SubnetConfigParser::options_
CfgOptionPtr options_
Pointer to the options configuration.
Definition: dhcp_parsers.h:521
isc::dhcp::ValueStorage
A template class that stores named elements of a given data type.
Definition: dhcp_parsers.h:54
isc::dhcp::SubnetConfigParser::~SubnetConfigParser
virtual ~SubnetConfigParser()
virtual destructor (does nothing)
Definition: dhcp_parsers.h:462
isc::dhcp::Subnets6ListConfigParser::parse
size_t parse(SrvConfigPtr cfg, data::ConstElementPtr subnets_list)
parses contents of the list
Definition: dhcp_parsers.cc:1223
simple_parser.h
isc::dhcp_ddns::NameChangeFormat
NameChangeFormat
Defines the list of data wire formats supported.
Definition: ncr_msg.h:60
isc::dhcp::Pools4ListParser
Specialization of the pool list parser for DHCPv4.
Definition: dhcp_parsers.h:369
option_space_container.h
isc::dhcp::MACSourcesListConfigParser::parse
void parse(CfgMACSource &mac_sources, isc::data::ConstElementPtr value)
parses parameters value
Definition: dhcp_parsers.cc:38
isc::dhcp::Subnet4Collection
boost::multi_index_container< Subnet4Ptr, boost::multi_index::indexed_by< boost::multi_index::random_access< boost::multi_index::tag< SubnetRandomAccessIndexTag > >, boost::multi_index::ordered_unique< boost::multi_index::tag< SubnetSubnetIdIndexTag >, boost::multi_index::const_mem_fun< Subnet, SubnetID, &Subnet::getID > >, boost::multi_index::ordered_unique< boost::multi_index::tag< SubnetPrefixIndexTag >, boost::multi_index::const_mem_fun< Subnet, std::string, &Subnet::toText > >, boost::multi_index::ordered_non_unique< boost::multi_index::tag< SubnetServerIdIndexTag >, boost::multi_index::const_mem_fun< Network4, asiolink::IOAddress, &Network4::getServerId > > >> Subnet4Collection
A collection of Subnet4 objects.
Definition: subnet.h:798
isc::dhcp::PoolsListParser::parse
virtual void parse(PoolStoragePtr pools, isc::data::ConstElementPtr pools_list)=0
parses the actual structure
isc::dhcp_ddns::NameChangeProtocol
NameChangeProtocol
Defines the list of socket protocols supported.
Definition: ncr_io.h:66
isc::dhcp::SubnetConfigParser::SubnetConfigParser
SubnetConfigParser(uint16_t family)
constructor
Definition: dhcp_parsers.cc:484