📄 pana_client_fsm.cxx
字号:
// RTX_COUNTER< // RTX_MAX_NUM // ev.Reset(); ev.Do_ReTransmission(); AddStateTableEntry(PANA_ST_WAIT_PRAA, ev.Get(), PANA_ST_WAIT_PRAA, m_PacExitActionRetransmission); ///////////////////////////////////////////////////////////////// // - - - - - - - - - - (Reach maximum number of retransmission)- - // RTX_TIMEOUT && Disconnect(); CLOSED // RTX_COUNTER>= // RTX_MAX_NUM // ev.Reset(); ev.Do_RetryTimeout(); AddStateTableEntry(PANA_ST_WAIT_PRAA, ev.Get(), PANA_ST_CLOSED, m_PacExitActionRetransmission); ///////////////////////////////////////////////////////////////// // - - - - - - - - (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_PRAA, ev.Get(), PANA_ST_CLOSED, m_PacExitActionTxPEA); ///////////////////////////////////////////////////////////////// // 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_PRAA, ev.Get(), PANA_ST_WAIT_PRAA, m_PacExitActionTxPEA); ///////////////////////////////////////////////////////////////// // - - - - - - - - - - (Catch all processing)- - //#if !defined(PANA_DEBUG) AddWildcardStateTableEntry(PANA_ST_WAIT_PRAA, PANA_ST_WAIT_PRAA);#endif // ---------------- // State: WAIT_PPA // ---------------- ///////////////////////////////////////////////////////////////// // - - - - - - - - -(liveness test initiated by PAA) - - - - - - - // Rx:PPA None(); OPEN // ev.Reset(); ev.MsgType(PANA_EV_MTYPE_PPA); AddStateTableEntry(PANA_ST_WAIT_PPA, ev.Get(), PANA_ST_OPEN, m_PacWaitPPAExitActionRxPPA); ///////////////////////////////////////////////////////////////// // SESS_TIMEOUT Disconnect(); CLOSED // ev.Reset(); ev.Do_SessTimeout(); AddStateTableEntry(PANA_ST_WAIT_PPA, ev.Get(), PANA_ST_CLOSED, m_PacExitActionTimeout); ///////////////////////////////////////////////////////////////// // 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_PacExitActionTimeout); ///////////////////////////////////////////////////////////////// // - - - - - - - - - - (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_PacExitActionRetransmission); ///////////////////////////////////////////////////////////////// // - - - - - - - - (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_PacExitActionTxPEA); ///////////////////////////////////////////////////////////////// // 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_PacExitActionTxPEA); ///////////////////////////////////////////////////////////////// // - - - - - - - - - - (Catch all processing)- - //#if !defined(PANA_DEBUG) AddWildcardStateTableEntry(PANA_ST_WAIT_PPA, PANA_ST_WAIT_PPA);#endif // ---------------- // State: WAIT_PUA // ---------------- ///////////////////////////////////////////////////////////////// // - - - - - - - - - - - - - (PUA processing)- - - - - - - - - - - // Rx:PUA RtxTimerStop(); OPEN // ev.Reset(); ev.MsgType(PANA_EV_MTYPE_PUA); AddStateTableEntry(PANA_ST_WAIT_PUA, ev.Get(), PANA_ST_OPEN, m_PacWaitPUAExitActionRxPUA); ///////////////////////////////////////////////////////////////// // SESS_TIMEOUT Disconnect(); CLOSED // ev.Reset(); ev.Do_SessTimeout(); AddStateTableEntry(PANA_ST_WAIT_PUA, ev.Get(), PANA_ST_CLOSED, m_PacExitActionTimeout); ///////////////////////////////////////////////////////////////// // RTX_TIMEOUT && Disconnect(); CLOSED // RTX_COUNTER>= // RTX_MAX_NUM // ev.Reset(); ev.Do_RetryTimeout(); AddStateTableEntry(PANA_ST_WAIT_PUA, ev.Get(), PANA_ST_CLOSED, m_PacExitActionTimeout); ///////////////////////////////////////////////////////////////// // - - - - - - - - (Reach maximum number of retransmission)- - - // RTX_TIMEOUT && Retransmit(); (no change) // RTX_COUNTER< // RTX_MAX_NUM // ev.Reset(); ev.Do_ReTransmission(); AddStateTableEntry(PANA_ST_WAIT_PUA, ev.Get(), PANA_ST_WAIT_PUA, m_PacExitActionRetransmission); ///////////////////////////////////////////////////////////////// // - - - - - - - - (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_PUA, ev.Get(), PANA_ST_CLOSED, m_PacExitActionTxPEA); ///////////////////////////////////////////////////////////////// // 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_PUA, ev.Get(), PANA_ST_WAIT_PUA, m_PacExitActionTxPEA); ///////////////////////////////////////////////////////////////// // - - - - - - - - - - (Catch all processing)- - //#if !defined(PANA_DEBUG) AddWildcardStateTableEntry(PANA_ST_WAIT_PUA, PANA_ST_WAIT_PUA);#endif // ---------------- // State: SESS_TERM // ---------------- ///////////////////////////////////////////////////////////////// // - - - - - - - -(Session termination initiated by PaC) - - - - - // Rx:PTA Disconnect(); CLOSED // ev.Reset(); ev.MsgType(PANA_EV_MTYPE_PTA); AddStateTableEntry(PANA_ST_SESS_TERM, ev.Get(), PANA_ST_CLOSED, m_PacSessTermExitActionRxPTA); ///////////////////////////////////////////////////////////////// // RTX_TIMEOUT && Disconnect(); CLOSED // RTX_COUNTER>= // RTX_MAX_NUM // ev.Reset(); ev.Do_RetryTimeout(); AddStateTableEntry(PANA_ST_SESS_TERM, ev.Get(), PANA_ST_CLOSED, m_PacExitActionTimeout); ///////////////////////////////////////////////////////////////// // - - - - - - - - (Reach maximum number of retransmission)- - - // RTX_TIMEOUT && Retransmit(); (no change) // RTX_COUNTER< // RTX_MAX_NUM // ev.Reset(); ev.Do_ReTransmission(); AddStateTableEntry(PANA_ST_SESS_TERM, ev.Get(), PANA_ST_SESS_TERM, m_PacExitActionRetransmission); ///////////////////////////////////////////////////////////////// // - - - - - - - - (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_SESS_TERM, ev.Get(), PANA_ST_CLOSED, m_PacExitActionTxPEA); ///////////////////////////////////////////////////////////////// // 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_SESS_TERM, ev.Get(), PANA_ST_SESS_TERM, m_PacExitActionTxPEA); ///////////////////////////////////////////////////////////////// // - - - - - - - - - - (Catch all processing)- - //#if !defined(PANA_DEBUG) AddWildcardStateTableEntry(PANA_ST_SESS_TERM, PANA_ST_SESS_TERM);#endif // ---------------- // State: WAIT_PEA // ---------------- ///////////////////////////////////////////////////////////////// // - - - - - - - - - - - - - -(PEA processing) - - - - - - - - - - // Rx:PEA RtxTimerStop(); CLOSED // Disconnect(); ev.Reset(); ev.MsgType(PANA_EV_MTYPE_PEA); AddStateTableEntry(PANA_ST_WAIT_PEA, ev.Get(), PANA_ST_CLOSED, m_PacWaitPEAExitActionRxPEA); ///////////////////////////////////////////////////////////////// // - - - - - - - - - - (Catch all processing)- - //#if !defined(PANA_DEBUG) AddWildcardStateTableEntry(PANA_ST_WAIT_PEA, PANA_ST_WAIT_PEA);#endif // ------------- // State: CLOSED // ------------- ///////////////////////////////////////////////////////////////// //
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -