Kea  2.3.3-git
isc::dhcp::AllocEngine::ClientContext6::IAContext Struct Reference

Parameters pertaining to individual IAs. More...

#include <alloc_engine.h>

Public Member Functions

 IAContext ()
 Default constructor. More...
 
void addHint (const asiolink::IOAddress &prefix, const uint8_t prefix_len=128, const uint32_t preferred=0, const uint32_t valid=0)
 Convenience method adding new hint. More...
 
void addHint (const Option6IAAddrPtr &iaaddr)
 Convenience method adding new hint from IAADDR option. More...
 
void addHint (const Option6IAPrefixPtr &iaprefix)
 Convenience method adding new hint from IAPREFIX option. More...
 
void addNewResource (const asiolink::IOAddress &prefix, const uint8_t prefix_len=128)
 Convenience method adding new prefix or address. More...
 
bool isNewResource (const asiolink::IOAddress &prefix, const uint8_t prefix_len=128) const
 Checks if specified address or prefix was new. More...
 

Public Attributes

Lease6Collection changed_leases_
 A pointer to any leases that have changed FQDN information. More...
 
HintContainer hints_
 Client's hints. More...
 
Option6IAPtr ia_rsp_
 A pointer to the IA_NA/IA_PD option to be sent in response. More...
 
uint32_t iaid_
 The IAID field from IA_NA or IA_PD that is being processed. More...
 
ResourceContainer new_resources_
 Holds addresses and prefixes allocated for this IA. More...
 
Lease6Collection old_leases_
 A pointer to any old leases that the client had before update but are no longer valid after the update/allocation. More...
 
Lease::Type type_
 Lease type (IA or PD) More...
 

Detailed Description

Parameters pertaining to individual IAs.

Definition at line 293 of file alloc_engine.h.

Constructor & Destructor Documentation

◆ IAContext()

isc::dhcp::AllocEngine::ClientContext6::IAContext::IAContext ( )

Default constructor.

Initializes type_ to Lease::TYPE_NA and iaid_ to 0.

Definition at line 215 of file alloc_engine.cc.

References addHint().

+ Here is the call graph for this function:

Member Function Documentation

◆ addHint() [1/3]

void isc::dhcp::AllocEngine::ClientContext6::IAContext::addHint ( const asiolink::IOAddress prefix,
const uint8_t  prefix_len = 128,
const uint32_t  preferred = 0,
const uint32_t  valid = 0 
)

Convenience method adding new hint.

Parameters
prefixPrefix or address.
prefix_lenPrefix length. Default is 128 for addresses.
preferredWanted preferred lifetime. Default 0.
validWanted valid lifetime. Default 0.

Definition at line 222 of file alloc_engine.cc.

References hints_.

Referenced by addHint(), isc::dhcp::Dhcpv6Srv::assignIA_NA(), isc::dhcp::Dhcpv6Srv::assignIA_PD(), isc::dhcp::Dhcpv6Srv::extendIA_NA(), isc::dhcp::Dhcpv6Srv::extendIA_PD(), and IAContext().

◆ addHint() [2/3]

void isc::dhcp::AllocEngine::ClientContext6::IAContext::addHint ( const Option6IAAddrPtr iaaddr)

Convenience method adding new hint from IAADDR option.

Parameters
iaaddrPointer to IAADDR.
Exceptions
BadValueif iaaddr is null.

Definition at line 231 of file alloc_engine.cc.

References addHint(), and isc_throw.

+ Here is the call graph for this function:

◆ addHint() [3/3]

void isc::dhcp::AllocEngine::ClientContext6::IAContext::addHint ( const Option6IAPrefixPtr iaprefix)

Convenience method adding new hint from IAPREFIX option.

Parameters
iaprefixPointer to IAPREFIX.
Exceptions
BadValueif iaprefix is null.

Definition at line 241 of file alloc_engine.cc.

References addHint(), addNewResource(), and isc_throw.

+ Here is the call graph for this function:

