📄 pana_paa_fsm.cxx
字号:
// EAP_SUCCESS && PBR.insert_avp WAIT_SUCC_PBA // 1ST_EAP==Unset && ("EAP-Payload"); // SEPARATE==Unset && if (CARRY_DEVICE_ID // Authorize() ==Set) // PBR.insert_avp // ("Device-Id"); // if (CARRY_LIFETIME==Set) // PBR.insert_avp // ("Session-Lifetime"); // if (PROTECTION_CAP==Set) // PBR.insert_avp // ("Protection-Cap."); // if (new_key_available()) // PBR.insert_avp // ("Key-Id"); // if (key_available()) // PBR.insert_avp("AUTH"); // Tx:PBR(); // RtxTimerStart(); // ev.Reset(); ev.Event_Eap(PANA_EV_EAP_SUCCESS); ev.Result_FirstEap(PANA_EAP_RESULT_UNSET); ev.Do_Authorize(); AddStateTableEntry(PANA_ST_WAIT_EAP_MSG, ev.Get(), PANA_ST_WAIT_SUCC_PBA, m_PaaExitActionTxPBREapSuccess); ///////////////////////////////////////////////////////////////// // - - - - - - -(Receiving EAP-Success/Failure for 1st EAP)- - - - // EAP_SUCCESS && PBR.insert_avp WAIT_FAIL_PBA // 1ST_EAP==Unset && ("EAP-Payload"); // SEPARATE==Unset && if (new_key_available()) // !Authorize() PBR.insert_avp // ("Key-Id"); // if (key_available()) // PBR.insert_avp("AUTH"); // Tx:PBR(); // RtxTimerStart(); // ev.Reset(); ev.Event_Eap(PANA_EV_EAP_SUCCESS); ev.Result_FirstEap(PANA_EAP_RESULT_UNSET); AddStateTableEntry(PANA_ST_WAIT_EAP_MSG, ev.Get(), PANA_ST_WAIT_FAIL_PBA, m_PaaExitActionTxPBREapSuccessFail); ///////////////////////////////////////////////////////////////// // 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_EAP_MSG, ev.Get(), PANA_ST_WAIT_PEA, m_PaaExitActionTxPER); ///////////////////////////////////////////////////////////////// // - - - - - - -(Receiving EAP-Success/Failure for 1st EAP)- - - - // EAP_FAILURE && 1ST_EAP=Failure WAIT_PFEA // 1ST_EAP==Unset && PFER.insert_avp // SEPARATE==Set && ("EAP-Payload"); // ABORT_ON_1ST_EAP_FAILURE if (key_available()) // ==Unset PFER.insert_avp("AUTH"); // PFER.S_flag=1; // if (NAP_AUTH) // PFER.N_flag=1; // Tx:PFER(); // RtxTimerStart(); // ev.Reset(); ev.Event_Eap(PANA_EV_EAP_FAILURE); ev.Result_FirstEap(PANA_EAP_RESULT_UNSET); ev.Do_Separate(); AddStateTableEntry(PANA_ST_WAIT_EAP_MSG, ev.Get(), PANA_ST_WAIT_PFEA, m_PaaExitActionTxPFEREapFail); ///////////////////////////////////////////////////////////////// // EAP_FAILURE && 1ST_EAP=Failure WAIT_FAIL_PFEA // 1ST_EAP==Unset && PFER.insert_avp // SEPARATE==Set && ("EAP-Payload"); // ABORT_ON_1ST_EAP_FAILURE if (key_available()) // ==Set PFER.insert_avp("AUTH"); // PFER.S_flag=0; // Tx:PFER(); // RtxTimerStart(); // ev.Reset(); ev.Event_Eap(PANA_EV_EAP_FAILURE); ev.Result_FirstEap(PANA_EAP_RESULT_UNSET); ev.Do_Separate(); ev.Do_AbortOnFirstEap(); AddStateTableEntry(PANA_ST_WAIT_EAP_MSG, ev.Get(), PANA_ST_WAIT_FAIL_PFEA, m_PaaExitActionTxPFEREapFail); ///////////////////////////////////////////////////////////////// // EAP_SUCCESS && 1ST_EAP=Success WAIT_PFEA // 1ST_EAP==Unset && PFER.insert_avp // SEPARATE==Set ("EAP-Payload"); // if (new_key_available()) // PFER.insert_avp // ("Key-Id"); // if (key_available()) // PFER.insert_avp("AUTH"); // PFER.S_flag=1; // if (NAP_AUTH) // PFER.N_flag=1; // Tx:PFER(); // RtxTimerStart(); // ev.Reset(); ev.Event_Eap(PANA_EV_EAP_SUCCESS); ev.Result_FirstEap(PANA_EAP_RESULT_UNSET); ev.Do_Separate(); AddStateTableEntry(PANA_ST_WAIT_EAP_MSG, ev.Get(), PANA_ST_WAIT_PFEA, m_PaaExitActionTxPFEREapSuccess); ///////////////////////////////////////////////////////////////// // 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_EAP_MSG, 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_EAP_MSG, ev.Get(), PANA_ST_WAIT_FAIL_PFEA, m_PaaExitActionTxPFEREapTimeout); ///////////////////////////////////////////////////////////////// // - - - - - - -(Receiving EAP-Success/Failure for 2nd EAP)- - - - // EAP_FAILURE && PBR.insert_avp WAIT_FAIL_PBA // 1ST_EAP==Failure && ("EAP-Payload"); // SEPARATE==Set 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_FAILURE); ev.Result_FirstEap(PANA_EAP_RESULT_FAIL); ev.Do_Separate(); AddStateTableEntry(PANA_ST_WAIT_EAP_MSG, ev.Get(), PANA_ST_WAIT_FAIL_PBA, m_PaaExitActionTxPBREapFail); ///////////////////////////////////////////////////////////////// // EAP_FAILURE && PBR.insert_avp WAIT_SUCC_PBA // 1ST_EAP==Success && ("EAP-Payload"); // SEPARATE==Set && if (CARRY_DEVICE_ID==Set) // Authorize() PBR.insert_avp // ("Device-Id"); // 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_FAILURE); ev.Result_FirstEap(PANA_EAP_RESULT_SUCCESS); ev.Do_Separate(); ev.Do_Authorize(); AddStateTableEntry(PANA_ST_WAIT_EAP_MSG, ev.Get(), PANA_ST_WAIT_SUCC_PBA, m_PaaExitActionTxPBREapFailSuccess); ///////////////////////////////////////////////////////////////// // EAP_FAILURE && PBR.insert_avp WAIT_FAIL_PBA // 1ST_EAP==Success && ("EAP-Payload"); // SEPARATE==Set && if (key_available()) // !Authorize() 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_FAILURE); ev.Result_FirstEap(PANA_EAP_RESULT_SUCCESS); ev.Do_Separate(); AddStateTableEntry(PANA_ST_WAIT_EAP_MSG, ev.Get(), PANA_ST_WAIT_FAIL_PBA, m_PaaExitActionTxPBREapFail); ///////////////////////////////////////////////////////////////// // EAP_SUCCESS && PBR.insert_avp WAIT_SUCC_PBA // 1ST_EAP==Success && ("EAP-Payload"); // SEPARATE==Set && if (CARRY_DEVICE_ID==Set) // Authorize() PBR.insert_avp // ("Device-Id"); // 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_SUCCESS); ev.Result_FirstEap(PANA_EAP_RESULT_SUCCESS); ev.Do_Separate(); ev.Do_Authorize(); AddStateTableEntry(PANA_ST_WAIT_EAP_MSG, ev.Get(), PANA_ST_WAIT_SUCC_PBA, m_PaaExitActionTxPBREapSuccess); ///////////////////////////////////////////////////////////////// // EAP_SUCCESS && PBR.insert_avp WAIT_FAIL_PBA // 1ST_EAP==Success && ("EAP-Payload"); // SEPARATE==Set && if (new_key_available()) // !Authorize() 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_SUCCESS); ev.Result_FirstEap(PANA_EAP_RESULT_SUCCESS); ev.Do_Separate(); AddStateTableEntry(PANA_ST_WAIT_EAP_MSG, ev.Get(), PANA_ST_WAIT_FAIL_PBA, m_PaaExitActionTxPBREapSuccessFail); ///////////////////////////////////////////////////////////////// // EAP_SUCCESS && PBR.insert_avp WAIT_SUCC_PBA // 1ST_EAP==Failure && ("EAP-Payload"); // SEPARATE==Set && if (CARRY_DEVICE_ID==Set) // Authorize() PBR.insert_avp // ("Device-Id"); // 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_SUCCESS); ev.Result_FirstEap(PANA_EAP_RESULT_FAIL); ev.Do_Separate(); ev.Do_Authorize();
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -