SCOC: Handle IT message in active state

This commit is contained in:
Harald Welte 2012-01-28 16:17:00 +01:00
parent e698ae2b4c
commit 58f820eb8e
1 changed files with 21 additions and 0 deletions

View File

@ -402,6 +402,27 @@ active(internal_reset_req, LoopDat) ->
LoopDat1 = restart_tx_inact_timer(LoopDat),
% reset variables and discard all queued and unacked msgs
{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',
spec_name = indication,
parameters = #sccp_msg{msg_type = ?SCCP_MSGT_RSC}}, LoopDat) ->