Kea 2.5.8
isc::dhcp::IPv6Resrv Class Reference

IPv6 reservation for a host. More...

#include <host.h>

Public Types

enum  Type { TYPE_NA , TYPE_PD }
 Type of the reservation. More...
 

Public Member Functions

 IPv6Resrv (const Type &type, const asiolink::IOAddress &prefix, const uint8_t prefix_len=128)
 Constructor.
 
const asiolink::IOAddressgetPrefix () const
 Returns prefix for the reservation.
 
uint8_t getPrefixLen () const
 Returns prefix length.
 
Type getType () const
 Returns reservation type.
 
bool operator!= (const IPv6Resrv &other) const
 Inequality operator.
 
bool operator== (const IPv6Resrv &other) const
 Equality operator.
 
void set (const Type &type, const asiolink::IOAddress &prefix, const uint8_t prefix_len)
 Sets a new prefix and prefix length.
 
std::string toText () const
 Returns information about the reservation in the textual format.
 

Detailed Description

IPv6 reservation for a host.

This class represents a reservation for a host of a single IPv6 address or prefix (in Host object).

The class holds the address and prefix length, a value of 128 for the latter implying that the reservation is for a single IPv6 address.

Definition at line 161 of file host.h.

Member Enumeration Documentation

◆ Type

Type of the reservation.

Currently supported types are NA and PD.

Enumerator
TYPE_NA 
TYPE_PD 

Definition at line 167 of file host.h.

Constructor & Destructor Documentation

◆ IPv6Resrv()

isc::dhcp::IPv6Resrv::IPv6Resrv ( const Type type,
const asiolink::IOAddress prefix,
const uint8_t  prefix_len = 128 
)

Constructor.

Creates a reservation from the IPv6 address and prefix length value. If the prefix length is not specified, the default value of 128 is used. This value indicates that the reservation is made for an IPv6 address.

Parameters
typeReservation type: NA or PD.
prefixAddress or prefix to be reserved.
prefix_lenPrefix length.
Exceptions
isc::BadValueif prefix is not IPv6 prefix, is a multicast address or the prefix length is greater than 128.

Definition at line 86 of file host.cc.

References set().

+ Here is the call graph for this function:

Member Function Documentation

◆ getPrefix()

const asiolink::IOAddress & isc::dhcp::IPv6Resrv::getPrefix ( ) const
inline

Returns prefix for the reservation.

Definition at line 190 of file host.h.

Referenced by isc::dhcp::HostResrv6Tuple::getPrefix().

◆ getPrefixLen()

uint8_t isc::dhcp::IPv6Resrv::getPrefixLen ( ) const
inline

Returns prefix length.

Definition at line 195 of file host.h.

◆ getType()

Type isc::dhcp::IPv6Resrv::getType ( ) const
inline

Returns reservation type.

The type of reservation is determined using a prefix length.

Returns
NA for prefix length equal to 128, PD otherwise.

Definition at line 204 of file host.h.

Referenced by isc::dhcp::Host::addReservation(), isc::dhcp::Host::hasReservation(), and toText().

◆ operator!=()

bool isc::dhcp::IPv6Resrv::operator!= ( const IPv6Resrv other) const

Inequality operator.

Parameters
otherReservation to compare to.

Definition at line 136 of file host.cc.

◆ operator==()

bool isc::dhcp::IPv6Resrv::operator== ( const IPv6Resrv other) const

Equality operator.

Parameters
otherReservation to compare to.

Definition at line 129 of file host.cc.

◆ set()

void isc::dhcp::IPv6Resrv::set ( const Type type,
const asiolink::IOAddress prefix,
const uint8_t  prefix_len 
)

Sets a new prefix and prefix length.

Parameters
typeReservation type: NA or PD.
prefixNew prefix.
prefix_lenNew prefix length.
Exceptions
isc::BadValueif prefix is not IPv6 prefix, is a multicast address or the prefix length is greater than 128.

Definition at line 95 of file host.cc.

References isc_throw, isc::asiolink::IOAddress::isV6(), isc::asiolink::IOAddress::isV6Multicast(), and TYPE_NA.

Referenced by IPv6Resrv().

+ Here is the call graph for this function:

◆ toText()

std::string isc::dhcp::IPv6Resrv::toText ( ) const

Returns information about the reservation in the textual format.

Definition at line 118 of file host.cc.

References getType(), and TYPE_PD.

Referenced by isc::dhcp::Host::addReservation().

+ Here is the call graph for this function:

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