MTP2 LSC: pass-through of primitives from LSC into IAC during initial alignment
diff --git a/src/mtp2_lsc.erl b/src/mtp2_lsc.erl
index 459d77b..9bcce0d 100644
--- a/src/mtp2_lsc.erl
+++ b/src/mtp2_lsc.erl
@@ -190,9 +190,12 @@
send_to(txc, si_os, LoopDat),
{next_state, out_of_service, LoopDat#lsc_state{local_proc_out=0, emergency=0}};
-% ignore
+% forward into IAC sub-state-machine
initial_alignment(What, LoopDat) when
- What == si_n; What == si_e; What == si_o; What == si_os ->
+ What == si_n; What == si_e; What == si_o; What == si_os;
+ What == fisu_msu_received ->
+ Iac = LoopDat#lsc_state.iac_pid,
+ gen_fsm:send_event(Iac, What),
{next_state, initial_alignment, LoopDat}.
diff --git a/src/sctp_m2pa.erl b/src/sctp_m2pa.erl
index c42c16a..fc0a063 100644
--- a/src/sctp_m2pa.erl
+++ b/src/sctp_m2pa.erl
@@ -136,8 +136,9 @@
LsMtp2 == si_po ->
gen_fsm:send_event(LoopDat#m2pa_state.lsc_pid, LsMtp2);
LsMtp2 == si_n; LsMtp2 == si_e; LsMtp2 == si_o; LsMtp2 == si_os ->
- gen_fsm:send_event(LoopDat#m2pa_state.lsc_pid, LsMtp2),
- gen_fsm:send_event(LoopDat#m2pa_state.iac_pid, LsMtp2)
+ gen_fsm:send_event(LoopDat#m2pa_state.lsc_pid, LsMtp2)
+ % IAC will receive the event as pass-through from LSC
+ %gen_fsm:send_event(LoopDat#m2pa_state.iac_pid, LsMtp2)
end.
% convert M2PA link state to MTP2