Kea: isc::dhcp::Network Class Reference

| Kea 3.2.0-git

isc::dhcp::Network Class Reference

Common interface representing a network to which the DHCP clients are connected. More...

`#include <network.h>`

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

## Classes
class | RelayInfo
| Holds optional information about relay. More...

## Public Types
enum class | Inheritance { NONE , PARENT_NETWORK , GLOBAL , ALL }
| Inheritance "mode" used when fetching an optional `Network` parameter. More...
typedef boost::shared_ptr< Network::RelayInfo > | RelayInfoPtr
| Pointer to the RelayInfo structure.

## Public Member Functions
| Network ()
| Constructor.
virtual | ~Network ()
| Virtual destructor.
void | addAdditionalClass (const isc::dhcp::ClientClass &class_name)
| Adds class class_name to the additional classes list.
void | addRelayAddress (const asiolink::IOAddress &addr)
| Adds an address to the list addresses in the network's relay info.
void | allowClientClass (const isc::dhcp::ClientClass &class_name)
| Adds class clas_name to the allowed client classes list.
virtual bool | clientSupported (const isc::dhcp::ClientClasses &client_classes) const
| Checks whether this network supports a client that belongs to the specified classes.
util::Optional< double > | getAdaptiveLeaseTimeThreshold (const Inheritance &inheritance=Inheritance::ALL) const
| Returns percentage of the adaptive lease time threshold,.
const ClientClasses & | getAdditionalClasses () const
| Returns the additional classes list.
util::Optional< std::string > | getAllocatorType (const Inheritance &inheritance=Inheritance::ALL) const
| Returns allocator type.
util::Optional< uint32_t > | getCacheMaxAge (const Inheritance &inheritance=Inheritance::ALL) const
| Returns value in seconds to use as cache maximum age.
util::Optional< double > | getCacheThreshold (const Inheritance &inheritance=Inheritance::ALL) const
| Returns percentage to use as cache threshold.
util::Optional< bool > | getCalculateTeeTimes (const Inheritance &inheritance=Inheritance::ALL) const
| Returns whether or not T1/T2 calculation is enabled.
CfgOptionPtr | getCfgOption ()
| Returns pointer to the option data configuration for this network.
ConstCfgOptionPtr | getCfgOption () const
| Returns const pointer to the option data configuration for this network.
const ClientClasses & | getClientClasses () const
| Returns the list of allowed client classes.
util::Optional< std::string > | getDdnsConflictResolutionMode (const Inheritance &inheritance=Inheritance::ALL) const
| Returns ddns-conflict-resolution-mode.
util::Optional< std::string > | getDdnsGeneratedPrefix (const Inheritance &inheritance=Inheritance::ALL) const
| Returns ddns-generated-prefix.
util::Optional< bool > | getDdnsOverrideClientUpdate (const Inheritance &inheritance=Inheritance::ALL) const
| Returns ddns-override-client-update.
util::Optional< bool > | getDdnsOverrideNoUpdate (const Inheritance &inheritance=Inheritance::ALL) const
| Returns ddns-override-no-update.
util::Optional< std::string > | getDdnsQualifyingSuffix (const Inheritance &inheritance=Inheritance::ALL) const
| Returns ddns-qualifying-suffix.
util::Optional< D2ClientConfig::ReplaceClientNameMode > | getDdnsReplaceClientNameMode (const Inheritance &inheritance=Inheritance::ALL) const
| Returns ddns-replace-client-name-mode.
util::Optional< bool > | getDdnsSendUpdates (const Inheritance &inheritance=Inheritance::ALL) const
| Returns ddns-send-updates.
util::Optional< uint32_t > | getDdnsTtl (const Inheritance &inheritance=Inheritance::ALL) const
| Returns ddns-ttl.
util::Optional< uint32_t > | getDdnsTtlMax (const Inheritance &inheritance=Inheritance::ALL) const
| Returns ddns-ttl-max.
util::Optional< uint32_t > | getDdnsTtlMin (const Inheritance &inheritance=Inheritance::ALL) const
| Returns ddns-ttl-min.
util::Optional< double > | getDdnsTtlPercent (const Inheritance &inheritance=Inheritance::ALL) const
| Returns ddns-ttl-percent.
util::Optional< bool > | getDdnsUpdateOnRenew (const Inheritance &inheritance=Inheritance::ALL) const
| Returns ddns-update-on-renew.
util::Optional< std::string > | getDefaultAllocatorType (const Inheritance &inheritance=Inheritance::ALL) const
| Returns a default allocator type.
util::Optional< std::string > | getHostnameCharReplacement (const Inheritance &inheritance=Inheritance::ALL) const
| Return the invalid char replacement used to sanitize client hostnames.
util::Optional< std::string > | getHostnameCharSet (const Inheritance &inheritance=Inheritance::ALL) const
| Return the char set regexp used to sanitize client hostnames.
util::Optional< std::string > | getIface (const Inheritance &inheritance=Inheritance::ALL) const
| Returns name of the local interface for which this network is selected.
virtual std::string | getLabel () const
| Generates an identifying label for logging.
ClientClasses & | getMutableAdditionalClasses ()
| Returns the mutable additional classes list.
ClientClasses & | getMutableClientClasses ()
| Returns the mutable list of allowed client classes.
const IOAddressList & | getRelayAddresses () const
| Returns the list of relay addresses from the network's relay info.
const RelayInfo & | getRelayInfo () const
| Returns const reference to relay information.
util::Optional< bool > | getReservationsGlobal (const Inheritance &inheritance=Inheritance::ALL) const
| Returns whether global reservations should be fetched.
util::Optional< bool > | getReservationsInSubnet (const Inheritance &inheritance=Inheritance::ALL) const
| Returns whether subnet reservations should be fetched.
util::Optional< bool > | getReservationsOutOfPool (const Inheritance &inheritance=Inheritance::ALL) const
| Returns whether only out-of-pool reservations are allowed.
util::Optional< bool > | getStoreExtendedInfo (const Inheritance &inheritance=Inheritance::ALL) const
| Returns store-extended-info.
isc::util::Triplet< uint32_t > | getT1 (const Inheritance &inheritance=Inheritance::ALL) const
| Returns T1 (renew timer), expressed in seconds.
util::Optional< double > | getT1Percent (const Inheritance &inheritance=Inheritance::ALL) const
| Returns percentage to use when calculating the T1 (renew timer).
isc::util::Triplet< uint32_t > | getT2 (const Inheritance &inheritance=Inheritance::ALL) const
| Returns T2 (rebind timer), expressed in seconds.
util::Optional< double > | getT2Percent (const Inheritance &inheritance=Inheritance::ALL) const
| Returns percentage to use when calculating the T2 (rebind timer).
isc::util::Triplet< uint32_t > | getValid (const Inheritance &inheritance=Inheritance::ALL) const
| Return valid-lifetime for addresses in that prefix.
bool | hasFetchGlobalsFn () const
| Checks if the network is associated with a function used to fetch globally configured parameters.
bool | hasRelayAddress (const asiolink::IOAddress &address) const
| Tests if the network's relay info contains the given address.
bool | hasRelays () const
| Indicates if network's relay info has relay addresses.
void | setAdaptiveLeaseTimeThreshold (const util::Optional< double > &adaptive_lease_time_threshold)
| Sets new percentage of the adaptive lease time threshold.
void | setAllocatorType (const util::Optional< std::string > &allocator_type)
| Sets new allocator type.
void | setCacheMaxAge (const util::Optional< uint32_t > &cache_max_age)
| Sets cache max for a network.
void | setCacheThreshold (const util::Optional< double > &cache_threshold)
| Sets cache threshold for a network.
void | setCalculateTeeTimes (const util::Optional< bool > &calculate_tee_times)
| Sets whether or not T1/T2 calculation is enabled.
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 | setDefaultAllocatorType (const std::string &allocator_type)
| Sets a default allocator type.
void | setFetchGlobalsFn (FetchNetworkGlobalsFn fetch_globals_fn)
| Sets the optional callback function used to fetch globally configured parameters.
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 | setIface (const util::Optional< std::string > &iface_name)
| Sets local name of the interface for which this network is selected.
void | setRelayInfo (const RelayInfo &relay)
| Sets information about relay.
void | setReservationsGlobal (const util::Optional< bool > &reservations_global)
| Sets whether global reservations should be fetched.
void | setReservationsInSubnet (const util::Optional< bool > &reservations_in_subnet)
| Sets whether subnet reservations should be fetched.
void | setReservationsOutOfPool (const util::Optional< bool > &reservations_out_of_pool)
| Sets whether only out-of-pool reservations are allowed.
void | setStoreExtendedInfo (const util::Optional< bool > &store_extended_info)
| Sets new store-extended-info.
void | setT1 (const isc::util::Triplet< uint32_t > &t1)
| Sets new renew timer for a network.
void | setT1Percent (const util::Optional< double > &t1_percent)
| Sets new percentage for calculating T1 (renew timer).
void | setT2 (const isc::util::Triplet< uint32_t > &t2)
| Sets new rebind timer for a network.
void | setT2Percent (const util::Optional< double > &t2_percent)
| Sets new percentage for calculating T2 (rebind timer).
void | setValid (const isc::util::Triplet< uint32_t > &valid)
| Sets new valid lifetime for a network.
virtual data::ElementPtr | toElement () const
| Unparses network object.
Public Member Functions inherited from isc::data::StampedElement
| StampedElement ()
| Constructor.
void | delServerTag (const std::string &server_tag)
| Deletes server tag.
isc::data::ElementPtr | getMetadata () const
| Returns an object representing metadata to be returned with objects from the configuration backend.
std::set< ServerTag > | getServerTags () const
| Returns server tags.
bool | hasAllServerTag () const
| Checks if the element has 'all' server tag.
bool | hasServerTag (const ServerTag &server_tag) const
| Checks if the element has the given server tag.
void | setServerTag (const std::string &server_tag)
| Adds new server tag.
Public Member Functions inherited from isc::data::BaseStampedElement
| BaseStampedElement ()
| Constructor.
uint64_t | getId () const
| Returns element's database identifier.
boost::posix_time::ptime | getModificationTime () const
| Returns timestamp.
void | setId (const uint64_t id)
| Sets element's database identifier.
void | setModificationTime (const boost::posix_time::ptime &timestamp)
| Sets timestamp to the explicitly provided value.
void | updateModificationTime ()
| Sets timestamp to the current time.
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.

