SCOC: Handle IT message in active state
This commit is contained in:
parent
e698ae2b4c
commit
58f820eb8e
|
@ -402,6 +402,27 @@ active(internal_reset_req, LoopDat) ->
|
||||||
LoopDat1 = restart_tx_inact_timer(LoopDat),
|
LoopDat1 = restart_tx_inact_timer(LoopDat),
|
||||||
% reset variables and discard all queued and unacked msgs
|
% reset variables and discard all queued and unacked msgs
|
||||||
{next_state, bothway_reset, LoopDat1, ?RESET_TIMER};
|
{next_state, bothway_reset, LoopDat1, ?RESET_TIMER};
|
||||||
|
active(#primitive{subsystem = 'RCOC', gen_name = 'CONNECTION-MSG',
|
||||||
|
spec_name = indication,
|
||||||
|
parameters = #sccp_msg{msg_type = ?SCCP_MSGT_IT,
|
||||||
|
parameters = Params}}, LoopDat) ->
|
||||||
|
% Section 3.4 Inactivity control
|
||||||
|
SrcRef = proplists:get_value(src_local_ref, Params),
|
||||||
|
case LoopDat#state.remote_reference of
|
||||||
|
SrcRef ->
|
||||||
|
ClassOpt = proplists:get_value(protocol_class, Params),
|
||||||
|
case LoopDat#state.class of
|
||||||
|
ClassOpt ->
|
||||||
|
% FIXME: class3: discrepancy in seq/segm or credit -> reset
|
||||||
|
{next_state, active, LoopDat};
|
||||||
|
_ ->
|
||||||
|
% discrepancy in class -> release
|
||||||
|
disc_ind_stop_rel_3(LoopDat, ?SCCP_CAUSE_REL_INCONS_CONN_DAT)
|
||||||
|
end;
|
||||||
|
_ ->
|
||||||
|
% discrepancy in src ref -> release
|
||||||
|
disc_ind_stop_rel_3(LoopDat, ?SCCP_CAUSE_REL_INCONS_CONN_DAT)
|
||||||
|
end;
|
||||||
active(#primitive{subsystem = 'RCOC', gen_name = 'CONNECTION-MSG',
|
active(#primitive{subsystem = 'RCOC', gen_name = 'CONNECTION-MSG',
|
||||||
spec_name = indication,
|
spec_name = indication,
|
||||||
parameters = #sccp_msg{msg_type = ?SCCP_MSGT_RSC}}, LoopDat) ->
|
parameters = #sccp_msg{msg_type = ?SCCP_MSGT_RSC}}, LoopDat) ->
|
||||||
|
|
Loading…
Reference in New Issue