Kea 2.7.7
isc::dhcp::Pool4 Class Reference

Pool information for IPv4 addresses. More...

#include <pool.h>

+ Inheritance diagram for isc::dhcp::Pool4:

Public Member Functions

 Pool4 (const isc::asiolink::IOAddress &first, const isc::asiolink::IOAddress &last)
 the constructor for Pool4 "min-max" style definition
 
 Pool4 (const isc::asiolink::IOAddress &prefix, uint8_t prefix_len)
 the constructor for Pool4 "prefix/len" style definition
 
virtual data::ElementPtr toElement () const
 Unparse a Pool4 object.
 
- Public Member Functions inherited from isc::dhcp::Pool
virtual ~Pool ()=default
 virtual destructor
 
void addAdditionalClass (const ClientClass &class_name)
 Adds class class_name to the additional classes list.
 
void allowClientClass (const isc::dhcp::ClientClass &class_name)
 Adds class clas_name to the allowed client classes list.
 
bool clientSupported (const ClientClasses &client_classes) const
 Checks whether this pool supports client that belongs to specified classes.
 
const ClientClassesgetAdditionalClasses () const
 Returns the additional classes list.
 
AllocationStatePtr getAllocationState () const
 Returns pool-specific allocation state.
 
isc::util::uint128_t getCapacity () const
 Returns the number of all leases in this pool.
 
CfgOptionPtr getCfgOption ()
 Returns pointer to the option data configuration for this pool.
 
ConstCfgOptionPtr getCfgOption () const
 Returns const pointer to the option data configuration for this pool.
 
const ClientClassesgetClientClasses () const
 Returns the list of allowed client classes.
 
util::Optional< std::string > getDdnsConflictResolutionMode () const
 Returns ddns-conflict-resolution-mode.
 
util::Optional< std::string > getDdnsGeneratedPrefix () const
 Returns ddns-generated-prefix.
 
util::Optional< bool > getDdnsOverrideClientUpdate () const
 Returns ddns-override-client-update.
 
util::Optional< bool > getDdnsOverrideNoUpdate () const
 Returns ddns-override-no-update.
 
util::Optional< std::string > getDdnsQualifyingSuffix () const
 Returns ddns-qualifying-suffix.
 
util::Optional< D2ClientConfig::ReplaceClientNameModegetDdnsReplaceClientNameMode () const
 Returns ddns-replace-client-name-mode.
 
util::Optional< bool > getDdnsSendUpdates () const
 Returns ddns-send-updates.
 
util::Optional< uint32_t > getDdnsTtl () const
 Returns ddns-ttl.
 
util::Optional< uint32_t > getDdnsTtlMax () const
 Returns ddns-ttl-max.
 
util::Optional< uint32_t > getDdnsTtlMin () const
 Returns ddns-ttl-min.
 
util::Optional< double > getDdnsTtlPercent () const
 Returns ddns-ttl-percent.
 
util::Optional< bool > getDdnsUpdateOnRenew () const
 Returns ddns-update-on-renew.
 
const isc::asiolink::IOAddressgetFirstAddress () const
 Returns the first address in a pool.
 
util::Optional< std::string > getHostnameCharReplacement () const
 Return the invalid char replacement used to sanitize client hostnames.
 
util::Optional< std::string > getHostnameCharSet () const
 Return the char set regexp used to sanitize client hostnames.
 
uint64_t getID () const
 Returns Pool-id.
 
const isc::asiolink::IOAddressgetLastAddress () const
 Returns the last address in a pool.
 
ClientClassesgetMutableAdditionalClasses ()
 Returns the mutable additional classes list.
 
ClientClassesgetMutableClientClasses ()
 Returns the mutable list of allowed client classes.
 
Lease::Type getType () const
 Returns pool type (v4, v6 non-temporary, v6 temp, v6 prefix)
 
bool hasDdnsParameters () const
 Checks if any of the DDNS parameters has a value.
 
bool inRange (const isc::asiolink::IOAddress &addr) const
 Checks if a given address is in the range.
 
void setAllocationState (const AllocationStatePtr &allocation_state)
 Sets pool-specific allocation state.
 
void setDdnsConflictResolutionMode (const util::Optional< std::string > &ddns_conflict_resolution_mode)
 Sets new ddns-conflict-resolution-mode.
 
void setDdnsGeneratedPrefix (const util::Optional< std::string > &ddns_generated_prefix)
 Sets new ddns-generated-prefix.
 
void setDdnsOverrideClientUpdate (const util::Optional< bool > &ddns_override_client_update)
 Sets new ddns-override-client-update.
 
void setDdnsOverrideNoUpdate (const util::Optional< bool > &ddns_override_no_update)
 Sets new ddns-override-no-update.
 
void setDdnsQualifyingSuffix (const util::Optional< std::string > &ddns_qualifying_suffix)
 Sets new ddns-qualifying-suffix.
 
void setDdnsReplaceClientNameMode (const util::Optional< D2ClientConfig::ReplaceClientNameMode > &ddns_replace_client_name_mode)
 Sets new ddns-replace-client-name-mode.
 
void setDdnsSendUpdates (const util::Optional< bool > &ddns_send_updates)
 Sets new ddns-send-updates.
 
void setDdnsTtl (const util::Optional< uint32_t > &ddns_ttl)
 Sets new ddns-ttl.
 
void setDdnsTtlMax (const util::Optional< uint32_t > &ddns_ttl_max)
 Sets new ddns-ttl-max.
 
void setDdnsTtlMin (const util::Optional< uint32_t > &ddns_ttl_min)
 Sets new ddns-ttl-min.
 
void setDdnsTtlPercent (const util::Optional< double > &ddns_ttl_percent)
 Sets new ddns-ttl-percent.
 
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.
 
void setHostnameCharSet (const util::Optional< std::string > &hostname_char_set)
 Sets new hostname-char-set.
 
void setID (const uint64_t id)
 Sets Pool-id.
 
virtual std::string toText () const
 returns textual representation of the pool
 
- Public Member Functions inherited from isc::data::UserContext
void contextToElement (data::ElementPtr map) const
 Merge unparse a user_context object.
 
data::ConstElementPtr getContext () const
 Returns const pointer to the user context.
 
void setContext (const data::ConstElementPtr &ctx)
 Sets user context.
 
- Public Member Functions inherited from isc::data::CfgToElement
virtual ~CfgToElement ()
 Destructor.
 

Static Public Member Functions

static Pool4Ptr create (const isc::asiolink::IOAddress &first, const isc::asiolink::IOAddress &last)
 Factory function for creating an instance of the Pool4.
 
static Pool4Ptr create (const isc::asiolink::IOAddress &prefix, uint8_t prefix_len)
 Factory function for creating an instance of the Pool4.
 
- Static Public Member Functions inherited from isc::data::UserContext
static data::ElementPtr toElement (data::ConstElementPtr map)
 Copy an Element map.
 

Additional Inherited Members

- Protected Member Functions inherited from isc::dhcp::Pool
 Pool (Lease::Type type, const isc::asiolink::IOAddress &first, const isc::asiolink::IOAddress &last)
 protected constructor
 
- Protected Attributes inherited from isc::dhcp::Pool
ClientClasses additional_classes_
 Additional classes.
 
AllocationStatePtr allocation_state_
 Holds pool-specific allocation state.
 
isc::util::uint128_t capacity_
 Stores number of possible leases.
 
CfgOptionPtr cfg_option_
 Pointer to the option data configuration for this pool.
 
ClientClasses client_classes_
 List of client classes allowed to use this pool.
 
util::Optional< std::string > ddns_conflict_resolution_mode_
 DDNS conflict resolution mode.
 
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< bool > ddns_override_no_update_
 Should Kea perform updates, even if client requested no updates.
 
util::Optional< std::string > ddns_qualifying_suffix_
 Suffix Kea should use when to qualify partial domain-names.
 
util::Optional< D2ClientConfig::ReplaceClientNameModeddns_replace_client_name_mode_
 How Kea should handle the domain-name supplied by the client.
 
util::Optional< bool > ddns_send_updates_
 Should Kea perform DNS updates.
 
util::Optional< uint32_t > ddns_ttl_
 Explicit value to use for DNS TTL.
 
util::Optional< uint32_t > ddns_ttl_max_
 Maximum value to use for DNS TTL.
 
