Kea: isc::dhcp::Pool4 Class Reference

| Kea 3.2.0-git

isc::dhcp::Pool4 Class Reference

Pool information for IPv4 addresses. More...

`#include <pool.h>`

Inheritance diagram for isc::dhcp::Pool4:
[legend]

## 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 ClientClasses & | getAdditionalClasses () 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 ClientClasses & | getClientClasses () 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::ReplaceClientNameMode > | getDdnsReplaceClientNameMode () 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::IOAddress & | getFirstAddress () 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::IOAddress & | getLastAddress () const
| Returns the last address in a pool.
ClientClasses & | getMutableAdditionalClasses ()
| Returns the mutable additional classes list.
ClientClasses & | getMutableClientClasses ()
| 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::ReplaceClientNameMode > | ddns_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

  first | the first address in a pool
  last | the last address in a pool

Definition at line 77 of file pool.cc.

References isc::dhcp::Pool::Pool(), 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

  prefix | specifies prefix of the pool
  prefix_len | specifies length of the prefix of the pool

Definition at line 96 of file pool.cc.

References isc::dhcp::Pool::Pool(), 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

  first | the first address in a pool
  last | the last address in a pool

Returns
  Pointer to the `Pool4` instance.

Definition at line 127 of file pool.cc.

Referenced by isc::lease_query::PoolSet::insert().

## ◆ 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

  prefix | specifies prefix of the pool.
  prefix_len | specifies 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:

- pool.h
- pool.cc