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

📄 pana_paa_fsm.cxx

📁 Diameter协议栈
💻 CXX
📖 第 1 页 / 共 5 页
字号:
#if !defined(PANA_DEBUG)    AddWildcardStateTableEntry(PANA_ST_WAIT_FAIL_PFEA,                                PANA_ST_WAIT_FAIL_PFEA);#endif    // --------------------    // State: WAIT_SUCC_PBA    // --------------------    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - - - - (PBA Processing)- - - - - - - - - - -    // Rx:PBA &&                SessionTimerStart();       OPEN    // (CARRY_DEVICE_ID==Unset ||    // (CARRY_DEVICE_ID==Set &&    // PBA.exit_avp("Device-Id")))    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PBA);    AddStateTableEntry(PANA_ST_WAIT_SUCC_PBA, ev.Get(),                        PANA_ST_OPEN,                        m_PaaExitActionRxPBASuccess);    /////////////////////////////////////////////////////////////////    // Rx:PBA &&                 PER.RESULT_CODE=          WAIT_PEA    // CARRY_DEVICE_ID==Set &&     PANA_MISSING_AVP    // !PBA.exit_avp             Tx:PER();    //  ("Device-Id")           RtxTimerStart();    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PBA);    ev.Do_MissingId();  // CARRY_DEVICE_ID==Set &&                        // !PBA.exit_avp                        //  ("Device-Id")    AddStateTableEntry(PANA_ST_WAIT_SUCC_PBA, ev.Get(),                        PANA_ST_WAIT_PEA,                        m_PaaExitActionTxPERMissingAvp);    /////////////////////////////////////////////////////////////////    // RTX_TIMEOUT &&           Disconnect();              CLOSED    // RTX_COUNTER>=    // RTX_MAX_NUM    //    ev.Reset();    ev.Do_RetryTimeout();    AddStateTableEntry(PANA_ST_WAIT_SUCC_PBA, ev.Get(),                        PANA_ST_CLOSED,                        m_PaaExitActionTimeout);    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - (Reach maximum number of retransmission)- -    // RTX_TIMEOUT &&           Retransmit();              (no change)    // RTX_COUNTER<    // RTX_MAX_NUM    //    ev.Reset();    ev.Do_ReTransmission();    AddStateTableEntry(PANA_ST_WAIT_SUCC_PBA, ev.Get(),                        PANA_ST_WAIT_SUCC_PBA,                        m_PaaExitActionRetransmission);    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - (PANA-Error-Message-Processing)- -    // Rx:PER &&                PEA.insert_avp("AUTH");     CLOSED    // fatal                    Tx:PEA();    // (PER.RESULT_CODE) &&     Disconnect();    // PER.exist_avp("AUTH") &&    // key_available()    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PER);    ev.Do_FatalError(); // fatal(PER.RESULT_CODE) &&                        // PER.exist_avp("AUTH") &&                        // key_available()    AddStateTableEntry(PANA_ST_WAIT_SUCC_PBA, ev.Get(),                        PANA_ST_CLOSED,                        m_PaaExitActionTxPEA);    /////////////////////////////////////////////////////////////////    // Rx:PER &&                Tx:PEA();                  (no change)    // !fatal    // (PER.RESULT_CODE) ||    // !PER.exist_avp("AUTH") ||    // !key_available()    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PER);    AddStateTableEntry(PANA_ST_WAIT_SUCC_PBA, ev.Get(),                        PANA_ST_WAIT_SUCC_PBA,                        m_PaaExitActionTxPEA);    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - (Catch all processing)- - - - - - - - - -    //#if !defined(PANA_DEBUG)    AddWildcardStateTableEntry(PANA_ST_WAIT_SUCC_PBA,                                PANA_ST_WAIT_SUCC_PBA);#endif    // --------------------    // State: WAIT_FAIL_PBA    // --------------------    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - - - - - (PBA Processing)- - - - - - - - - -    // Rx:PBA                   RtxTimerStop();            CLOSED    //                          Disconnect();    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PBA);    AddStateTableEntry(PANA_ST_WAIT_FAIL_PBA, ev.Get(),                        PANA_ST_CLOSED,                        m_PaaExitActionRxPBAFail);    /////////////////////////////////////////////////////////////////    // RTX_TIMEOUT &&           Disconnect();              CLOSED    // RTX_COUNTER>=    // RTX_MAX_NUM    //    ev.Reset();    ev.Do_RetryTimeout();    AddStateTableEntry(PANA_ST_WAIT_FAIL_PBA, ev.Get(),                        PANA_ST_CLOSED,                        m_PaaExitActionTimeout);    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - (Reach maximum number of retransmission)- -    // RTX_TIMEOUT &&           Retransmit();              (no change)    // RTX_COUNTER<    // RTX_MAX_NUM    //    ev.Reset();    ev.Do_ReTransmission();    AddStateTableEntry(PANA_ST_WAIT_FAIL_PBA, ev.Get(),                        PANA_ST_WAIT_FAIL_PBA,                        m_PaaExitActionRetransmission);    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - (PANA-Error-Message-Processing)- -    // Rx:PER &&                PEA.insert_avp("AUTH");     CLOSED    // fatal                    Tx:PEA();    // (PER.RESULT_CODE) &&     Disconnect();    // PER.exist_avp("AUTH") &&    // key_available()    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PER);    ev.Do_FatalError(); // fatal(PER.RESULT_CODE) &&                        // PER.exist_avp("AUTH") &&                        // key_available()    AddStateTableEntry(PANA_ST_WAIT_FAIL_PBA, ev.Get(),                        PANA_ST_CLOSED,                        m_PaaExitActionTxPEA);    /////////////////////////////////////////////////////////////////    // Rx:PER &&                Tx:PEA();                  (no change)    // !fatal    // (PER.RESULT_CODE) ||    // !PER.exist_avp("AUTH") ||    // !key_available()    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PER);    AddStateTableEntry(PANA_ST_WAIT_FAIL_PBA, ev.Get(),                        PANA_ST_WAIT_FAIL_PBA,                        m_PaaExitActionTxPEA);    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - (Catch all processing)- -    //#if !defined(PANA_DEBUG)    AddWildcardStateTableEntry(PANA_ST_WAIT_FAIL_PBA,                                PANA_ST_WAIT_FAIL_PBA);#endif    // -----------    // State: OPEN    // -----------    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - - (re-authentication initiated by PaC) - -    // Rx:PRAR            if (key_available())       WAIT_EAP_MSG    //                       PRAA.insert_avp("AUTH");    //                    EAP_Restart();    //                    1ST_EAP=Unset;    //                    NAP_AUTH=Set|Unset;    //                    Tx:PRAA();    //                    SessionTimerStop();    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PRAR);    AddStateTableEntry(PANA_ST_OPEN, ev.Get(),                        PANA_ST_WAIT_EAP_MSG,                        m_PaaOpenExitActionRxPRAR);    /////////////////////////////////////////////////////////////////    // - - - - - - (re-authentication initiated by PAA) - - - - - -    // REAUTH                 EAP_Restart();         WAIT_EAP_MSG    //                        1ST_EAP=Unset;    //                        NAP_AUTH=Set|Unset;    //                        SessionTimerStop();    //    ev.Reset();    ev.Event_App(PANA_EV_APP_REAUTH);    AddStateTableEntry(PANA_ST_OPEN, ev.Get(),                        PANA_ST_WAIT_EAP_MSG,                        m_PaaOpenExitActionReAuth);    /////////////////////////////////////////////////////////////////    // - - (liveness test based on PPR-PPA exchange initiated by PAA)-    // PANA_PING          Tx:PPR();                  WAIT_PPA    //                    RtxTimerStart();    //    ev.Reset();    ev.Event_App(PANA_EV_APP_PING);    AddStateTableEntry(PANA_ST_OPEN, ev.Get(),                        PANA_ST_WAIT_PAA,                       m_PaaOpenExitActionTxPPR);    /////////////////////////////////////////////////////////////////    // - - - - - - - - (liveness test based initiated by PAA)- - - - - -    // Rx:PPR             if (key_available())       OPEN    //                       PPA.insert_avp("AUTH");    //                    Tx:PPA();    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PPR);    AddStateTableEntry(PANA_ST_OPEN, ev.Get(),                        PANA_ST_OPEN,                        m_PaaOpenExitActionRxPPR);    /////////////////////////////////////////////////////////////////    // - - - - - - - - (Session termination initated from PAA) - - - -    // TERMINATE               if (key_available())       SESS_TERM    //                           PTR.insert_avp("AUTH");    //                         Tx:PTR();    //                         RtxTimerStart();    //    ev.Reset();    ev.Event_App(PANA_EV_APP_TERMINATE);    AddStateTableEntry(PANA_ST_OPEN, ev.Get(),                        PANA_ST_SESS_TERM,                        m_PaaOpenExitActionTxPTR);    /////////////////////////////////////////////////////////////////    // - - - - - - - - (Session termination initated from PaC) - - - -    // Rx:PTR                 if (key_available())       CLOSED    //                          PTA.insert_avp("AUTH");    //                        Tx:PTA();    //                        Disconnect();    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PTR);    AddStateTableEntry(PANA_ST_OPEN, ev.Get(),                        PANA_ST_CLOSED,                        m_PaaOpenExitActionRxPTR);    /////////////////////////////////////////////////////////////////    // - - - - - - - - - -(Notification message) - - - - - - - - - -    // NOTIFY                 if (key_available())       WAIT_PUA    //                           PUR.insert_avp("AUTH");    //                        Tx:PUR();    //                        RtxTimerStart();    //    ev.Reset();    ev.Event_App(PANA_EV_APP_NOTIFICATION);    AddStateTableEntry(PANA_ST_OPEN, ev.Get(),                        PANA_ST_WAIT_PUA,                        m_PaaOpenExitActionTxPUR);    /////////////////////////////////////////////////////////////////    // - - - - - - - -(Notification/Address update)  - - - - - - - -     // Rx:PUR                   If (key_avaialble())       OPEN    //                            PUA.insert_avp("AUTH");    //                          Tx:PUA();    //                          if (new_source_address())    //                            update_popa();    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PUR);    AddStateTableEntry(PANA_ST_OPEN, ev.Get(),                        PANA_ST_OPEN,                        m_PaaOpenExitActionRxPUR);    /////////////////////////////////////////////////////////////////    // SESS_TIMEOUT             Disconnect();              CLOSED    //    ev.Reset();    ev.Do_SessTimeout();    AddStateTableEntry(PANA_ST_OPEN, ev.Get(),                        PANA_ST_CLOSED,                        m_PaaExitActionTimeout);    /////////////////////////////////////////////////////////////////    // RTX_TIMEOUT &&           Disconnect();              CLOSED    // RTX_COUNTER>=    // RTX_MAX_NUM    //    ev.Reset();    ev.Do_RetryTimeout();    AddStateTableEntry(PANA_ST_OPEN, ev.Get(),                        PANA_ST_CLOSED,                        m_PaaExitActionTimeout);    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - (Reach maximum number of retransmission)- -    // RTX_TIMEOUT &&           Retransmit();              (no change)    // RTX_COUNTER<    // RTX_MAX_NUM    //    ev.Reset();    ev.Do_ReTransmission();    AddStateTableEntry(PANA_ST_OPEN, ev.Get(),                        PANA_ST_OPEN,                        m_PaaExitActionRetransmission);

⌨️ 快捷键说明

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