21#include <boost/shared_ptr.hpp>
85 virtual std::string
toText()
const;
345 uint8_t prefix_len, uint8_t delegated_len = 128);
360 const uint8_t delegated_len,
362 const uint8_t excluded_prefix_len);
396 uint8_t delegated_len = 128);
413 const uint8_t prefix_len,
414 const uint8_t delegated_len,
416 const uint8_t excluded_prefix_len);
431 return (prefix_len_);
439 return (pd_exclude_option_);
450 virtual std::string
toText()
const;
474 const uint8_t prefix_len,
475 const uint8_t delegated_len,
477 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.
bool contains(const ClientClass &x) const
returns if class x belongs to the defined classes
void insert(const ClientClass &class_name)
Insert an element.
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.
void allowClientClass(const ClientClass &class_name)
Sets the supported class to class class_name.
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.
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.
const ClientClass & getClientClass() const
returns the client class
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.
ClientClass client_class_
Optional definition of a client class.
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.