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

📄 pana_client_fsm.cxx

📁 Diameter协议栈
💻 CXX
📖 第 1 页 / 共 5 页
字号:
    // PFER.S_flag==1     //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PFER);    ev.Result_FirstEap(PANA_EAP_RESULT_UNSET);    ev.EnableCfg_Separate();    ev.Result_Eap(PANA_EAP_RESULT_SUCCESS);    ev.EnableFlag_Separate();    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_1ST_EAP_RESULT,                        m_PacWaitPaaExitActionRxPFER);    /////////////////////////////////////////////////////////////////    // Rx:PFER &&               1ST_EAP=Failure;           WAIT_1ST_EAP_RESULT    // 1ST_EAP==Unset &&        TxEAP();    // SEPARATE==Set &&    // PFER.RESULT_CODE!=    //    PANA_SUCCESS &&    // PFER.S_flag==1 &&    // ABORT_ON_1ST_EAP_FAILURE    // ==Unset &&    // PFER.exit_avp    // ("EAP-Payload")    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PFER);    ev.Result_FirstEap(PANA_EAP_RESULT_UNSET);    ev.EnableCfg_Separate();    ev.Result_Eap(PANA_EAP_RESULT_FAIL);    ev.EnableFlag_Separate();    ev.AvpExist_EapPayload();    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_1ST_EAP_RESULT,                        m_PacWaitPaaExitActionRxPFER);    /////////////////////////////////////////////////////////////////    // Rx:PFER &&               1ST_EAP=Failure;           WAIT_1ST_EAP_RESULT    // 1ST_EAP==Unset &&        alt_reject();    // SEPARATE==Set &&    // PFER.RESULT_CODE!=    //   PANA_SUCCESS &&    // PFER.S_flag==1 &&    // ABORT_ON_1ST_EAP_FAILURE    //   ==Unset &&    // !PFER.exit_avp    // ("EAP-Payload")    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PFER);    ev.Result_FirstEap(PANA_EAP_RESULT_UNSET);    ev.EnableCfg_Separate();    ev.Result_Eap(PANA_EAP_RESULT_FAIL);    ev.EnableFlag_Separate();    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_1ST_EAP_RESULT,                        m_PacWaitPaaExitActionRxPFER);    /////////////////////////////////////////////////////////////////    // Rx:PFER &&               1ST_EAP=Failure;           WAIT_1ST_EAP_    // 1ST_EAP==Unset &&        TxEAP();                   RESULT_CLOSED    // SEPARATE==Set &&    // PFER.RESULT_CODE!=    //   PANA_SUCCESS &&    // (PFER.S_flag==0 ||    // ABORT_ON_1ST_EAP_FAILURE    //   ==Set) &&    // PFER.exist_avp    // ("EAP-Payload")    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PFER);    ev.Result_FirstEap(PANA_EAP_RESULT_UNSET);    ev.EnableCfg_Separate();    ev.Result_Eap(PANA_EAP_RESULT_FAIL);    ev.AvpExist_EapPayload();    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_1ST_EAP_RESULT_CLOSE,                        m_PacWaitPaaExitActionRxPFER);          //                     // (PFER.S_flag==0 ||    // ABORT_ON_1ST_EAP_FAILURE==Set    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PFER);    ev.Result_FirstEap(PANA_EAP_RESULT_UNSET);    ev.EnableCfg_Separate();    ev.Result_Eap(PANA_EAP_RESULT_FAIL);    ev.EnableCfg_AbortOnFirstEap();    ev.AvpExist_EapPayload();    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_1ST_EAP_RESULT_CLOSE,                        m_PacWaitPaaExitActionRxPFER);        /////////////////////////////////////////////////////////////////    // Rx:PFER &&               1ST_EAP=Failure;           WAIT_1ST_EAP_    // 1ST_EAP==Unset &&        alt_reject();              RESULT_CLOSED    // SEPARATE==Set &&    // PFER.RESULT_CODE!=    //   PANA_SUCCESS &&    // (PFER.S_flag==0 ||    //   ABORT_ON_1ST_EAP_FAILURE    //   ==Set) &&    // !PFER.exist_avp    // ("EAP-Payload")    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PFER);    ev.Result_FirstEap(PANA_EAP_RESULT_UNSET);    ev.EnableCfg_Separate();    ev.Result_Eap(PANA_EAP_RESULT_FAIL);    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_1ST_EAP_RESULT_CLOSE,                        m_PacWaitPaaExitActionRxPFER);        //                       // (PFER.S_flag==0 ||    // ABORT_ON_1ST_EAP_FAILURE==Set    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PFER);    ev.Result_FirstEap(PANA_EAP_RESULT_UNSET);    ev.EnableCfg_Separate();    ev.Result_Eap(PANA_EAP_RESULT_FAIL);    ev.EnableCfg_AbortOnFirstEap();    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_1ST_EAP_RESULT_CLOSE,                        m_PacWaitPaaExitActionRxPFER);        /////////////////////////////////////////////////////////////////    // Rx:PBR &&                TxEAP();                WAIT_EAP_RESULT    // 1ST_EAP==Unset &&        if (PBR.exist_avp    // SEPARATE==Unset &&           ("Device-Id"))    // PBR.RESULT_CODE==          CARRY_DEVICE_ID=Set;    //  PANA_SUCCESS &&    // PANA_SA_RESUMED!=Set    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PBR);    ev.Result_FirstEap(PANA_EAP_RESULT_UNSET);    ev.Result_Eap(PANA_EAP_RESULT_SUCCESS);    ev.AvpExist_EapPayload(); // implicit    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_EAP_RESULT,                        m_PacWaitPaaExitActionRxPBR);                        /////////////////////////////////////////////////////////////////    // Rx:PBR &&                TxEAP();                   WAIT_EAP_RESULT_    // 1ST_EAP==Unset &&                                   CLOSE    // SEPARATE==Unset &&    // PBR.RESULT_CODE!=    //    PANA_SUCCESS &&    // PBR.exist_avp    //   ("EAP-Payload")    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PBR);    ev.Result_FirstEap(PANA_EAP_RESULT_UNSET);    ev.Result_Eap(PANA_EAP_RESULT_FAIL);    ev.AvpExist_EapPayload();    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_EAP_RESULT_CLOSE,                        m_PacWaitPaaExitActionRxPBR);    /////////////////////////////////////////////////////////////////    // Rx:PBR &&                alt_reject();              WAIT_EAP_RESULT_    // 1ST_EAP==Unset &&                                   CLOSE    // SEPARATE==Unset &&    // PBR.RESULT_CODE!=    //   PANA_SUCCESS &&    // !PBR.exist_avp    // ("EAP-Payload")    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PBR);    ev.Result_FirstEap(PANA_EAP_RESULT_UNSET);    ev.Result_Eap(PANA_EAP_RESULT_FAIL);    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_EAP_RESULT_CLOSE,                        m_PacWaitPaaExitActionRxPBR);    /////////////////////////////////////////////////////////////////    // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -    // - - - - - - - - - - - - - - -(2nd EAP result) - - - - - - - - -    // Rx:PBR &&                TxEAP();                   WAIT_EAP_RESULT    // 1ST_EAP==Success &&      if (PBR.exist_avp    // PBR.RESULT_CODE==            ("Device-Id"))    // PANA_SUCCESS &&            CARRY_DEVICE_ID=Set;    // PBR.exist_avp    //  ("EAP-Payload");    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PBR);    ev.Result_FirstEap(PANA_EAP_RESULT_SUCCESS);    ev.Result_Eap(PANA_EAP_RESULT_SUCCESS);    ev.AvpExist_EapPayload();    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_EAP_RESULT,                        m_PacWaitPaaExitActionRxPBR);    /////////////////////////////////////////////////////////////////    // Rx:PBR &&                alt_reject();              WAIT_EAP_RESULT    // 1ST_EAP==Success &&      if (PBR.exist_avp    // PBR.RESULT_CODE==            ("Device-Id"))    // PANA_SUCCESS &&            CARRY_DEVICE_ID=Set;    // !PBR.exist_avp    // ("EAP-Payload");    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PBR);    ev.Result_FirstEap(PANA_EAP_RESULT_SUCCESS);    ev.Result_Eap(PANA_EAP_RESULT_SUCCESS);    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_EAP_RESULT,                        m_PacWaitPaaExitActionRxPBR);    /////////////////////////////////////////////////////////////////    // Rx:PBR &&                TxEAP();                   WAIT_EAP_RESULT_CLOSE    // 1ST_EAP==Success &&    // PBR.RESULT_CODE!=    // PANA_SUCCESS &&    // PBR.exist_avp    //   ("EAP-Payload")    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PBR);    ev.Result_FirstEap(PANA_EAP_RESULT_SUCCESS);    ev.Result_Eap(PANA_EAP_RESULT_FAIL);    ev.AvpExist_EapPayload();    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_EAP_RESULT_CLOSE,                        m_PacWaitPaaExitActionRxPBR);    /////////////////////////////////////////////////////////////////    // Rx:PBR &&                alt_reject();              WAIT_EAP_RESULT    // 1ST_EAP==Success &&                                  _CLOSE    // PBR.RESULT_CODE!=    // PANA_SUCCESS &&    // !PBR.exist_avp    //  ("EAP-Payload")    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PBR);    ev.Result_FirstEap(PANA_EAP_RESULT_SUCCESS);    ev.Result_Eap(PANA_EAP_RESULT_FAIL);    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_EAP_RESULT_CLOSE,                        m_PacWaitPaaExitActionRxPBR);    /////////////////////////////////////////////////////////////////    // Rx:PBR &&                TxEAP();                   WAIT_EAP_RESULT    // 1ST_EAP==Failure &&      if (PBR.exist_avp    // PBR.RESULT_CODE==            ("Device-Id"))    // PANA_SUCCESS               CARRY_DEVICE_ID=Set;    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PBR);    ev.Result_FirstEap(PANA_EAP_RESULT_FAIL);    ev.Result_Eap(PANA_EAP_RESULT_SUCCESS);    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_EAP_RESULT,                        m_PacWaitPaaExitActionRxPBR);    /////////////////////////////////////////////////////////////////    // Rx:PBR &&                TxEAP()                    WAIT_EAP_RESULT_    // 1ST_EAP==Failure &&                                 CLOSE    // PBR.RESULT_CODE!=    //  PANA_SUCCESS &&    // PBR.exist_avp    // ("EAP-Payload")    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PBR);    ev.Result_FirstEap(PANA_EAP_RESULT_FAIL);    ev.Result_Eap(PANA_EAP_RESULT_FAIL);    ev.AvpExist_EapPayload();    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_EAP_RESULT_CLOSE,                        m_PacWaitPaaExitActionRxPBR);    /////////////////////////////////////////////////////////////////    // Rx:PBR &&                alt_reject()               WAIT_EAP_RESULT_    // 1ST_EAP==Failure &&                                 CLOSE    // PBR.RESULT_CODE!=    //  PANA_SUCCESS &&    // !PBR.exist_avp    // ("EAP-Payload")    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PBR);    ev.Result_FirstEap(PANA_EAP_RESULT_FAIL);    ev.Result_Eap(PANA_EAP_RESULT_FAIL);    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_EAP_RESULT_CLOSE,                        m_PacWaitPaaExitActionRxPBR);    /////////////////////////////////////////////////////////////////    // - - - - - - - (PBR processing with mobility support)- - - - -    // Rx:PBR &&                PBA.insert_avp("Key-Id");  OPEN    // 1ST_EAP==Unset &&        PBA.insert_avp("AUTH");    // SEPARATE==Unset &&       if (PBR.exist_avp    // PBR.RESULT_CODE==            ("Device-Id"))    //  PANA_SUCCESS &&          PBA.insert("Device-Id");    // PANA_SA_RESUMED==Set &&  Tx:PBA();    // PBR.exist_avp            Authorize();    // ("Key-Id") &&            SessionTimerStart();    // PBR.exist_avp    // ("AUTH")    //    ev.Reset();    ev.MsgType(PANA_EV_MTYPE_PBR);    ev.Result_FirstEap(PANA_EAP_RESULT_UNSET);    ev.Result_Eap(PANA_EAP_RESULT_SUCCESS);    ev.Do_ResumeSession(); // PANA_SA_RESUMED==Set    ev.AvpExist_KeyId();    ev.AvpExist_Auth();    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_OPEN,                        m_PacWaitPaaExitActionRxPBR);       /////////////////////////////////////////////////////////////////    // - - - - - - (Reach maximum number of retransmission)- - - - -    // RTX_TIMEOUT &&           Retransmit();              (no change)    // RTX_COUNTER<    // RTX_MAX_NUM    //    ev.Reset();    ev.Do_ReTransmission();    AddStateTableEntry(PANA_ST_WAIT_PAA, ev.Get(),                        PANA_ST_WAIT_PAA,                        m_PacExitActionRetransmission);    /////////////////////////////////////////////////////////////////    // RTX_TIMEOUT &&           Disconnect();              CLOSED

⌨️ 快捷键说明

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