Main Page | Class Hierarchy | Class List | File List | Class Members

DiameterEapClientStateMachine Class Reference

#include <diameter_eap_client_fsm.hxx>

Inheritance diagram for DiameterEapClientStateMachine:

DiameterEapClientSession List of all members.

Public Types

enum  {
  EvSgStart = -1, EvRxEapResponse = -2, EvRxDEA = -3, EvRxAA_Answer = -4,
  EvSgSessionTimeout = -5, EvSgAuthLifetimeTimeout = -6, EvSgAuthGracePeriodTimeout = -7, EvSgTimeout = -8,
  EvSgDisconnect = -9
}

Public Member Functions

 DiameterEapClientStateMachine (DiameterEapClientSession &s, DiameterJobHandle &h)
 Constructor.

void Notify (AAA_Event ev)
 Store an event and notify the session.

DiameterEapClientSessionSession ()
virtual void Abort ()=0
void SendDER ()
virtual void SignalContinue (std::string &eapMsg)=0
virtual void SignalSuccess (std::string &eapMsg)=0
virtual void SignalFailure (std::string &eapMsg)=0
void ForwardResponse (std::string &eapMsg)
virtual void SendAA_Request ()
virtual void SignalReauthentication ()=0
virtual void SignalDisconnect ()=0
AAA_JobData & JobData ()
template<class T> T & JobData (Type2Type< T >)
virtual void SetDestinationRealm (AAA_ScholarAttribute< diameter_utf8string_t > &destinationRealm)
virtual void SetDestinationHost (AAA_ScholarAttribute< diameter_utf8string_t > &destinationHost)
virtual void SetAuthRequestType (AAA_ScholarAttribute< diameter_enumerated_t > &authRequestType)
virtual void SetNasPort (AAA_ScholarAttribute< diameter_unsigned32_t > &nasPort)
 This function is used for setting Nas-Port AVP contents.

virtual void SetNasPortId (AAA_ScholarAttribute< diameter_utf8string_t > &nasPortId)
 This function is used for setting Nas-Port-Id AVP contents.

virtual void SetOriginStateId (AAA_ScholarAttribute< diameter_unsigned32_t > &originStateId)
 This function is used for setting Origin-State-Id AVP contents.

virtual void SetNasIdentifier (AAA_ScholarAttribute< diameter_utf8string_t > &nasIdentifier)
 This function is used for setting Nas-Identifier AVP contents.

virtual void SetNasIpAddress (AAA_ScholarAttribute< diameter_octetstring_t > &nasIpAddress)
 This function is used for setting Nas-IP-Address AVP contents.

virtual void SetNasIpv6Address (AAA_ScholarAttribute< diameter_octetstring_t > &nasIpv6Address)
 This function is used for setting Nas-IPv6-Address AVP contents.

virtual void SetUserName (AAA_ScholarAttribute< diameter_utf8string_t > &userName)
 This function is used for setting User-Name AVP contents.

virtual void SetServiceType (AAA_ScholarAttribute< diameter_enumerated_t > &serviceType)
 This function is used for setting Service-Type AVP contents.

virtual void SetIdleTimeout (AAA_ScholarAttribute< diameter_unsigned32_t > &idleTimeout)
 This function is used for setting Idle-Timeout AVP contents.

virtual void SetState (AAA_ScholarAttribute< diameter_octetstring_t > &state)
 This function is used for setting State AVP contents.

virtual void SetAuthorizationLifetime (AAA_ScholarAttribute< diameter_unsigned32_t > &authorizationLifetime)
virtual void SetAuthGracePeriod (AAA_ScholarAttribute< diameter_unsigned32_t > &authGracePeriod)
virtual void SetAuthSessionState (AAA_ScholarAttribute< diameter_enumerated_t > &authSessionState)
virtual void SetSessionTimeout (AAA_ScholarAttribute< diameter_unsigned32_t > &sessionTimeout)
 This function is used for setting Session-Timeout AVP contents.

virtual void SetClass (AAA_VectorAttribute< diameter_octetstring_t > &classInDER)
 This function is used for setting Class AVP contents.

virtual void SetPortLimit (AAA_ScholarAttribute< diameter_unsigned32_t > &portLimit)
 This function is used for setting Port-Limit AVP contents.

virtual void SetCallbackNumber (AAA_ScholarAttribute< diameter_utf8string_t > &callbackNumber)
 This function is used for setting Callback-Number AVP contents.

virtual void SetCalledStationId (AAA_ScholarAttribute< diameter_utf8string_t > &calledStationId)
virtual void SetCallingStationId (AAA_ScholarAttribute< diameter_utf8string_t > &callingStationId)
virtual void SetOriginatingLineInfo (AAA_ScholarAttribute< diameter_octetstring_t > &originatingLineInfo)
virtual void SetConnectInfo (AAA_ScholarAttribute< diameter_utf8string_t > &connectInfo)
 This function is used for setting Connect-Info AVP contents.

virtual void SetFramedCompression (AAA_VectorAttribute< diameter_enumerated_t > &framedCompression)
virtual void SetFramedInterfaceId (AAA_ScholarAttribute< diameter_unsigned64_t > &framedInterfaceId)
virtual void SetFramedIpAddress (AAA_ScholarAttribute< diameter_octetstring_t > &framedIpAddress)
virtual void SetFramedIpv6Prefix (AAA_VectorAttribute< diameter_octetstring_t > &framedIpv6Prefix)
virtual void SetFramedIpNetmask (AAA_ScholarAttribute< diameter_octetstring_t > &framedIpNetmask)
virtual void SetFramedMtu (AAA_ScholarAttribute< diameter_unsigned32_t > &framedMtu)
 This function is used for setting Framed-MTU AVP contents.

virtual void SetFramedProtocol (AAA_ScholarAttribute< diameter_enumerated_t > &framedProtocol)
 This function is used for setting Framed-Protocol AVP contents.

virtual void SetTunneling (AAA_VectorAttribute< tunneling_t > &tunneling)
 This function is used for setting Framed-Tunneling AVP contents.

virtual void EnforceMultiRoundTimeOut (const diameter_unsigned32_t &multiRoundTimeout)
virtual void EnforceServiceType (const diameter_enumerated_t &serviceTypeInDEA)
 This function is used for enforcing Service-Type AVP contents.

virtual void EnforceClass (const std::vector< diameter_octetstring_t > &classInDEA)
 This function is used for enforcing Class AVP contents.

virtual void EnforceAcctInterimInterval (const diameter_unsigned32_t &acctInterimInterval)
virtual void EnforceIdleTimeout (const diameter_unsigned32_t &idleTimeout)
virtual void EnforceAuthorizationLifetime (const diameter_unsigned32_t &authorizationLifetime)
virtual void EnforceAuthGracePeriod (const diameter_unsigned32_t &authGracePeriod)
virtual void EnforceAuthSessionState (const diameter_enumerated_t &authSessionState)
virtual void EnforceReAuthRequestType (const diameter_enumerated_t &reAuthRequestType)
virtual void EnforceSessionTimeout (const diameter_unsigned32_t &sessionTimeout)
virtual void EnforceFilterId (const std::vector< diameter_utf8string_t > &filterId)
 This function is used for enforcing Filter-Id AVP contents.

virtual void EnforcePortLimit (const diameter_unsigned32_t &portLimit)
 This function is used for enforcing Port-Limit AVP contents.

virtual void EnforceCallbackId (const diameter_utf8string_t &callbackId)
 This function is used for enforcing Callback-Id AVP contents.

virtual void EnforceCallbackNumber (const diameter_utf8string_t &callbackNumberInDEA)
 This function is used for enforcing Callback-Number AVP contents.

virtual void EnforceFramedAppletalkLink (const diameter_unsigned32_t &framedAppletalkLink)
virtual void EnforceFramedAppletalkZone (const diameter_octetstring_t &framedAppletalkZone)
virtual void EnforceFramedAppletalkNetwork (const std::vector< diameter_unsigned32_t > &framedAppletalkNetwork)
virtual void EnforceFramedCompression (const std::vector< diameter_enumerated_t > &framedCompression)
virtual void EnforceFramedInterfaceId (const diameter_unsigned64_t &framedInterfaceId)
virtual void EnforceFramedIpAddress (const diameter_octetstring_t &framedIpAddress)
virtual void EnforceFramedIpv6Prefix (const std::vector< diameter_octetstring_t > &framedIpv6Prefix)
virtual void EnforceFramedIpv6Pool (const diameter_octetstring_t &framedIpv6Pool)
virtual void EnforceFramedPool (const diameter_octetstring_t &framedPool)
 This function is used for enforcing Framed-Pool AVP contents.

virtual void EnforceFramedIpv6Route (const std::vector< diameter_utf8string_t > &framedIpv6Route)
 This function is used for enforcing Framed-IPv6-Route AVP contents.

virtual void EnforceFramedIpNetmask (const diameter_octetstring_t &framedIpNetmaskInDEA)
virtual void EnforceFramedIpxNetwork (const diameter_utf8string_t &framedIpxNetwork)
virtual void EnforceFramedMtu (const diameter_unsigned32_t &framedMtu)
 This function is used for enforcing Framed-MTU AVP contents.

virtual void EnforceFramedProtocol (const diameter_enumerated_t &framedProtocol)
virtual void EnforceFramedRouting (const diameter_enumerated_t &framedRouting)
virtual void EnforceNasFilterRule (const std::vector< diameter_ipfilter_rule_t > &nasFilterRule)
virtual void EnforceTunneling (const std::vector< tunneling_t > &tunneling)
virtual void EnforceEapMasterSessionKey (const diameter_octetstring_t &eapMasterSessionKey)
virtual void EnforceAccountingEapAuthMethod (const std::vector< diameter_unsigned64_t > &accountingEapAuthMethodInDEA)
DER_DataDER ()
DEA_DataDEA ()

Friends

class DiameterJobMultiplexor

Detailed Description

State machine for Diameter EAP clients. It has many member functions for enforcement of attributes (i.e., EnforceXYZ) and for setting attributes (i.e., SetXYX). Arguments of enforcement functions are not enveloped with AAA_ScholorAttribute or AAA_VectorAttributes since they are intended to be unmodified.


Member Function Documentation

virtual void DiameterEapClientStateMachine::Abort  )  [pure virtual]
 

This is used for aborting the state machine. Usually called when Notify() fails.

virtual void DiameterEapClientStateMachine::EnforceAccountingEapAuthMethod const std::vector< diameter_unsigned64_t > &  accountingEapAuthMethodInDEA  )  [inline, virtual]
 

This function is used for enforcing Accounting-EAP-Auth-Method AVP contents.

virtual void DiameterEapClientStateMachine::EnforceAcctInterimInterval const diameter_unsigned32_t &  acctInterimInterval  )  [inline, virtual]
 

This function is used for enforcing Acct-Interim-Interval AVP contents.

virtual void DiameterEapClientStateMachine::EnforceAuthGracePeriod const diameter_unsigned32_t &  authGracePeriod  )  [inline, virtual]
 

This function is used for enforcing Auth-Grace-Period AVP contents.

virtual void DiameterEapClientStateMachine::EnforceAuthorizationLifetime const diameter_unsigned32_t &  authorizationLifetime  )  [inline, virtual]
 

This function is used for enforcing Authorization-Lifetime AVP contents.

virtual void DiameterEapClientStateMachine::EnforceAuthSessionState const diameter_enumerated_t &  authSessionState  )  [inline, virtual]
 

This function is used for enforcing Auth-Session-State AVP contents.

virtual void DiameterEapClientStateMachine::EnforceEapMasterSessionKey const diameter_octetstring_t &  eapMasterSessionKey  )  [inline, virtual]
 

This function is used for enforcing EAP-Master-Session-Key AVP contents.

virtual void DiameterEapClientStateMachine::EnforceFramedAppletalkLink const diameter_unsigned32_t &  framedAppletalkLink  )  [inline, virtual]
 

This function is used for enforcing Framed-Appletalk-Link AVP contents.

virtual void DiameterEapClientStateMachine::EnforceFramedAppletalkNetwork const std::vector< diameter_unsigned32_t > &  framedAppletalkNetwork  )  [inline, virtual]
 

This function is used for enforcing Framed-Appletalk-Network AVP contents.

virtual void DiameterEapClientStateMachine::EnforceFramedAppletalkZone const diameter_octetstring_t &  framedAppletalkZone  )  [inline, virtual]
 

This function is used for enforcing Framed-Appletalk-Zone AVP contents.

virtual void DiameterEapClientStateMachine::EnforceFramedCompression const std::vector< diameter_enumerated_t > &  framedCompression  )  [inline, virtual]
 

This function is used for enforcing Framed-Compression AVP contents.

virtual void DiameterEapClientStateMachine::EnforceFramedInterfaceId const diameter_unsigned64_t &  framedInterfaceId  )  [inline, virtual]
 

This function is used for enforcing Framed-Interface-Id AVP contents.

virtual void DiameterEapClientStateMachine::EnforceFramedIpAddress const diameter_octetstring_t &  framedIpAddress  )  [inline, virtual]
 

This function is used for enforcing Framed-IP-Address AVP contents.

virtual void DiameterEapClientStateMachine::EnforceFramedIpNetmask const diameter_octetstring_t &  framedIpNetmaskInDEA  )  [inline, virtual]
 

This function is used for enforcing Framed-IP-Netmask AVP contents.

virtual void DiameterEapClientStateMachine::EnforceFramedIpv6Pool const diameter_octetstring_t &  framedIpv6Pool  )  [inline, virtual]
 

This function is used for enforcing Framed-IPv6-Pool AVP contents.

virtual void DiameterEapClientStateMachine::EnforceFramedIpv6Prefix const std::vector< diameter_octetstring_t > &  framedIpv6Prefix  )  [inline, virtual]
 

This function is used for enforcing Framed-IPv6-Prefix AVP contents.

virtual void DiameterEapClientStateMachine::EnforceFramedIpxNetwork const diameter_utf8string_t &  framedIpxNetwork  )  [inline, virtual]
 

This function is used for enforcing Framed-IPX-Network AVP contents.

virtual void DiameterEapClientStateMachine::EnforceFramedProtocol const diameter_enumerated_t &  framedProtocol  )  [inline, virtual]
 

This function is used for enforcing Framed-Protocol AVP contents.

virtual void DiameterEapClientStateMachine::EnforceFramedRouting const diameter_enumerated_t &  framedRouting  )  [inline, virtual]
 

This function is used for enforcing Framed-Routing AVP contents.

virtual void DiameterEapClientStateMachine::EnforceIdleTimeout const diameter_unsigned32_t &  idleTimeout  )  [inline, virtual]
 

This function is used for enforcing Acct-Idle-Timeout AVP contents.

virtual void DiameterEapClientStateMachine::EnforceMultiRoundTimeOut const diameter_unsigned32_t &  multiRoundTimeout  )  [inline, virtual]
 

This function is used for enforcing Multi-Round-Time-Out AVP contents.

virtual void DiameterEapClientStateMachine::EnforceNasFilterRule const std::vector< diameter_ipfilter_rule_t > &  nasFilterRule  )  [inline, virtual]
 

This function is used for enforcing Framed-NAS-Filter-Rule AVP contents.

virtual void DiameterEapClientStateMachine::EnforceReAuthRequestType const diameter_enumerated_t &  reAuthRequestType  )  [inline, virtual]
 

This function is used for enforcing ReAuth-Request-Type AVP contents.

virtual void DiameterEapClientStateMachine::EnforceSessionTimeout const diameter_unsigned32_t &  sessionTimeout  )  [inline, virtual]
 

This function is used for enforcing Session-Timeout AVP contents.

virtual void DiameterEapClientStateMachine::EnforceTunneling const std::vector< tunneling_t > &  tunneling  )  [inline, virtual]
 

This function is used for enforcing Framed-Tunneling AVP contents.

void DiameterEapClientStateMachine::ForwardResponse std::string &  eapMsg  ) 
 

This is called by application when EAP-Response is forwarded from passthrough EAP authenticator.

virtual void DiameterEapClientStateMachine::SendAA_Request  )  [inline, virtual]
 

This virtual function is called when a RADIUS AA-Request needs to be sent as part of authorization.

void DiameterEapClientStateMachine::SendDER  ) 
 

This is used for constructing and sending a Diameter-EAP-Request.

virtual void DiameterEapClientStateMachine::SetAuthGracePeriod AAA_ScholarAttribute< diameter_unsigned32_t > &  authGracePeriod  )  [inline, virtual]
 

This function is used for setting Auth-Grace-Period AVP contents.

virtual void DiameterEapClientStateMachine::SetAuthorizationLifetime AAA_ScholarAttribute< diameter_unsigned32_t > &  authorizationLifetime  )  [inline, virtual]
 

This function is used for setting Authorization-Lifetime AVP contents.

virtual void DiameterEapClientStateMachine::SetAuthRequestType AAA_ScholarAttribute< diameter_enumerated_t > &  authRequestType  )  [inline, virtual]
 

This function is used for setting Auth-Request-Type AVP contents.

virtual void DiameterEapClientStateMachine::SetAuthSessionState AAA_ScholarAttribute< diameter_enumerated_t > &  authSessionState  )  [inline, virtual]
 

This function is used for setting Auth-Session-State AVP contents.

virtual void DiameterEapClientStateMachine::SetCalledStationId AAA_ScholarAttribute< diameter_utf8string_t > &  calledStationId  )  [inline, virtual]
 

This function is used for setting Called-Station-Id AVP contents.

virtual void DiameterEapClientStateMachine::SetCallingStationId AAA_ScholarAttribute< diameter_utf8string_t > &  callingStationId  )  [inline, virtual]
 

This function is used for setting Called-Station-Id AVP contents.

virtual void DiameterEapClientStateMachine::SetDestinationHost AAA_ScholarAttribute< diameter_utf8string_t > &  destinationHost  )  [inline, virtual]
 

This function is used for setting Destination-Host AVP contents.

virtual void DiameterEapClientStateMachine::SetDestinationRealm AAA_ScholarAttribute< diameter_utf8string_t > &  destinationRealm  )  [inline, virtual]
 

This function is used for setting Destination-Realm AVP contents.

virtual void DiameterEapClientStateMachine::SetFramedCompression AAA_VectorAttribute< diameter_enumerated_t > &  framedCompression  )  [inline, virtual]
 

This function is used for setting Framed-Compression AVP contents.

virtual void DiameterEapClientStateMachine::SetFramedInterfaceId AAA_ScholarAttribute< diameter_unsigned64_t > &  framedInterfaceId  )  [inline, virtual]
 

This function is used for setting Framed-Interface-Id AVP contents.

virtual void DiameterEapClientStateMachine::SetFramedIpAddress AAA_ScholarAttribute< diameter_octetstring_t > &  framedIpAddress  )  [inline, virtual]
 

This function is used for setting Framed-IP-Address AVP contents.

virtual void DiameterEapClientStateMachine::SetFramedIpNetmask AAA_ScholarAttribute< diameter_octetstring_t > &  framedIpNetmask  )  [inline, virtual]
 

This function is used for setting Framed-IP-Netmask AVP contents.

virtual void DiameterEapClientStateMachine::SetFramedIpv6Prefix AAA_VectorAttribute< diameter_octetstring_t > &  framedIpv6Prefix  )  [inline, virtual]
 

This function is used for setting Framed-IPv6-Prefix AVP contents.

virtual void DiameterEapClientStateMachine::SetOriginatingLineInfo AAA_ScholarAttribute< diameter_octetstring_t > &  originatingLineInfo  )  [inline, virtual]
 

This function is used for setting Originating-Line-Info AVP contents.

virtual void DiameterEapClientStateMachine::SignalContinue std::string &  eapMsg  )  [pure virtual]
 

This virtual function is called when an EAP-Response message is passed to the EAP passthrough authenticator.

virtual void DiameterEapClientStateMachine::SignalDisconnect  )  [pure virtual]
 

This virtual function is called when the session lifetime or the auth grace period is expired, or a disconect event is received from libdiameter.

virtual void DiameterEapClientStateMachine::SignalFailure std::string &  eapMsg  )  [pure virtual]
 

This virtual function is called when an AAA success is signaled to the EAP passthrough authenticator. An EAP-Failure message is contained in the argument if any.

virtual void DiameterEapClientStateMachine::SignalReauthentication  )  [pure virtual]
 

This virtual function is called when the current authorization lifetime is expired. XXX: this should also be called when an Re-Auth Request is received from the server.

virtual void DiameterEapClientStateMachine::SignalSuccess std::string &  eapMsg  )  [pure virtual]
 

This virtual function is called when an AAA success is signaled to the EAP passthrough authenticator. An EAP-Success message is contained in the argument if any.


The documentation for this class was generated from the following file:
Generated on Fri Jun 25 19:14:22 2004 for Diameter EAP Application by doxygen 1.3.5