Kea 2.7.6
|
DHCP option at specific offset. More...
#include <localized_option.h>
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) |
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) | |
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. (
Definition at line 37 of file localized_option.h.
|
inline |
Constructor, used to create localized option from buffer.
This constructor creates localized option using whole provided option buffer.
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.
|
inline |
Constructor, used to create option from buffer iterators.
This constructor creates localized option using part of the option buffer pointed by iterators.
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.
|
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.
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::data_, isc::util::OutputBuffer::getData(), isc::util::OutputBuffer::getLength(), isc::dhcp::Option::type_, and isc::dhcp::Option::universe_.
|
inline |
Returns offset of an option in a DHCP packet.
Definition at line 124 of file localized_option.h.
|
inlinevirtual |
Checks if option is valid.
Reimplemented from isc::dhcp::Option.
Definition at line 129 of file localized_option.h.