Kea  2.1.7-git
isc::dhcp::Option4ClientFqdn Class Reference

Represents DHCPv4 Client FQDN Option (code 81). More...

#include <option4_client_fqdn.h>

+ Inheritance diagram for isc::dhcp::Option4ClientFqdn:

Classes

class  Rcode
 Represents the value of one of the RCODE1 or RCODE2 fields. More...
 

Public Types

enum  DomainNameType { PARTIAL, FULL }
 Type of the domain-name: partial or full. More...
 
- Public Types inherited from isc::dhcp::Option
typedef OptionPtr Factory(Option::Universe u, uint16_t type, const OptionBuffer &buf)
 a factory function prototype More...
 
enum  Universe { V4, V6 }
 defines option universe DHCPv4 or DHCPv6 More...
 

Public Member Functions

 Option4ClientFqdn (const uint8_t flags, const Rcode &rcode, const std::string &domain_name, const DomainNameType domain_name_type=FULL)
 Constructor, creates option instance using flags and domain name. More...
 
 Option4ClientFqdn (const uint8_t flags, const Rcode &rcode)
 Constructor, creates option instance with empty domain name. More...
 
 Option4ClientFqdn (OptionBufferConstIter first, OptionBufferConstIter last)
 Constructor, creates an option instance from part of the buffer. More...
 
 Option4ClientFqdn (const Option4ClientFqdn &source)
 Copy constructor. More...
 
virtual ~Option4ClientFqdn ()
 Destructor. More...
 
virtual OptionPtr clone () const
 Copies this option and returns a pointer to the copy. More...
 
std::string getDomainName () const
 Returns the domain-name in the text format. More...
 
DomainNameType getDomainNameType () const
 Returns enumerator value which indicates whether domain-name is partial or full. More...
 
bool getFlag (const uint8_t flag) const
 Checks if the specified flag of the DHCPv4 Client FQDN Option is set. More...
 
std::pair< Rcode, RcodegetRcode () const
 Returns Rcode objects representing value of RCODE1 and RCODE2. More...
 
virtual uint16_t len () const
 Returns length of the complete option (data length + DHCPv4 option header). More...
 
Option4ClientFqdnoperator= (const Option4ClientFqdn &source)
 Assignment operator. More...
 
virtual void pack (isc::util::OutputBuffer &buf, bool check=true) const
 Writes option in the wire format into a buffer. More...
 
void packDomainName (isc::util::OutputBuffer &buf) const
 Writes domain-name in the wire format into a buffer. More...
 
void resetDomainName ()
 Set empty domain-name. More...
 
void resetFlags ()
 Sets the flag field value to 0. More...
 
void setDomainName (const std::string &domain_name, const DomainNameType domain_name_type)
 Set new domain-name. More...
 
void setFlag (const uint8_t flag, const bool set)
 Modifies the value of the specified DHCPv4 Client Fqdn Option flag. More...
 
void setRcode (const Rcode &rcode)
 Set Rcode value. More...
 
virtual std::string toText (int indent=0) const
 Returns string representation of the option. More...
 
virtual void unpack (OptionBufferConstIter first, OptionBufferConstIter last)
 Parses option from the received buffer. More...
 
- Public Member Functions inherited from isc::dhcp::Option
 Option (Universe u, uint16_t type)
 ctor, used for options constructed, usually during transmission More...
 
 Option (Universe u, uint16_t type, const OptionBuffer &data)
 Constructor, used for received options. More...
 
 Option (Universe u, uint16_t type, OptionBufferConstIter first, OptionBufferConstIter last)
 Constructor, used for received options. More...
 
 Option (const Option &source)
 Copy constructor. More...
 
virtual ~Option ()
 just to force that every option has virtual dtor More...
 
void addOption (OptionPtr opt)
 Adds a sub-option. More...
 
bool delOption (uint16_t type)
 Attempts to delete first suboption of requested type. More...
 