◆ addNewResource()

void isc::dhcp::AllocEngine::ClientContext6::IAContext::addNewResource ( const asiolink::IOAddress prefix,
const uint8_t  prefix_len = 128 
)

Convenience method adding new prefix or address.

Parameters
prefixPrefix or address
prefix_lenPrefix length. Default is 128 for addresses.

Definition at line 251 of file alloc_engine.cc.

References isNewResource(), and new_resources_.

Referenced by addHint(), and isc::dhcp::AllocEngine::getLifetimes6().

+ Here is the call graph for this function:

◆ isNewResource()

bool isc::dhcp::AllocEngine::ClientContext6::IAContext::isNewResource ( const asiolink::IOAddress prefix,
const uint8_t  prefix_len = 128 
) const

Checks if specified address or prefix was new.

Parameters
prefixPrefix or address
prefix_lenPrefix length. Default is 128 for addresses.

Definition at line 258 of file alloc_engine.cc.

References isc::dhcp::AllocEngine::ClientContext6::addAllocatedResource(), and new_resources_.

Referenced by addNewResource(), and isc::dhcp::AllocEngine::renewLeases6().

+ Here is the call graph for this function:

Member Data Documentation

◆ changed_leases_

Lease6Collection isc::dhcp::AllocEngine::ClientContext6::IAContext::changed_leases_

A pointer to any leases that have changed FQDN information.

This list may contain old versions of the leases that are still valid. In particular, it will contain a lease if the client's FQDN has changed.

Definition at line 323 of file alloc_engine.h.

Referenced by isc::dhcp::Dhcpv6Srv::createNameChangeRequests(), and isc::dhcp::AllocEngine::renewLeases6().

◆ hints_

HintContainer isc::dhcp::AllocEngine::ClientContext6::IAContext::hints_

Client's hints.

There will typically be just one address, but the protocol allows more than one address or prefix for each IA container.

Definition at line 306 of file alloc_engine.h.

Referenced by addHint(), isc::dhcp::AllocEngine::allocateLeases6(), isc::dhcp::Dhcpv6Srv::extendIA_NA(), isc::dhcp::Dhcpv6Srv::extendIA_PD(), isc::dhcp::AllocEngine::getLifetimes6(), and isc::dhcp::AllocEngine::renewLeases6().

◆ ia_rsp_

Option6IAPtr isc::dhcp::AllocEngine::ClientContext6::IAContext::ia_rsp_

A pointer to the IA_NA/IA_PD option to be sent in response.

Definition at line 332 of file alloc_engine.h.

Referenced by isc::dhcp::Dhcpv6Srv::extendIA_NA(), isc::dhcp::Dhcpv6Srv::extendIA_PD(), and isc::dhcp::AllocEngine::renewLeases6().

◆ iaid_

uint32_t isc::dhcp::AllocEngine::ClientContext6::IAContext::iaid_

◆ new_resources_

ResourceContainer isc::dhcp::AllocEngine::ClientContext6::IAContext::new_resources_

Holds addresses and prefixes allocated for this IA.

This collection is used to update at most once new leases.

Definition at line 328 of file alloc_engine.h.

Referenced by addNewResource(), and isNewResource().

◆ old_leases_

Lease6Collection isc::dhcp::AllocEngine::ClientContext6::IAContext::old_leases_

A pointer to any old leases that the client had before update but are no longer valid after the update/allocation.

This collection is typically empty, except cases when we are doing address reassignment, e.g. because there is a host reservation that gives this address to someone else, so we had to return the address, and give a new one to this client.

Definition at line 315 of file alloc_engine.h.

Referenced by isc::dhcp::AllocEngine::allocateLeases6(), isc::dhcp::Dhcpv6Srv::extendIA_NA(), isc::dhcp::Dhcpv6Srv::extendIA_PD(), isc::dhcp::Dhcpv6Srv::releaseLeases(), and isc::dhcp::AllocEngine::renewLeases6().

◆ type_


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