Kea  1.5.0
isc::dhcp::AllocEngine::ClientContext4 Struct Reference

Context information for the DHCPv4 lease allocation. More...

#include <alloc_engine.h>

+ Inheritance diagram for isc::dhcp::AllocEngine::ClientContext4:

Public Member Functions

 ClientContext4 ()
 Default constructor. More...
 
 ClientContext4 (const Subnet4Ptr &subnet, const ClientIdPtr &clientid, const HWAddrPtr &hwaddr, const asiolink::IOAddress &requested_addr, const bool fwd_dns_update, const bool rev_dns_update, const std::string &hostname, const bool fake_allocation)
 Constructor with parameters. More...
 
void addHostIdentifier (const Host::IdentifierType &id_type, const std::vector< uint8_t > &identifier)
 Convenience function adding host identifier into host_identifiers_ list. More...
 
ConstHostPtr currentHost () const
 Returns host for currently selected subnet. More...
 

Public Attributes

hooks::CalloutHandlePtr callout_handle_
 Callout handle associated with the client's message. More...
 
ClientIdPtr clientid_
 Client identifier from the DHCP message. More...
 
Lease4Ptr conflicting_lease_
 A pointer to the object representing a lease in conflict. More...
 
bool fake_allocation_
 Indicates if this is a real or fake allocation. More...
 
bool fwd_dns_update_
 Perform forward DNS update. More...
 
IdentifierList host_identifiers_
 A list holding host identifiers extracted from a message received by the server. More...
 
std::string hostname_
 Hostname. More...
 
std::map< SubnetID, ConstHostPtrhosts_
 Holds a map of hosts belonging to the client within different subnets. More...
 
HWAddrPtr hwaddr_
 HW address from the DHCP message. More...
 
Lease4Ptr new_lease_
 A pointer to a newly allocated lease. More...
 
Lease4Ptr old_lease_
 A pointer to an old lease that the client had before update. More...
 
Pkt4Ptr query_
 A pointer to the client's message. More...
 
asiolink::IOAddress requested_address_
 An address that the client desires. More...
 
bool rev_dns_update_
 Perform reverse DNS update. More...
 
Subnet4Ptr subnet_
 Subnet selected for the client by the server. More...
 

Detailed Description

Context information for the DHCPv4 lease allocation.

This structure holds a set of information provided by the DHCPv4 server to the allocation engine. In particular, it holds the client identifying information, such as HW address or client identifier. It also holds the information about the subnet that the client is connected to.

This structure is also used to pass some information from the allocation engine back to the server, i.e. the old lease which the client had before the allocation.

This structure is meant to be extended in the future, if more information should be passed to the allocation engine. Note that the big advantage of using the context structure to pass information to the allocation engine methods is that adding new information doesn't modify the API of the allocation engine.

Definition at line 1137 of file alloc_engine.h.

Constructor & Destructor Documentation

◆ ClientContext4() [1/2]

isc::dhcp::AllocEngine::ClientContext4::ClientContext4 ( )

Default constructor.

Definition at line 2954 of file alloc_engine.cc.

◆ ClientContext4() [2/2]

isc::dhcp::AllocEngine::ClientContext4::ClientContext4 ( const Subnet4Ptr subnet,
const ClientIdPtr clientid,
const HWAddrPtr hwaddr,
const asiolink::IOAddress requested_addr,
const bool  fwd_dns_update,
const bool  rev_dns_update,
const std::string &  hostname,
const bool  fake_allocation 
)

Constructor with parameters.

Parameters
subnetsubnet the allocation should come from (mandatory)
clientidClient identifier (optional)
hwaddrClient's hardware address info (mandatory)
requested_addrA hint that the client provided (may be 0.0.0.0)
fwd_dns_updateIndicates whether forward DNS update will be performed for the client (true) or not (false).
rev_dns_updateIndicates whether reverse DNS update will be performed for the client (true) or not (false).
hostnameA string carrying hostname to be used for DNS updates.
fake_allocationIs this real i.e. REQUEST (false) or just picking an address for DISCOVER that is not really allocated (true)

Definition at line 2963 of file alloc_engine.cc.

References addHostIdentifier(), and isc::dhcp::Host::IDENT_HWADDR.

+ Here is the call graph for this function:

Member Function Documentation

◆ addHostIdentifier()

void isc::dhcp::AllocEngine::ClientContext4::addHostIdentifier ( const Host::IdentifierType id_type,
const std::vector< uint8_t > &  identifier 
)
inline

Convenience function adding host identifier into host_identifiers_ list.

Parameters
id_typeIdentifier type.
identifierIdentifier value.

Definition at line 1210 of file alloc_engine.h.

References host_identifiers_.

Referenced by ClientContext4().

◆ currentHost()

ConstHostPtr isc::dhcp::AllocEngine::ClientContext4::currentHost ( ) const

Returns host for currently selected subnet.

Returns
Pointer to the host object.

Definition at line 2985 of file alloc_engine.cc.

References isc::dhcp::Network::HR_GLOBAL.

Member Data Documentation

◆ callout_handle_

hooks::CalloutHandlePtr isc::dhcp::AllocEngine::ClientContext4::callout_handle_

Callout handle associated with the client's message.

Definition at line 1166 of file alloc_engine.h.

◆ clientid_

ClientIdPtr isc::dhcp::AllocEngine::ClientContext4::clientid_

Client identifier from the DHCP message.

Definition at line 1142 of file alloc_engine.h.

◆ conflicting_lease_

Lease4Ptr isc::dhcp::AllocEngine::ClientContext4::conflicting_lease_

A pointer to the object representing a lease in conflict.

This pointer is set by some of the allocation methods when the lease can't be allocated because there is another lease which is in conflict with this allocation.

Definition at line 1193 of file alloc_engine.h.

◆ fake_allocation_

bool isc::dhcp::AllocEngine::ClientContext4::fake_allocation_

Indicates if this is a real or fake allocation.

The real allocation is when the allocation engine is supposed to make an update in a lease database: create new lease, or update existing lease.

Definition at line 1173 of file alloc_engine.h.

Referenced by isc::dhcp::AllocEngine::allocateLease4().

◆ fwd_dns_update_

bool isc::dhcp::AllocEngine::ClientContext4::fwd_dns_update_

Perform forward DNS update.

Definition at line 1154 of file alloc_engine.h.

◆ host_identifiers_

IdentifierList isc::dhcp::AllocEngine::ClientContext4::host_identifiers_

A list holding host identifiers extracted from a message received by the server.

Definition at line 1203 of file alloc_engine.h.

Referenced by addHostIdentifier(), isc::dhcp::AllocEngine::findGlobalReservation(), and isc::dhcp::AllocEngine::findReservation().

◆ hostname_

std::string isc::dhcp::AllocEngine::ClientContext4::hostname_

Hostname.

The server retrieves the hostname from the Client FQDN option, Hostname option or the host reservation record for the client.

Definition at line 1163 of file alloc_engine.h.

◆ hosts_

std::map<SubnetID, ConstHostPtr> isc::dhcp::AllocEngine::ClientContext4::hosts_

Holds a map of hosts belonging to the client within different subnets.

Multiple hosts may appear when the client belongs to a shared network.

Definition at line 1186 of file alloc_engine.h.

Referenced by isc::dhcp::AllocEngine::findReservation().

◆ hwaddr_

HWAddrPtr isc::dhcp::AllocEngine::ClientContext4::hwaddr_

HW address from the DHCP message.

Definition at line 1145 of file alloc_engine.h.

Referenced by isc::dhcp::AllocEngine::allocateLease4().

◆ new_lease_

Lease4Ptr isc::dhcp::AllocEngine::ClientContext4::new_lease_

A pointer to a newly allocated lease.

Definition at line 1179 of file alloc_engine.h.

Referenced by isc::dhcp::AllocEngine::allocateLease4().

◆ old_lease_

Lease4Ptr isc::dhcp::AllocEngine::ClientContext4::old_lease_

A pointer to an old lease that the client had before update.

Definition at line 1176 of file alloc_engine.h.

Referenced by isc::dhcp::AllocEngine::allocateLease4().

◆ query_

Pkt4Ptr isc::dhcp::AllocEngine::ClientContext4::query_

A pointer to the client's message.

This is used in logging to retrieve the client's and the transaction identification information.

Definition at line 1199 of file alloc_engine.h.

Referenced by isc::dhcp::AllocEngine::allocateLease4(), and isc::dhcp::AllocEngine::findReservation().

◆ requested_address_

asiolink::IOAddress isc::dhcp::AllocEngine::ClientContext4::requested_address_

An address that the client desires.

If this address is set to 0 it indicates that this address is unspecified.

Definition at line 1151 of file alloc_engine.h.

◆ rev_dns_update_

bool isc::dhcp::AllocEngine::ClientContext4::rev_dns_update_

Perform reverse DNS update.

Definition at line 1157 of file alloc_engine.h.

◆ subnet_

Subnet4Ptr isc::dhcp::AllocEngine::ClientContext4::subnet_

Subnet selected for the client by the server.

Definition at line 1139 of file alloc_engine.h.

Referenced by isc::dhcp::AllocEngine::allocateLease4(), and isc::dhcp::AllocEngine::findReservation().


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