Kea: isc::perfdhcp::LocalizedOption Class Reference

| Kea 3.2.0-git

isc::perfdhcp::LocalizedOption Class Reference

DHCP option at specific offset. More...

`#include <localized_option.h>`

Inheritance diagram for isc::perfdhcp::LocalizedOption:
[legend]

## Public Member Functions
| LocalizedOption (const boost::shared_ptr< dhcp::Option6IA > &opt_ia, const size_t offset)
| Copy constructor, creates LocalizedOption from Option6IA.
| LocalizedOption (dhcp::Option::Universe u, uint16_t type, const dhcp::OptionBuffer &data, const size_t offset=0)
| Constructor, used to create localized option from buffer.
| LocalizedOption (dhcp::Option::Universe u, uint16_t type, dhcp::OptionBufferConstIter first, dhcp::OptionBufferConstIter last, const size_t offset=0)
| Constructor, used to create option from buffer iterators.
size_t | getOffset () const
| Returns offset of an option in a DHCP packet.
virtual bool | valid () const
| Checks if option is valid.
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.
virtual OptionPtr | clone () const
| Copies this option and returns a pointer to the copy.
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)
virtual uint16_t | len () const
| Returns length of the complete option (data length + DHCPv4/DHCPv6 option header).
Option & | operator= (const Option &rhs)
| Assignment operator.
virtual void | pack (isc::util::OutputBuffer &buf, bool check=true) const
| Writes option in wire-format to a buffer.
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 std::string | toText (int indent=0) const
| Returns string representation of the option.
virtual void | unpack (OptionBufferConstIter begin, OptionBufferConstIter end)
| Parses received buffer.

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

DHCP option at specific offset.

This class represents DHCP option with data placed at specified offset in DHCP message. Objects of this type are intended to be used when DHCP packets are created from templates (e.g. read from template file). Such packets have number of options with contents that have to be replaced before sending: e.g. DUID can be randomized. If option of this type is added to PerfPkt6 options collection, perfdhcp::PerfPkt6 will call getOffset on this object to retrieve user-defined option position and replace contents of the output buffer at this offset before packet is sent to the server. (

See also
  perfdhcp::PerfPkt6::rawPack). In order to read on-wire data from incoming packet client class has to specify options of perfdhcp::LocalizedOption type with expected offsets of these options in a packet. The perfdhcp::PerfPkt6 will use offsets to read fragments of packet and store them in options' buffers. (
  perfdhcp::PerfPkt6::rawUnpack).

Definition at line 37 of file localized_option.h.

## Constructor & Destructor Documentation

## ◆ LocalizedOption() [1/3]

isc::perfdhcp::LocalizedOption::LocalizedOption | ( | dhcp::Option::Universe | u,
|  | uint16_t | type,
|  | const dhcp::OptionBuffer & | data,
|  | const size_t | offset = 0 )
| inline

Constructor, used to create localized option from buffer.

This constructor creates localized option using whole provided option buffer.

Parameters

  u | universe (V4 or V6).
  type | option type (0-255 for V4 and 0-65535 for V6). Option values 0 and 255 (v4) and 0 (v6) are not valid option codes but they are accepted here for the server testing purposes.
  data | content of the option.
  offset | location of option in a packet (zero is default).

Definition at line 51 of file localized_option.h.

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

Here is the call graph for this function:

## ◆ LocalizedOption() [2/3]

isc::perfdhcp::LocalizedOption::LocalizedOption | ( | dhcp::Option::Universe | u,
|  | uint16_t | type,
|  | dhcp::OptionBufferConstIter | first,
|  | dhcp::OptionBufferConstIter | last,
|  | const size_t | offset = 0 )
| inline

Constructor, used to create option from buffer iterators.

This constructor creates localized option using part of the option buffer pointed by iterators.

Parameters

  u | specifies universe (V4 or V6)
  type | option type (0-255 for V4 and 0-65535 for V6)
  first | iterator to the first element that should be copied
  last | iterator to the next element after the last one to be copied.
  offset | offset of option in a packet (zero is default)

Definition at line 70 of file localized_option.h.

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

Here is the call graph for this function:

## ◆ LocalizedOption() [3/3]

isc::perfdhcp::LocalizedOption::LocalizedOption | ( | const boost::shared_ptr< dhcp::Option6IA > & | opt_ia,
|  | const size_t | offset )
| inline

Copy constructor, creates LocalizedOption from Option6IA.

This copy constructor creates regular option from Option6IA. The data from Option6IA data members are copied to option buffer in appropriate sequence.

Parameters

  opt_ia | option to be copied.
  offset | location of the option in a packet.

Definition at line 87 of file localized_option.h.

References isc::dhcp::Option::Option(), isc::dhcp::Option::data_, isc::util::OutputBuffer::getData(), isc::util::OutputBuffer::getLength(), isc::dhcp::Option::type_, isc::dhcp::Option::universe_, and isc::dhcp::Option::V6.

Here is the call graph for this function:

## Member Function Documentation

## ◆ getOffset()

size_t isc::perfdhcp::LocalizedOption::getOffset | ( |  | ) | const
| inline

Returns offset of an option in a DHCP packet.

Returns
  option offset in a packet

Definition at line 124 of file localized_option.h.

## ◆ valid()

virtual bool isc::perfdhcp::LocalizedOption::valid | ( |  | ) | const
| inlinevirtual

Checks if option is valid.

Returns
  true, if option is valid.

Reimplemented from isc::dhcp::Option.

Definition at line 129 of file localized_option.h.

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

- localized_option.h