Kea
1.9.9-git
|
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. More... | |
const asiolink::IOAddress & | getPrefix () const |
Returns prefix for the reservation. More... | |
uint8_t | getPrefixLen () const |
Returns prefix length. More... | |
Type | getType () const |
Returns reservation type. More... | |
bool | operator!= (const IPv6Resrv &other) const |
Inequality operator. More... | |
bool | operator== (const IPv6Resrv &other) const |
Equality operator. More... | |
void | set (const Type &type, const asiolink::IOAddress &prefix, const uint8_t prefix_len) |
Sets a new prefix and prefix length. More... | |
std::string | toText () const |
Returns information about the reservation in the textual format. More... | |
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.
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.
type | Reservation type: NA or PD. |
prefix | Address or prefix to be reserved. |
prefix_len | Prefix length. |
isc::BadValue | if prefix is not IPv6 prefix, is a multicast address or the prefix length is greater than 128. |
Definition at line 83 of file host.cc.
References set().
|
inline |
Returns prefix for the reservation.
Definition at line 190 of file host.h.
Referenced by isc::dhcp::HostResrv6Tuple::getKey(), and isc::dhcp::CqlHostExchange::prepareExchange().
|
inline |
Returns prefix length.
Definition at line 195 of file host.h.
Referenced by isc::dhcp::CqlHostExchange::prepareExchange().
|
inline |
Returns reservation type.
The type of reservation is determined using a prefix length.
Definition at line 204 of file host.h.
Referenced by isc::dhcp::Host::addReservation(), isc::dhcp::Host::hasReservation(), isc::dhcp::CqlHostExchange::prepareExchange(), and toText().
bool isc::dhcp::IPv6Resrv::operator!= | ( | const IPv6Resrv & | other | ) | const |
bool isc::dhcp::IPv6Resrv::operator== | ( | const IPv6Resrv & | other | ) | const |
void isc::dhcp::IPv6Resrv::set | ( | const Type & | type, |
const asiolink::IOAddress & | prefix, | ||
const uint8_t | prefix_len | ||
) |
Sets a new prefix and prefix length.
type | Reservation type: NA or PD. |
prefix | New prefix. |
prefix_len | New prefix length. |
isc::BadValue | if prefix is not IPv6 prefix, is a multicast address or the prefix length is greater than 128. |
Definition at line 92 of file host.cc.
References isc_throw, isc::asiolink::IOAddress::isV6(), isc::asiolink::IOAddress::isV6Multicast(), and TYPE_NA.
Referenced by IPv6Resrv().
std::string isc::dhcp::IPv6Resrv::toText | ( | ) | const |
Returns information about the reservation in the textual format.
Definition at line 115 of file host.cc.
References getType(), and TYPE_PD.
Referenced by isc::dhcp::Host::addReservation().