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

📄 pana_paa_fsm.cxx

📁 Diameter协议栈
💻 CXX
📖 第 1 页 / 共 5 页
字号:
    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - (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_OPEN, 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_OPEN, ev.Get(),                        PANA_ST_OPEN,                        m_PaaExitActionTxPEA);    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - (Catch all processing)- -    //#if !defined(PANA_DEBUG)    AddWildcardStateTableEntry(PANA_ST_OPEN,                                PANA_ST_OPEN);#endif                                   // ---------------    // State: WAIT_PPA    // ---------------    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - - - - -(PPA processing) - - - - - - - - - -    // Rx:PPA                   RtxTimerStop();            OPEN    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PPA);    AddStateTableEntry(PANA_ST_WAIT_PPA, ev.Get(),                        PANA_ST_OPEN,                        m_PaaWaitPaaExitActionRxPPA);    /////////////////////////////////////////////////////////////////    // SESS_TIMEOUT             Disconnect();              CLOSED    //    ev.Reset();    ev.Do_SessTimeout();    AddStateTableEntry(PANA_ST_WAIT_PPA, ev.Get(),                        PANA_ST_CLOSED,                        m_PaaExitActionTimeout);    /////////////////////////////////////////////////////////////////    // RTX_TIMEOUT &&           Disconnect();              CLOSED    // RTX_COUNTER>=    // RTX_MAX_NUM    //    ev.Reset();    ev.Do_RetryTimeout();    AddStateTableEntry(PANA_ST_WAIT_PPA, 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_PPA, ev.Get(),                        PANA_ST_WAIT_PPA,                        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_PPA, 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_PPA, ev.Get(),                        PANA_ST_WAIT_PPA,                        m_PaaExitActionTxPEA);    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - (Catch all processing)- -    //#if !defined(PANA_DEBUG)    AddWildcardStateTableEntry(PANA_ST_WAIT_PPA,                                PANA_ST_WAIT_PPA);#endif    // ----------------------    // State: WAIT_PAN_OR_PAR    // ----------------------    /////////////////////////////////////////////////////////////////    // ------------------------+--------------------------+------------    // - - - - - - (Pass EAP Resposne to the EAP authenticator)- - - -    // Rx:PAN &&                TxEAP();                   WAIT_EAP_MSG    // PAN.exist_avp            RtxTimerStop();    // ("EAP-Payload")    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PAN);    ev.AvpExist_EapPayload();    AddStateTableEntry(PANA_ST_WAIT_PAN_OR_PAR, ev.Get(),                        PANA_ST_WAIT_EAP_MSG,                        m_PaaWaitPANExitActionRxPAN);    /////////////////////////////////////////////////////////////////    // Rx:PAR                 TxEAP();                   WAIT_EAP_MSG    //                        if (key_available())    //                           PAN.insert_avp("AUTH");    //                        if (SEPARATE==Set) {    //                           PAN.S_flag=1;    //                           if (NAP_AUTH==Set)    //                             PAN.N_flag=1;    //                        }    //                        RtxTimerStop();    //                        Tx:PAN();    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PAR);    AddStateTableEntry(PANA_ST_WAIT_PAN_OR_PAR, ev.Get(),                        PANA_ST_WAIT_EAP_MSG,                        m_PaaWaitPANExitActionRxPAR);    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - (PAN without an EAP response) - - - - - -     // Rx:PAN &&                RtxTimerStop();          WAIT_PAN_OR_PAR    // !PAN.exist_avp    // ("EAP-Payload")    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PAN);    AddStateTableEntry(PANA_ST_WAIT_PAN_OR_PAR, ev.Get(),                        PANA_ST_WAIT_PAN_OR_PAR,                        m_PaaWaitPANExitActionRxPAN);    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - - -(EAP retransmission) - - - - - - - - -    // EAP_REQUEST              if (key_available())       WAIT_PAN_OR_PAR    //                            PAR.insert_avp("AUTH");    //                          if (SEPARATE==Set) {    //                            PAR.S_flag=1;    //                          if (NAP_AUTH==Set)    //                            PAR.N_flag=1;    //                          }    //                          Tx:PAR();    //                          RtxTimerStart();    //    ev.Reset();    ev.Event_Eap(PANA_EV_EAP_REQUEST);    AddStateTableEntry(PANA_ST_WAIT_PAN_OR_PAR, ev.Get(),                        PANA_ST_WAIT_PAN_OR_PAR,                        m_PaaExitActionTxPAR);    /////////////////////////////////////////////////////////////////    // - - - - - - - - -(EAP authentication timeout)- - - - - - - -     // EAP_TIMEOUT &&           if (key_available())       WAIT_PEA    // 1ST_EAP==Unset &&          PER.insert_avp("AUTH");    // SEPARATE==Unset          Tx:PER();    //                          RtxTimerStart();    //    ev.Reset();    ev.Event_Eap(PANA_EV_EAP_TIMEOUT);    ev.Result_FirstEap(PANA_EAP_RESULT_UNSET);    AddStateTableEntry(PANA_ST_WAIT_PAN_OR_PAR, ev.Get(),                        PANA_ST_WAIT_PEA,                        m_PaaExitActionTxPER);    /////////////////////////////////////////////////////////////////    // - - - - - -(EAP authentication timeout for 1st EAP)- - - - -     // EAP_TIMEOUT &&           1ST_EAP=Failure            WAIT_PFEA    // 1ST_EAP==Unset &&        if (key_available())    // SEPARATE==Set &&           PFER.insert_avp("AUTH");    // ABORT_ON_1ST_EAP_FAILURE PFER.S_flag=1;    // ==Unset                  if (NAP_AUTH)    //                            PFER.N_flag=1;    //                          Tx:PFER();    //                          RtxTimerStart();    //    ev.Reset();    ev.Event_Eap(PANA_EV_EAP_TIMEOUT);    ev.Result_FirstEap(PANA_EAP_RESULT_UNSET);    ev.Do_Separate();    AddStateTableEntry(PANA_ST_WAIT_PAN_OR_PAR, ev.Get(),                        PANA_ST_WAIT_PFEA,                        m_PaaExitActionTxPFEREapTimeout);    /////////////////////////////////////////////////////////////////    // EAP_TIMEOUT &&           1ST_EAP=Failure          WAIT_FAIL_PFEA    // 1ST_EAP==Unset &&        if (key_available())    // SEPARATE==Set &&           PFER.insert_avp("AUTH");    // ABORT_ON_1ST_EAP_FAILURE SEPARATE=Unset;    // ==Set                    PFER.S_flag=0;    //                          Tx:PFER();    //                          RtxTimerStart();    //    ev.Reset();    ev.Event_Eap(PANA_EV_EAP_TIMEOUT);    ev.Result_FirstEap(PANA_EAP_RESULT_UNSET);    ev.Do_Separate();    ev.Do_AbortOnFirstEap();    AddStateTableEntry(PANA_ST_WAIT_PAN_OR_PAR, ev.Get(),                        PANA_ST_WAIT_FAIL_PFEA,                        m_PaaExitActionTxPFEREapTimeout);    /////////////////////////////////////////////////////////////////    // - - - - - -(EAP authentication timeout for 2nd EAP)- - - - -     // EAP_TIMEOUT &&           if (key_available())       WAIT_FAIL_PBA    // 1ST_EAP==Failure &&        PBR.insert_avp("AUTH");    // SEPARATE==Set            PBR.S_flag=1;    //                          if (NAP_AUTH)    //                            PBR.N_flag=1;    //                          Tx:PBR();    //                          RtxTimerStart();    //    ev.Reset();    ev.Event_Eap(PANA_EV_EAP_TIMEOUT);    ev.Result_FirstEap(PANA_EAP_RESULT_FAIL);    ev.Do_Separate();    AddStateTableEntry(PANA_ST_WAIT_PAN_OR_PAR, ev.Get(),                        PANA_ST_WAIT_FAIL_PBA,                        m_PaaExitActionTxPBREapTimeout);    /////////////////////////////////////////////////////////////////    // EAP_TIMEOUT &&           if (CARRY_DEVICE_ID==Set)  WAIT_SUCC_PBA    // 1ST_EAP==Success &&        PBR.insert_avp    // SEPARATE==Set &&           ("Device-Id");    // Authorize()              if (CARRY_LIFETIME==Set)    //                            PBR.insert_avp    //                            ("Session-Lifetime");    //                          if (PROTECTION_CAP_IN_PBR    //                              ==Set)    //                            PBR.insert_avp    //                            ("Protection-Cap.");    //                          if (new_key_available())    //                            PBR.insert_avp    //                            ("Key-Id");    //                          if (key_available())    //                            PBR.insert_avp("AUTH");    //                          PBR.S_flag=1;    //                          if (NAP_AUTH)    //                            PBR.N_flag=1;    //                          Tx:PBR();    //                          RtxTimerStart();    //     ev.Reset();    ev.Event_Eap(PANA_EV_EAP_TIMEOUT);    ev.Result_FirstEap(PANA_EAP_RESULT_SUCCESS);    ev.Do_Separate();    ev.Do_Authorize();    AddStateTableEntry(PANA_ST_WAIT_PAN_OR_PAR, ev.Get(),                        PANA_ST_WAIT_SUCC_PBA,                        m_PaaExitActionTxPBREapTimeoutSuccess);    /////////////////////////////////////////////////////////////////    // EAP_TIMEOUT &&           if (key_available())       WAIT_FAIL_PBA    // 1ST_EAP==Success &&        PBR.insert_avp("AUTH");    // SEPARATE==Set &&         PBR.S_flag=1;    // !Authorize()             if (NAP_AUTH)    //                            PBR.N_flag=1;    //                          Tx:PBR();    //                          RtxTimerStart();    //    ev.Reset();    ev.Event_Eap(PANA_EV_EAP_TIMEOUT);    ev.Result_FirstEap(PANA_EAP_RESULT_SUCCESS);    ev.Do_Separate();    AddStateTableEntry(PANA_ST_WAIT_PAN_OR_PAR, ev.Get(),                        PANA_ST_WAIT_FAIL_PBA,                        m_PaaExitActionTxPBREapTimeout);    /////////////////////////////////////////////////////////////////    // RTX_TIMEOUT &&           Disconnect();              CLOSED    // RTX_COUNTER>=    // RTX_MAX_NUM    //    ev.Reset();    ev.Do_RetryTimeout();    AddStateTableEntry(P

⌨️ 快捷键说明

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