bool equals (const OptionPtr &other) const
 Checks if options are equal. More...
 
virtual bool equals (const Option &other) const
 Checks if two options are equal. More...
 
virtual const OptionBuffergetData () const
 Returns pointer to actual data. More...
 
std::string getEncapsulatedSpace () const
 Returns the name of the option space encapsulated by this option. More...
 
virtual uint16_t getHeaderLen () const
 Returns length of header (2 for v4, 4 for v6) More...
 
OptionCollectiongetMutableOptions ()
 Returns all encapsulated options. More...
 
OptionPtr getOption (uint16_t type) const
 Returns shared_ptr to suboption of specific type. More...
 
const OptionCollectiongetOptions () const
 Returns all encapsulated options. More...
 
void getOptionsCopy (OptionCollection &options_copy) const
 Performs deep copy of suboptions. More...
 
uint16_t getType () const
 Returns option type (0-255 for DHCPv4, 0-65535 for DHCPv6) More...
 
uint16_t getUint16 () const
 Returns content of first word. More...
 
uint32_t getUint32 () const
 Returns content of first double word. More...
 
uint8_t getUint8 () const
 Returns content of first byte. More...
 
Universe getUniverse () const
 returns option universe (V4 or V6) More...
 
Optionoperator= (const Option &rhs)
 Assignment operator. More...
 
template<typename InputIterator >
void setData (InputIterator first, InputIterator last)
 Sets content of this option from buffer. More...
 
void setEncapsulatedSpace (const std::string &encapsulated_space)
 Sets the name of the option space encapsulated by this option. More...
 
void setUint16 (uint16_t value)
 Sets content of this option to a single uint16 value. More...
 
void setUint32 (uint32_t value)
 Sets content of this option to a single uint32 value. More...
 
void setUint8 (uint8_t value)
 Sets content of this option to a single uint8 value. More...
 
virtual std::vector< uint8_t > toBinary (const bool include_header=false) const
 Returns binary representation of the option. More...
 
virtual std::string toHexString (const bool include_header=false) const
 Returns string containing hexadecimal representation of option. More...
 
virtual std::string toString () const
 Returns string representation of the value. More...
 
virtual bool valid () const
 returns if option is valid (e.g. More...
 

Static Public Member Functions

Well known Rcode declarations for DHCPv4 Client FQDN Option
static const RcodeRCODE_SERVER ()
 Rcode being set by the server. More...
 
static const RcodeRCODE_CLIENT ()
 Rcode being set by the client. 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. More...
 
static OptionPtr create (Universe u, uint16_t type, const OptionBuffer &data)
 Factory function creating an instance of the Option. More...
 
static OptionPtr factory (Option::Universe u, uint16_t type, const OptionBuffer &buf)
 Factory function to create instance of option. More...
 
static OptionPtr factory (Option::Universe u, uint16_t type)
 Factory function to create instance of option. More...
 

Static Public Attributes

static const uint16_t FIXED_FIELDS_LEN = 3
 The size in bytes of the fixed fields within DHCPv4 Client Fqdn Option. More...
 
static const uint8_t FLAG_MASK = 0xF
 Mask which zeroes MBZ flag bits. More...
 
A set of constants used to identify and set bits in the flags field
static const uint8_t FLAG_S = 0x01
 Bit S. More...
 
static const uint8_t FLAG_O = 0x02
 Bit O. More...
 
static const uint8_t FLAG_E = 0x04
 Bit E. More...
 
static const uint8_t FLAG_N = 0x08
 Bit N. More...
 
- Static Public Attributes inherited from isc::dhcp::Option
static bool lenient_parsing_
 Governs whether options should be parsed less strictly. More...
 
static const size_t OPTION4_HDR_LEN = 2
 length of the usual DHCPv4 option header (there are exceptions) More...
 
static const size_t OPTION6_HDR_LEN = 4
 length of any DHCPv6 option header More...
 

Additional Inherited Members

- Protected Member Functions inherited from isc::dhcp::Option
void check () const
 A protected method used for option correctness. More...
 
template<typename OptionType >
OptionPtr cloneInternal () const
 Copies this option and returns a pointer to the copy. More...
 
std::string headerToText (const int indent=0, const std::string &type_name="") const
 Returns option header in the textual format. More...
 
void packHeader (isc::util::OutputBuffer &buf, bool check=true) const
 Store option's header in a buffer. More...
 
void packOptions (isc::util::OutputBuffer &buf, bool check=true) const
 Store sub options in a buffer. More...
 
std::string suboptionsToText (const int indent=0) const
 Returns collection of suboptions in the textual format. More...
 
void unpackOptions (const OptionBuffer &buf)
 Builds a collection of sub options from the buffer. More...
 
- Protected Attributes inherited from isc::dhcp::Option
OptionBuffer data_
 contains content of this data More...
 
std::string encapsulated_space_
 Name of the option space being encapsulated by this option. More...
 
OptionCollection options_
 collection for storing suboptions More...
 
uint16_t type_
 option type (0-255 for DHCPv4, 0-65535 for DHCPv6) More...
 
Universe universe_
 option universe (V4 or V6) More...
 

Detailed Description

Represents DHCPv4 Client FQDN Option (code 81).

This option has been defined in the RFC 4702 and it has a following structure:

  • Code (1 octet) - option code (always equal to 81).
  • Len (1 octet) - a length of the option.
  • Flags (1 octet) - a field carrying "NEOS" flags described below.
  • RCODE1 (1 octet) - deprecated field which should be set to 0 by the client and set to 255 by the server.
  • RCODE2 (1 octet) - deprecated, should be used in the same way as RCODE1.
  • Domain Name - variable length field comprising partial or fully qualified domain name.

The flags field has the following structure:

0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
| MBZ |N|E|O|S|
+-+-+-+-+-+-+-+-+

where:

  • N flag specifies whether server should (0) or should not (1) perform DNS Update,
  • E flag specifies encoding of the Domain Name field. If this flag is set to 1 it indicates canonical wire format without compression. 0 indicates the deprecated ASCII format.
  • O flag is set by the server to indicate that it has overridden client's preference set with the S bit.
  • S flag specifies whether server should (1) or should not (0) perform forward (FQDN-to-address) updates.

This class exposes a set of functions to modify flags and check their correctness.

Domain names being carried by DHCPv4 Client Fqdn Option can be fully qualified or partial. Partial domain names are encoded similar to the fully qualified domain names, except that they lack terminating zero at the end of their wire representation (or lack of dot at the end, in case of ASCII encoding). It is also accepted to create an instance of this option which has empty domain-name. Clients use empty domain-names to indicate that server should generate complete fully qualified domain-name.

Since domain names are case insensitive (see RFC 4343), this class converts them to lower case format regardless if they are received over the wire or created from strings.

Warning
: The RFC4702 section 2.3.1 states that the clients and servers should use character sets specified in RFC952, section 2.1 for ASCII-encoded domain-names. This class doesn't detect the character set violation for ASCII-encoded domain-name. It could be implemented in the future but it is not important now for two reasons:
  • ASCII encoding is deprecated
  • clients SHOULD obey restrictions but if they don't, server may still process the option

RFC 4702 mandates that the DHCP client sets RCODE1 and RCODE2 to 0 and that server sets them to 255. This class allows to set the value for these fields and both fields are always set to the same value. There is no way to set them separately (e.g. set different value for RCODE1 and RCODE2). However, there are no use cases which would require it.

Design choice: This class uses pimpl idiom to separate the interface from implementation specifics. Implementations may use different approaches to handle domain names (mostly validation of the domain-names). The existing isc::dns::Name class is a natural (and the simplest) choice to handle domain-names. Use of this class however, implies that libdhcp must be linked with libdns. At some point these libraries may need to be separated, i.e. to support compilation and use of standalone DHCP server. This will require that the part of implementation which deals with domain-names is modified to not use classes from libdns. These changes will be transparent for this interface.

Definition at line 110 of file option4_client_fqdn.h.

Member Enumeration Documentation

◆ DomainNameType

Type of the domain-name: partial or full.

Enumerator
PARTIAL 
FULL 

Definition at line 148 of file option4_client_fqdn.h.

Constructor & Destructor Documentation

◆ Option4ClientFqdn() [1/4]

isc::dhcp::Option4ClientFqdn::Option4ClientFqdn ( const uint8_t  flags,
const Rcode rcode,
const std::string &  domain_name,
const DomainNameType  domain_name_type = FULL 
)
explicit

Constructor, creates option instance using flags and domain name.

This constructor is used to create an instance of the option which will be included in outgoing messages.

Note that the RCODE values are encapsulated by the Rcode object (not a simple uint8_t value). This helps to prevent a caller from confusing the flags value with rcode value (both are uint8_t values). For example: if caller swaps the two, it will be detected in the compilation time. Also, this API encourages the caller to use two predefined functions: RCODE_SERVER and RCODE_CLIENT to set the value of RCODE. These functions generate objects which represent the only valid values to be be passed to the constructor (255 and 0 respectively). Other values should not be used. However, it is still possible that the other entity (client or server) sends the option with invalid value. Although, the RCODE values are ignored, there should be a way to represent such invalid RCODE value. The Rcode class is capable of representing it.

Parameters
flagsa combination of flags to be stored in flags field.
rcodeRcode object representing a value for RCODE1 and RCODE2 fields of the option. Both fields are assigned the same value encapsulated by the parameter.
domain_namea name to be stored in the domain-name field.
domain_name_typeindicates if the domain name is partial or full.
Exceptions
InvalidOption4FqdnFlagsif value of the flags field is wrong.
InvalidOption4FqdnDomainNameif the domain-name is invalid.

Definition at line 335 of file option4_client_fqdn.cc.

◆ Option4ClientFqdn() [2/4]

isc::dhcp::Option4ClientFqdn::Option4ClientFqdn ( const uint8_t  flags,
const Rcode rcode 
)

Constructor, creates option instance with empty domain name.

This constructor creates an instance of the option with empty domain-name. This domain-name is marked partial.

Parameters
flagsa combination of flags to be stored in flags field.
rcodeRcode object representing a value for RCODE1 and RCODE2 fields. Both fields are assigned the same value encapsulated by this parameter.
Exceptions
InvalidOption4FqdnFlagsif value of the flags field is invalid.

Definition at line 330 of file option4_client_fqdn.cc.

◆ Option4ClientFqdn() [3/4]

isc::dhcp::Option4ClientFqdn::Option4ClientFqdn ( OptionBufferConstIter  first,
OptionBufferConstIter  last 
)
explicit

Constructor, creates an option instance from part of the buffer.

This constructor is mainly used to parse options in the received messages. Function parameters specify buffer bounds from which the option should be created. The size of the buffer chunk, specified by the constructor's parameters should be equal or larger than the size of the option. Otherwise, constructor will throw an exception.

Parameters
firstthe lower bound of the buffer to create option from.
lastthe upper bound of the buffer to create option from.
Exceptions
InvalidOption4FqdnFlagsif value of the flags field is invalid.
InvalidOption4FqdnDomainNameif the domain-name carried by the option is invalid.
OutOfRangeif the option is truncated.

Definition at line 344 of file option4_client_fqdn.cc.

◆ Option4ClientFqdn() [4/4]

isc::dhcp::Option4ClientFqdn::Option4ClientFqdn ( const Option4ClientFqdn source)

Copy constructor.

Definition at line 354 of file option4_client_fqdn.cc.

◆ ~Option4ClientFqdn()

isc::dhcp::Option4ClientFqdn::~Option4ClientFqdn ( )
virtual

Destructor.

Definition at line 350 of file option4_client_fqdn.cc.

Member Function Documentation

◆ clone()

OptionPtr isc::dhcp::Option4ClientFqdn::clone ( ) const
virtual

Copies this option and returns a pointer to the copy.

Reimplemented from isc::dhcp::Option.

Definition at line 360 of file option4_client_fqdn.cc.

◆ getDomainName()

std::string isc::dhcp::Option4ClientFqdn::getDomainName ( ) const

Returns the domain-name in the text format.

If domain-name is partial, it lacks the dot at the end (e.g. myhost). If domain-name is fully qualified, it has the dot at the end (e.g. myhost.example.com.).

Returns
domain-name in the text format.

Definition at line 432 of file option4_client_fqdn.cc.

References isc::dhcp::Option4ClientFqdnImpl::domain_name_, isc::dhcp::Option4ClientFqdnImpl::domain_name_type_, and PARTIAL.

Referenced by len(), packDomainName(), isc::dhcp::Dhcpv4Srv::processClientName(), and toText().

◆ getDomainNameType()

Option4ClientFqdn::DomainNameType isc::dhcp::Option4ClientFqdn::getDomainNameType ( ) const

Returns enumerator value which indicates whether domain-name is partial or full.

Returns
An enumerator value indicating whether domain-name is partial or full.

Definition at line 482 of file option4_client_fqdn.cc.

References isc::dhcp::Option4ClientFqdnImpl::domain_name_type_.

Referenced by toText().

◆ getFlag()

bool isc::dhcp::Option4ClientFqdn::getFlag ( const uint8_t  flag) const

Checks if the specified flag of the DHCPv4 Client FQDN Option is set.

Parameters
flagA value specifying a bit within flags field to be checked. It must be one of the following FLAG_S, FLAG_E, FLAG_O, FLAG_N.
Returns
true if the bit of the specified flags bit is set, false otherwise.
Exceptions
InvalidOption4ClientFlagsif specified flag which value is to be returned is invalid (is not one of the FLAG_S, FLAG_N, FLAG_O).

is invalid and results in the exception.

Definition at line 377 of file option4_client_fqdn.cc.

References FLAG_E, FLAG_N, FLAG_O, FLAG_S, isc::dhcp::Option4ClientFqdnImpl::flags_, and isc_throw.

Referenced by len(), packDomainName(), isc::dhcp::Dhcpv4Srv::processClientName(), and toText().

◆ getRcode()

std::pair< Option4ClientFqdn::Rcode, Option4ClientFqdn::Rcode > isc::dhcp::Option4ClientFqdn::getRcode ( ) const

Returns Rcode objects representing value of RCODE1 and RCODE2.

Returns
Pair of Rcode objects of which first is the RCODE1 and the second is RCODE2.

Definition at line 416 of file option4_client_fqdn.cc.

References isc::dhcp::Option4ClientFqdnImpl::rcode1_, and isc::dhcp::Option4ClientFqdnImpl::rcode2_.

◆ len()

uint16_t isc::dhcp::Option4ClientFqdn::len ( ) const
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 528 of file option4_client_fqdn.cc.

References isc::dhcp::Option4ClientFqdnImpl::domain_name_, isc::dhcp::Option4ClientFqdnImpl::domain_name_type_, FIXED_FIELDS_LEN, FLAG_E, FULL, getDomainName(), getFlag(), and isc::dhcp::Option::getHeaderLen().

+ Here is the call graph for this function:

◆ operator=()

Option4ClientFqdn & isc::dhcp::Option4ClientFqdn::operator= ( const Option4ClientFqdn source)

Assignment operator.

Definition at line 368 of file option4_client_fqdn.cc.

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

+ Here is the call graph for this function:

◆ pack()

void isc::dhcp::Option4ClientFqdn::pack ( isc::util::OutputBuffer buf,
bool  check = true 
) const
virtual

Writes option in the wire format into a buffer.

Parameters
[out]bufoutput buffer where option data will be stored.

Reimplemented from isc::dhcp::Option.

Definition at line 487 of file option4_client_fqdn.cc.

References isc::dhcp::Option4ClientFqdnImpl::flags_, isc::dhcp::Option4ClientFqdn::Rcode::getCode(), packDomainName(), isc::dhcp::Option::packHeader(), isc::dhcp::Option4ClientFqdnImpl::rcode1_, isc::dhcp::Option4ClientFqdnImpl::rcode2_, and isc::util::OutputBuffer::writeUint8().

+ Here is the call graph for this function:

◆ packDomainName()

void isc::dhcp::Option4ClientFqdn::packDomainName ( isc::util::OutputBuffer buf) const

Writes domain-name in the wire format into a buffer.

The data being written are appended at the end of the buffer.

Parameters
[out]bufbuffer where domain-name will be written.

Definition at line 443 of file option4_client_fqdn.cc.

References isc::dhcp::Option4ClientFqdnImpl::domain_name_, isc::dhcp::Option4ClientFqdnImpl::domain_name_type_, FLAG_E, isc::dns::LabelSequence::getData(), isc::dns::LabelSequence::getDataLength(), getDomainName(), getFlag(), PARTIAL, and isc::util::OutputBuffer::writeData().

Referenced by pack().

+ Here is the call graph for this function:

◆ RCODE_CLIENT()

static const Rcode& isc::dhcp::Option4ClientFqdn::RCODE_CLIENT ( )
inlinestatic

Rcode being set by the client.

Definition at line 358 of file option4_client_fqdn.h.

◆ RCODE_SERVER()

static const Rcode& isc::dhcp::Option4ClientFqdn::RCODE_SERVER ( )
inlinestatic

Rcode being set by the server.

Definition at line 352 of file option4_client_fqdn.h.

◆ resetDomainName()

void isc::dhcp::Option4ClientFqdn::resetDomainName ( )

Set empty domain-name.

This function is equivalent to Option6ClientFqdn::setDomainName with empty partial domain-name. It is exception safe.

Definition at line 477 of file option4_client_fqdn.cc.

References PARTIAL, and setDomainName().

+ Here is the call graph for this function:

◆ resetFlags()

void isc::dhcp::Option4ClientFqdn::resetFlags ( )

Sets the flag field value to 0.

Definition at line 427 of file option4_client_fqdn.cc.

References isc::dhcp::Option4ClientFqdnImpl::flags_.

◆ setDomainName()

void isc::dhcp::Option4ClientFqdn::setDomainName ( const std::string &  domain_name,
const DomainNameType  domain_name_type 
)

Set new domain-name.

Parameters
domain_namedomain name field value in the text format.
domain_name_typetype of the domain name: partial or fully qualified.
Exceptions
InvalidOption4FqdnDomainNameif the specified domain-name is invalid.

Definition at line 471 of file option4_client_fqdn.cc.

References isc::dhcp::Option4ClientFqdnImpl::setDomainName().

Referenced by isc::dhcp::Dhcpv4Srv::processClientName(), and resetDomainName().

+ Here is the call graph for this function:

◆ setFlag()

void isc::dhcp::Option4ClientFqdn::setFlag ( const uint8_t  flag,
const bool  set 
)

Modifies the value of the specified DHCPv4 Client Fqdn Option flag.

Parameters
flagA value specifying a bit within flags field to be set. It must be one of the following FLAG_S, FLAG_E, FLAG_O, FLAG_N.
seta boolean value which indicates whether flag should be set (true), or cleared (false).
Exceptions
InvalidOption4ClientFlagsif specified flag which value is to be set is invalid (is not one of the FLAG_S, FLAG_N, FLAG_O).

Definition at line 389 of file option4_client_fqdn.cc.

References isc::dhcp::Option4ClientFqdnImpl::checkFlags(), FLAG_MASK, isc::dhcp::Option4ClientFqdnImpl::flags_, and isc_throw.

Referenced by isc::dhcp::Dhcpv4Srv::processClientName().

+ Here is the call graph for this function:

◆ setRcode()

void isc::dhcp::Option4ClientFqdn::setRcode ( const Rcode rcode)

Set Rcode value.

Parameters
rcodeAn Rcode object representing value of RCODE1 and RCODE2. Both fields are assigned the same value.

Definition at line 421 of file option4_client_fqdn.cc.

References isc::dhcp::Option4ClientFqdnImpl::rcode1_, and isc::dhcp::Option4ClientFqdnImpl::rcode2_.

◆ toText()

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

Returns string representation of the option.

The string returned by the method comprises the bit value of each option flag and the domain-name.

Parameters
indentnumber of spaces before printed text.
Returns
string with text representation.

Reimplemented from isc::dhcp::Option.

Definition at line 511 of file option4_client_fqdn.cc.

References FLAG_E, FLAG_N, FLAG_O, FLAG_S, getDomainName(), getDomainNameType(), getFlag(), PARTIAL, and isc::dhcp::Option::type_.

Referenced by isc::dhcp::Dhcpv4Srv::processClientName().

+ Here is the call graph for this function:

◆ unpack()

void isc::dhcp::Option4ClientFqdn::unpack ( OptionBufferConstIter  first,
OptionBufferConstIter  last 
)
virtual

Parses option from the received buffer.

Method creates an instance of the DHCPv4 Client FQDN Option from the wire format. Parameters specify the bounds of the buffer to read option data from. The size of the buffer limited by the specified parameters should be equal or larger than size of the option (including its header). Otherwise exception will be thrown.

Parameters
firstlower bound of the buffer to parse option from.
lastupper bound of the buffer to parse option from.

Reimplemented from isc::dhcp::Option.

Definition at line 500 of file option4_client_fqdn.cc.

References isc::dhcp::Option4ClientFqdnImpl::checkFlags(), isc::dhcp::Option4ClientFqdnImpl::flags_, isc::dhcp::Option4ClientFqdnImpl::parseWireData(), and isc::dhcp::Option::setData().

+ Here is the call graph for this function:

Member Data Documentation

◆ FIXED_FIELDS_LEN

const uint16_t isc::dhcp::Option4ClientFqdn::FIXED_FIELDS_LEN = 3
static

The size in bytes of the fixed fields within DHCPv4 Client Fqdn Option.

The fixed fields are:

  • Flags
  • RCODE1
  • RCODE2

Definition at line 160 of file option4_client_fqdn.h.

Referenced by len(), and isc::dhcp::Option4ClientFqdnImpl::parseWireData().

◆ FLAG_E

const uint8_t isc::dhcp::Option4ClientFqdn::FLAG_E = 0x04
static

◆ FLAG_MASK

const uint8_t isc::dhcp::Option4ClientFqdn::FLAG_MASK = 0xF
static

Mask which zeroes MBZ flag bits.

Definition at line 123 of file option4_client_fqdn.h.

Referenced by isc::dhcp::Option4ClientFqdnImpl::checkFlags(), and setFlag().

◆ FLAG_N

const uint8_t isc::dhcp::Option4ClientFqdn::FLAG_N = 0x08
static

◆ FLAG_O

const uint8_t isc::dhcp::Option4ClientFqdn::FLAG_O = 0x02
static

Bit O.

Definition at line 117 of file option4_client_fqdn.h.

Referenced by getFlag(), and toText().

◆ FLAG_S

const uint8_t isc::dhcp::Option4ClientFqdn::FLAG_S = 0x01
static

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