Kea 2.7.1
isc::perfdhcp::LocalizedOption Class Reference

DHCP option at specific offset. More...

#include <localized_option.h>

+ Inheritance diagram for isc::perfdhcp::LocalizedOption:

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 OptionBuffergetData () 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)
 
OptionCollectiongetMutableOptions ()
 Returns all encapsulated options.
 
OptionPtr getOption (uint16_t type) const
 Returns shared_ptr to suboption of specific type.
 
const OptionCollectiongetOptions () 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)
 
Optionoperator= (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)
 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
uuniverse (V4 or V6).
typeoption 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.
datacontent of the option.
offsetlocation of option in a packet (zero is default).

Definition at line 51 of file localized_option.h.

◆ 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
uspecifies universe (V4 or V6)
typeoption type (0-255 for V4 and 0-65535 for V6)
firstiterator to the first element that should be copied
lastiterator to the next element after the last one to be copied.
offsetoffset of option in a packet (zero is default)

Definition at line 70 of file localized_option.h.

◆ 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_iaoption to be copied.
offsetlocation of the option in a packet.

Definition at line 87 of file localized_option.h.

References isc::dhcp::Option::data_, isc::dhcp::Option::type_, and isc::dhcp::Option::universe_.

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: