23#include <boost/shared_ptr.hpp>
87 virtual std::string
toText()
const;
211 ddns_override_client_update) {
226 ddns_replace_client_name_mode) {
358 hostname_char_replacement) {
583 uint8_t prefix_len, uint8_t delegated_len = 128);
598 const uint8_t delegated_len,
600 const uint8_t excluded_prefix_len);
634 uint8_t delegated_len = 128);
651 const uint8_t prefix_len,
652 const uint8_t delegated_len,
654 const uint8_t excluded_prefix_len);
669 return (prefix_len_);
677 return (pd_exclude_option_);
688 virtual std::string
toText()
const;
712 const uint8_t prefix_len,
713 const uint8_t delegated_len,
715 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)
util::Optional< std::string > getHostnameCharSet() const
Return the char set regexp used to sanitize client hostnames.
const ClientClasses & getAdditionalClasses() const
Returns the additional classes list.
virtual data::ElementPtr toElement() const
Unparse a pool object.
util::Optional< uint32_t > ddns_ttl_
Explicit value to use for DNS TTL.
util::Optional< std::string > getDdnsQualifyingSuffix() const
Returns ddns-qualifying-suffix.
CfgOptionPtr cfg_option_
Pointer to the option data configuration for this pool.
util::Optional< double > getDdnsTtlPercent() const
Returns ddns-ttl-percent.
util::Optional< std::string > hostname_char_replacement_
A string to replace invalid characters when scrubbing hostnames.
void setDdnsTtlPercent(const util::Optional< double > &ddns_ttl_percent)
Sets new ddns-ttl-percent.
util::Optional< uint32_t > ddns_ttl_max_
Maximum value to use for DNS TTL.
void setID(const uint64_t id)
Sets Pool-id.
ClientClasses & getMutableAdditionalClasses()
Returns the mutable additional classes list.
void setDdnsOverrideNoUpdate(const util::Optional< bool > &ddns_override_no_update)
Sets new ddns-override-no-update.
void setDdnsTtlMin(const util::Optional< uint32_t > &ddns_ttl_min)
Sets new ddns-ttl-min.
util::Optional< bool > ddns_update_on_renew_
Should Kea perform updates when leases are extended.
Pool(Lease::Type type, const isc::asiolink::IOAddress &first, const isc::asiolink::IOAddress &last)
protected constructor
util::Optional< bool > getDdnsUpdateOnRenew() const
Returns ddns-update-on-renew.
util::Optional< std::string > ddns_qualifying_suffix_
Suffix Kea should use when to qualify partial domain-names.
isc::util::uint128_t getCapacity() const
Returns the number of all leases in this pool.
util::Optional< D2ClientConfig::ReplaceClientNameMode > getDdnsReplaceClientNameMode() const
Returns ddns-replace-client-name-mode.
void setDdnsTtlMax(const util::Optional< uint32_t > &ddns_ttl_max)
Sets new ddns-ttl-max.
void setHostnameCharSet(const util::Optional< std::string > &hostname_char_set)
Sets new hostname-char-set.
util::Optional< std::string > hostname_char_set_
Regular expression describing invalid characters for client hostnames.
const isc::asiolink::IOAddress & getFirstAddress() const
Returns the first address in a pool.
util::Optional< bool > getDdnsSendUpdates() const
Returns ddns-send-updates.
util::Optional< D2ClientConfig::ReplaceClientNameMode > ddns_replace_client_name_mode_
How Kea should handle the domain-name supplied by the client.
ClientClasses additional_classes_
Additional classes.
void setDdnsConflictResolutionMode(const util::Optional< std::string > &ddns_conflict_resolution_mode)
Sets new ddns-conflict-resolution-mode.
bool hasDdnsParameters() const
Checks if any of the DDNS parameters has a value.
util::Optional< uint32_t > ddns_ttl_min_
Minimum value to use for DNS TTL.
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 setDdnsTtl(const util::Optional< uint32_t > &ddns_ttl)
Sets new ddns-ttl.
util::Optional< uint32_t > getDdnsTtlMax() const
Returns ddns-ttl-max.
ClientClasses & getMutableClientClasses()
Returns the mutable list of allowed client classes.
void setAllocationState(const AllocationStatePtr &allocation_state)
Sets pool-specific allocation state.
util::Optional< std::string > ddns_generated_prefix_
Prefix Kea should use when generating domain-names.
util::Optional< bool > ddns_override_client_update_
Should Kea perform updates, even if client requested delegation.
util::Optional< double > ddns_ttl_percent_
Percentage of the lease lifetime to use for DNS TTL.
void setDdnsSendUpdates(const util::Optional< bool > &ddns_send_updates)
Sets new ddns-send-updates.
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.
util::Optional< std::string > getDdnsGeneratedPrefix() const
Returns ddns-generated-prefix.
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.
util::Optional< bool > ddns_override_no_update_
Should Kea perform updates, even if client requested no updates.
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.
util::Optional< uint32_t > getDdnsTtlMin() const
Returns ddns-ttl-min.
util::Optional< bool > getDdnsOverrideNoUpdate() const
Returns ddns-override-no-update.
void setDdnsReplaceClientNameMode(const util::Optional< D2ClientConfig::ReplaceClientNameMode > &ddns_replace_client_name_mode)
Sets new ddns-replace-client-name-mode.
util::Optional< bool > getDdnsOverrideClientUpdate() const
Returns ddns-override-client-update.
util::Optional< std::string > ddns_conflict_resolution_mode_
DDNS conflict resolution mode.
void setDdnsQualifyingSuffix(const util::Optional< std::string > &ddns_qualifying_suffix)
Sets new ddns-qualifying-suffix.
void setDdnsUpdateOnRenew(const util::Optional< bool > &ddns_update_on_renew)
Sets new ddns-update-on-renew.
void setHostnameCharReplacement(const util::Optional< std::string > &hostname_char_replacement)
Sets new hostname-char-replacement.
util::Optional< bool > ddns_send_updates_
Should Kea perform DNS updates.
void setDdnsGeneratedPrefix(const util::Optional< std::string > &ddns_generated_prefix)
Sets new ddns-generated-prefix.
util::Optional< uint32_t > getDdnsTtl() const
Returns ddns-ttl.
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.
void setDdnsOverrideClientUpdate(const util::Optional< bool > &ddns_override_client_update)
Sets new ddns-override-client-update.
bool clientSupported(const ClientClasses &client_classes) const
Checks whether this pool supports client that belongs to specified classes.
virtual ~Pool()=default
virtual destructor
util::Optional< std::string > getHostnameCharReplacement() const
Return the invalid char replacement used to sanitize client hostnames.
util::Optional< std::string > getDdnsConflictResolutionMode() const
Returns ddns-conflict-resolution-mode.
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
A template representing an optional value.
Defines the D2ClientConfig class.
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.