21#include <boost/shared_ptr.hpp>
85 virtual std::string
toText()
const;
340 uint8_t prefix_len, uint8_t delegated_len = 128);
355 const uint8_t delegated_len,
357 const uint8_t excluded_prefix_len);
391 uint8_t delegated_len = 128);
408 const uint8_t prefix_len,
409 const uint8_t delegated_len,
411 const uint8_t excluded_prefix_len);
426 return (prefix_len_);
434 return (pd_exclude_option_);
445 virtual std::string
toText()
const;
469 const uint8_t prefix_len,
470 const uint8_t delegated_len,
472 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
data::ConstElementPtr user_context_
Pointer to the user context (may be NULL)
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.
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.
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
ClientClasses required_classes_
Required classes.
const ClientClasses & getRequiredClasses() const
Returns classes which are required to be evaluated.
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.
void requireClientClass(const ClientClass &class_name)
Adds class class_name to classes required to be evaluated.
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.
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.