## Protected Member Functions
FetchNetworkGlobalsFn | getFetchGlobalsFn () const
| Gets the optional callback function used to fetch globally configured parameters.
template<typename NumType>
isc::util::Triplet< NumType > | getGlobalProperty (isc::util::Triplet< NumType > property, const int global_index, const int min_index=-1, const int max_index=-1) const
| The `getGlobalProperty` specialization for isc::util::Triplet<T>.
template<typename ReturnType>
ReturnType | getGlobalProperty (ReturnType property, const int global_index, const int min_index=-1, const int max_index=-1) const
| Returns a value of global configuration parameter with a given index.
util::Optional< asiolink::IOAddress > | getGlobalProperty (util::Optional< asiolink::IOAddress > property, const int global_index, const int min_index=-1, const int max_index=-1) const
| The `getGlobalProperty` specialization for Optional<IOAddress>.
template<typename BaseType>
OptionPtr | getOptionProperty (OptionPtr(BaseType::*MethodPointer)(const Inheritance &inheritance) const, OptionPtr property, const Inheritance &inheritance) const
| Returns option pointer associated with a network using inheritance.
template<typename BaseType, typename ReturnType>
ReturnType | getProperty (ReturnType(BaseType::*MethodPointer)(const Inheritance &) const, ReturnType property, const Inheritance &inheritance, const int global_index=-1, const int min_index=-1, const int max_index=-1) const
| Returns a value associated with a network using inheritance.

## Protected Attributes
util::Optional< double > | adaptive_lease_time_threshold_
| Percentage of the adaptive lease time threshold.
ClientClasses | additional_classes_
| Additional classes.
util::Optional< std::string > | allocator_type_
| Allocator used for IP address allocations.
util::Optional< uint32_t > | cache_max_age_
| Value in seconds to use as cache maximal age.
util::Optional< double > | cache_threshold_
| Percentage of the lease lifetime to use as cache threshold.
util::Optional< bool > | calculate_tee_times_
| Enables calculation of T1 and T2 timers.
CfgOptionPtr | cfg_option_
| Pointer to the option data configuration for this subnet.
ClientClasses | client_classes_
| List of client classes allowed to use this network.
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.
util::Optional< std::string > | default_allocator_type_
| Default allocator type.
FetchNetworkGlobalsFn | fetch_globals_fn_
| Pointer to the optional callback used to fetch globally configured parameters inherited to the `Network` object.
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.
util::Optional< std::string > | iface_name_
| Holds interface name for which this network is selected.
WeakNetworkPtr | parent_network_
| Pointer to another network that this network belongs to.
RelayInfo | relay_
| Relay information.
util::Optional< bool > | reservations_global_
| Enables global reservations.
util::Optional< bool > | reservations_in_subnet_
| Enables subnet reservations.
util::Optional< bool > | reservations_out_of_pool_
| Enables out-of-pool reservations optimization.
util::Optional< bool > | store_extended_info_
| Should Kea store additional client query data (e.g.
isc::util::Triplet< uint32_t > | t1_
| a isc::util::Triplet (min/default/max) holding allowed renew timer values
util::Optional< double > | t1_percent_
| Percentage of the lease lifetime to use when calculating T1 timer.
isc::util::Triplet< uint32_t > | t2_
| a isc::util::Triplet (min/default/max) holding allowed rebind timer values
util::Optional< double > | t2_percent_
| Percentage of the lease lifetime to use when calculating T2 timer.
isc::util::Triplet< uint32_t > | valid_
| a isc::util::Triplet (min/default/max) holding allowed valid lifetime values
Protected Attributes inherited from isc::data::BaseStampedElement
uint64_t | id_
| Database identifier of the configuration element.
boost::posix_time::ptime | timestamp_
| Holds timestamp value.
Protected Attributes inherited from isc::data::UserContext
data::ConstElementPtr | user_context_
| Pointer to the user context (may be NULL).

## Additional Inherited Members
Static Public Member Functions inherited from isc::data::UserContext
static data::ElementPtr | toElement (data::ConstElementPtr map)
| Copy an Element map.

## Detailed Description

Common interface representing a network to which the DHCP clients are connected.

The most common type of network, in Kea's terminology, is a subnet. The Subnet derives from this class. Another types of objects implementing this interface are SharedNetwork4 and SharedNetwork6 objects. They group multiple subnets together to provide means for extending available address pools (a single client may obtain IP address from any of the pools belonging to subnets in the shared network), or for selecting a subnet on a given link, depending on the class of the client (e.g. cable network case: different subnet is selected for cable modems, different one for routers).

The subnets and shared networks share many data structures, e.g. DHCP options, local interface name, address manipulation methods. Both subnets and shared networks derive from this class to provide the common functionality.

The DHCP server configuration is complex because many parameters may be specified at different levels of hierarchy. The lower level values, e.g. subnet specific values, take precedence over upper level values, e.g. shared network specific ones. For historical reasons, the DHCP servers expect that the appropriate values are inherited from the upper configuration levels to the lower configuration levels upon the reconfiguration. For example: if a user didn't specify valid-lifetime for a subnet, calling `Subnet4::getValid()` should result in returning a global value of valid-lifetime. In the early Kea days it was achieved by the configuration parsers which would explicitly assign the global valid lifetime to the `Subnet4` instances for which the subnet specific value was not provided. This approach has a major benefit that it is fast. However, it makes the subnets tightly dependent on the global values (and shared network specific values). Modification of the global value must result in modification of this value in all subnets for which there is no explicit value provided. This issue became a serious road block during the implementation of the Configuration Backend.

The `Network` object has been modified to address the problem of inheritance of global, shared network specific and subnet specific parameters in a generic way, at the same time minimizing the need to change the existing server logic.

The `Network` object now holds the pointer to the "parent" `Network` object. Thus subnets which belong to a shared network will have that shared network as its parent. Stand-alone subnets, will have no parent.

The general idea is that the accessor functions of the network will first check if the accessed value is specified or not (that is handled by `util::Optional` object). If the value is specified it is returned. Otherwise, the object will check if there is a parent object it belongs to and will call the appropriate method of that object. If the value is present it is returned. Otherwise the global value is returned.

Accessing global values from the `Network` object is troublesome. There is no uniform way to access those values. For example, the given network may be in a staging or current configuration and it really has no means to know in which of the two it belongs. In fact, an attempt to pass the pointer to the `SrvConfig` object would cause a circular dependency between the `Network` and the `SrvConfig`. Even if it was possible and the `Network` had access to the specific `SrvConfig` instance, it doesn't handle the cases when the `SrvConfig` instance was modified.

To deal with the problem of accessing the global parameters in a flexible manner, we elected to use an optional callback function which can be associated with the `Network` object. This callback implements the logic to retrieve global parameters and return them in a well known form, so as the `Network` accessors can use them.

Definition at line 152 of file network.h.

## Member Typedef Documentation

## ◆ RelayInfoPtr

typedef boost::shared_ptr<Network::RelayInfo> isc::dhcp::Network::RelayInfoPtr

Pointer to the RelayInfo structure.

Definition at line 210 of file network.h.

## Member Enumeration Documentation

## ◆ Inheritance

enum class isc::dhcp::Network::Inheritance
| strong

Inheritance "mode" used when fetching an optional `Network` parameter.

The following modes are currently supported:

- NONE: no inheritance is used, the network specific value is returned regardless if it is specified or not.
- PARENT_NETWORK: parent network specific value is returned or unspecified if the parent network doesn't exist.
- GLOBAL: global specific value is returned.
- ALL: inheritance is used on all levels: network specific value takes precedence over parent specific value over the global value.

Enumerator
NONE |
PARENT_NETWORK |
GLOBAL |
ALL |

Definition at line 202 of file network.h.

## Constructor & Destructor Documentation

## ◆ Network()

isc::dhcp::Network::Network | ( |  | ) |
| inline

Constructor.

Definition at line 213 of file network.h.

References adaptive_lease_time_threshold_, allocator_type_, cache_max_age_, cache_threshold_, calculate_tee_times_, cfg_option_, client_classes_, ddns_conflict_resolution_mode_, ddns_generated_prefix_, ddns_override_client_update_, ddns_override_no_update_, ddns_qualifying_suffix_, ddns_replace_client_name_mode_, ddns_send_updates_, ddns_ttl_, ddns_ttl_max_, ddns_ttl_min_, ddns_ttl_percent_, ddns_update_on_renew_, default_allocator_type_, hostname_char_replacement_, hostname_char_set_, iface_name_, reservations_global_, reservations_in_subnet_, reservations_out_of_pool_, store_extended_info_, t1_, t1_percent_, t2_, t2_percent_, and valid_.

Referenced by isc::dhcp::Network4::Network4(), and isc::dhcp::Network6::Network6().

## ◆ ~Network()

virtual isc::dhcp::Network::~Network | ( |  | ) |
| inlinevirtual

Virtual destructor.

Does nothing at the moment.

Definition at line 231 of file network.h.

## Member Function Documentation

## ◆ addAdditionalClass()

void isc::dhcp::Network::addAdditionalClass | ( | const isc::dhcp::ClientClass & | class_name | ) |

Adds class class_name to the additional classes list.

Parameters

  class_name | client class to add

Definition at line 86 of file network.cc.

References additional_classes_.

Referenced by isc::dhcp::Subnet4ConfigParser::initSubnet(), isc::dhcp::Subnet6ConfigParser::initSubnet(), isc::dhcp::SharedNetwork4Parser::parse(), and isc::dhcp::SharedNetwork6Parser::parse().

## ◆ addRelayAddress()

void isc::dhcp::Network::addRelayAddress | ( | const asiolink::IOAddress & | addr | ) |

Adds an address to the list addresses in the network's relay info.

Parameters

  addr | address of the relay

Exceptions

  BadValue | if the address is already in the list

Definition at line 49 of file network.cc.

References relay_.

## ◆ allowClientClass()

void isc::dhcp::Network::allowClientClass | ( | const isc::dhcp::ClientClass & | class_name | ) |

Adds class clas_name to the allowed client classes list.

Parameters

  class_name | client class to be supported by this network

Definition at line 79 of file network.cc.

References client_classes_.

Referenced by isc::dhcp::Subnet4ConfigParser::initSubnet(), isc::dhcp::Subnet6ConfigParser::initSubnet(), isc::dhcp::SharedNetwork4Parser::parse(), and isc::dhcp::SharedNetwork6Parser::parse().

## ◆ clientSupported()

bool isc::dhcp::Network::clientSupported | ( | const isc::dhcp::ClientClasses & | client_classes | ) | const
| virtual

Checks whether this network supports a client that belongs to the specified classes.

This method checks whether a client that belongs to given classes can use this network. For example, if this class is reserved for client class "foo" and the client belongs to classes "foo", "bar" and "baz", it is supported. On the other hand, client belonging to classes "foobar" and "zyxxy" is not supported.

Parameters

  client_classes | list of all classes the client belongs to

Returns
  true if client can be supported, false otherwise

Reimplemented in isc::dhcp::Subnet4, and isc::dhcp::Subnet6.

Definition at line 69 of file network.cc.

References client_classes_.

Referenced by isc::dhcp::Subnet4::clientSupported(), and isc::dhcp::Subnet6::clientSupported().

## ◆ getAdaptiveLeaseTimeThreshold()

util::Optional< double > isc::dhcp::Network::getAdaptiveLeaseTimeThreshold | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns percentage of the adaptive lease time threshold,.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 902 of file network.h.

References isc::dhcp::CfgGlobals::ADAPTIVE_LEASE_TIME_THRESHOLD, adaptive_lease_time_threshold_, ALL, getAdaptiveLeaseTimeThreshold(), and getProperty().

Referenced by getAdaptiveLeaseTimeThreshold().

Here is the call graph for this function:

## ◆ getAdditionalClasses()

const ClientClasses & isc::dhcp::Network::getAdditionalClasses | ( |  | ) | const
| inline

Returns the additional classes list.

Definition at line 367 of file network.h.

References additional_classes_.

## ◆ getAllocatorType()

util::Optional< std::string > isc::dhcp::Network::getAllocatorType | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns allocator type.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 860 of file network.h.

References ALL, isc::dhcp::CfgGlobals::ALLOCATOR, allocator_type_, getAllocatorType(), and getProperty().

Referenced by isc::dhcp::Subnet4::createAllocators(), isc::dhcp::Subnet6::createAllocators(), and getAllocatorType().

Here is the call graph for this function:

## ◆ getCacheMaxAge()

util::Optional< uint32_t > isc::dhcp::Network::getCacheMaxAge | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns value in seconds to use as cache maximum age.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 809 of file network.h.

References ALL, isc::dhcp::CfgGlobals::CACHE_MAX_AGE, cache_max_age_, getCacheMaxAge(), and getProperty().

Referenced by getCacheMaxAge().

Here is the call graph for this function:

## ◆ getCacheThreshold()

util::Optional< double > isc::dhcp::Network::getCacheThreshold | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns percentage to use as cache threshold.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 792 of file network.h.

References ALL, isc::dhcp::CfgGlobals::CACHE_THRESHOLD, cache_threshold_, getCacheThreshold(), and getProperty().

Referenced by getCacheThreshold().

Here is the call graph for this function:

## ◆ getCalculateTeeTimes()

util::Optional< bool > isc::dhcp::Network::getCalculateTeeTimes | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns whether or not T1/T2 calculation is enabled.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 492 of file network.h.

References ALL, isc::dhcp::CfgGlobals::CALCULATE_TEE_TIMES, calculate_tee_times_, getCalculateTeeTimes(), and getProperty().

Referenced by getCalculateTeeTimes().

Here is the call graph for this function:

## ◆ getCfgOption() [1/2]

CfgOptionPtr isc::dhcp::Network::getCfgOption | ( |  | ) |
| inline

Returns pointer to the option data configuration for this network.

Definition at line 478 of file network.h.

References cfg_option_.

Referenced by toElement().

## ◆ getCfgOption() [2/2]

ConstCfgOptionPtr isc::dhcp::Network::getCfgOption | ( |  | ) | const
| inline

Returns const pointer to the option data configuration for this network.

Definition at line 484 of file network.h.

References cfg_option_.

## ◆ getClientClasses()

const ClientClasses & isc::dhcp::Network::getClientClasses | ( |  | ) | const
| inline

Returns the list of allowed client classes.

Definition at line 352 of file network.h.

References client_classes_.

## ◆ getDdnsConflictResolutionMode()

util::Optional< std::string > isc::dhcp::Network::getDdnsConflictResolutionMode | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns ddns-conflict-resolution-mode.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 842 of file network.h.

References ALL, isc::dhcp::CfgGlobals::DDNS_CONFLICT_RESOLUTION_MODE, ddns_conflict_resolution_mode_, getDdnsConflictResolutionMode(), and getProperty().

Referenced by getDdnsConflictResolutionMode().

Here is the call graph for this function:

## ◆ getDdnsGeneratedPrefix()

util::Optional< std::string > isc::dhcp::Network::getDdnsGeneratedPrefix | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns ddns-generated-prefix.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 640 of file network.h.

References ALL, isc::dhcp::CfgGlobals::DDNS_GENERATED_PREFIX, ddns_generated_prefix_, getDdnsGeneratedPrefix(), and getProperty().

Referenced by getDdnsGeneratedPrefix().

Here is the call graph for this function:

## ◆ getDdnsOverrideClientUpdate()

util::Optional< bool > isc::dhcp::Network::getDdnsOverrideClientUpdate | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns ddns-override-client-update.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 576 of file network.h.

References ALL, isc::dhcp::CfgGlobals::DDNS_OVERRIDE_CLIENT_UPDATE, ddns_override_client_update_, getDdnsOverrideClientUpdate(), and getProperty().

Referenced by getDdnsOverrideClientUpdate().

Here is the call graph for this function:

## ◆ getDdnsOverrideNoUpdate()

util::Optional< bool > isc::dhcp::Network::getDdnsOverrideNoUpdate | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns ddns-override-no-update.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 559 of file network.h.

References ALL, isc::dhcp::CfgGlobals::DDNS_OVERRIDE_NO_UPDATE, ddns_override_no_update_, getDdnsOverrideNoUpdate(), and getProperty().

Referenced by getDdnsOverrideNoUpdate().

Here is the call graph for this function:

## ◆ getDdnsQualifyingSuffix()

util::Optional< std::string > isc::dhcp::Network::getDdnsQualifyingSuffix | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns ddns-qualifying-suffix.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 657 of file network.h.

References ALL, isc::dhcp::CfgGlobals::DDNS_QUALIFYING_SUFFIX, ddns_qualifying_suffix_, getDdnsQualifyingSuffix(), and getProperty().

Referenced by getDdnsQualifyingSuffix().

Here is the call graph for this function:

## ◆ getDdnsReplaceClientNameMode()

util::Optional< D2ClientConfig::ReplaceClientNameMode > isc::dhcp::Network::getDdnsReplaceClientNameMode | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns ddns-replace-client-name-mode.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 594 of file network.h.

References ALL, isc::dhcp::CfgGlobals::DDNS_REPLACE_CLIENT_NAME, ddns_replace_client_name_mode_, isc::util::Optional< T >::get(), getDdnsReplaceClientNameMode(), getGlobalProperty(), getProperty(), NONE, PARENT_NETWORK, isc::dhcp::D2ClientConfig::stringToReplaceClientNameMode(), and isc::util::Optional< T >::unspecified().

Referenced by getDdnsReplaceClientNameMode().

Here is the call graph for this function:

## ◆ getDdnsSendUpdates()

util::Optional< bool > isc::dhcp::Network::getDdnsSendUpdates | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns ddns-send-updates.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 542 of file network.h.

References ALL, isc::dhcp::CfgGlobals::DDNS_SEND_UPDATES, ddns_send_updates_, getDdnsSendUpdates(), and getProperty().

Referenced by getDdnsSendUpdates().

Here is the call graph for this function:

## ◆ getDdnsTtl()

util::Optional< uint32_t > isc::dhcp::Network::getDdnsTtl | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns ddns-ttl.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 692 of file network.h.

References ALL, isc::dhcp::CfgGlobals::DDNS_TTL, ddns_ttl_, getDdnsTtl(), and getProperty().

Referenced by getDdnsTtl().

Here is the call graph for this function:

## ◆ getDdnsTtlMax()

util::Optional< uint32_t > isc::dhcp::Network::getDdnsTtlMax | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns ddns-ttl-max.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 727 of file network.h.

References ALL, isc::dhcp::CfgGlobals::DDNS_TTL_MAX, ddns_ttl_max_, getDdnsTtlMax(), and getProperty().

Referenced by getDdnsTtlMax().

Here is the call graph for this function:

## ◆ getDdnsTtlMin()

util::Optional< uint32_t > isc::dhcp::Network::getDdnsTtlMin | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns ddns-ttl-min.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 710 of file network.h.

References ALL, isc::dhcp::CfgGlobals::DDNS_TTL_MIN, ddns_ttl_min_, getDdnsTtlMin(), and getProperty().

Referenced by getDdnsTtlMin().

Here is the call graph for this function:

## ◆ getDdnsTtlPercent()

util::Optional< double > isc::dhcp::Network::getDdnsTtlPercent | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns ddns-ttl-percent.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 674 of file network.h.

References ALL, isc::dhcp::CfgGlobals::DDNS_TTL_PERCENT, ddns_ttl_percent_, getDdnsTtlPercent(), and getProperty().

Referenced by getDdnsTtlPercent().

Here is the call graph for this function:

## ◆ getDdnsUpdateOnRenew()

util::Optional< bool > isc::dhcp::Network::getDdnsUpdateOnRenew | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns ddns-update-on-renew.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 825 of file network.h.

References ALL, isc::dhcp::CfgGlobals::DDNS_UPDATE_ON_RENEW, ddns_update_on_renew_, getDdnsUpdateOnRenew(), and getProperty().

Referenced by getDdnsUpdateOnRenew().

Here is the call graph for this function:

## ◆ getDefaultAllocatorType()

util::Optional< std::string > isc::dhcp::Network::getDefaultAllocatorType | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns a default allocator type.

This allocator type is used when the allocator type is neither specified at the shared network nor subnet level.

Returns
  an allocator type as a string.

Definition at line 885 of file network.h.

References ALL, default_allocator_type_, getDefaultAllocatorType(), and getProperty().

Referenced by isc::dhcp::Subnet4::createAllocators(), isc::dhcp::Subnet6::createAllocators(), and getDefaultAllocatorType().

Here is the call graph for this function:

## ◆ getFetchGlobalsFn()

FetchNetworkGlobalsFn isc::dhcp::Network::getFetchGlobalsFn | ( |  | ) | const
| inlineprotected

Gets the optional callback function used to fetch globally configured parameters.

Returns
  Pointer to the function.

Definition at line 935 of file network.h.

References fetch_globals_fn_.

## ◆ getGlobalProperty() [1/3]

template<typename NumType>

isc::util::Triplet< NumType > isc::dhcp::Network::getGlobalProperty | ( | isc::util::Triplet< NumType > | property,
|  | const int | global_index,
|  | const int | min_index = -1,
|  | const int | max_index = -1 ) const
| inlineprotected

The `getGlobalProperty` specialization for isc::util::Triplet<T>.

Note
  : use overloading vs specialization because full specialization is not allowed in this scope.

Template Parameters

  NumType | Type of the encapsulated value(s).

Parameters

  property | Value to be returned when it is specified or when no global value is found.
  global_index | Index of the global parameter which value should be returned
  min_index | Index of the min global parameter which value should be returned for triplets
  max_index | Index of the max global parameter which value should be returned for triplets

Returns
  Optional value fetched from the global level or the value of `property`.

Definition at line 1004 of file network.h.

References fetch_globals_fn_.

## ◆ getGlobalProperty() [2/3]

template<typename ReturnType>

ReturnType isc::dhcp::Network::getGlobalProperty | ( | ReturnType | property,
|  | const int | global_index,
|  | const int | min_index = -1,
|  | const int | max_index = -1 ) const
| inlineprotected

Returns a value of global configuration parameter with a given index.

If the `ferch_globals_fn_` function is non-null, this method will invoke this function to retrieve a global value having the given index. Typically, this method is invoked by `getProperty` when network specific value of the parameter is not found. In some cases it may be called by other methods. One such example is the `getDdnsReplaceClientNameMode` which needs to call `getGlobalProperty` explicitly to convert the global replace client name mode value from a string to an enum.

Template Parameters

  ReturnType | Type of the returned value, e.g. `Optional<std::string>`.

Parameters

  property | Value to be returned when it is specified or when no global value is found.
  global_index | Index of the global parameter which value should be returned
  min_index | Index of the min global parameter which value should be returned for triplets
  max_index | Index of the max global parameter which value should be returned for triplets

Returns
  Optional value fetched from the global level or the value of `property`.

Definition at line 966 of file network.h.

References fetch_globals_fn_.

Referenced by getDdnsReplaceClientNameMode(), and getProperty().

## ◆ getGlobalProperty() [3/3]

Optional< IOAddress > isc::dhcp::Network::getGlobalProperty | ( | util::Optional< asiolink::IOAddress > | property,
|  | const int | global_index,
|  | const int | min_index = -1,
|  | const int | max_index = -1 ) const
| protected

The `getGlobalProperty` specialization for Optional<IOAddress>.

This does two things:

- uses the string value of the parameter
- falls back when the value is empty

Note
  : use overloading vs specialization because full specialization is not allowed in this scope.

Parameters

  property | Value to be returned when it is specified or when no global value is found.
  global_index | Index of the global parameter which value should be returned
  min_index | Index of the min global parameter which value should be returned for triplets
  max_index | Index of the max global parameter which value should be returned for triplets

Returns
  Optional value fetched from the global level or the value of `property`.

Definition at line 93 of file network.cc.

References fetch_globals_fn_.

## ◆ getHostnameCharReplacement()

util::Optional< std::string > isc::dhcp::Network::getHostnameCharReplacement | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Return the invalid char replacement used to sanitize client hostnames.

Definition at line 757 of file network.h.

References ALL, getHostnameCharReplacement(), getProperty(), isc::dhcp::CfgGlobals::HOSTNAME_CHAR_REPLACEMENT, and hostname_char_replacement_.

Referenced by getHostnameCharReplacement().

Here is the call graph for this function:

## ◆ getHostnameCharSet()

util::Optional< std::string > isc::dhcp::Network::getHostnameCharSet | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Return the char set regexp used to sanitize client hostnames.

Definition at line 742 of file network.h.

References ALL, getHostnameCharSet(), getProperty(), isc::dhcp::CfgGlobals::HOSTNAME_CHAR_SET, and hostname_char_set_.

Referenced by getHostnameCharSet().

Here is the call graph for this function:

## ◆ getIface()

util::Optional< std::string > isc::dhcp::Network::getIface | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns name of the local interface for which this network is selected.

Parameters

  inheritance | inheritance mode to be used.

Returns
  Interface name as optional text.

Definition at line 272 of file network.h.

References ALL, getIface(), getProperty(), and iface_name_.

Referenced by getIface().

Here is the call graph for this function:

## ◆ getLabel()

virtual std::string isc::dhcp::Network::getLabel | ( |  | ) | const
| inlinevirtual

Generates an identifying label for logging.

Returns
  string containing the label

Reimplemented in isc::dhcp::SharedNetwork4, isc::dhcp::SharedNetwork6, and isc::dhcp::Subnet.

Definition at line 925 of file network.h.

## ◆ getMutableAdditionalClasses()

ClientClasses & isc::dhcp::Network::getMutableAdditionalClasses | ( |  | ) |
| inline

Returns the mutable additional classes list.

Definition at line 372 of file network.h.

References additional_classes_.

## ◆ getMutableClientClasses()

ClientClasses & isc::dhcp::Network::getMutableClientClasses | ( |  | ) |
| inline

Returns the mutable list of allowed client classes.

Definition at line 357 of file network.h.

References client_classes_.

## ◆ getOptionProperty()

template<typename BaseType>

OptionPtr isc::dhcp::Network::getOptionProperty | ( | OptionPtr(BaseType::* | MethodPointer )(const Inheritance &inheritance) const,
|  | OptionPtr | property,
|  | const Inheritance & | inheritance ) const
| inlineprotected

Returns option pointer associated with a network using inheritance.

This template method provides a generic mechanism to retrieve a network parameter using inheritance. It is called from public accessor methods which return an `OptionPtr`.

Template Parameters

  BaseType | Type of this instance, e.g. `Network`, `Network4` etc, which exposes a method to be called.

Parameters

  MethodPointer | Pointer to the method of the base class which should be called on the parent network instance (typically on `SharedNetwork4` or `SharedNetwork6`) to fetch the parent specific value if the value is unspecified for this instance.
  property | the value to return when inheritance mode is NONE, or when the mode is PARENT_NETWORK and the property has not been specified by a parent network.
  inheritance | inheritance mode to be used.

Returns
  Option pointer fetched from this instance level or parent network level.

Definition at line 1169 of file network.h.

References GLOBAL, NONE, PARENT_NETWORK, and parent_network_.

Referenced by isc::dhcp::Network6::getInterfaceId().

## ◆ getProperty()

template<typename BaseType, typename ReturnType>

ReturnType isc::dhcp::Network::getProperty | ( | ReturnType(BaseType::* | MethodPointer )(const Inheritance &) const,
|  | ReturnType | property,
|  | const Inheritance & | inheritance,
|  | const int | global_index = -1,
|  | const int | min_index = -1,
|  | const int | max_index = -1 ) const
| inlineprotected

Returns a value associated with a network using inheritance.

This template method provides a generic mechanism to retrieve a network parameter using inheritance. It is called from public accessor methods which return an `OptionalValue` or `isc::util::Triplet`.

Template Parameters

  BaseType | Type of this instance, e.g. `Network`, `Network4` etc, which exposes a method to be called.
  ReturnType | Type of the returned value, e.g. `Optional<std::string>`.

Parameters

  MethodPointer | Pointer to the method of the base class which should be called on the parent network instance (typically on `SharedNetwork4` or `SharedNetwork6`) to fetch the parent specific value if the value is unspecified for this instance.
  property | Value to be returned when it is specified or when no explicit value is specified on upper inheritance levels.
  inheritance | inheritance mode to be used.
  global_index | Optional index of the global parameter which value should be returned if the given parameter is not specified on network level. This value is empty by default, which indicates that the global value for the given parameter is not supported and shouldn't be fetched.
  min_index | Index of the min global parameter which value should be returned for triplets
  max_index | Index of the max global parameter which value should be returned for triplets

Returns
  Optional value fetched from this instance level, parent network level or global level

Definition at line 1093 of file network.h.

References getGlobalProperty(), GLOBAL, NONE, PARENT_NETWORK, and parent_network_.

Referenced by getAdaptiveLeaseTimeThreshold(), getAllocatorType(), isc::dhcp::Network4::getAuthoritative(), getCacheMaxAge(), getCacheThreshold(), getCalculateTeeTimes(), getDdnsConflictResolutionMode(), getDdnsGeneratedPrefix(), getDdnsOverrideClientUpdate(), getDdnsOverrideNoUpdate(), getDdnsQualifyingSuffix(), getDdnsReplaceClientNameMode(), getDdnsSendUpdates(), getDdnsTtl(), getDdnsTtlMax(), getDdnsTtlMin(), getDdnsTtlPercent(), getDdnsUpdateOnRenew(), getDefaultAllocatorType(), isc::dhcp::Network6::getDefaultPdAllocatorType(), isc::dhcp::Network4::getFilename(), getHostnameCharReplacement(), getHostnameCharSet(), getIface(), isc::dhcp::Network4::getMatchClientId(), isc::dhcp::Network4::getOfferLft(), isc::dhcp::Network6::getPdAllocatorType(), isc::dhcp::Network6::getPreferred(), isc::dhcp::Network6::getRapidCommit(), getReservationsGlobal(), getReservationsInSubnet(), getReservationsOutOfPool(), isc::dhcp::Network4::getSiaddr(), isc::dhcp::Network4::getSname(), getStoreExtendedInfo(), getT1(), getT1Percent(), getT2(), getT2Percent(), and getValid().

Here is the call graph for this function:

## ◆ getRelayAddresses()

const IOAddressList & isc::dhcp::Network::getRelayAddresses | ( |  | ) | const

Returns the list of relay addresses from the network's relay info.

Returns
  const reference to the list of addresses

Definition at line 64 of file network.cc.

References relay_.

Referenced by toElement().

## ◆ getRelayInfo()

const RelayInfo & isc::dhcp::Network::getRelayInfo | ( |  | ) | const
| inline

Returns const reference to relay information.

Note
  The returned reference is only valid as long as the object returned it is valid.

Returns
  const reference to the relay information

Definition at line 306 of file network.h.

References relay_.

## ◆ getReservationsGlobal()

util::Optional< bool > isc::dhcp::Network::getReservationsGlobal | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns whether global reservations should be fetched.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 427 of file network.h.

References ALL, getProperty(), getReservationsGlobal(), isc::dhcp::CfgGlobals::RESERVATIONS_GLOBAL, and reservations_global_.

Referenced by getReservationsGlobal().

Here is the call graph for this function:

## ◆ getReservationsInSubnet()

util::Optional< bool > isc::dhcp::Network::getReservationsInSubnet | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns whether subnet reservations should be fetched.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 445 of file network.h.

References ALL, getProperty(), getReservationsInSubnet(), isc::dhcp::CfgGlobals::RESERVATIONS_IN_SUBNET, and reservations_in_subnet_.

Referenced by getReservationsInSubnet().

Here is the call graph for this function:

## ◆ getReservationsOutOfPool()

util::Optional< bool > isc::dhcp::Network::getReservationsOutOfPool | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns whether only out-of-pool reservations are allowed.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 463 of file network.h.

References ALL, getProperty(), getReservationsOutOfPool(), isc::dhcp::CfgGlobals::RESERVATIONS_OUT_OF_POOL, and reservations_out_of_pool_.

Referenced by getReservationsOutOfPool().

Here is the call graph for this function:

## ◆ getStoreExtendedInfo()

util::Optional< bool > isc::dhcp::Network::getStoreExtendedInfo | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns store-extended-info.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 775 of file network.h.

References ALL, getProperty(), getStoreExtendedInfo(), isc::dhcp::CfgGlobals::STORE_EXTENDED_INFO, and store_extended_info_.

Referenced by getStoreExtendedInfo().

Here is the call graph for this function:

## ◆ getT1()

isc::util::Triplet< uint32_t > isc::dhcp::Network::getT1 | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns T1 (renew timer), expressed in seconds.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 396 of file network.h.

References ALL, getProperty(), getT1(), isc::dhcp::CfgGlobals::RENEW_TIMER, and t1_.

Referenced by getT1().

Here is the call graph for this function:

## ◆ getT1Percent()

util::Optional< double > isc::dhcp::Network::getT1Percent | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns percentage to use when calculating the T1 (renew timer).

Parameters

  inheritance | inheritance mode to be used.

Definition at line 510 of file network.h.

References ALL, getProperty(), getT1Percent(), isc::dhcp::CfgGlobals::T1_PERCENT, and t1_percent_.

Referenced by getT1Percent().

Here is the call graph for this function:

## ◆ getT2()

isc::util::Triplet< uint32_t > isc::dhcp::Network::getT2 | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns T2 (rebind timer), expressed in seconds.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 411 of file network.h.

References ALL, getProperty(), getT2(), isc::dhcp::CfgGlobals::REBIND_TIMER, and t2_.

Referenced by getT2().

Here is the call graph for this function:

## ◆ getT2Percent()

util::Optional< double > isc::dhcp::Network::getT2Percent | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Returns percentage to use when calculating the T2 (rebind timer).

Parameters

  inheritance | inheritance mode to be used.

Definition at line 526 of file network.h.

References ALL, getProperty(), getT2Percent(), isc::dhcp::CfgGlobals::T2_PERCENT, and t2_percent_.

Referenced by getT2Percent().

Here is the call graph for this function:

## ◆ getValid()

isc::util::Triplet< uint32_t > isc::dhcp::Network::getValid | ( | const Inheritance & | inheritance = Inheritance::ALL | ) | const
| inline

Return valid-lifetime for addresses in that prefix.

Parameters

  inheritance | inheritance mode to be used.

Definition at line 379 of file network.h.

References ALL, getProperty(), getValid(), isc::dhcp::CfgGlobals::MAX_VALID_LIFETIME, isc::dhcp::CfgGlobals::MIN_VALID_LIFETIME, valid_, and isc::dhcp::CfgGlobals::VALID_LIFETIME.

Referenced by getValid().

Here is the call graph for this function:

## ◆ hasFetchGlobalsFn()

bool isc::dhcp::Network::hasFetchGlobalsFn | ( |  | ) | const
| inline

Checks if the network is associated with a function used to fetch globally configured parameters.

Returns
  true if it is associated, false otherwise.

Definition at line 245 of file network.h.

References fetch_globals_fn_.

## ◆ hasRelayAddress()

bool isc::dhcp::Network::hasRelayAddress | ( | const asiolink::IOAddress & | address | ) | const

Tests if the network's relay info contains the given address.

Parameters

  address | address to search for in the relay list

Returns
  True if a relay with the given address is found, false otherwise

Definition at line 59 of file network.cc.

References relay_.

## ◆ hasRelays()

bool isc::dhcp::Network::hasRelays | ( |  | ) | const

Indicates if network's relay info has relay addresses.

Returns
  True the relay list is not empty, false otherwise

Definition at line 54 of file network.cc.

References relay_.

## ◆ setAdaptiveLeaseTimeThreshold()

void isc::dhcp::Network::setAdaptiveLeaseTimeThreshold | ( | const util::Optional< double > & | adaptive_lease_time_threshold | ) |
| inline

Sets new percentage of the adaptive lease time threshold.

Parameters

  adaptive_lease_time_threshold | New percentage to use.

Definition at line 912 of file network.h.

References adaptive_lease_time_threshold_.

## ◆ setAllocatorType()

void isc::dhcp::Network::setAllocatorType | ( | const util::Optional< std::string > & | allocator_type | ) |
| inline

Sets new allocator type.

It doesn't set the actual allocator instance. It merely remembers the value specified in the configuration, so it can be output in the `toElement` call.

Parameters

  allocator_type | new allocator type to use.

Definition at line 874 of file network.h.

References allocator_type_.

## ◆ setCacheMaxAge()

void isc::dhcp::Network::setCacheMaxAge | ( | const util::Optional< uint32_t > & | cache_max_age | ) |
| inline

Sets cache max for a network.

Parameters

  cache_max_age | New cache maximum value in seconds to use.

Definition at line 817 of file network.h.

References cache_max_age_.

## ◆ setCacheThreshold()

void isc::dhcp::Network::setCacheThreshold | ( | const util::Optional< double > & | cache_threshold | ) |
| inline

Sets cache threshold for a network.

Parameters

  cache_threshold | New cache threshold percentage to use.

Definition at line 801 of file network.h.

References cache_threshold_.

## ◆ setCalculateTeeTimes()

void isc::dhcp::Network::setCalculateTeeTimes | ( | const util::Optional< bool > & | calculate_tee_times | ) |
| inline

Sets whether or not T1/T2 calculation is enabled.

Parameters

  calculate_tee_times | new value of enabled/disabled.

Definition at line 502 of file network.h.

References calculate_tee_times_.

## ◆ setDdnsConflictResolutionMode()

void isc::dhcp::Network::setDdnsConflictResolutionMode | ( | const util::Optional< std::string > & | ddns_conflict_resolution_mode | ) |
| inline

Sets new ddns-conflict-resolution-mode.

Parameters

  ddns_conflict_resolution_mode | New value to use.

Definition at line 852 of file network.h.

References ddns_conflict_resolution_mode_.

## ◆ setDdnsGeneratedPrefix()

void isc::dhcp::Network::setDdnsGeneratedPrefix | ( | const util::Optional< std::string > & | ddns_generated_prefix | ) |
| inline

Sets new ddns-generated-prefix.

Parameters

  ddns_generated_prefix | New value to use.

Definition at line 649 of file network.h.

References ddns_generated_prefix_.

## ◆ setDdnsOverrideClientUpdate()

void isc::dhcp::Network::setDdnsOverrideClientUpdate | ( | const util::Optional< bool > & | ddns_override_client_update | ) |
| inline

Sets new ddns-override-client-update.

Parameters

  ddns_override_client_update | New value to use.

Definition at line 585 of file network.h.

References ddns_override_client_update_.

## ◆ setDdnsOverrideNoUpdate()

void isc::dhcp::Network::setDdnsOverrideNoUpdate | ( | const util::Optional< bool > & | ddns_override_no_update | ) |
| inline

Sets new ddns-override-no-update.

Parameters

  ddns_override_no_update | New value to use.

Definition at line 568 of file network.h.

References ddns_override_no_update_.

## ◆ setDdnsQualifyingSuffix()

void isc::dhcp::Network::setDdnsQualifyingSuffix | ( | const util::Optional< std::string > & | ddns_qualifying_suffix | ) |
| inline

Sets new ddns-qualifying-suffix.

Parameters

  ddns_qualifying_suffix | New value to use.

Definition at line 666 of file network.h.

References ddns_qualifying_suffix_.

## ◆ setDdnsReplaceClientNameMode()

void isc::dhcp::Network::setDdnsReplaceClientNameMode | ( | const util::Optional< D2ClientConfig::ReplaceClientNameMode > & | ddns_replace_client_name_mode | ) |
| inline

Sets new ddns-replace-client-name-mode.

Parameters

  ddns_replace_client_name_mode | New value to use.

Definition at line 631 of file network.h.

References ddns_replace_client_name_mode_.

## ◆ setDdnsSendUpdates()

void isc::dhcp::Network::setDdnsSendUpdates | ( | const util::Optional< bool > & | ddns_send_updates | ) |
| inline

Sets new ddns-send-updates.

Parameters

  ddns_send_updates | New value to use.

Definition at line 551 of file network.h.

References ddns_send_updates_.

## ◆ setDdnsTtl()

void isc::dhcp::Network::setDdnsTtl | ( | const util::Optional< uint32_t > & | ddns_ttl | ) |
| inline

Sets new ddns-ttl.

Parameters

  ddns_ttl | New value to use.

Definition at line 701 of file network.h.

References ddns_ttl_.

## ◆ setDdnsTtlMax()

void isc::dhcp::Network::setDdnsTtlMax | ( | const util::Optional< uint32_t > & | ddns_ttl_max | ) |
| inline

Sets new ddns-ttl-max.

Parameters

  ddns_ttl_max | New value to use.

Definition at line 736 of file network.h.

References ddns_ttl_max_.

## ◆ setDdnsTtlMin()

void isc::dhcp::Network::setDdnsTtlMin | ( | const util::Optional< uint32_t > & | ddns_ttl_min | ) |
| inline

Sets new ddns-ttl-min.

Parameters

  ddns_ttl_min | New value to use.

Definition at line 719 of file network.h.

References ddns_ttl_min_.

## ◆ setDdnsTtlPercent()

void isc::dhcp::Network::setDdnsTtlPercent | ( | const util::Optional< double > & | ddns_ttl_percent | ) |
| inline

Sets new ddns-ttl-percent.

Parameters

  ddns_ttl_percent | New value to use.

Definition at line 683 of file network.h.

References ddns_ttl_percent_.

## ◆ setDdnsUpdateOnRenew()

void isc::dhcp::Network::setDdnsUpdateOnRenew | ( | const util::Optional< bool > & | ddns_update_on_renew | ) |
| inline

Sets new ddns-update-on-renew.

Parameters

  ddns_update_on_renew | New value to use.

Definition at line 834 of file network.h.

References ddns_update_on_renew_.

## ◆ setDefaultAllocatorType()

void isc::dhcp::Network::setDefaultAllocatorType | ( | const std::string & | allocator_type | ) |
| inline

Sets a default allocator type.

Parameters

  allocator_type | a new default allocator type.

Definition at line 894 of file network.h.

References default_allocator_type_.

## ◆ setFetchGlobalsFn()

void isc::dhcp::Network::setFetchGlobalsFn | ( | FetchNetworkGlobalsFn | fetch_globals_fn | ) |
| inline

Sets the optional callback function used to fetch globally configured parameters.

Parameters

  fetch_globals_fn | Pointer to the function.

Definition at line 237 of file network.h.

References fetch_globals_fn_.

## ◆ setHostnameCharReplacement()

void isc::dhcp::Network::setHostnameCharReplacement | ( | const util::Optional< std::string > & | hostname_char_replacement | ) |
| inline

Sets new hostname-char-replacement.

Parameters

  hostname_char_replacement | New value to use.

Definition at line 766 of file network.h.

References hostname_char_replacement_.

## ◆ setHostnameCharSet()

void isc::dhcp::Network::setHostnameCharSet | ( | const util::Optional< std::string > & | hostname_char_set | ) |
| inline

Sets new hostname-char-set.

Parameters

  hostname_char_set | New value to use.

Definition at line 751 of file network.h.

References hostname_char_set_.

## ◆ setIface()

void isc::dhcp::Network::setIface | ( | const util::Optional< std::string > & | iface_name | ) |
| inline

Sets local name of the interface for which this network is selected.

If the interface is specified, the server will use the network associated with this local interface to allocate IP addresses and other resources to a client. Empty values are translated into unspecified.

Parameters

  iface_name | Interface name.

Definition at line 258 of file network.h.

References isc::util::Optional< T >::empty(), and iface_name_.

Here is the call graph for this function:

## ◆ setRelayInfo()

void isc::dhcp::Network::setRelayInfo | ( | const RelayInfo & | relay | ) |
| inline

Sets information about relay.

In some situations where there are shared subnets (i.e. two different subnets are available on the same physical link), there is only one relay that handles incoming requests from clients. In such a case, the usual subnet selection criteria based on relay belonging to the subnet being selected are no longer sufficient and we need to explicitly specify a relay. One notable example of such uncommon, but valid scenario is a cable network, where there is only one CMTS (one relay), but there are 2 distinct subnets behind it: one for cable modems and another one for CPEs and other user equipment behind modems. From manageability perspective, it is essential that modems get addresses from different subnet, so users won't tinker with their modems.

Setting this parameter is not needed in most deployments. This structure holds IP address only for now, but it is expected to be extended in the future.

Parameters

  relay | structure that contains relay information

Definition at line 296 of file network.h.

References relay_.

## ◆ setReservationsGlobal()

void isc::dhcp::Network::setReservationsGlobal | ( | const util::Optional< bool > & | reservations_global | ) |
| inline

Sets whether global reservations should be fetched.

Parameters

  reservations_global | new value of enabled/disabled.

Definition at line 437 of file network.h.

References reservations_global_.

## ◆ setReservationsInSubnet()

void isc::dhcp::Network::setReservationsInSubnet | ( | const util::Optional< bool > & | reservations_in_subnet | ) |
| inline

Sets whether subnet reservations should be fetched.

Parameters

  reservations_in_subnet | new value of enabled/disabled.

Definition at line 455 of file network.h.

References reservations_in_subnet_.

## ◆ setReservationsOutOfPool()

void isc::dhcp::Network::setReservationsOutOfPool | ( | const util::Optional< bool > & | reservations_out_of_pool | ) |
| inline

Sets whether only out-of-pool reservations are allowed.

Parameters

  reservations_out_of_pool | new value of enabled/disabled.

Definition at line 473 of file network.h.

References reservations_out_of_pool_.

## ◆ setStoreExtendedInfo()

void isc::dhcp::Network::setStoreExtendedInfo | ( | const util::Optional< bool > & | store_extended_info | ) |
| inline

Sets new store-extended-info.

Parameters

  store_extended_info | New value to use.

Definition at line 784 of file network.h.

References store_extended_info_.

## ◆ setT1()

void isc::dhcp::Network::setT1 | ( | const isc::util::Triplet< uint32_t > & | t1 | ) |
| inline

Sets new renew timer for a network.

Parameters

  t1 | New renew timer value in seconds.

Definition at line 404 of file network.h.

References t1_.

Referenced by isc::dhcp::Subnet4::Subnet4(), and isc::dhcp::Subnet6::Subnet6().

## ◆ setT1Percent()

void isc::dhcp::Network::setT1Percent | ( | const util::Optional< double > & | t1_percent | ) |
| inline

Sets new percentage for calculating T1 (renew timer).

Parameters

  t1_percent | New percentage to use.

Definition at line 518 of file network.h.

References t1_percent_.

## ◆ setT2()

void isc::dhcp::Network::setT2 | ( | const isc::util::Triplet< uint32_t > & | t2 | ) |
| inline

Sets new rebind timer for a network.

Parameters

  t2 | New rebind timer value in seconds.

Definition at line 419 of file network.h.

References t2_.

Referenced by isc::dhcp::Subnet4::Subnet4(), and isc::dhcp::Subnet6::Subnet6().

## ◆ setT2Percent()

void isc::dhcp::Network::setT2Percent | ( | const util::Optional< double > & | t2_percent | ) |
| inline

Sets new percentage for calculating T2 (rebind timer).

Parameters

  t2_percent | New percentage to use.

Definition at line 534 of file network.h.

References t2_percent_.

## ◆ setValid()

void isc::dhcp::Network::setValid | ( | const isc::util::Triplet< uint32_t > & | valid | ) |
| inline

Sets new valid lifetime for a network.

Parameters

  valid | New valid lifetime in seconds.

Definition at line 389 of file network.h.

References valid_.

Referenced by isc::dhcp::Subnet4::Subnet4(), and isc::dhcp::Subnet6::Subnet6().

## ◆ toElement()

ElementPtr isc::dhcp::Network::toElement | ( |  | ) | const
| virtual

Unparses network object.

Returns
  A pointer to unparsed network configuration.

Implements isc::data::CfgToElement.

Reimplemented in isc::dhcp::Network4, isc::dhcp::Network6, isc::dhcp::SharedNetwork4, isc::dhcp::SharedNetwork6, isc::dhcp::Subnet4, isc::dhcp::Subnet6, and isc::dhcp::Subnet.

Definition at line 113 of file network.cc.

References adaptive_lease_time_threshold_, additional_classes_, allocator_type_, cache_max_age_, cache_threshold_, calculate_tee_times_, client_classes_, isc::data::UserContext::contextToElement(), isc::data::Element::create(), isc::data::Element::createList(), isc::data::Element::createMap(), ddns_conflict_resolution_mode_, ddns_generated_prefix_, ddns_override_client_update_, ddns_override_no_update_, ddns_qualifying_suffix_, ddns_replace_client_name_mode_, ddns_send_updates_, ddns_ttl_, ddns_ttl_max_, ddns_ttl_min_, ddns_ttl_percent_, ddns_update_on_renew_, getCfgOption(), getRelayAddresses(), hostname_char_replacement_, hostname_char_set_, iface_name_, reservations_global_, reservations_in_subnet_, reservations_out_of_pool_, store_extended_info_, t1_, t1_percent_, t2_, t2_percent_, and valid_.

Referenced by isc::dhcp::Network4::toElement(), and isc::dhcp::Network6::toElement().

Here is the call graph for this function:

## Member Data Documentation

## ◆ adaptive_lease_time_threshold_

util::Optional<double> isc::dhcp::Network::adaptive_lease_time_threshold_
| protected

Percentage of the adaptive lease time threshold.

(a lease assignment over the threshold will get minimal or remaining life times).

Definition at line 1334 of file network.h.

Referenced by Network(), getAdaptiveLeaseTimeThreshold(), setAdaptiveLeaseTimeThreshold(), and toElement().

## ◆ additional_classes_

ClientClasses isc::dhcp::Network::additional_classes_
| protected

Additional classes.

If the network is selected these classes will be evaluated against incoming packet after all other classification and the lease has been assigned.

Definition at line 1230 of file network.h.

Referenced by addAdditionalClass(), getAdditionalClasses(), getMutableAdditionalClasses(), and toElement().

## ◆ allocator_type_

util::Optional<std::string> isc::dhcp::Network::allocator_type_
| protected

Allocator used for IP address allocations.

Definition at line 1323 of file network.h.

Referenced by Network(), getAllocatorType(), setAllocatorType(), and toElement().

## ◆ cache_max_age_

util::Optional<uint32_t> isc::dhcp::Network::cache_max_age_
| protected

Value in seconds to use as cache maximal age.

Definition at line 1302 of file network.h.

Referenced by Network(), getCacheMaxAge(), setCacheMaxAge(), and toElement().

## ◆ cache_threshold_

util::Optional<double> isc::dhcp::Network::cache_threshold_
| protected

Percentage of the lease lifetime to use as cache threshold.

Definition at line 1299 of file network.h.

Referenced by Network(), getCacheThreshold(), setCacheThreshold(), and toElement().

## ◆ calculate_tee_times_

util::Optional<bool> isc::dhcp::Network::calculate_tee_times_
| protected

Enables calculation of T1 and T2 timers.

Definition at line 1258 of file network.h.

Referenced by Network(), getCalculateTeeTimes(), setCalculateTeeTimes(), and toElement().

## ◆ cfg_option_

CfgOptionPtr isc::dhcp::Network::cfg_option_
| protected

Pointer to the option data configuration for this subnet.

Definition at line 1255 of file network.h.

Referenced by Network(), getCfgOption(), getCfgOption(), and isc::dhcp::Network4::getServerId().

## ◆ client_classes_

ClientClasses isc::dhcp::Network::client_classes_
| protected

List of client classes allowed to use this network.

If not empty, only clients belonging to at least one of the classes in this list will be allowed to use this particular network. By default the list is empty which means that any client is allowed, regardless of its class membership.

Definition at line 1223 of file network.h.

Referenced by Network(), allowClientClass(), clientSupported(), getClientClasses(), getMutableClientClasses(), and toElement().

## ◆ ddns_conflict_resolution_mode_

util::Optional<std::string> isc::dhcp::Network::ddns_conflict_resolution_mode_
| protected

DDNS conflict resolution mode.

Definition at line 1308 of file network.h.

Referenced by Network(), getDdnsConflictResolutionMode(), setDdnsConflictResolutionMode(), and toElement().

## ◆ ddns_generated_prefix_

util::Optional<std::string> isc::dhcp::Network::ddns_generated_prefix_
| protected

Prefix Kea should use when generating domain-names.

Definition at line 1281 of file network.h.

Referenced by Network(), getDdnsGeneratedPrefix(), setDdnsGeneratedPrefix(), and toElement().

## ◆ ddns_override_client_update_

util::Optional<bool> isc::dhcp::Network::ddns_override_client_update_
| protected

Should Kea perform updates, even if client requested delegation.

Definition at line 1275 of file network.h.

Referenced by Network(), getDdnsOverrideClientUpdate(), setDdnsOverrideClientUpdate(), and toElement().

## ◆ ddns_override_no_update_

util::Optional<bool> isc::dhcp::Network::ddns_override_no_update_
| protected

Should Kea perform updates, even if client requested no updates.

Overrides the client request for no updates via the N flag.

Definition at line 1272 of file network.h.

Referenced by Network(), getDdnsOverrideNoUpdate(), setDdnsOverrideNoUpdate(), and toElement().

## ◆ ddns_qualifying_suffix_

util::Optional<std::string> isc::dhcp::Network::ddns_qualifying_suffix_
| protected

Suffix Kea should use when to qualify partial domain-names.

Definition at line 1284 of file network.h.

Referenced by Network(), getDdnsQualifyingSuffix(), setDdnsQualifyingSuffix(), and toElement().

## ◆ ddns_replace_client_name_mode_

util::Optional<D2ClientConfig::ReplaceClientNameMode> isc::dhcp::Network::ddns_replace_client_name_mode_
| protected

How Kea should handle the domain-name supplied by the client.

Definition at line 1278 of file network.h.

Referenced by Network(), getDdnsReplaceClientNameMode(), setDdnsReplaceClientNameMode(), and toElement().

## ◆ ddns_send_updates_

util::Optional<bool> isc::dhcp::Network::ddns_send_updates_
| protected

Should Kea perform DNS updates.

Used to provide scoped enabling and disabling of updates.

Definition at line 1268 of file network.h.

Referenced by Network(), getDdnsSendUpdates(), setDdnsSendUpdates(), and toElement().

## ◆ ddns_ttl_

util::Optional<uint32_t> isc::dhcp::Network::ddns_ttl_
| protected

Explicit value to use for DNS TTL.

Definition at line 1314 of file network.h.

Referenced by Network(), getDdnsTtl(), setDdnsTtl(), and toElement().

## ◆ ddns_ttl_max_

util::Optional<uint32_t> isc::dhcp::Network::ddns_ttl_max_
| protected

Maximum value to use for DNS TTL.

Definition at line 1320 of file network.h.

Referenced by Network(), getDdnsTtlMax(), setDdnsTtlMax(), and toElement().

## ◆ ddns_ttl_min_

util::Optional<uint32_t> isc::dhcp::Network::ddns_ttl_min_
| protected

Minimum value to use for DNS TTL.

Definition at line 1317 of file network.h.

Referenced by Network(), getDdnsTtlMin(), setDdnsTtlMin(), and toElement().

## ◆ ddns_ttl_percent_

util::Optional<double> isc::dhcp::Network::ddns_ttl_percent_
| protected

Percentage of the lease lifetime to use for DNS TTL.

Definition at line 1311 of file network.h.

Referenced by Network(), getDdnsTtlPercent(), setDdnsTtlPercent(), and toElement().

## ◆ ddns_update_on_renew_

util::Optional<bool> isc::dhcp::Network::ddns_update_on_renew_
| protected

Should Kea perform updates when leases are extended.

Definition at line 1305 of file network.h.

Referenced by Network(), getDdnsUpdateOnRenew(), setDdnsUpdateOnRenew(), and toElement().

## ◆ default_allocator_type_

util::Optional<std::string> isc::dhcp::Network::default_allocator_type_
| protected

Default allocator type.

This value is not configurable by the user. It is used by the configuration backend internally.

Definition at line 1329 of file network.h.

Referenced by Network(), getDefaultAllocatorType(), and setDefaultAllocatorType().

## ◆ fetch_globals_fn_

FetchNetworkGlobalsFn isc::dhcp::Network::fetch_globals_fn_
| protected

Pointer to the optional callback used to fetch globally configured parameters inherited to the `Network` object.

Definition at line 1346 of file network.h.

Referenced by getFetchGlobalsFn(), getGlobalProperty(), getGlobalProperty(), getGlobalProperty(), hasFetchGlobalsFn(), and setFetchGlobalsFn().

## ◆ hostname_char_replacement_

util::Optional<std::string> isc::dhcp::Network::hostname_char_replacement_
| protected

A string to replace invalid characters when scrubbing hostnames.

Meaningful only if hostname_char_set_ is not empty.

Definition at line 1292 of file network.h.

Referenced by Network(), getHostnameCharReplacement(), setHostnameCharReplacement(), and toElement().

## ◆ hostname_char_set_

util::Optional<std::string> isc::dhcp::Network::hostname_char_set_
| protected

Regular expression describing invalid characters for client hostnames.

Definition at line 1288 of file network.h.

Referenced by Network(), getHostnameCharSet(), setHostnameCharSet(), and toElement().

## ◆ iface_name_

util::Optional<std::string> isc::dhcp::Network::iface_name_
| protected

Holds interface name for which this network is selected.

Definition at line 1210 of file network.h.

Referenced by Network(), getIface(), setIface(), and toElement().

## ◆ parent_network_

WeakNetworkPtr isc::dhcp::Network::parent_network_
| protected

Pointer to another network that this network belongs to.

The most common case is that this instance is a subnet which belongs to a shared network and the `parent_network_` points to the shared network object. If the network instance (subnet) doesn't belong to a shared network this pointer is null.

Definition at line 1342 of file network.h.

Referenced by getOptionProperty(), getProperty(), isc::dhcp::Subnet::getSharedNetwork(), and isc::dhcp::Subnet::setSharedNetwork().

## ◆ relay_

RelayInfo isc::dhcp::Network::relay_
| protected

Relay information.

See RelayInfo for detailed description.

Definition at line 1215 of file network.h.

Referenced by addRelayAddress(), getRelayAddresses(), getRelayInfo(), hasRelayAddress(), hasRelays(), and setRelayInfo().

## ◆ reservations_global_

util::Optional<bool> isc::dhcp::Network::reservations_global_
| protected

Enables global reservations.

Definition at line 1242 of file network.h.

Referenced by Network(), getReservationsGlobal(), setReservationsGlobal(), and toElement().

## ◆ reservations_in_subnet_

util::Optional<bool> isc::dhcp::Network::reservations_in_subnet_
| protected

Enables subnet reservations.

Definition at line 1245 of file network.h.

Referenced by Network(), getReservationsInSubnet(), setReservationsInSubnet(), and toElement().

## ◆ reservations_out_of_pool_

util::Optional<bool> isc::dhcp::Network::reservations_out_of_pool_
| protected

Enables out-of-pool reservations optimization.

When true only out-of-pool reservations are allowed. This allows AllocEngine to skip reservation checks when dealing with addresses that are in pool.

Definition at line 1252 of file network.h.

Referenced by Network(), getReservationsOutOfPool(), setReservationsOutOfPool(), and toElement().

## ◆ store_extended_info_

util::Optional<bool> isc::dhcp::Network::store_extended_info_
| protected

Should Kea store additional client query data (e.g.

relay-agent-info) on the lease.

Definition at line 1296 of file network.h.

Referenced by Network(), getStoreExtendedInfo(), setStoreExtendedInfo(), and toElement().

## ◆ t1_

isc::util::Triplet<uint32_t> isc::dhcp::Network::t1_
| protected

a isc::util::Triplet (min/default/max) holding allowed renew timer values

Definition at line 1233 of file network.h.

Referenced by Network(), getT1(), setT1(), and toElement().

## ◆ t1_percent_

util::Optional<double> isc::dhcp::Network::t1_percent_
| protected

Percentage of the lease lifetime to use when calculating T1 timer.

Definition at line 1261 of file network.h.

Referenced by Network(), getT1Percent(), setT1Percent(), and toElement().

## ◆ t2_

isc::util::Triplet<uint32_t> isc::dhcp::Network::t2_
| protected

a isc::util::Triplet (min/default/max) holding allowed rebind timer values

Definition at line 1236 of file network.h.

Referenced by Network(), getT2(), setT2(), and toElement().

## ◆ t2_percent_

util::Optional<double> isc::dhcp::Network::t2_percent_
| protected

Percentage of the lease lifetime to use when calculating T2 timer.

Definition at line 1264 of file network.h.

Referenced by Network(), getT2Percent(), setT2Percent(), and toElement().

## ◆ valid_

isc::util::Triplet<uint32_t> isc::dhcp::Network::valid_
| protected

a isc::util::Triplet (min/default/max) holding allowed valid lifetime values

Definition at line 1239 of file network.h.

Referenced by Network(), getValid(), setValid(), and toElement().

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

- network.h
- network.cc