![]() |
Kea
1.5.0
|
Base class representing a DHCP option definition. More...
#include <option_definition.h>
Inheritance diagram for isc::dhcp::OptionDefinition:Public Types | |
| typedef std::vector< OptionDataType > | RecordFieldsCollection |
| List of fields within the record. More... | |
| typedef std::vector< OptionDataType >::const_iterator | RecordFieldsConstIter |
| Const iterator for record data fields. More... | |
Public Member Functions | |
| OptionDefinition (const std::string &name, const uint16_t code, const std::string &type, const bool array_type=false) | |
| Constructor. More... | |
| OptionDefinition (const std::string &name, const uint16_t code, const OptionDataType type, const bool array_type=false) | |
| Constructor. More... | |
| OptionDefinition (const std::string &name, const uint16_t code, const std::string &type, const char *encapsulated_space) | |
| Constructor. More... | |
| OptionDefinition (const std::string &name, const uint16_t code, const OptionDataType type, const char *encapsulated_space) | |
| Constructor. More... | |
| void | addRecordField (const std::string &data_type_name) |
| Adds data field to the record. More... | |
| void | addRecordField (const OptionDataType data_type) |
| Adds data field to the record. More... | |
| void | contextToElement (data::ElementPtr map) const |
| Merge unparse a user_context object. More... | |
| bool | getArrayType () const |
| Return array type indicator. More... | |
| uint16_t | getCode () const |
| Return option code. More... | |
| data::ConstElementPtr | getContext () const |
| Returns const pointer to the user context. More... | |
| std::string | getEncapsulatedSpace () const |
| Return name of the encapsulated option space. More... | |
| std::string | getName () const |
| Return option name. More... | |
| std::string | getOptionSpaceName () const |
| Returns option space name. More... | |
| const RecordFieldsCollection & | getRecordFields () const |
| Return list of record fields. More... | |
| OptionDataType | getType () const |
| Return option data type. More... | |
| bool | haveClientFqdnFormat () const |
| Check if specified format is OPTION_CLIENT_FQDN option format. More... | |
| bool | haveCompressedFqdnListFormat () const |
| Check if the option has format of CompressedFqdnList options. More... | |
| bool | haveFqdn4Format () const |
| Check if option has format of the DHCPv4 Client FQDN Option. More... | |
| bool | haveIA6Format () const |
| Check if specified format is IA_NA option format. More... | |
| bool | haveIAAddr6Format () const |
| Check if specified format is IAADDR option format. More... | |
| bool | haveIAPrefix6Format () const |
| Check if specified format is IAPREFIX option format. More... | |
| bool | haveOpaqueDataTuplesFormat () const |
| Check if the option has format of OpaqueDataTuples type options. More... | |
| bool | haveServiceScopeFormat () const |
| Check if option has format of the SLP Service Scope Option. More... | |
| bool | haveStatusCodeFormat () const |
| Check if the option has format of DHCPv6 Status Code option. More... | |
| bool | haveVendor4Format () const |
| Check if the option has format of Vendor-Identifying Vendor Specific Options. More... | |
| bool | haveVendor6Format () const |
| Check if option has a format of the Vendor-Specific Information Option. More... | |
| bool | haveVendorClass4Format () const |
| Check if the option has format of DHCPv4 V-I Vendor Class option. More... | |
| bool | haveVendorClass6Format () const |
| Check if the option has format of DHCPv6 Vendor Class option. More... | |
| OptionPtr | optionFactory (Option::Universe u, uint16_t type, OptionBufferConstIter begin, OptionBufferConstIter end) const |
| Option factory. More... | |
| OptionPtr | optionFactory (Option::Universe u, uint16_t type, const OptionBuffer &buf=OptionBuffer()) const |
| Option factory. More... | |
| OptionPtr | optionFactory (Option::Universe u, uint16_t type, const std::vector< std::string > &values) const |
| Option factory. More... | |
| void | setContext (const data::ConstElementPtr &ctx) |
| Sets user context. More... | |
| void | setOptionSpaceName (const std::string &option_space_name) |
| Sets option space name for option definition. More... | |
| void | validate () const |
| Check if the option definition is valid. More... | |
Comparison functions and operators. | |
| bool | equals (const OptionDefinition &other) const |
| Check if option definition is equal to other. More... | |
| bool | operator== (const OptionDefinition &other) const |
| Equality operator. More... | |
| bool | operator!= (const OptionDefinition &other) const |
| Inequality operator. More... | |
Public Member Functions inherited from isc::data::StampedElement | |
| StampedElement () | |
| Constructor. More... | |
| boost::posix_time::ptime | getModificationTime () const |
| Returns timestamp. More... | |
| void | setModificationTime (const boost::posix_time::ptime ×tamp) |
| Sets timestamp to the explicitly provided value. More... | |
| void | updateModificationTime () |
| Sets timestmp to the current time. More... | |
Static Public Member Functions | |
| static OptionPtr | factoryAddrList4 (uint16_t type, OptionBufferConstIter begin, OptionBufferConstIter end) |
| Factory to create option with address list. More... | |
| static OptionPtr | factoryAddrList6 (uint16_t type, OptionBufferConstIter begin, OptionBufferConstIter end) |
| Factory to create option with address list. More... | |
| static OptionPtr | factoryEmpty (Option::Universe u, uint16_t type) |
| Empty option factory. More... | |
| static OptionPtr | factoryGeneric (Option::Universe u, uint16_t type, OptionBufferConstIter begin, OptionBufferConstIter end) |
| Factory to create generic option. More... | |
| static OptionPtr | factoryIA6 (uint16_t type, OptionBufferConstIter begin, OptionBufferConstIter end) |
| Factory for IA-type of option. More... | |
| static OptionPtr | factoryIAAddr6 (uint16_t type, OptionBufferConstIter begin, OptionBufferConstIter end) |
| Factory for IAADDR-type of option. More... | |
| static OptionPtr | factoryIAPrefix6 (uint16_t type, OptionBufferConstIter begin, OptionBufferConstIter end) |
| Factory for IAPREFIX-type of option. More... | |
| template<typename T > | |
| static OptionPtr | factoryInteger (Option::Universe u, uint16_t type, const std::string &encapsulated_space, OptionBufferConstIter begin, OptionBufferConstIter end) |
| Factory function to create option with integer value. More... | |
| template<typename T > | |
| static OptionPtr | factoryIntegerArray (Option::Universe u, uint16_t type, OptionBufferConstIter begin, OptionBufferConstIter end) |
| Factory function to create option with array of integer values. More... | |
| static OptionPtr | factoryOpaqueDataTuples (Option::Universe u, uint16_t type, OptionBufferConstIter begin, OptionBufferConstIter end) |
| Factory to create option with tuple list. More... | |
Base class representing a DHCP option definition.
This is a base class representing a DHCP option definition, which describes the format of the option. In particular, it defines:
The option type specifies the data type(s) which an option conveys. If this is a single value the option type points to the data type of the value. For example, DHCPv6 option 8 comprises a two-byte option code, a two-byte option length and two-byte field that carries a uint16 value (RFC 8415 - http://ietf.org/rfc/rfc8415.txt). In such a case, the option type is defined as "uint16". Length and string tuples are a length on one (DHCPv4) or two (DHCPv6) bytes followed by a string of the given length.
When the option has a more complex structure, the option type may be defined as "array", "record" or even "array of records".
Array types should be used when the option contains multiple contiguous data values of the same type laid. For example, DHCPv6 option 6 includes multiple fields holding uint16 codes of requested DHCPv6 options (RFC 8415). Such an option can be represented with this class by setting the option type to "uint16" and the array indicator (array_type) to true. The number of elements in the array is effectively unlimited (although it is actually limited by the maximal DHCPv6 option length).
Should the option comprise data fields of different types, the "record" option type is used. In such cases the data field types within the record are specified using OptionDefinition::addRecordField.
When the OptionDefinition object has been successfully created, it can be queried to return the appropriate option factory function for the specified specified option format. There are a number of "standard" factory functions that cover well known (common) formats. If the particular format does not match any common format the generic factory function is returned.
The following data type strings are supported:
"record" (set of data fields of different types)
Extend the comment to describe "generic factories".
Extend this class to use custom namespaces.
Extend this class with more factory functions.
Derive from UserContext without breaking the multi index.
Definition at line 137 of file option_definition.h.
| typedef std::vector<OptionDataType> isc::dhcp::OptionDefinition::RecordFieldsCollection |
List of fields within the record.
Definition at line 141 of file option_definition.h.
| typedef std::vector<OptionDataType>::const_iterator isc::dhcp::OptionDefinition::RecordFieldsConstIter |
Const iterator for record data fields.
Definition at line 143 of file option_definition.h.
|
explicit |
Constructor.
| name | option name. |
| code | option code. |
| type | option data type as string. |
| array_type | array indicator, if true it indicates that the option fields are the array. |
Definition at line 43 of file option_definition.cc.
References isc::dhcp::OptionDataTypeUtil::getDataType().
Here is the call graph for this function:
|
explicit |
Constructor.
| name | option name. |
| code | option code. |
| type | option data type. |
| array_type | array indicator, if true it indicates that the option fields are the array. |
Definition at line 61 of file option_definition.cc.
|
explicit |
Constructor.
This constructor sets the name of the option space that is encapsulated by this option. The encapsulated option space identifies sub-options that are carried within this option. This constructor does not allow to set array indicator because options comprising an array of data fields must not be used with sub-options.
| name | option name. |
| code | option code. |
| type | option data type given as string. |
| encapsulated_space | name of the option space being encapsulated by this option. |
Definition at line 72 of file option_definition.cc.
|
explicit |
Constructor.
This constructor sets the name of the option space that is encapsulated by this option. The encapsulated option space identifies sub-options that are carried within this option. This constructor does not allow to set array indicator because options comprising an array of data fields must not be used with sub-options.
| name | option name. |
| code | option code. |
| type | option data type. |
| encapsulated_space | name of the option space being encapsulated by this option. |
Definition at line 89 of file option_definition.cc.
| void isc::dhcp::OptionDefinition::addRecordField | ( | const std::string & | data_type_name | ) |
Adds data field to the record.
| data_type_name | name of the data type for the field. |
| isc::InvalidOperation | if option type is not set to RECORD_TYPE. |
| isc::BadValue | if specified invalid data type. |
Definition at line 115 of file option_definition.cc.
References isc::dhcp::OptionDataTypeUtil::getDataType().
Here is the call graph for this function:| void isc::dhcp::OptionDefinition::addRecordField | ( | const OptionDataType | data_type | ) |
Adds data field to the record.
| data_type | data type for the field. |
| isc::InvalidOperation | if option type is not set to RECORD_TYPE. |
| isc::BadValue | if specified invalid data type. |
Definition at line 121 of file option_definition.cc.
References isc_throw, isc::dhcp::OPT_ANY_ADDRESS_TYPE, isc::dhcp::OPT_EMPTY_TYPE, and isc::dhcp::OPT_RECORD_TYPE.
|
inline |
Merge unparse a user_context object.
Add user-context to map, but only if defined. Omit if it was not. Extract comment so it will be pretty-printed first.
| map | A pointer to map where the user context will be unparsed. |
Definition at line 307 of file option_definition.h.
References isc::data::UserContext::contextToElement().
Here is the call graph for this function:| bool isc::dhcp::OptionDefinition::equals | ( | const OptionDefinition & | other | ) | const |
Check if option definition is equal to other.
| other | Option definition to compare to. |
Definition at line 104 of file option_definition.cc.
Referenced by operator!=(), and operator==().
|
static |
Factory to create option with address list.
| type | option type. |
| begin | iterator pointing to the beginning of the buffer with a list of IPv4 addresses. |
| end | iterator pointing to the end of the buffer with a list of IPv4 addresses. |
| isc::OutOfRange | if length of the provided option buffer is not multiple of IPV4 address length. |
Definition at line 741 of file option_definition.cc.
Referenced by optionFactory().
|
static |
Factory to create option with address list.
| type | option type. |
| begin | iterator pointing to the beginning of the buffer with a list of IPv6 addresses. |
| end | iterator pointing to the end of the buffer with a list of IPv6 addresses. |
| isc::OutOfaRange | if length of provided option buffer is not multiple of IPV6 address length. |
Definition at line 750 of file option_definition.cc.
Referenced by optionFactory().
|
static |
Empty option factory.
| u | universe (V6 or V4). |
| type | option type. |
Definition at line 760 of file option_definition.cc.
Referenced by optionFactory().
|
static |
Factory to create generic option.
| u | universe (V6 or V4). |
| type | option type. |
| begin | iterator pointing to the beginning of the buffer. |
| end | iterator pointing to the end of the buffer. |
Definition at line 766 of file option_definition.cc.
Referenced by optionFactory().
|
static |
Factory for IA-type of option.
| type | option type. |
| begin | iterator pointing to the beginning of the buffer. |
| end | iterator pointing to the end of the buffer. |
| isc::OutOfRange | if provided option buffer is too short or too long. Expected size is 12 bytes. |
Definition at line 774 of file option_definition.cc.
References isc_throw, and isc::dhcp::Option6IA::OPTION6_IA_LEN.
|
static |
Factory for IAADDR-type of option.
| type | option type. |
| begin | iterator pointing to the beginning of the buffer. |
| end | iterator pointing to the end of the buffer. |
| isc::OutOfRange | if provided option buffer is too short or too long. Expected size is 24 bytes. |
Definition at line 787 of file option_definition.cc.
References isc_throw, and isc::dhcp::Option6IAAddr::OPTION6_IAADDR_LEN.
|
static |
Factory for IAPREFIX-type of option.
| type | option type. |
| begin | iterator pointing to the beginning of the buffer. |
| end | iterator pointing to the end of the buffer. |
| isc::OutOfRange | if provided option buffer is too short. Expected minimum size is 25 bytes. |
Definition at line 801 of file option_definition.cc.
References isc_throw, and isc::dhcp::Option6IAPrefix::OPTION6_IAPREFIX_LEN.
|
inlinestatic |
Factory function to create option with integer value.
| u | universe (V4 or V6). |
| type | option type. |
| encapsulated_space | An option space being encapsulated by the options created by this factory function. The options which belong to encapsulated option space are sub options of this option. |
| begin | iterator pointing to the beginning of the buffer. |
| end | iterator pointing to the end of the buffer. |
| T | type of the data field (must be one of the uintX_t or intX_t). |
| isc::OutOfRange | if provided option buffer length is invalid. |
Definition at line 614 of file option_definition.h.
|
inlinestatic |
Factory function to create option with array of integer values.
| u | universe (V4 or V6). |
| type | option type. |
| begin | iterator pointing to the beginning of the buffer. |
| end | iterator pointing to the end of the buffer. |
| T | type of the data field (must be one of the uintX_t or intX_t). |
| isc::OutOfRange | if provided option buffer length is invalid. |
Definition at line 634 of file option_definition.h.
|
static |
Factory to create option with tuple list.
| u | option universe (V4 or V6). |
| type | option type. |
| begin | iterator pointing to the beginning of the buffer with a list of tuples. |
| end | iterator pointing to the end of the buffer with a list of tuples. |
Definition at line 815 of file option_definition.cc.
Referenced by optionFactory().
|
inline |
Return array type indicator.
The method returns the bool value to indicate whether the option is a a single value or an array of values.
Definition at line 259 of file option_definition.h.
Referenced by haveClientFqdnFormat(), haveCompressedFqdnListFormat(), haveFqdn4Format(), haveIAPrefix6Format(), haveOpaqueDataTuplesFormat(), and isc::dhcp::OptionCustom::toText().
|
inline |
Return option code.
Definition at line 264 of file option_definition.h.
Referenced by optionFactory().
|
inline |
Returns const pointer to the user context.
Definition at line 291 of file option_definition.h.
References isc::data::UserContext::getContext().
Here is the call graph for this function:
|
inline |
Return name of the encapsulated option space.
Definition at line 269 of file option_definition.h.
Referenced by haveVendor6Format(), isc::dhcp::OptionCustom::OptionCustom(), and optionFactory().
|
inline |
|
inline |
Returns option space name.
Option definitions are associated with option spaces. Typically, such association is made when the option definition is put into the CfgOptionDef structure. However, in some cases it is also required to associate option definition with the particular option space outside of that structure. In particular, when the option definition is fetched from a database. The database configuration backend will set option space upon return of the option definition. In other cases this value won't be set.
Definition at line 324 of file option_definition.h.
|
inline |
Return list of record fields.
Definition at line 281 of file option_definition.h.
Referenced by isc::dhcp::OptionCustom::addArrayDataField(), optionFactory(), isc::dhcp::OptionCustom::toText(), and validate().
|
inline |
Return option data type.
Definition at line 288 of file option_definition.h.
Referenced by isc::dhcp::OptionCustom::addArrayDataField(), haveVendor6Format(), and isc::dhcp::OptionCustom::toText().
| bool isc::dhcp::OptionDefinition::haveClientFqdnFormat | ( | ) | const |
Check if specified format is OPTION_CLIENT_FQDN option format.
Definition at line 437 of file option_definition.cc.
References getArrayType(), isc::dhcp::OPT_FQDN_TYPE, isc::dhcp::OPT_RECORD_TYPE, and isc::dhcp::OPT_UINT8_TYPE.
Here is the call graph for this function:| bool isc::dhcp::OptionDefinition::haveCompressedFqdnListFormat | ( | ) | const |
Check if the option has format of CompressedFqdnList options.
Definition at line 493 of file option_definition.cc.
References getArrayType(), and isc::dhcp::OPT_FQDN_TYPE.
Here is the call graph for this function:| bool isc::dhcp::OptionDefinition::haveFqdn4Format | ( | ) | const |
Check if option has format of the DHCPv4 Client FQDN Option.
The encoding of the domain-name carried by the FQDN option is conditional and is specified in the flags field of the option. The domain-name can be encoded in the ASCII format or canonical wire format. The ASCII format is deprecated, therefore canonical format is selected for the FQDN option definition and this function returns true if the option definition comprises the domain-name field encoded in canonical format.
Definition at line 426 of file option_definition.cc.
References getArrayType(), isc::dhcp::OPT_FQDN_TYPE, isc::dhcp::OPT_RECORD_TYPE, and isc::dhcp::OPT_UINT8_TYPE.
Here is the call graph for this function:| bool isc::dhcp::OptionDefinition::haveIA6Format | ( | ) | const |
Check if specified format is IA_NA option format.
Definition at line 399 of file option_definition.cc.
References isc::dhcp::OPT_UINT32_TYPE.
| bool isc::dhcp::OptionDefinition::haveIAAddr6Format | ( | ) | const |
Check if specified format is IAADDR option format.
Definition at line 410 of file option_definition.cc.
References isc::dhcp::OPT_IPV6_ADDRESS_TYPE.
| bool isc::dhcp::OptionDefinition::haveIAPrefix6Format | ( | ) | const |
Check if specified format is IAPREFIX option format.
Definition at line 415 of file option_definition.cc.
References getArrayType(), isc::dhcp::OPT_IPV6_ADDRESS_TYPE, isc::dhcp::OPT_RECORD_TYPE, isc::dhcp::OPT_UINT32_TYPE, and isc::dhcp::OPT_UINT8_TYPE.
Here is the call graph for this function:| bool isc::dhcp::OptionDefinition::haveOpaqueDataTuplesFormat | ( | ) | const |
Check if the option has format of OpaqueDataTuples type options.
Definition at line 488 of file option_definition.cc.
References getArrayType(), and isc::dhcp::OPT_TUPLE_TYPE.
Here is the call graph for this function:| bool isc::dhcp::OptionDefinition::haveServiceScopeFormat | ( | ) | const |
Check if option has format of the SLP Service Scope Option.
The scope list in the SLP Service Scope option is optional (i.e., as the error message in the DHCPv6 Status code option).
Definition at line 480 of file option_definition.cc.
References isc::dhcp::OPT_BOOLEAN_TYPE, isc::dhcp::OPT_RECORD_TYPE, and isc::dhcp::OPT_STRING_TYPE.
| bool isc::dhcp::OptionDefinition::haveStatusCodeFormat | ( | ) | const |
Check if the option has format of DHCPv6 Status Code option.
Definition at line 472 of file option_definition.cc.
References isc::dhcp::OPT_RECORD_TYPE, isc::dhcp::OPT_STRING_TYPE, and isc::dhcp::OPT_UINT16_TYPE.
| bool isc::dhcp::OptionDefinition::haveVendor4Format | ( | ) | const |
Check if the option has format of Vendor-Identifying Vendor Specific Options.
Definition at line 446 of file option_definition.cc.
| bool isc::dhcp::OptionDefinition::haveVendor6Format | ( | ) | const |
Check if option has a format of the Vendor-Specific Information Option.
The Vendor-Specific Information Option comprises 32-bit enterprise id and the suboptions.
Definition at line 451 of file option_definition.cc.
References getEncapsulatedSpace(), getType(), and isc::dhcp::OPT_UINT32_TYPE.
Here is the call graph for this function:| bool isc::dhcp::OptionDefinition::haveVendorClass4Format | ( | ) | const |
Check if the option has format of DHCPv4 V-I Vendor Class option.
Definition at line 456 of file option_definition.cc.
References isc::dhcp::OPT_BINARY_TYPE, isc::dhcp::OPT_RECORD_TYPE, and isc::dhcp::OPT_UINT32_TYPE.
| bool isc::dhcp::OptionDefinition::haveVendorClass6Format | ( | ) | const |
Check if the option has format of DHCPv6 Vendor Class option.
Definition at line 464 of file option_definition.cc.
References isc::dhcp::OPT_BINARY_TYPE, isc::dhcp::OPT_RECORD_TYPE, and isc::dhcp::OPT_UINT32_TYPE.
|
inline |
Inequality operator.
| other | Option definition to compare to. |
Definition at line 232 of file option_definition.h.
References equals().
Here is the call graph for this function:
|
inline |
Equality operator.
| other | Option definition to compare to. |
Definition at line 223 of file option_definition.h.
References equals().
Here is the call graph for this function:| OptionPtr isc::dhcp::OptionDefinition::optionFactory | ( | Option::Universe | u, |
| uint16_t | type, | ||
| OptionBufferConstIter | begin, | ||
| OptionBufferConstIter | end | ||
| ) | const |
Option factory.
This function creates an instance of DHCP option using provided chunk of buffer. This function may be used to create option which is to be sent in the outgoing packet.
| u | option universe (V4 or V6). |
| type | option type. |
| begin | beginning of the option buffer. |
| end | end of the option buffer. |
| InvalidOptionValue | if data for the option is invalid. |
Definition at line 136 of file option_definition.cc.
References factoryAddrList4(), factoryAddrList6(), factoryEmpty(), factoryGeneric(), factoryOpaqueDataTuples(), getEncapsulatedSpace(), isc_throw, isc::dhcp::OPT_BINARY_TYPE, isc::dhcp::OPT_EMPTY_TYPE, isc::dhcp::OPT_INT16_TYPE, isc::dhcp::OPT_INT32_TYPE, isc::dhcp::OPT_INT8_TYPE, isc::dhcp::OPT_IPV4_ADDRESS_TYPE, isc::dhcp::OPT_IPV6_ADDRESS_TYPE, isc::dhcp::OPT_STRING_TYPE, isc::dhcp::OPT_TUPLE_TYPE, isc::dhcp::OPT_UINT16_TYPE, isc::dhcp::OPT_UINT32_TYPE, isc::dhcp::OPT_UINT8_TYPE, and isc::Exception::what().
Referenced by optionFactory().
Here is the call graph for this function:| OptionPtr isc::dhcp::OptionDefinition::optionFactory | ( | Option::Universe | u, |
| uint16_t | type, | ||
| const OptionBuffer & | buf = OptionBuffer() |
||
| ) | const |
Option factory.
This function creates an instance of DHCP option using whole provided buffer. This function may be used to create option which is to be sent in the outgoing packet.
| u | option universe (V4 or V6). |
| type | option type. |
| buf | option buffer. |
| InvalidOptionValue | if data for the option is invalid. |
Definition at line 243 of file option_definition.cc.
References optionFactory().
Here is the call graph for this function:| OptionPtr isc::dhcp::OptionDefinition::optionFactory | ( | Option::Universe | u, |
| uint16_t | type, | ||
| const std::vector< std::string > & | values | ||
| ) | const |
Option factory.
This function creates an instance of DHCP option using the vector of strings which carry data values for option data fields. The order of values in the vector corresponds to the order of data fields in the option. The supplied string values are cast to their actual data types which are determined based on the option definition. If cast fails due to type mismatch, an exception is thrown. This factory function can be used to create option instance when user specified option value in the comma separated values format in the configuration database. Provided string must be tokenized into the vector of string values and this vector can be supplied to this function.
| u | option universe (V4 or V6). |
| type | option type. |
| values | a vector of values to be used to set data for an option. |
| InvalidOptionValue | if data for the option is invalid. |
Definition at line 249 of file option_definition.cc.
References getCode(), getRecordFields(), isc_throw, isc::dhcp::OPT_EMPTY_TYPE, isc::dhcp::OPT_RECORD_TYPE, optionFactory(), and isc::util::str::trim().
Here is the call graph for this function:
|
inline |
Sets user context.
| ctx | user context to be stored. |
Definition at line 297 of file option_definition.h.
References isc::data::UserContext::setContext().
Here is the call graph for this function:
|
inline |
Sets option space name for option definition.
See getOptionSpaceName to learn when option space name is set.
| option_space_name | New option space name. |
Definition at line 333 of file option_definition.h.
| void isc::dhcp::OptionDefinition::validate | ( | ) | const |
Check if the option definition is valid.
Note that it is a responsibility of the code that created the OptionDefinition object to validate that it is valid. This function will not be called internally anywhere in this class to verify that the option definition is valid. Using invalid option definition to create an instance of the DHCP option leads to undefined behavior.
| MalformedOptionDefinition | option definition is invalid. |
Empty type is not allowed within a record.
Definition at line 285 of file option_definition.cc.
References getRecordFields(), isc_throw, name_, isc::dhcp::OPT_BINARY_TYPE, isc::dhcp::OPT_EMPTY_TYPE, isc::dhcp::OPT_RECORD_TYPE, isc::dhcp::OPT_STRING_TYPE, isc::dhcp::OPT_UNKNOWN_TYPE, and isc::dhcp::OptionSpace::validateName().
Here is the call graph for this function: