Kea 3.1.1
isc::radius::RadiusConfigParser Class Reference

Configuration parser for Radius. More...

#include <radius_parsers.h>

+ Inheritance diagram for isc::radius::RadiusConfigParser:

Public Member Functions

void parse (data::ElementPtr &config)
 Parses Radius configuration.
 
- Public Member Functions inherited from isc::data::SimpleParser
uint16_t getUint16 (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a value converted to uint16_t.
 
uint32_t getUint32 (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a value converted to uint32_t.
 
uint8_t getUint8 (ConstElementPtr scope, const std::string &name)
 Get an uint8_t value.
 
const isc::util::Triplet< uint32_t > parseIntTriplet (const data::ConstElementPtr &scope, const std::string &name)
 Parses an integer triplet.
 

Static Public Attributes

static const data::SimpleDefaults RADIUS_DEFAULTS
 Defaults for Radius configuration.
 
static const std::set< std::string > RADIUS_KEYWORDS
 Keywords (aka global configuration entry names).
 
static const AttrDefList USED_STANDARD_ATTR_DEFS
 Needed standard attributes definitions.
 

Additional Inherited Members

- Static Public Member Functions inherited from isc::data::SimpleParser
static void checkKeywords (const SimpleKeywords &keywords, isc::data::ConstElementPtr scope)
 Checks acceptable keywords with their expected type.
 
static void checkRequired (const SimpleRequiredKeywords &required, isc::data::ConstElementPtr scope)
 Checks that all required keywords are present.
 
static size_t deriveParams (isc::data::ConstElementPtr parent, isc::data::ElementPtr child, const ParamsList &params)
 Derives (inherits) parameters from parent scope to a child.
 
static isc::asiolink::IOAddress getAddress (const ConstElementPtr &scope, const std::string &name)
 Returns a IOAddress parameter from a scope.
 
static bool getBoolean (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a boolean parameter from a scope.
 
static double getDouble (const ConstElementPtr &scope, const std::string &name)
 Returns a floating point parameter from a scope.
 
static int64_t getInteger (isc::data::ConstElementPtr scope, const std::string &name)
 Returns an integer parameter from a scope.
 
static int64_t getInteger (isc::data::ConstElementPtr scope, const std::string &name, int64_t min, int64_t max)
 Returns an integer parameter from a scope and checks its range.
 
static const data::Element::PositiongetPosition (const std::string &name, const data::ConstElementPtr parent)
 Utility method that returns position of an element.
 
static std::string getString (isc::data::ConstElementPtr scope, const std::string &name)
 Returns a string parameter from a scope.
 
static size_t setDefaults (isc::data::ElementPtr scope, const SimpleDefaults &default_values)
 Sets the default values.
 
static size_t setListDefaults (isc::data::ConstElementPtr list, const SimpleDefaults &default_values)
 Sets the default values for all entries in a list.
 
- Protected Member Functions inherited from isc::data::SimpleParser
template<typename target_type, target_type convert>
target_type getAndConvert (isc::data::ConstElementPtr scope, const std::string &name, const std::string &type_name)
 Returns a converted value from a scope.
 
template<typename int_type>
int_type getIntType (isc::data::ConstElementPtr scope, const std::string &name)
 Returns an integer value with range checking from a scope.
 

Detailed Description

Configuration parser for Radius.

Definition at line 21 of file radius_parsers.h.

Member Function Documentation

◆ parse()

void isc::radius::RadiusConfigParser::parse ( data::ElementPtr & config)

Parses Radius configuration.

Parameters
configSpecified configuration (mutable).
Exceptions
ConfigErrorwhen parsing fails or configuration is invalid.

Definition at line 95 of file radius_parsers.cc.

References isc::radius::RadiusImpl::acct_, isc::radius::RadiusImpl::auth_, isc::radius::RadiusImpl::bindaddr_, isc::radius::RadiusImpl::canonical_mac_address_, isc::radius::RadiusServiceParser::checkAttributes(), isc::radius::AttrDefs::checkStandardDefs(), isc::radius::RadiusImpl::clientid_pop0_, isc::radius::RadiusImpl::clientid_printable_, isc::radius::RadiusImpl::deadtime_, isc::radius::RadiusImpl::dictionary_, isc::radius::RadiusImpl::extract_duid_, isc::dhcp::Host::getIdentifierType(), isc::dhcp::CfgMgr::getStagingCfg(), isc::radius::RadiusImpl::id_type4_, isc::radius::RadiusImpl::id_type6_, isc::dhcp::CfgMgr::instance(), isc::radius::AttrDefs::instance(), isc::radius::RadiusImpl::instance(), isc_throw, isc::radius::RadiusServiceParser::parse(), isc::radius::pop0(), RADIUS_DEFAULTS, isc::radius::AttrDefs::readDictionary(), isc::radius::RadiusImpl::remap_, isc::radius::RadiusImpl::reselect_subnet_address_, isc::radius::RadiusImpl::reselect_subnet_pool_, isc::radius::RadiusImpl::retries_, isc::radius::RadiusImpl::session_history_filename_, isc::data::SimpleParser::setDefaults(), isc::radius::RadiusImpl::thread_pool_size_, isc::radius::RadiusImpl::timeout_, and USED_STANDARD_ATTR_DEFS.

Referenced by isc::radius::RadiusImpl::init().

+ Here is the call graph for this function:

Member Data Documentation

◆ RADIUS_DEFAULTS

const SimpleDefaults isc::radius::RadiusConfigParser::RADIUS_DEFAULTS
static
Initial value:
= {
{ "bindaddr", Element::string, "*" },
{ "canonical-mac-address", Element::boolean, "false" },
{ "client-id-pop0", Element::boolean, "false" },
{ "client-id-printable", Element::boolean, "false" },
{ "deadtime", Element::integer, "0" },
{ "dictionary", Element::string, DICTIONARY },
{ "extract-duid", Element::boolean, "true" },
{ "identifier-type4", Element::string, "client-id" },
{ "identifier-type6", Element::string, "duid" },
{ "realm", Element::string, "" },
{ "reselect-subnet-address", Element::boolean, "false" },
{ "reselect-subnet-pool", Element::boolean, "false" },
{ "retries", Element::integer, "3" },
{ "session-history", Element::string, "" },
{ "thread-pool-size", Element::integer, "0" },
{ "timeout", Element::integer, "10" }
}
@ integer
Definition data.h:140
@ boolean
Definition data.h:142
@ string
Definition data.h:144

Defaults for Radius configuration.

Definition at line 34 of file radius_parsers.h.

Referenced by parse().

◆ RADIUS_KEYWORDS

const set< string > isc::radius::RadiusConfigParser::RADIUS_KEYWORDS
static
Initial value:
= {
"access", "accounting",
"bindaddr", "canonical-mac-address", "client-id-pop0",
"client-id-printable", "deadtime", "dictionary",
"extract-duid", "identifier-type4", "identifier-type6",
"nas-ports", "realm",
"reselect-subnet-address", "reselect-subnet-pool",
"retries", "session-history", "thread-pool-size", "timeout",
"comment"
}

Keywords (aka global configuration entry names).

Keywords for Radius configuration.

Definition at line 31 of file radius_parsers.h.

◆ USED_STANDARD_ATTR_DEFS

const AttrDefList isc::radius::RadiusConfigParser::USED_STANDARD_ATTR_DEFS
static
Initial value:
= {
{ PW_USER_NAME, "User-Name", PW_TYPE_STRING },
{ PW_USER_PASSWORD, "User-Password", PW_TYPE_STRING },
{ PW_NAS_IP_ADDRESS, "NAS-IP-Address", PW_TYPE_IPADDR },
{ PW_NAS_PORT, "NAS-Port", PW_TYPE_INTEGER },
{ PW_SERVICE_TYPE, "Service-Type", PW_TYPE_INTEGER },
{ PW_FRAMED_IP_ADDRESS, "Framed-IP-Address", PW_TYPE_IPADDR },
{ PW_REPLY_MESSAGE, "Reply-Message", PW_TYPE_STRING },
{ PW_CLASS, "Class", PW_TYPE_STRING },
{ PW_CALLING_STATION_ID, "Calling-Station-Id", PW_TYPE_STRING },
{ PW_ACCT_STATUS_TYPE, "Acct-Status-Type", PW_TYPE_INTEGER },
{ PW_ACCT_DELAY_TIME, "Acct-Delay-Time", PW_TYPE_INTEGER },
{ PW_ACCT_SESSION_ID, "Acct-Session-Id", PW_TYPE_STRING },
{ PW_FRAMED_POOL, "Framed-Pool", PW_TYPE_STRING },
{ PW_NAS_IPV6_ADDRESS, "NAS-IPv6-Address", PW_TYPE_IPV6ADDR },
{ PW_DELEGATED_IPV6_PREFIX, "Delegated-IPv6-Prefix", PW_TYPE_IPV6PREFIX },
{ PW_FRAMED_IPV6_ADDRESS, "Framed-IPv6-Address", PW_TYPE_IPV6ADDR }
}
@ PW_DELEGATED_IPV6_PREFIX
ipv6prefix.
@ PW_FRAMED_IPV6_ADDRESS
ipv6addr.

Needed standard attributes definitions.

Needed standard attributes.

Definition at line 37 of file radius_parsers.h.

Referenced by parse().


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