21#include <boost/shared_ptr.hpp>
85 virtual std::string
toText()
const;
342 uint8_t prefix_len, uint8_t delegated_len = 128);
357 const uint8_t delegated_len,
359 const uint8_t excluded_prefix_len);
393 uint8_t delegated_len = 128);
410 const uint8_t prefix_len,
411 const uint8_t delegated_len,
413 const uint8_t excluded_prefix_len);
428 return (prefix_len_);
436 return (pd_exclude_option_);
447 virtual std::string
toText()
const;
471 const uint8_t prefix_len,
472 const uint8_t delegated_len,
474 const uint8_t excluded_prefix_len);
Defines elements for storing the names of client classes.
The IOAddress class represents an IP addresses (version agnostic)
Container for storing client class names.
Pool information for IPv4 addresses.
virtual data::ElementPtr toElement() const
Unparse a Pool4 object.
Pool4(const isc::asiolink::IOAddress &first, const isc::asiolink::IOAddress &last)
the constructor for Pool4 "min-max" style definition
static Pool4Ptr create(const isc::asiolink::IOAddress &first, const isc::asiolink::IOAddress &last)
Factory function for creating an instance of the Pool4.
Pool information for IPv6 addresses and prefixes.
uint8_t getLength() const
returns delegated prefix length
virtual data::ElementPtr toElement() const
Unparse a Pool6 object.
Option6PDExcludePtr getPrefixExcludeOption() const
Returns instance of the pool specific Prefix Exclude option.
static Pool6Ptr create(Lease::Type type, const isc::asiolink::IOAddress &first, const isc::asiolink::IOAddress &last)
Factory function for creating an instance of the Pool6.
virtual std::string toText() const
returns textual representation of the pool
Pool6(Lease::Type type, const isc::asiolink::IOAddress &first, const isc::asiolink::IOAddress &last)
the constructor for Pool6 "min-max" style definition
Lease::Type getType() const
returns pool type
base class for Pool4 and Pool6
data::ConstElementPtr user_context_
Pointer to the user context (may be NULL)
const ClientClasses & getAdditionalClasses() const
Returns the additional classes list.
virtual data::ElementPtr toElement() const
Unparse a pool object.
CfgOptionPtr cfg_option_
Pointer to the option data configuration for this pool.
void setID(const uint64_t id)
Sets Pool-id.
ClientClasses & getMutableAdditionalClasses()
Returns the mutable additional classes list.
Pool(Lease::Type type, const isc::asiolink::IOAddress &first, const isc::asiolink::IOAddress &last)
protected constructor
isc::util::uint128_t getCapacity() const
Returns the number of all leases in this pool.
const isc::asiolink::IOAddress & getFirstAddress() const
Returns the first address in a pool.
ClientClasses additional_classes_
Additional classes.
AllocationStatePtr getAllocationState() const
Returns pool-specific allocation state.
Lease::Type getType() const
Returns pool type (v4, v6 non-temporary, v6 temp, v6 prefix)
const isc::asiolink::IOAddress & getLastAddress() const
Returns the last address in a pool.
ClientClasses & getMutableClientClasses()
Returns the mutable list of allowed client classes.
void setAllocationState(const AllocationStatePtr &allocation_state)
Sets pool-specific allocation state.
isc::util::uint128_t capacity_
Stores number of possible leases.
uint64_t getID() const
Returns Pool-id.
ClientClasses client_classes_
List of client classes allowed to use this pool.
const ClientClasses & getClientClasses() const
Returns the list of allowed client classes.
void allowClientClass(const isc::dhcp::ClientClass &class_name)
Adds class clas_name to the allowed client classes list.
isc::asiolink::IOAddress last_
The last address in a pool.
AllocationStatePtr allocation_state_
Holds pool-specific allocation state.
isc::asiolink::IOAddress first_
The first address in a pool.
CfgOptionPtr getCfgOption()
Returns pointer to the option data configuration for this pool.
virtual std::string toText() const
returns textual representation of the pool
bool inRange(const isc::asiolink::IOAddress &addr) const
Checks if a given address is in the range.
void addAdditionalClass(const ClientClass &class_name)
Adds class class_name to the additional classes list.
bool clientSupported(const ClientClasses &client_classes) const
Checks whether this pool supports client that belongs to specified classes.
virtual ~Pool()=default
virtual destructor
ConstCfgOptionPtr getCfgOption() const
Returns const pointer to the option data configuration for this pool.
Lease::Type type_
defines a lease type that will be served from this pool
boost::shared_ptr< const Element > ConstElementPtr
boost::shared_ptr< Element > ElementPtr
boost::shared_ptr< Pool4 > Pool4Ptr
a pointer an IPv4 Pool
std::string ClientClass
Defines a single class name.
boost::shared_ptr< CfgOption > CfgOptionPtr
Non-const pointer.
boost::shared_ptr< Option6PDExclude > Option6PDExcludePtr
Pointer to the Option6PDExclude object.
boost::shared_ptr< AllocationState > AllocationStatePtr
Type of the pointer to the AllocationState.
std::vector< PoolPtr > PoolCollection
a container for either IPv4 or IPv6 Pools
boost::shared_ptr< Pool > PoolPtr
a pointer to either IPv4 or IPv6 Pool
boost::shared_ptr< const CfgOption > ConstCfgOptionPtr
Const pointer.
boost::shared_ptr< Pool6 > Pool6Ptr
a pointer an IPv6 Pool
boost::multiprecision::checked_uint128_t uint128_t
Defines the logger used by the top-level component of kea-lfc.
Abstract class for configuration Cfg_* classes.
Base class for user context.
Type
Type of lease or pool.