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

DiameterNasreqClientStateMachine Class Reference

#include <diameter_nasreq_client_fsm.hxx>

Inheritance diagram for DiameterNasreqClientStateMachine:

DiameterNasreqClientSession List of all members.

Public Types

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

Public Member Functions

 DiameterNasreqClientStateMachine (DiameterNasreqClientSession &s, DiameterJobHandle &h)
 Constructor.

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

DiameterNasreqClientSession & Session ()
virtual void Abort ()=0
void SendAA_Request ()
 This is used for constructing and sending a AA-Request.

virtual void SignalContinue (DiameterNasreqAuthenticationInfo &authInfo)=0
virtual void SignalSuccess ()=0
virtual void SignalFailure ()=0
void ForwardAuthenticationInfo (DiameterNasreqAuthenticationInfo &authenticationInfo)
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 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 SetNasPort (AAA_ScholarAttribute< diameter_unsigned32_t > &nasPort)
 This function is used for setting Nas-Port AVP contents.

virtual void SetNasPortType (AAA_ScholarAttribute< diameter_enumerated_t > &nasPortType)
 This function is used for setting Nas-Port-Type 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 SetPortLimit (AAA_ScholarAttribute< diameter_unsigned32_t > &portLimit)
 This function is used for setting Port-Limit AVP contents.

virtual void SetServiceType (AAA_ScholarAttribute< diameter_enumerated_t > &serviceType)
 This function is used for setting Service-Type 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 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 SetLoginIpHost (AAA_VectorAttribute< diameter_octetstring_t > &loginIpHost)
 This function is used for setting Login-IP-Host AVP contents.

virtual void SetLoginIpv6Host (AAA_VectorAttribute< diameter_octetstring_t > &loginIpv6Host)
 This function is used for setting Login-IPv6-Host AVP contents.

virtual void SetLoginLatGroup (AAA_ScholarAttribute< diameter_octetstring_t > &loginLatGroup)
 This function is used for setting Login-LAT-Group AVP contents.

virtual void SetLoginLatNode (AAA_ScholarAttribute< diameter_octetstring_t > &loginLatNode)
 This function is used for setting Login-LAT-Node AVP contents.

virtual void SetLoginLatPort (AAA_ScholarAttribute< diameter_octetstring_t > &loginLatPort)
 This function is used for setting Login-LAT-Port AVP contents.

virtual void SetLoginLatService (AAA_ScholarAttribute< diameter_octetstring_t > &loginLatService)
 This function is used for setting Login-LAT-Service AVP contents.

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

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

virtual void EnforceConfigurationToken (const std::vector< diameter_octetstring_t > &Class)
virtual void EnforceClass (const std::vector< diameter_octetstring_t > &Class)
 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 EnforcePrompt (const diameter_enumerated_t &prompt)
 This function is used for enforcing Prompt 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 EnforceLoginIpHost (const std::vector< diameter_octetstring_t > &loginIpHost)
virtual void EnforceLoginIpv6Host (const std::vector< diameter_octetstring_t > &loginIpv6Host)
virtual void EnforceLoginLatGroup (const diameter_octetstring_t &loginLatGroup)
virtual void EnforceLoginLatNode (const diameter_octetstring_t &loginLatNode)
virtual void EnforceLoginLatPort (const diameter_octetstring_t &loginLatPort)
virtual void EnforceLoginLatService (const diameter_octetstring_t &loginLatService)
virtual void EnforceLoginService (const diameter_enumerated_t &loginService)
virtual void EnforceLoginTcpPort (const diameter_unsigned32_t &loginTcpPort)
virtual void EnforceTunneling (const std::vector< tunneling_t > &tunneling)
DiameterNasreqAuthenticationInfo & AuthenticationInfo ()
AA_RequestData & AA_Request ()
AA_AnswerData & AA_Answer ()

Friends

class DiameterJobMultiplexor

Detailed Description

State machine for Diameter NASREQ 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 DiameterNasreqClientStateMachine::Abort (   )  [pure virtual]
 

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

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

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

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

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

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

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

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

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

virtual void DiameterNasreqClientStateMachine::EnforceConfigurationToken (  const std::vector< diameter_octetstring_t > &  Class  )  [inline, virtual]
 

This function is used for enforcing Configuration-Token AVP contents.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

virtual void DiameterNasreqClientStateMachine::EnforceLoginIpHost (  const std::vector< diameter_octetstring_t > &  loginIpHost  )  [inline, virtual]
 

This function is used for enforcing Login-IP-Host AVP contents.

virtual void DiameterNasreqClientStateMachine::EnforceLoginIpv6Host (  const std::vector< diameter_octetstring_t > &  loginIpv6Host  )  [inline, virtual]
 

This function is used for enforcing Login-IPv6-Host AVP contents.

virtual void DiameterNasreqClientStateMachine::EnforceLoginLatGroup (  const diameter_octetstring_t &  loginLatGroup  )  [inline, virtual]
 

This function is used for enforcing Login-LAT-Group AVP contents.

virtual void DiameterNasreqClientStateMachine::EnforceLoginLatNode (  const diameter_octetstring_t &  loginLatNode  )  [inline, virtual]
 

This function is used for enforcing Login-LAT-Node AVP contents.

virtual void DiameterNasreqClientStateMachine::EnforceLoginLatPort (  const diameter_octetstring_t &  loginLatPort  )  [inline, virtual]
 

This function is used for enforcing Login-LAT-Port AVP contents.

virtual void DiameterNasreqClientStateMachine::EnforceLoginLatService (  const diameter_octetstring_t &  loginLatService  )  [inline, virtual]
 

This function is used for enforcing Login-LAT-Service AVP contents.

virtual void DiameterNasreqClientStateMachine::EnforceLoginService (  const diameter_enumerated_t &  loginService  )  [inline, virtual]
 

This function is used for enforcing Login-Service AVP contents.

virtual void DiameterNasreqClientStateMachine::EnforceLoginTcpPort (  const diameter_unsigned32_t &  loginTcpPort  )  [inline, virtual]
 

This function is used for enforcing Login-Service AVP contents.

virtual void DiameterNasreqClientStateMachine::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 DiameterNasreqClientStateMachine::EnforceReAuthRequestType (  const diameter_enumerated_t &  reAuthRequestType  )  [inline, virtual]
 

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

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

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

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

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

void DiameterNasreqClientStateMachine::ForwardAuthenticationInfo (  DiameterNasreqAuthenticationInfo &  authenticationInfo  ) 
 

This is called by the application when authentication info is passed to the NAS.

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

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

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

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

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

This function is used for setting Auth-Request-Type AVP contents. AUTH_REQUEST_TYPE_AUTHORIZE_AUTHENTICATE is set by default.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

virtual void DiameterNasreqClientStateMachine::SignalContinue (  DiameterNasreqAuthenticationInfo &  authInfo  )  [pure virtual]
 

This virtual function is called when a continuation of the authentication is signaled to the application.

virtual void DiameterNasreqClientStateMachine::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 DiameterNasreqClientStateMachine::SignalFailure (   )  [pure virtual]
 

This virtual function is called when an authentication failure is signaled to the application.

virtual void DiameterNasreqClientStateMachine::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 DiameterNasreqClientStateMachine::SignalSuccess (   )  [pure virtual]
 

This virtual function is called when an authentication success is signaled to the application.


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