Kea: isc::dhcp::Lease Struct Reference

| Kea 3.2.0-git

isc::dhcp::Lease Struct Referenceabstract

a common structure for IPv4 and IPv6 leases More...

`#include <lease.h>`

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

## Public Types
enum | Type : uint16_t { TYPE_NA = 0 , TYPE_TA = 1 , TYPE_PD = 2 , TYPE_V4 = 3 }
| Type of lease or pool. More...

## Static Public Member Functions
static std::string | lifetimeToText (uint32_t lifetime)
| Print lifetime.
static Type | textToType (const std::string &text)
| Converts type name to the actual type.
static std::string | typeToText (Type type)
| returns text representation of a lease type
Static Public Member Functions inherited from isc::data::UserContext
static data::ElementPtr | toElement (data::ConstElementPtr map)
| Copy an Element map.

## Static Public Attributes
static const uint32_t | INFINITY_LFT = 0xffffffff
| Infinity (means static, i.e. never expire).

## Common lease states constants.
static constexpr uint32_t | STATE_DEFAULT = 0
| A lease in the default state.
static constexpr uint32_t | STATE_DECLINED = 1
| Declined lease.
static constexpr uint32_t | STATE_EXPIRED_RECLAIMED = 2
| Expired and reclaimed lease.
static constexpr uint32_t | STATE_RELEASED = 3
| Released lease held in the database for lease affinity.
static constexpr uint32_t | STATE_REGISTERED = 4
| Registered self-generated lease.
isc::asiolink::IOAddress | addr_
| IPv4 ot IPv6 address.
uint32_t | valid_lft_
| Valid lifetime.
uint32_t | current_valid_lft_
| Current valid lifetime.
uint32_t | reuseable_valid_lft_
| Remaining valid lifetime.
time_t | cltt_
| Client last transmission time.
time_t | current_cltt_
| Current client last transmission time.
SubnetID | subnet_id_
| Subnet identifier.
uint32_t | pool_id_
| The pool id.
std::string | hostname_
| Client hostname.
bool | fqdn_fwd_
| Forward zone updated?
bool | fqdn_rev_
| Reverse zone updated?
HWAddrPtr | hwaddr_
| Client's MAC/hardware address.
uint32_t | state_
| Holds the lease state(s).
static std::string | basicStatesToText (const uint32_t state)
| Returns name(s) of the basic lease state(s).
static void | syncCurrentExpirationTime (const Lease &from, Lease &to)
| Sync lease current expiration time with new value from another lease, so that additional operations can be done without performing extra read from the database.
| Lease (const isc::asiolink::IOAddress &addr, uint32_t valid_lft, SubnetID subnet_id, time_t cltt, const bool fqdn_fwd, const bool fqdn_rev, const std::string &hostname, const HWAddrPtr &hwaddr)
| Constructor.
virtual | ~Lease ()
| Destructor.
virtual Lease::Type | getType () const =0
| Returns Lease type.
virtual std::string | toText () const =0
| Convert Lease to Printable Form.
bool | expired () const
| returns true if the lease is expired
bool | stateExpiredReclaimed () const
| Indicates if the lease is in the "expired-reclaimed" state.
bool | stateDeclined () const
| Indicates if the lease is in the "declined" state.
bool | stateRegistered () const
| Indicates if the lease is in the "registered" state.
bool | hasIdenticalFqdn (const Lease &other) const
| Returns true if the other lease has equal FQDN data.
const std::vector< uint8_t > & | getHWAddrVector () const
| Returns raw (as vector) hardware address.
int64_t | getExpirationTime () const
| Returns lease expiration time.
virtual void | decline (uint32_t probation_period)=0
| Sets lease to DECLINED state.
void | updateCurrentExpirationTime ()
| Update lease current expiration time with new value, so that additional operations can be done without performing extra read from the database.
bool | updateUserContextISC (const std::string elem_name, data::ConstElementPtr new_values)
| Update the ISC entry in the lease's user-context.
virtual isc::data::ElementPtr | toElement () const=0
| Avoid a clang spurious error.
static void | fromElementCommon (const LeasePtr &lease, const data::ConstElementPtr &element)
| Sets common (for v4 and v6) properties of the lease object.

## Additional Inherited Members
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 Attributes inherited from isc::data::UserContext
data::ConstElementPtr | user_context_
| Pointer to the user context (may be NULL).

## Detailed Description

a common structure for IPv4 and IPv6 leases

This structure holds all information that is common between IPv4 and IPv6 leases.

Definition at line 31 of file lease.h.

## Member Enumeration Documentation

## ◆ Type

enum isc::dhcp::Lease::Type : uint16_t

Type of lease or pool.

Enumerator
TYPE_NA | the lease contains non-temporary IPv6 address
TYPE_TA | deprecated (temporary IPv6 address)
TYPE_PD | the lease contains IPv6 prefix (for prefix delegation)
TYPE_V4 | IPv4 lease.

Definition at line 46 of file lease.h.

## Constructor & Destructor Documentation

## ◆ Lease()

isc::dhcp::Lease::Lease | ( | const isc::asiolink::IOAddress & | addr,
|  | uint32_t | valid_lft,
|  | SubnetID | subnet_id,
|  | time_t | cltt,
|  | const bool | fqdn_fwd,
|  | const bool | fqdn_rev,
|  | const std::string & | hostname,
|  | const HWAddrPtr & | hwaddr )

Constructor.

Parameters

  addr | IP address
  valid_lft | Lifetime of the lease
  subnet_id | Subnet identification
  cltt | Client last transmission time
  fqdn_fwd | If true, forward DNS update is performed for a lease.
  fqdn_rev | If true, reverse DNS update is performed for a lease.
  hostname | FQDN of the client which gets the lease.
  hwaddr | Hardware/MAC address

Note
  When creating a new Lease object, current_cltt_ matches cltt_ and current_valid_lft_ matches valid_lft_. Any update operation that changes cltt_ or valid_lft_ in the database must also update the current_cltt_ and current_valid_lft_ after the database response so that additional operations can be performed on the same object. Failing to do so will result in the new actions to be rejected by the database.

Definition at line 44 of file lease.cc.

References addr_, cltt_, current_cltt_, current_valid_lft_, fqdn_fwd_, fqdn_rev_, hostname_, hwaddr_, pool_id_, reuseable_valid_lft_, state_, STATE_DEFAULT, subnet_id_, and valid_lft_.

Referenced by isc::dhcp::Lease4::Lease4(), isc::dhcp::Lease4::Lease4(), isc::dhcp::Lease4::Lease4(), isc::dhcp::Lease6::Lease6(), isc::dhcp::Lease6::Lease6(), isc::dhcp::Lease6::Lease6(), decline(), hasIdenticalFqdn(), syncCurrentExpirationTime(), and toText().

## ◆ ~Lease()

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

Destructor.

Definition at line 116 of file lease.h.

## Member Function Documentation

## ◆ basicStatesToText()

std::string isc::dhcp::Lease::basicStatesToText | ( | const uint32_t | state | ) |
| static

Returns name(s) of the basic lease state(s).

Parameters

  state | A numeric value holding a state information. Some states may be composite, i.e. the single state value maps to multiple logical states of the lease.

Returns
  Comma separated list of state names.

Definition at line 89 of file lease.cc.

References STATE_DECLINED, STATE_DEFAULT, STATE_EXPIRED_RECLAIMED, STATE_REGISTERED, and STATE_RELEASED.

Referenced by isc::dhcp::CSVLeaseFile4::append(), isc::dhcp::CSVLeaseFile6::append(), isc::lease_cmds::LeaseCmdsImpl::leaseGetByStateHandler(), isc::dhcp::CSVLeaseFile4::next(), isc::dhcp::Lease4::statesToText(), and isc::dhcp::Lease6::statesToText().

## ◆ decline()

virtual void isc::dhcp::Lease::decline | ( | uint32_t | probation_period | ) |
| pure virtual

Sets lease to DECLINED state.

All client identifying parameters will be stripped off (HWaddr, client_id, hostname), cltt will be set to current time and valid_lft to parameter specified as probation period. Note that This method only sets fields in the structure. It is caller's responsibility to clean up DDNS, bump up stats, log, call hooks ets.

Parameters

  probation_period | lease lifetime will be set to this value

Implemented in isc::dhcp::Lease4, and isc::dhcp::Lease6.

References Lease(), and isc::data::CfgToElement::toElement().

Here is the call graph for this function:

## ◆ expired()

bool isc::dhcp::Lease::expired | ( |  | ) | const

returns true if the lease is expired

Returns
  true if the lease is expired

Definition at line 111 of file lease.cc.

References getExpirationTime(), INFINITY_LFT, and valid_lft_.

Here is the call graph for this function:

## ◆ fromElementCommon()

void isc::dhcp::Lease::fromElementCommon | ( | const LeasePtr & | lease,
|  | const data::ConstElementPtr & | element )
| staticprotected

Sets common (for v4 and v6) properties of the lease object.

This method is called by the `fromElement` methods of the `Lease` class derivations.

Parameters

  [out] | lease | pointer to the lease object for which common properties should be set.
  | element | pointer to the data element object to be parsed.

Definition at line 143 of file lease.cc.

References isc::data::Element::boolean, isc::dhcp::HWAddr::fromText(), isc::dhcp::HTYPE_ETHER, isc::dhcp::HWAddr::hwaddr_, isc::data::Element::integer, isc_throw, isc::data::Element::map, STATE_REGISTERED, and isc::data::Element::string.

Referenced by isc::dhcp::Lease4::fromElement(), and isc::dhcp::Lease6::fromElement().

Here is the call graph for this function:

## ◆ getExpirationTime()

int64_t isc::dhcp::Lease::getExpirationTime | ( |  | ) | const

Returns lease expiration time.

The lease expiration time is a sum of a client last transmission time and valid lifetime.

Definition at line 131 of file lease.cc.

References cltt_, and valid_lft_.

Referenced by expired().

## ◆ getHWAddrVector()

const std::vector< uint8_t > & isc::dhcp::Lease::getHWAddrVector | ( |  | ) | const

Returns raw (as vector) hardware address.

This method is needed in multi-index container as key extractor. The const reference is only valid as long as the object that returned it. In the unlikely case when Lease4 does not have a hardware address, the function will return an empty vector.

Returns
  const reference to the hardware address

Definition at line 354 of file lease.cc.

References hwaddr_.

## ◆ getType()

virtual Lease::Type isc::dhcp::Lease::getType | ( |  | ) | const
| pure virtual

Returns Lease type.

One of normal address, temporary address, or prefix, or V4

Implemented in isc::dhcp::Lease4, and isc::dhcp::Lease6.

## ◆ hasIdenticalFqdn()

bool isc::dhcp::Lease::hasIdenticalFqdn | ( | const Lease & | other | ) | const

Returns true if the other lease has equal FQDN data.

The comparison of the hostname is case insensitive.

Parameters

  other | Lease which FQDN data is to be compared with our lease.

Returns
  Boolean value which indicates whether FQDN data of the other lease is equal to the FQDN data of our lease (true) or not (false).

Definition at line 136 of file lease.cc.

References Lease(), fqdn_fwd_, fqdn_rev_, and hostname_.

Here is the call graph for this function:

## ◆ lifetimeToText()

std::string isc::dhcp::Lease::lifetimeToText | ( | uint32_t | lifetime | ) |
| static

Print lifetime.

This converts a lifetime to a string taking into account the infinity special value.

Parameters

  lifetime | lifetime to print

Returns
  a string representing the finite value or "infinity"

Definition at line 34 of file lease.cc.

References INFINITY_LFT.

Referenced by isc::dhcp::Dhcpv6Srv::assignIA_NA(), isc::dhcp::Dhcpv6Srv::assignIA_PD(), isc::dhcp::Dhcpv4Srv::assignLease(), isc::dhcp::Dhcpv6Srv::extendIA_NA(), isc::dhcp::Dhcpv6Srv::extendIA_PD(), isc::dhcp::Lease4::toText(), and isc::dhcp::Lease6::toText().

## ◆ stateDeclined()

bool isc::dhcp::Lease::stateDeclined | ( |  | ) | const

Indicates if the lease is in the "declined" state.

Returns
  true if the lease is in the "declined" state, false otherwise.

Definition at line 121 of file lease.cc.

References state_, and STATE_DECLINED.

## ◆ stateExpiredReclaimed()

bool isc::dhcp::Lease::stateExpiredReclaimed | ( |  | ) | const

Indicates if the lease is in the "expired-reclaimed" state.

Returns
  true if the lease is in the "expired-reclaimed" state, false otherwise.

Definition at line 116 of file lease.cc.

References state_, and STATE_EXPIRED_RECLAIMED.

## ◆ stateRegistered()

bool isc::dhcp::Lease::stateRegistered | ( |  | ) | const

Indicates if the lease is in the "registered" state.

Returns
  true if the lease is in the "registered" state, false otherwise.

Definition at line 126 of file lease.cc.

References state_, and STATE_REGISTERED.

## ◆ syncCurrentExpirationTime()

void isc::dhcp::Lease::syncCurrentExpirationTime | ( | const Lease & | from,
|  | Lease & | to )
| static

Sync lease current expiration time with new value from another lease, so that additional operations can be done without performing extra read from the database.

Note
  The lease current expiration time is represented by the current_cltt_ and current_valid_lft_ and the new value by cltt_ and valid_lft_

Parameters

  | from | The lease with latest value of expiration time.
  [out] | to | The lease that needs to be updated.

Definition at line 316 of file lease.cc.

References Lease(), cltt_, current_cltt_, current_valid_lft_, and valid_lft_.

Referenced by isc::lease_cmds::LeaseCmdsImpl::addOrUpdate4(), isc::lease_cmds::LeaseCmdsImpl::addOrUpdate6(), and updateCurrentExpirationTime().

Here is the call graph for this function:

## ◆ textToType()

Lease::Type isc::dhcp::Lease::textToType | ( | const std::string & | text | ) |
| static

Converts type name to the actual type.

Parameters

  text | lease type as text.

Returns
  converted type.

Exceptions

  BadValue | if the text contains unsupported value.

Definition at line 74 of file lease.cc.

References isc_throw, TYPE_NA, TYPE_PD, and TYPE_V4.

Referenced by isc::dhcp::Lease6::fromElement().

## ◆ toElement()

virtual isc::data::ElementPtr isc::data::CfgToElement::toElement | ( |  | ) | const
| virtual

Avoid a clang spurious error.

Implements isc::data::CfgToElement.

Reimplemented in isc::dhcp::Lease4, and isc::dhcp::Lease6.

## ◆ toText()

virtual std::string isc::dhcp::Lease::toText | ( |  | ) | const
| pure virtual

Convert Lease to Printable Form.

Returns
  String form of the lease

Implemented in isc::dhcp::Lease4, and isc::dhcp::Lease6.

References Lease().

Referenced by isc::dhcp::operator<<().

Here is the call graph for this function:

## ◆ typeToText()

std::string isc::dhcp::Lease::typeToText | ( | Lease::Type | type | ) |
| static

returns text representation of a lease type

Parameters

  type | lease or pool type to be converted

Returns
  text description

Definition at line 56 of file lease.cc.

References TYPE_NA, TYPE_PD, and TYPE_V4.

Referenced by isc::dhcp::Subnet::addPool(), isc::lease_cmds::LeaseCmdsImpl::createFailedLeaseMap(), isc::run_script::RunScriptImpl::extractLease6(), isc::dhcp::Subnet::getAllocationState(), isc::dhcp::Subnet::getAllocator(), isc::dhcp::Memfile_LeaseMgr::getLease6(), isc::dhcp::Memfile_LeaseMgr::getLeases6(), isc::dhcp::Memfile_LeaseMgr::getLeases6(), isc::dhcp::Allocator::initAfterConfigure(), isc::dhcp::TrackingLeaseMgr::registerCallback(), isc::dhcp::Lease6::toElement(), isc::dhcp::SflqPoolInfo::toElement(), isc::dhcp::Lease6::toText(), isc::dhcp::Pool6::toText(), isc::dhcp::Pool::toText(), and isc::dhcp::ResourceHandler::unLock().

## ◆ updateCurrentExpirationTime()

void isc::dhcp::Lease::updateCurrentExpirationTime | ( |  | ) |

Update lease current expiration time with new value, so that additional operations can be done without performing extra read from the database.

Note
  The lease current expiration time is represented by the current_cltt_ and current_valid_lft_ and the new value by cltt_ and valid_lft_

Definition at line 311 of file lease.cc.

References syncCurrentExpirationTime().

Here is the call graph for this function:

## ◆ updateUserContextISC()

bool isc::dhcp::Lease::updateUserContextISC | ( | const std::string | elem_name,
|  | data::ConstElementPtr | new_values )

Update the ISC entry in the lease's user-context.

Adds or updates the named element within the "ISC" map with the lease's user context. The update occurs only if the new value(s) are different than the existing values for the element.

Parameters

  elem_name | ISC element name to add/update.
  new_values | The new element values of the element.

Returns
  True the user-context was modified.

Definition at line 765 of file lease.cc.

References isc::data::copy(), isc::data::Element::createMap(), isc::data::UserContext::getContext(), isc::data::Element::map, and isc::data::UserContext::setContext().

Here is the call graph for this function:

## Member Data Documentation

## ◆ addr_

isc::asiolink::IOAddress isc::dhcp::Lease::addr_

IPv4 ot IPv6 address.

IPv4, IPv6 address or, in the case of a prefix delegation, the prefix.

Definition at line 126 of file lease.h.

Referenced by Lease(), isc::dhcp::CSVLeaseFile4::append(), isc::dhcp::CSVLeaseFile6::append(), isc::dhcp::AllocEngine::makeIPv6Resrv(), isc::dhcp::Lease4::operator==(), isc::dhcp::Lease6::operator==(), isc::dhcp::Lease4::toElement(), isc::dhcp::Lease6::toElement(), isc::dhcp::Lease4::toText(), and isc::dhcp::Lease6::toText().

## ◆ cltt_

time_t isc::dhcp::Lease::cltt_

Client last transmission time.

Specifies a timestamp giving the time when the last transmission from a client was received.

Definition at line 149 of file lease.h.

Referenced by Lease(), isc::dhcp::Lease6::Lease6(), isc::dhcp::Lease6::Lease6(), isc::dhcp::CSVLeaseFile4::append(), isc::dhcp::CSVLeaseFile6::append(), isc::dhcp::Lease4::decline(), isc::dhcp::Lease6::decline(), getExpirationTime(), isc::lease_query::LeaseQueryImpl6::makeClientOption(), isc::dhcp::Lease4::operator==(), isc::dhcp::Lease6::operator==(), syncCurrentExpirationTime(), isc::dhcp::Lease4::toElement(), isc::dhcp::Lease6::toElement(), isc::dhcp::Lease4::toText(), and isc::dhcp::Lease6::toText().

## ◆ current_cltt_

time_t isc::dhcp::Lease::current_cltt_

Current client last transmission time.

Specifies a timestamp giving the time when the last transmission from a client was received before update.

Definition at line 155 of file lease.h.

Referenced by Lease(), isc::dhcp::Lease6::Lease6(), isc::dhcp::Lease6::Lease6(), isc::dhcp::Lease4::operator==(), isc::dhcp::Lease6::operator==(), and syncCurrentExpirationTime().

## ◆ current_valid_lft_

uint32_t isc::dhcp::Lease::current_valid_lft_

Current valid lifetime.

Expressed as number of seconds since cltt before update.

Definition at line 136 of file lease.h.

Referenced by Lease(), isc::dhcp::Lease4::operator==(), isc::dhcp::Lease6::operator==(), and syncCurrentExpirationTime().

## ◆ fqdn_fwd_

bool isc::dhcp::Lease::fqdn_fwd_

Forward zone updated?

Set true if the DNS AAAA record for this lease has been updated.

Definition at line 175 of file lease.h.

Referenced by Lease(), isc::dhcp::CSVLeaseFile4::append(), isc::dhcp::CSVLeaseFile6::append(), isc::dhcp::Lease4::decline(), isc::dhcp::Lease6::decline(), hasIdenticalFqdn(), isc::dhcp::Lease4::operator==(), isc::dhcp::Lease6::operator==(), isc::dhcp::Lease4::toElement(), and isc::dhcp::Lease6::toElement().

## ◆ fqdn_rev_

bool isc::dhcp::Lease::fqdn_rev_

Reverse zone updated?

Set true if the DNS PTR record for this lease has been updated.

Definition at line 180 of file lease.h.

Referenced by Lease(), isc::dhcp::CSVLeaseFile4::append(), isc::dhcp::CSVLeaseFile6::append(), isc::dhcp::Lease4::decline(), isc::dhcp::Lease6::decline(), hasIdenticalFqdn(), isc::dhcp::Lease4::operator==(), isc::dhcp::Lease6::operator==(), isc::dhcp::Lease4::toElement(), and isc::dhcp::Lease6::toElement().

## ◆ hostname_

std::string isc::dhcp::Lease::hostname_

Client hostname.

This field is in lower case and may be empty.

Definition at line 170 of file lease.h.

Referenced by Lease(), isc::dhcp::CSVLeaseFile4::append(), isc::dhcp::CSVLeaseFile6::append(), isc::dhcp::Lease4::decline(), isc::dhcp::Lease6::decline(), hasIdenticalFqdn(), isc::dhcp::Lease4::operator==(), isc::dhcp::Lease6::operator==(), isc::dhcp::Lease4::toElement(), and isc::dhcp::Lease6::toElement().

## ◆ hwaddr_

HWAddrPtr isc::dhcp::Lease::hwaddr_

Client's MAC/hardware address.

This information may not be available in certain cases.

Definition at line 185 of file lease.h.

Referenced by Lease(), isc::dhcp::CSVLeaseFile4::append(), isc::dhcp::CSVLeaseFile6::append(), isc::dhcp::Lease4::belongsToClient(), isc::dhcp::Lease4::decline(), isc::dhcp::Lease6::decline(), getHWAddrVector(), isc::dhcp::Lease4::operator==(), isc::dhcp::Lease6::operator==(), isc::dhcp::Lease4::toElement(), isc::dhcp::Lease6::toElement(), isc::dhcp::Lease4::toText(), and isc::dhcp::Lease6::toText().

## ◆ INFINITY_LFT

const uint32_t isc::dhcp::Lease::INFINITY_LFT = 0xffffffff
| static

Infinity (means static, i.e. never expire).

Definition at line 34 of file lease.h.

Referenced by isc::lease_query::LeaseQueryImpl4::addLeaseTimes(), expired(), isc::dhcp::AllocEngine::getMinValidLft(), isc::dhcp::AllocEngine::getRemaining(), isc::dhcp::AllocEngine::getValidLft(), lifetimeToText(), isc::dhcp::Dhcpv4Srv::processRelease(), isc::dhcp::Dhcpv6Srv::releaseIA_NA(), and isc::dhcp::Dhcpv6Srv::releaseIA_PD().

## ◆ pool_id_

uint32_t isc::dhcp::Lease::pool_id_

The pool id.

Specifies the identification of the pool from a subnet to which the lease belongs.

Definition at line 165 of file lease.h.

Referenced by Lease(), isc::dhcp::CSVLeaseFile4::append(), isc::dhcp::CSVLeaseFile6::append(), isc::dhcp::Lease4::operator==(), isc::dhcp::Lease6::operator==(), isc::dhcp::Lease4::toElement(), isc::dhcp::Lease6::toElement(), isc::dhcp::Lease4::toText(), and isc::dhcp::Lease6::toText().

## ◆ reuseable_valid_lft_

uint32_t isc::dhcp::Lease::reuseable_valid_lft_

Remaining valid lifetime.

Expressed as number of seconds since current time, also valid lifetime - age where age is old cltt - new cltt. The value 0 is used for the "cannot be reused" condition.

Definition at line 143 of file lease.h.

Referenced by Lease(), isc::dhcp::Lease4::operator==(), and isc::dhcp::Lease6::operator==().

## ◆ state_

uint32_t isc::dhcp::Lease::state_

Holds the lease state(s).

This is the field that holds the lease state(s). Typically, a lease remains in a single states. However, it is possible to define a value for state which indicates that the lease remains in multiple logical states.

The defined states are represented by the "STATE_*" constants belonging to this class.

Definition at line 196 of file lease.h.

Referenced by Lease(), isc::dhcp::CSVLeaseFile4::append(), isc::dhcp::CSVLeaseFile6::append(), isc::dhcp::Lease4::decline(), isc::dhcp::Lease6::decline(), isc::dhcp::Lease4::operator==(), isc::dhcp::Lease6::operator==(), stateDeclined(), stateExpiredReclaimed(), stateRegistered(), isc::dhcp::Lease4::toElement(), isc::dhcp::Lease6::toElement(), isc::dhcp::Lease4::toText(), and isc::dhcp::Lease6::toText().

## ◆ STATE_DECLINED

uint32_t isc::dhcp::Lease::STATE_DECLINED = 1
| staticconstexpr

Declined lease.

Definition at line 72 of file lease.h.

Referenced by isc::dhcp::CSVLeaseFile4::append(), isc::dhcp::CSVLeaseFile6::append(), basicStatesToText(), isc::dhcp::Lease4::decline(), isc::dhcp::Lease6::decline(), isc::lease_cmds::LeaseCmdsImpl::leaseGetByStateHandler(), isc::stat_cmds::LeaseStatCmdsImpl::makeResultSet4(), isc::stat_cmds::LeaseStatCmdsImpl::makeResultSet6(), isc::dhcp::CSVLeaseFile4::next(), isc::dhcp::CSVLeaseFile6::next(), isc::lease_cmds::Lease6Parser::parse(), isc::dhcp::LeaseMgr::recountLeaseStats4(), isc::dhcp::LeaseMgr::recountLeaseStats6(), stateDeclined(), and isc::dhcp::LeaseMgr::updateStatsOnUpdate().

## ◆ STATE_DEFAULT

uint32_t isc::dhcp::Lease::STATE_DEFAULT = 0
| staticconstexpr

A lease in the default state.

Definition at line 69 of file lease.h.

Referenced by Lease(), isc::dhcp::ClassLeaseCounter::addLease(), basicStatesToText(), isc::lease_query::BulkLeaseQuery4::bulkQueryByClientId(), isc::lease_query::BulkLeaseQuery4::bulkQueryByHWAddr(), isc::lease_query::BulkLeaseQuery4::bulkQueryByRelayId(), isc::lease_query::BulkLeaseQuery4::bulkQueryByRemoteId(), isc::dhcp::Dhcpv6Srv::declineIA(), isc::dhcp::AllocEngine::getRemaining(), isc::dhcp::AllocEngine::getRemaining(), isc::lease_cmds::LeaseCmdsImpl::leaseGetByStateHandler(), isc::stat_cmds::LeaseStatCmdsImpl::makeResultSet4(), isc::stat_cmds::LeaseStatCmdsImpl::makeResultSet6(), isc::dhcp::Dhcpv4Srv::processDecline(), isc::lease_query::LeaseQueryImpl6::queryByClientId(), isc::lease_query::LeaseQueryImpl4::queryByIpAddress(), isc::lease_query::LeaseQueryImpl6::queryByIpAddress(), isc::lease_query::LeaseQueryImpl6::queryByLinkNext(), isc::lease_query::LeaseQueryImpl6::queryByLinkStart(), isc::lease_query::LeaseQueryImpl6::queryByRelayIdNext(), isc::lease_query::LeaseQueryImpl6::queryByRelayIdStart(), isc::lease_query::LeaseQueryImpl6::queryByRemoteIdNext(), isc::lease_query::LeaseQueryImpl6::queryByRemoteIdStart(), isc::dhcp::Memfile_LeaseMgr::recountClassLeases4(), isc::dhcp::Memfile_LeaseMgr::recountClassLeases6(), isc::dhcp::LeaseMgr::recountLeaseStats4(), isc::dhcp::LeaseMgr::recountLeaseStats6(), isc::dhcp::ClassLeaseCounter::removeLease(), isc::dhcp::ClassLeaseCounter::updateLease(), and isc::lease_query::LeaseQueryImpl4::winnowLeases().

## ◆ STATE_EXPIRED_RECLAIMED

uint32_t isc::dhcp::Lease::STATE_EXPIRED_RECLAIMED = 2
| staticconstexpr

Expired and reclaimed lease.

Definition at line 75 of file lease.h.

Referenced by basicStatesToText(), isc::lease_cmds::LeaseCmdsImpl::leaseGetByStateHandler(), and stateExpiredReclaimed().

## ◆ STATE_REGISTERED

uint32_t isc::dhcp::Lease::STATE_REGISTERED = 4
| staticconstexpr

Registered self-generated lease.

Definition at line 81 of file lease.h.

Referenced by isc::dhcp::AllocEngine::allocateLeases6(), basicStatesToText(), fromElementCommon(), isc::lease_cmds::LeaseCmdsImpl::leaseGetByStateHandler(), isc::lease_cmds::Lease4Parser::parse(), isc::lease_cmds::Lease6Parser::parse(), isc::dhcp::Dhcpv6Srv::processAddrRegInform(), isc::dhcp::LeaseMgr::recountLeaseStats6(), isc::dhcp::Dhcpv6Srv::releaseIA_NA(), isc::dhcp::AllocEngine::renewLeases6(), stateRegistered(), isc::dhcp::LeaseMgr::updateStatsOnUpdate(), and isc::dhcp::LeaseMgr::updateStatsOnUpdate().

## ◆ STATE_RELEASED

uint32_t isc::dhcp::Lease::STATE_RELEASED = 3
| staticconstexpr

Released lease held in the database for lease affinity.

Definition at line 78 of file lease.h.

Referenced by isc::ha::HAService::asyncSendLeaseUpdates(), isc::ha::HAService::asyncSendLeaseUpdates(), basicStatesToText(), isc::ha::CommandCreator::createLease6BulkApply(), isc::dhcp::deleteAssignedLease(), isc::lease_cmds::LeaseCmdsImpl::leaseGetByStateHandler(), isc::dhcp::Dhcpv4Srv::processRelease(), isc::dhcp::Dhcpv6Srv::releaseIA_NA(), and isc::dhcp::Dhcpv6Srv::releaseIA_PD().

## ◆ subnet_id_

SubnetID isc::dhcp::Lease::subnet_id_

Subnet identifier.

Specifies the identification of the subnet to which the lease belongs.

Definition at line 160 of file lease.h.

Referenced by Lease(), isc::dhcp::CSVLeaseFile4::append(), isc::dhcp::CSVLeaseFile6::append(), isc::dhcp::Lease4::operator==(), isc::dhcp::Lease6::operator==(), isc::dhcp::Lease4::toElement(), isc::dhcp::Lease6::toElement(), isc::dhcp::Lease4::toText(), and isc::dhcp::Lease6::toText().

## ◆ valid_lft_

uint32_t isc::dhcp::Lease::valid_lft_

Valid lifetime.

Expressed as number of seconds since cltt.

Definition at line 131 of file lease.h.

Referenced by Lease(), isc::dhcp::CSVLeaseFile4::append(), isc::dhcp::CSVLeaseFile6::append(), isc::dhcp::Lease4::decline(), isc::dhcp::Lease6::decline(), expired(), getExpirationTime(), isc::dhcp::Lease4::operator==(), isc::dhcp::Lease6::operator==(), syncCurrentExpirationTime(), isc::dhcp::Lease4::toElement(), isc::dhcp::Lease6::toElement(), isc::dhcp::Lease4::toText(), and isc::dhcp::Lease6::toText().

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

- lease.h
- lease.cc