| Kea 3.0.2-git

isc::dhcp::OptionClasslessStaticRoute Class Reference

Represents DHCPv4 Classless Static Route Option (code 121). More...

`#include <option_classless_static_route.h>`

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

## Public Member Functions
| OptionClasslessStaticRoute (OptionBufferConstIter begin, OptionBufferConstIter end, bool convenient_notation=false)
| Constructor of the Option from data in the buffer.
OptionPtr | clone () const override
| Copies this option and returns a pointer to the copy.
uint16_t | len () const override
| Returns length of the complete option (data length + DHCPv4 option header).
void | pack (util::OutputBuffer &buf, bool check=true) const override
| Writes option in wire-format to a buffer.
std::string | toText (int indent=0) const override
| Returns string representation of the option.
void | unpack (OptionBufferConstIter begin, OptionBufferConstIter end) override
| Parses option from the 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)
| 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

Represents DHCPv4 Classless Static Route Option (code 121).

Definition at line 21 of file option_classless_static_route.h.

## Constructor & Destructor Documentation

## ◆ OptionClasslessStaticRoute()

isc::dhcp::OptionClasslessStaticRoute::OptionClasslessStaticRoute | ( | OptionBufferConstIter | begin,
|  | OptionBufferConstIter | end,
|  | bool | convenient_notation = false )

Constructor of the Option from data in the buffer.

This constructor creates an instance of the option using a buffer with the data. This Option allows constructing from on-wire binary data and also from convenient string notation which can be used in config. To determine what is the nature of the data in buffer, `convenient_notation` flag is used. It may throw an exception if the `unpack` method throws.

Parameters

  begin | Iterator pointing to the beginning of the buffer holding an option.
  end | Iterator pointing to the end of the buffer holding an option.
  convenient_notation | Flag stating whether data in buffer is a convenient notation string that needs custom parsing or binary data. Defaults to `false`.

Definition at line 21 of file option_classless_static_route.cc.

References isc::dhcp::Option::Option(), isc::dhcp::DHO_CLASSLESS_STATIC_ROUTE, unpack(), and isc::dhcp::Option::V4.

Here is the call graph for this function:

## Member Function Documentation

## ◆ clone()

OptionPtr isc::dhcp::OptionClasslessStaticRoute::clone | ( |  | ) | const
| override virtual

Copies this option and returns a pointer to the copy.

Returns
  Pointer to the copy of the option.

Reimplemented from isc::dhcp::Option.

Definition at line 30 of file option_classless_static_route.cc.

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

Here is the call graph for this function:

## ◆ len()

uint16_t isc::dhcp::OptionClasslessStaticRoute::len | ( |  | ) | const
| override virtual

Returns length of the complete option (data length + DHCPv4 option header).

Returns
  length of the option

Reimplemented from isc::dhcp::Option.

Definition at line 90 of file option_classless_static_route.cc.

References isc::dhcp::Option::getHeaderLen(), and len().

Referenced by len(), and toText().

Here is the call graph for this function:

## ◆ pack()

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

Writes option in wire-format to a buffer.

Writes option in wire-format to buffer, returns pointer to first unused byte after stored option (that is useful for writing options one after another). It may throw an exception if the `packHeader` method throws.

Parameters

  buf | pointer to a buffer
  check | flag which indicates if checking the option length is required (used only in V4)

Reimplemented from isc::dhcp::Option.

Definition at line 35 of file option_classless_static_route.cc.

References isc::dhcp::Option::check(), isc::dhcp::Option::packHeader(), isc::util::OutputBuffer::writeData(), and isc::util::OutputBuffer::writeUint32().

Here is the call graph for this function:

## ◆ toText()

std::string isc::dhcp::OptionClasslessStaticRoute::toText | ( | int | indent = 0 | ) | const
| override 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.

Definition at line 74 of file option_classless_static_route.cc.

References isc::dhcp::Option::getHeaderLen(), len(), and isc::dhcp::Option::type_.

Here is the call graph for this function:

## ◆ unpack()

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

Parses option from the received buffer.

Parameters

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

Exceptions

  OutOfRange | Thrown in case option contents are truncated.

Reimplemented from isc::dhcp::Option.

Definition at line 48 of file option_classless_static_route.cc.

References isc_throw, and isc::dhcp::Option::type_.

Referenced by OptionClasslessStaticRoute().

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

- option_classless_static_route.h
- option_classless_static_route.cc