util::Optional< uint32_t > ddns_ttl_min_
 Minimum value to use for DNS TTL.
 
util::Optional< double > ddns_ttl_percent_
 Percentage of the lease lifetime to use for DNS TTL.
 
util::Optional< bool > ddns_update_on_renew_
 Should Kea perform updates when leases are extended.
 
isc::asiolink::IOAddress first_
 The first address in a pool.
 
util::Optional< std::string > hostname_char_replacement_
 A string to replace invalid characters when scrubbing hostnames.
 
util::Optional< std::string > hostname_char_set_
 Regular expression describing invalid characters for client hostnames.
 
uint64_t id_
 pool-id
 
isc::asiolink::IOAddress last_
 The last address in a pool.
 
Lease::Type type_
 defines a lease type that will be served from this pool
 
data::ConstElementPtr user_context_
 Pointer to the user context (may be NULL)
 
- Protected Attributes inherited from isc::data::UserContext
data::ConstElementPtr user_context_
 Pointer to the user context (may be NULL)
 

Detailed Description

Pool information for IPv4 addresses.

It holds information about pool4, i.e. a range of IPv4 address space that is configured for DHCP allocation.

Definition at line 483 of file pool.h.

Constructor & Destructor Documentation

◆ Pool4() [1/2]

isc::dhcp::Pool4::Pool4 ( const isc::asiolink::IOAddress & first,
const isc::asiolink::IOAddress & last )

the constructor for Pool4 "min-max" style definition

Parameters
firstthe first address in a pool
lastthe last address in a pool

Definition at line 77 of file pool.cc.

References isc::asiolink::addrsInRange(), isc::dhcp::Pool::capacity_, if(), isc_throw, and isc::asiolink::IOAddress::isV4().

+ Here is the call graph for this function:

◆ Pool4() [2/2]

isc::dhcp::Pool4::Pool4 ( const isc::asiolink::IOAddress & prefix,
uint8_t prefix_len )

the constructor for Pool4 "prefix/len" style definition

Parameters
prefixspecifies prefix of the pool
prefix_lenspecifies length of the prefix of the pool

Definition at line 96 of file pool.cc.

References isc::asiolink::addrsInRange(), isc::dhcp::Pool::capacity_, isc::asiolink::firstAddrInPrefix(), if(), isc_throw, isc::asiolink::IOAddress::isV4(), isc::dhcp::Pool::last_, and isc::asiolink::lastAddrInPrefix().

+ Here is the call graph for this function:

Member Function Documentation

◆ create() [1/2]

Pool4Ptr isc::dhcp::Pool4::create ( const isc::asiolink::IOAddress & first,
const isc::asiolink::IOAddress & last )
static

Factory function for creating an instance of the Pool4.

This function should be used to create an instance of the pool within a hooks library in cases when the library may be unloaded before the object is destroyed. This ensures that the ownership of the object by the Kea process is retained.

Parameters
firstthe first address in a pool
lastthe last address in a pool
Returns
Pointer to the Pool4 instance.

Definition at line 127 of file pool.cc.

◆ create() [2/2]

Pool4Ptr isc::dhcp::Pool4::create ( const isc::asiolink::IOAddress & prefix,
uint8_t prefix_len )
static

Factory function for creating an instance of the Pool4.

This function should be used to create an instance of the pool within a hooks library in cases when the library may be unloaded before the object is destroyed. This ensures that the ownership of the object by the Kea process is retained.

Parameters
prefixspecifies prefix of the pool.
prefix_lenspecifies length of the prefix of the pool.
Returns
Pointer to the Pool4 instance.

Definition at line 132 of file pool.cc.

◆ toElement()

data::ElementPtr isc::dhcp::Pool4::toElement ( ) const
virtual

Unparse a Pool4 object.

Returns
A pointer to unparsed Pool4 configuration.

Reimplemented from isc::dhcp::Pool.

Definition at line 228 of file pool.cc.

References isc::data::Element::create(), isc::dhcp::Pool::getFirstAddress(), isc::dhcp::Pool::getLastAddress(), isc::asiolink::prefixLengthFromRange(), isc::dhcp::Pool::toElement(), and isc::asiolink::IOAddress::toText().

+ Here is the call graph for this function:

The documentation for this class was generated from the following files: