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.

DiameterNasreqClientSessionSession ()
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)
DiameterNasreqAuthenticationInfoAuthenticationInfo ()
AA_RequestDataAA_Request ()
AA_AnswerDataAA_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