Kea: isc::dhcp::Option6StatusCode Class Reference

| Kea 3.2.0-git

isc::dhcp::Option6StatusCode Class Reference

This class represents Status Code option (13) from RFC 9915. More...

`#include <option6_status_code.h>`

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

## Public Member Functions
| Option6StatusCode (const uint16_t status_code, const std::string &status_message)
| Constructor, used for options constructed (during transmission).
| Option6StatusCode (OptionBufferConstIter begin, OptionBufferConstIter end)
| Constructor, used for received options.
virtual OptionPtr | clone () const
| Copies this option and returns a pointer to the copy.
std::string | dataToText () const
| Returns textual representation of the option data.
uint16_t | getStatusCode () const
| Returns numeric status code.
std::string | getStatusCodeName () const
| Returns the name of the status code.
const std::string & | getStatusMessage () const
| Returns status message.
virtual uint16_t | len () const
| Returns total length of the option.
virtual void | pack (isc::util::OutputBuffer &buf, bool check=true) const
| Writes option in wire-format.
void | setStatusCode (const uint16_t status_code)
| Sets new numeric status code.
void | setStatusMessage (const std::string &status_message)
| Sets new status message.
virtual std::string | toText (int indent=0) const
| Returns textual representation of the option.
virtual void | unpack (OptionBufferConstIter begin, OptionBufferConstIter end)
| Parses received buffer.
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.

## 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.
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 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.
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)

## Detailed Description

This class represents Status Code option (13) from RFC 9915.

Definition at line 24 of file option6_status_code.h.

## Constructor & Destructor Documentation

## ◆ Option6StatusCode() [1/2]

isc::dhcp::Option6StatusCode::Option6StatusCode | ( | const uint16_t | status_code,
|  | const std::string & | status_message )

Constructor, used for options constructed (during transmission).

Parameters

  status_code | Numeric status code, e.g. STATUS_NoAddrsAvail.
  status_message | Textual message for the statuscode.

Definition at line 30 of file option6_status_code.cc.

References isc::dhcp::Option::Option(), D6O_STATUS_CODE, and isc::dhcp::Option::V6.

Here is the call graph for this function:

## ◆ Option6StatusCode() [2/2]

isc::dhcp::Option6StatusCode::Option6StatusCode | ( | OptionBufferConstIter | begin,
|  | OptionBufferConstIter | end )

Constructor, used for received options.

Exceptions

  OutOfRange | if specified option is truncated

Parameters

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

Definition at line 36 of file option6_status_code.cc.

References isc::dhcp::Option::Option(), D6O_STATUS_CODE, STATUS_Success, unpack(), and isc::dhcp::Option::V6.

Here is the call graph for this function:

## Member Function Documentation

## ◆ clone()

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

Copies this option and returns a pointer to the copy.

Reimplemented from isc::dhcp::Option.

Definition at line 46 of file option6_status_code.cc.

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

Here is the call graph for this function:

## ◆ dataToText()

std::string isc::dhcp::Option6StatusCode::dataToText | ( |  | ) | const

Returns textual representation of the option data.

This method returns only the status code and the status message. It excludes the option header.

Definition at line 92 of file option6_status_code.cc.

References getStatusCode(), and getStatusCodeName().

Referenced by toText().

Here is the call graph for this function:

## ◆ getStatusCode()

uint16_t isc::dhcp::Option6StatusCode::getStatusCode | ( |  | ) | const
| inline

Returns numeric status code.

Definition at line 77 of file option6_status_code.h.

Referenced by dataToText(), getStatusCodeName(), and pack().

## ◆ getStatusCodeName()

std::string isc::dhcp::Option6StatusCode::getStatusCodeName | ( |  | ) | const

Returns the name of the status code.

Definition at line 110 of file option6_status_code.cc.

References getStatusCode(), STATUS_MalformedQuery, STATUS_NoAddrsAvail, STATUS_NoBinding, STATUS_NoPrefixAvail, STATUS_NotAllowed, STATUS_NotConfigured, STATUS_NotOnLink, STATUS_Success, STATUS_UnknownQueryType, STATUS_UnspecFail, and STATUS_UseMulticast.

Referenced by dataToText().

Here is the call graph for this function:

## ◆ getStatusMessage()

const std::string & isc::dhcp::Option6StatusCode::getStatusMessage | ( |  | ) | const
| inline

Returns status message.

Definition at line 92 of file option6_status_code.h.

## ◆ len()

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

Returns total length of the option.

The returned length is a sum of the option header and data fields.

Reimplemented from isc::dhcp::Option.

Definition at line 79 of file option6_status_code.cc.

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

Here is the call graph for this function:

## ◆ pack()

void isc::dhcp::Option6StatusCode::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

  [out] | buf | Pointer to the output buffer.
  | check | if set to false, allows options larger than 255 for v4

Reimplemented from isc::dhcp::Option.

Definition at line 51 of file option6_status_code.cc.

References getStatusCode(), isc::dhcp::Option::packHeader(), isc::util::OutputBuffer::writeData(), and isc::util::OutputBuffer::writeUint16().

Here is the call graph for this function:

## ◆ setStatusCode()

void isc::dhcp::Option6StatusCode::setStatusCode | ( | const uint16_t | status_code | ) |
| inline

Sets new numeric status code.

Parameters

  status_code | New numeric status code.

Definition at line 87 of file option6_status_code.h.

## ◆ setStatusMessage()

void isc::dhcp::Option6StatusCode::setStatusMessage | ( | const std::string & | status_message | ) |
| inline

Sets new status message.

Parameters

  status_message | New status message (empty string is allowed).

Definition at line 99 of file option6_status_code.h.

## ◆ toText()

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

Returns textual representation of the option.

Parameters

  indent | Number of spaces before printing text.

Reimplemented from isc::dhcp::Option.

Definition at line 84 of file option6_status_code.cc.

References dataToText(), and isc::dhcp::Option::headerToText().

Here is the call graph for this function:

## ◆ unpack()

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

Parses received buffer.

Exceptions

  OutOfRange | if specified option is truncated

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.

Definition at line 65 of file option6_status_code.cc.

References D6O_STATUS_CODE, isc_throw, and isc::util::readUint16().

Referenced by Option6StatusCode().

Here is the call graph for this function:

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

- option6_status_code.h
- option6_status_code.cc