⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pana_paa_fsm.h

📁 Diameter协议栈
💻 H
📖 第 1 页 / 共 2 页
字号:
              p.TxPFER(PANA_AUTHENTICATION_REJECTED,                       PANA_Paa::EAP_TIMEOUT);          }      };      class PaaExitActionTxPER : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.TxPER(PANA_UNABLE_TO_COMPLY);          }      };      class PaaExitActionTxPERMissingAvp : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.TxPER(PANA_MISSING_AVP);          }      };      class PaaExitActionTxPEA : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.TxPEA();          }      };      class PaaExitActionRxPER : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.RxPER();          }      };      class PaaWaitPEAExitActionRxPEA : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.RxPEA(true);          }      };      class PaaWaitPFEAExitActionRxPFEASuccess : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.RxPFEA(true);          }      };      class PaaWaitPFEAExitActionRxPFEAFail : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.RxPFEA(false);          }      };      class PaaExitActionRxPBASuccess : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.RxPBA(true);          }      };      class PaaExitActionRxPBAFail : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.RxPBA(false);          }      };      class PaaOpenExitActionRxPPR : public AAA_Action<PANA_Paa> {           virtual void operator()(PANA_Paa &p) {                p.RxPPR();            }      };      class PaaOpenExitActionRxPRAR : public AAA_Action<PANA_Paa> {           virtual void operator()(PANA_Paa &p) {                p.RxPRAR();            }      };      class PaaOpenExitActionReAuth : public AAA_Action<PANA_Paa> {           virtual void operator()(PANA_Paa &p) {                p.NotifyEapReAuth();           }      };      class PaaOpenExitActionTxPPR : public AAA_Action<PANA_Paa> {           virtual void operator()(PANA_Paa &p) {                p.TxPPR();           }      };      class PaaOpenExitActionTxPTR : public AAA_Action<PANA_Paa> {           virtual void operator()(PANA_Paa &p) {                p.TxPTR(PANA_TERMCAUSE_ADMINISTRATIVE);           }      };      class PaaOpenExitActionRxPTR : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.RxPTR();          }      };      class PaaOpenExitActionTxPUR : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.TxPUR();          }      };      class PaaWaitPUAExitActionRxPUA : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.RxPUA();           }      };      class PaaOpenExitActionRxPUR : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.RxPUR();          }      };      class PaaWaitPaaExitActionRxPPA : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.RxPPA();          }      };      class PaaWaitPANExitActionRxPAN : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.RxPAN();          }      };      class PaaWaitPANExitActionRxPAR : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.RxPAR();          }      };      class PaaSessExitActionRxPTA : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.Disconnect();          }      };      class PaaExitActionRxPEA : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.RxPEA(false);          }      };      class PaaExitActionTimeout : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p) {               p.Disconnect(PANA_TERMCAUSE_SESSION_TIMEOUT);          }      };      class PaaExitActionRetransmission : public AAA_Action<PANA_Paa> {          virtual void operator()(PANA_Paa &p);      };      typedef AAA_NullAction<PANA_Paa> PaaNullAction;      PANA_PaaStateTable();   private:      PaaExitActionPaaEapRestart              m_PaaExitActionPaaEapRestart;      PaaExitActionTxPSR                      m_PaaExitActionTxPSR;      PaaExitActionRxPSA                      m_PaaExitActionRxPSA;      PaaExitActionEapTimeout                 m_PaaExitActionEapTimeout;      PaaExitActionTxPAR                      m_PaaExitActionTxPAR;      PaaExitActionTxPBREapSuccess            m_PaaExitActionTxPBREapSuccess;      PaaExitActionTxPBREapFail               m_PaaExitActionTxPBREapFail;      PaaExitActionTxPBREapFailSuccess        m_PaaExitActionTxPBREapFailSuccess;      PaaExitActionTxPBREapTimeout            m_PaaExitActionTxPBREapTimeout;      PaaExitActionTxPBREapTimeoutSuccess     m_PaaExitActionTxPBREapTimeoutSuccess;      PaaExitActionTxPFEREapSuccess           m_PaaExitActionTxPFEREapSuccess;      PaaExitActionTxPBREapSuccessFail        m_PaaExitActionTxPBREapSuccessFail;      PaaExitActionTxPFEREapFail              m_PaaExitActionTxPFEREapFail;      PaaExitActionTxPFEREapTimeout           m_PaaExitActionTxPFEREapTimeout;      PaaExitActionTxPER                      m_PaaExitActionTxPER;      PaaExitActionTxPERMissingAvp            m_PaaExitActionTxPERMissingAvp;      PaaExitActionTxPEA                      m_PaaExitActionTxPEA;      PaaExitActionRxPER                      m_PaaExitActionRxPER;      PaaWaitPEAExitActionRxPEA               m_PaaWaitPEAExitActionRxPEA;      PaaWaitPFEAExitActionRxPFEASuccess      m_PaaWaitPFEAExitActionRxPFEASuccess;      PaaWaitPFEAExitActionRxPFEAFail         m_PaaWaitPFEAExitActionRxPFEAFail;      PaaExitActionRxPBASuccess               m_PaaExitActionRxPBASuccess;      PaaExitActionRxPBAFail                  m_PaaExitActionRxPBAFail;      PaaOpenExitActionRxPPR                  m_PaaOpenExitActionRxPPR;      PaaOpenExitActionRxPRAR                 m_PaaOpenExitActionRxPRAR;      PaaOpenExitActionReAuth                 m_PaaOpenExitActionReAuth;      PaaOpenExitActionTxPPR                  m_PaaOpenExitActionTxPPR;      PaaOpenExitActionTxPTR                  m_PaaOpenExitActionTxPTR;      PaaOpenExitActionRxPTR                  m_PaaOpenExitActionRxPTR;      PaaOpenExitActionTxPUR                  m_PaaOpenExitActionTxPUR;      PaaOpenExitActionRxPUR                  m_PaaOpenExitActionRxPUR;      PaaWaitPUAExitActionRxPUA               m_PaaWaitPUAExitActionRxPUA;      PaaWaitPaaExitActionRxPPA               m_PaaWaitPaaExitActionRxPPA;      PaaWaitPANExitActionRxPAN               m_PaaWaitPANExitActionRxPAN;      PaaWaitPANExitActionRxPAR               m_PaaWaitPANExitActionRxPAR;      PaaSessExitActionRxPTA                  m_PaaSessExitActionRxPTA;      PaaExitActionRxPEA                      m_PaaExitActionRxPEA;      PaaExitActionTimeout                    m_PaaExitActionTimeout;      PaaExitActionRetransmission             m_PaaExitActionRetransmission;};class PANA_EXPORT PANA_PaaSessionChannel{   public:      PANA_PaaSessionChannel(PANA_Node &n) :          m_Node(n),          m_UdpChannel(n.Job(), "PAA Channel") {          char strAddr[256];          ACE_OS::sprintf(strAddr, "%s:%d",                          PANA_CFG_PAA().m_McastAddress.data(),                          PANA_CFG_GENERAL().m_ListenPort);          ACE_INET_Addr mcastAddr(strAddr);          m_UdpChannel.Open(mcastAddr);      }      ~PANA_PaaSessionChannel() {          m_UdpChannel.Close();      }      PANA_Node &Node() {          return m_Node;      }      PANA_ListenerChannel &UdpChannel() {          return m_UdpChannel;      }      void RegisterHandler(OD_Utl_CbFunction1<PANA_Message&> &h) {          m_UdpChannel.RegisterHandler(h);      }      void RemoveHandler() {          m_UdpChannel.RemoveHandler();      }             protected:      PANA_Node &m_Node;      PANA_ListenerChannel m_UdpChannel;};class PANA_PaaSessionFactory;class PANA_EXPORT PANA_PaaSession : public             PANA_StateMachine<PANA_Paa, PANA_ListenerChannel>{   private:      friend class PANA_PaaSessionFactory;   public:      PANA_PaaSession(PANA_PaaSessionChannel &ch,                      PANA_PaaEventInterface &eif) :         PANA_StateMachine<PANA_Paa, PANA_ListenerChannel>                  (m_PAA, m_StateTable, ch.Node(), ch.UdpChannel()),         m_Timer(*this),         m_PAA(m_TxChannel, m_Timer, eif) {         InitializeMsgMaps();         PANA_StateMachine<PANA_Paa, PANA_ListenerChannel>::Start();       }      virtual ~PANA_PaaSession() {          PANA_StateMachine<PANA_Paa, PANA_ListenerChannel>::Stop();          FlushMsgMaps();       }      virtual void Start() throw (AAA_Error) {       }      virtual void EapSendRequest(AAAMessageBlock *req);      virtual void EapInvalidMessage();      virtual void EapSuccess(AAAMessageBlock *req = 0);      virtual void EapFailure(AAAMessageBlock *req = 0);      virtual void EapTimeout();      virtual void EapReAuthenticate();      virtual void SendNotification(std::string &message);      virtual void Ping();      virtual void Stop();      PANA_CfgProviderInfo &PreferedISP() {         return m_PAA.PreferedISP();      }      PANA_CfgProviderInfo &PreferedNAP() {         return m_PAA.PreferedNAP();      }      bool &EnableDhcpBootstrap() {         return m_PAA.DhcpBootstrap().Enable();      }      std::string &SessionId() {         return m_PAA.SessionId();      }      PANA_DeviceId &PeerDeviceId() {         return m_PAA.PacDeviceId();      }   private:      void InitializeMsgMaps();      void FlushMsgMaps();      static PANA_PaaStateTable m_StateTable;      FsmTimer<PANA_PaaEventVariable, PANA_PaaSession> m_Timer;      PANA_Paa m_PAA;};typedef OD_Utl_DbaseTree<std::string, PANA_PaaSession> PANA_SessionDb;typedef ACE_Singleton<PANA_SessionDb, ACE_Recursive_Thread_Mutex> PANA_SessionDb_S;#define PANA_SESSIONDB()           PANA_SessionDb_S::instance()#define PANA_SESSIONDB_ADD(x, y)   PANA_SessionDb_S::instance()->Add((x), (y))#define PANA_SESSIONDB_DEL(x, y)   PANA_SessionDb_S::instance()->Remove((x), (y))#define PANA_SESSIONDB_SEARCH(x)   PANA_SessionDb_S::instance()->Search((x))#endif /* __PANA_PAA_FSM_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -