Kea: isc::dhcp::Option6IAAddr Class Reference

| Kea 3.2.0-git

isc::dhcp::Option6IAAddr Class Reference

`#include <option6_iaaddr.h>`

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

## Public Member Functions
| Option6IAAddr (uint16_t type, const isc::asiolink::IOAddress &addr, uint32_t preferred, uint32_t valid)
| Constructor, used for options constructed (during transmission).
| Option6IAAddr (uint32_t type, OptionBuffer::const_iterator begin, OptionBuffer::const_iterator end, size_t rec_level=0)
| Constructor, used for received options.
virtual OptionPtr | clone () const
| Copies this option and returns a pointer to the copy.
isc::asiolink::IOAddress | getAddress () const
| Returns address contained within this option.
unsigned int | getPreferred () const
| Returns preferred lifetime of an address.
unsigned int | getValid () const
| Returns valid lifetime of an address.
virtual uint16_t | len () const
| returns data length (data length + DHCPv4/DHCPv6 option header)
void | pack (isc::util::OutputBuffer &buf, bool check=true) const
| Writes option in wire-format.
void | setAddress (const isc::asiolink::IOAddress &addr)
| sets address in this option.
void | setPreferred (unsigned int pref)
| Sets preferred lifetime (in seconds).
void | setValid (unsigned int valid)
| Sets valid lifetime (in seconds).
virtual std::string | toText (int indent=0) const
| Returns string representation of the option.
virtual void | unpack (OptionBufferConstIter begin, OptionBufferConstIter end)
| Parses received buffer.
void | unpack (OptionBufferConstIter begin, OptionBufferConstIter end, size_t rec_level)
| Parses received buffer with limited recursion.
Public Member Functions inherited from isc::dhcp::Option
| Option (const Option &source)
| Copy constructor.
| Option (Universe u, uint16_t type)
| ctor, used for options constructed, usually during transmission
| Option (Universe u, uint16_t type, const OptionBuffer &data)
| Constructor, used for received options.
| Option (Universe u, uint16_t type, OptionBufferConstIter first, OptionBufferConstIter last)
| Constructor, used for received options.
virtual | ~Option ()
| just to force that every option has virtual dtor
void | addOption (OptionPtr opt)
| Adds a sub-option.
bool | delOption (uint16_t type)
| Attempts to delete first suboption of requested type.
virtual bool | equals (const Option &other) const
| Checks if two options are equal.
bool | equals (const OptionPtr &other) const
| Checks if options are equal.
virtual const OptionBuffer & | getData () const
| Returns pointer to actual data.
std::string | getEncapsulatedSpace () const
| Returns the name of the option space encapsulated by this option.
virtual uint16_t | getHeaderLen () const
| Returns length of header (2 for v4, 4 for v6).
OptionCollection & | getMutableOptions ()
| Returns all encapsulated options.
OptionPtr | getOption (uint16_t type) const
| Returns shared_ptr to suboption of specific type.
const OptionCollection & | getOptions () const
| Returns all encapsulated options.
void | getOptionsCopy (OptionCollection &options_copy) const
| Performs deep copy of suboptions.
uint16_t | getType () const
| Returns option type (0-255 for DHCPv4, 0-65535 for DHCPv6).
uint16_t | getUint16 () const
| Returns content of first word.
uint32_t | getUint32 () const
| Returns content of first double word.
uint8_t | getUint8 () const
| Returns content of first byte.
Universe | getUniverse () const
| returns option universe (V4 or V6)
Option & | operator= (const Option &rhs)
| Assignment operator.
template<typename InputIterator>
void | setData (InputIterator first, InputIterator last)
| Sets content of this option from buffer.
void | setEncapsulatedSpace (const std::string &encapsulated_space)
| Sets the name of the option space encapsulated by this option.
void | setUint16 (uint16_t value)
| Sets content of this option to a single uint16 value.
void | setUint32 (uint32_t value)
| Sets content of this option to a single uint32 value.
void | setUint8 (uint8_t value)
| Sets content of this option to a single uint8 value.
virtual std::vector< uint8_t > | toBinary (const bool include_header=false) const
| Returns binary representation of the option.
virtual std::string | toHexString (const bool include_header=false) const
| Returns string containing hexadecimal representation of option.
virtual std::string | toString () const
| Returns string representation of the value.
virtual bool | valid () const
| returns if option is valid (e.g.

## Static Public Attributes
static const size_t | OPTION6_IAADDR_LEN = 24
| length of the fixed part of the IAADDR option
Static Public Attributes inherited from isc::dhcp::Option
static bool | lenient_parsing_
| Governs whether options should be parsed less strictly.
static const size_t | OPTION4_HDR_LEN = 2
| length of the usual DHCPv4 option header (there are exceptions)
static const size_t | OPTION6_HDR_LEN = 4
| length of any DHCPv6 option header

## Protected Attributes
isc::asiolink::IOAddress | addr_
| contains an IPv6 address
unsigned int | preferred_
| contains preferred-lifetime timer (in seconds)
unsigned int | valid_
| contains valid-lifetime timer (in seconds)
Protected Attributes inherited from isc::dhcp::Option
OptionBuffer | data_
| contains content of this data
std::string | encapsulated_space_
| Name of the option space being encapsulated by this option.
OptionCollection | options_
| collection for storing suboptions
uint16_t | type_
| option type (0-255 for DHCPv4, 0-65535 for DHCPv6)
Universe | universe_
| option universe (V4 or V6)

## Additional Inherited Members
Public Types inherited from isc::dhcp::Option
typedef OptionPtr | Factory(Option::Universe u, uint16_t type, const OptionBuffer &buf)
| a factory function prototype
enum | Universe { V4 , V6 }
| defines option universe DHCPv4 or DHCPv6 More...
Static Public Member Functions inherited from isc::dhcp::Option
static OptionPtr | create (Universe u, uint16_t type)
| Factory function creating an instance of the `Option`.
static OptionPtr | create (Universe u, uint16_t type, const OptionBuffer &data)
| Factory function creating an instance of the `Option`.
static OptionPtr | factory (Option::Universe u, uint16_t type)
| Factory function to create instance of option.
static OptionPtr | factory (Option::Universe u, uint16_t type, const OptionBuffer &buf)
| Factory function to create instance of option.
Protected Member Functions inherited from isc::dhcp::Option
void | check () const
| A protected method used for option correctness.
template<typename OptionType>
OptionPtr | cloneInternal () const
| Copies this option and returns a pointer to the copy.
std::string | headerToText (const int indent=0, const std::string &type_name="") const
| Returns option header in the textual format.
void | packHeader (isc::util::OutputBuffer &buf, bool check=true) const
| Store option's header in a buffer.
void | packOptions (isc::util::OutputBuffer &buf, bool check=true) const
| Store sub options in a buffer.
std::string | suboptionsToText (const int indent=0) const
| Returns collection of suboptions in the textual format.
void | unpackOptions (const OptionBuffer &buf, size_t rec_level=0)
| Builds a collection of sub options from the buffer.

## Detailed Description

Definition at line 22 of file option6_iaaddr.h.

## Constructor & Destructor Documentation

## ◆ Option6IAAddr() [1/2]

isc::dhcp::Option6IAAddr::Option6IAAddr | ( | uint16_t | type,
|  | const isc::asiolink::IOAddress & | addr,
|  | uint32_t | preferred,
|  | uint32_t | valid )

Constructor, used for options constructed (during transmission).

Exceptions

  BadValue | if specified addr is not IPv6

Parameters

  type | option type
  addr | reference to an address
  preferred | address preferred lifetime (in seconds)
  valid | address valid lifetime (in seconds)

Definition at line 29 of file option6_iaaddr.cc.

References isc::dhcp::Option::Option(), addr_, DHCP6_OPTION_SPACE, isc_throw, isc::asiolink::IOAddress::isV6(), preferred_, isc::dhcp::Option::setEncapsulatedSpace(), isc::dhcp::Option::V6, isc::dhcp::Option::valid(), and valid_.

Referenced by isc::dhcp::Option6IAPrefix::Option6IAPrefix(), and isc::dhcp::Option6IAPrefix::Option6IAPrefix().

Here is the call graph for this function:

## ◆ Option6IAAddr() [2/2]

isc::dhcp::Option6IAAddr::Option6IAAddr | ( | uint32_t | type,
|  | OptionBuffer::const_iterator | begin,
|  | OptionBuffer::const_iterator | end,
|  | size_t | rec_level = 0 )

Constructor, used for received options.

Exceptions

  OutOfRange | if specified option is truncated

Parameters

  type | option type
  begin | iterator to first byte of option data
  end | iterator to end of option data (first byte after option end)
  rec_level | recursion level.

Definition at line 39 of file option6_iaaddr.cc.

References isc::dhcp::Option::Option(), addr_, DHCP6_OPTION_SPACE, isc::dhcp::Option::setEncapsulatedSpace(), unpack(), and isc::dhcp::Option::V6.

Here is the call graph for this function:

## Member Function Documentation

## ◆ clone()

OptionPtr isc::dhcp::Option6IAAddr::clone | ( |  | ) | const
| virtual

Copies this option and returns a pointer to the copy.

Reimplemented from isc::dhcp::Option.

Reimplemented in isc::dhcp::Option6IAPrefix, and Option6IAPrefix.

Definition at line 47 of file option6_iaaddr.cc.

References isc::dhcp::Option::cloneInternal().

Here is the call graph for this function:

## ◆ getAddress()

isc::asiolink::IOAddress isc::dhcp::Option6IAAddr::getAddress | ( |  | ) | const
| inline

Returns address contained within this option.

Returns
  address

Definition at line 108 of file option6_iaaddr.h.

References addr_.

Referenced by isc::perfdhcp::TestControl::address6Uniqueness().

## ◆ getPreferred()

unsigned int isc::dhcp::Option6IAAddr::getPreferred | ( |  | ) | const
| inline

Returns preferred lifetime of an address.

Returns
  preferred lifetime (in seconds)

Definition at line 114 of file option6_iaaddr.h.

References preferred_.

## ◆ getValid()

unsigned int isc::dhcp::Option6IAAddr::getValid | ( |  | ) | const
| inline

Returns valid lifetime of an address.

Returns
  valid lifetime (in seconds)

Definition at line 120 of file option6_iaaddr.h.

References valid_.

## ◆ len()

uint16_t isc::dhcp::Option6IAAddr::len | ( |  | ) | const
| virtual

returns data length (data length + DHCPv4/DHCPv6 option header)

Reimplemented from isc::dhcp::Option.

Reimplemented in isc::dhcp::Option6IAPrefix, and Option6IAPrefix.

Definition at line 107 of file option6_iaaddr.cc.

References isc::dhcp::Option::OPTION6_HDR_LEN, OPTION6_IAADDR_LEN, and isc::dhcp::Option::options_.

Referenced by pack().

## ◆ pack()

void isc::dhcp::Option6IAAddr::pack | ( | isc::util::OutputBuffer & | buf,
|  | bool | check = true ) const
| virtual

Writes option in wire-format.

Writes option in wire-format to buf, returns pointer to first unused byte after stored option.

Parameters

  buf | pointer to a buffer
  check | if set to false, allows options larger than 255 for v4

Reimplemented from isc::dhcp::Option.

Reimplemented in isc::dhcp::Option6IAPrefix, and Option6IAPrefix.

Definition at line 51 of file option6_iaaddr.cc.

References addr_, isc::dhcp::Option::getHeaderLen(), isc_throw, len(), isc::dhcp::Option::packOptions(), preferred_, isc::dhcp::Option::type_, valid_, isc::util::OutputBuffer::writeData(), isc::util::OutputBuffer::writeUint16(), and isc::util::OutputBuffer::writeUint32().

Here is the call graph for this function:

## ◆ setAddress()

void isc::dhcp::Option6IAAddr::setAddress | ( | const isc::asiolink::IOAddress & | addr | ) |
| inline

sets address in this option.

Parameters

  addr | address to be sent in this option

Definition at line 90 of file option6_iaaddr.h.

References addr_.

## ◆ setPreferred()

void isc::dhcp::Option6IAAddr::setPreferred | ( | unsigned int | pref | ) |
| inline

Sets preferred lifetime (in seconds).

Parameters

  pref | address preferred lifetime (in seconds)

Definition at line 96 of file option6_iaaddr.h.

References preferred_.

## ◆ setValid()

void isc::dhcp::Option6IAAddr::setValid | ( | unsigned int | valid | ) |
| inline

Sets valid lifetime (in seconds).

Parameters

  valid | address valid lifetime (in seconds)

Definition at line 102 of file option6_iaaddr.h.

References isc::dhcp::Option::valid(), and valid_.

Here is the call graph for this function:

## ◆ toText()

std::string isc::dhcp::Option6IAAddr::toText | ( | int | indent = 0 | ) | const
| virtual

Returns string representation of the option.

Parameters

  indent | number of spaces before printing text

Returns
  string with text representation.

Reimplemented from isc::dhcp::Option.

Reimplemented in isc::dhcp::Option6IAPrefix, and Option6IAPrefix.

Definition at line 96 of file option6_iaaddr.cc.

References addr_, isc::dhcp::Option::headerToText(), preferred_, isc::dhcp::Option::suboptionsToText(), and valid_.

Here is the call graph for this function:

## ◆ unpack() [1/2]

void isc::dhcp::Option6IAAddr::unpack | ( | OptionBufferConstIter | begin,
|  | OptionBufferConstIter | end )
| virtual

Parses received buffer.

Parameters

  begin | iterator to first byte of option data
  end | iterator to end of option data (first byte after option end)

Reimplemented from isc::dhcp::Option.

Reimplemented in isc::dhcp::Option6IAPrefix, and Option6IAPrefix.

Definition at line 71 of file option6_iaaddr.cc.

References unpack().

Referenced by Option6IAAddr(), and unpack().

Here is the call graph for this function:

## ◆ unpack() [2/2]

void isc::dhcp::Option6IAAddr::unpack | ( | OptionBufferConstIter | begin,
|  | OptionBufferConstIter | end,
|  | size_t | rec_level )

Parses received buffer with limited recursion.

Parameters

  begin | iterator to first byte of option data
  end | iterator to end of option data (first byte after option end)
  rec_level | recursion level.

Definition at line 76 of file option6_iaaddr.cc.

References addr_, isc::asiolink::IOAddress::fromBytes(), isc_throw, OPTION6_IAADDR_LEN, preferred_, isc::util::readUint32(), isc::dhcp::Option::type_, isc::dhcp::Option::unpackOptions(), and valid_.

Here is the call graph for this function:

## Member Data Documentation

## ◆ addr_

isc::asiolink::IOAddress isc::dhcp::Option6IAAddr::addr_
| protected

contains an IPv6 address

Definition at line 127 of file option6_iaaddr.h.

Referenced by Option6IAAddr(), Option6IAAddr(), isc::dhcp::Option6IAPrefix::Option6IAPrefix(), getAddress(), pack(), isc::dhcp::Option6IAPrefix::pack(), setAddress(), isc::dhcp::Option6IAPrefix::setPrefix(), toText(), isc::dhcp::Option6IAPrefix::toText(), unpack(), and isc::dhcp::Option6IAPrefix::unpack().

## ◆ OPTION6_IAADDR_LEN

const size_t isc::dhcp::Option6IAAddr::OPTION6_IAADDR_LEN = 24
| static

length of the fixed part of the IAADDR option

Definition at line 26 of file option6_iaaddr.h.

Referenced by isc::dhcp::OptionDefinition::factoryIAAddr6(), len(), and unpack().

## ◆ preferred_

unsigned int isc::dhcp::Option6IAAddr::preferred_
| protected

contains preferred-lifetime timer (in seconds)

Definition at line 130 of file option6_iaaddr.h.

Referenced by Option6IAAddr(), getPreferred(), pack(), isc::dhcp::Option6IAPrefix::pack(), setPreferred(), toText(), isc::dhcp::Option6IAPrefix::toText(), unpack(), and isc::dhcp::Option6IAPrefix::unpack().

## ◆ valid_

unsigned int isc::dhcp::Option6IAAddr::valid_
| protected

contains valid-lifetime timer (in seconds)

Definition at line 133 of file option6_iaaddr.h.

Referenced by Option6IAAddr(), getValid(), pack(), isc::dhcp::Option6IAPrefix::pack(), setValid(), toText(), isc::dhcp::Option6IAPrefix::toText(), unpack(), and isc::dhcp::Option6IAPrefix::unpack().

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

- option6_iaaddr.h
- option6_iaaddr.cc