bsc: Unregister old RSL channel number after assignment
Change-Id: I27d113391094f938ff92c4d6514172ee634f695c
This commit is contained in:
parent
21583088e8
commit
1909f464af
|
@ -426,8 +426,9 @@ altstep as_assignment(inout AssignmentState st) runs on MSC_ConnHdlr {
|
|||
}
|
||||
[st.rr_ass_cmpl_seen] RSL.receive(tr_RSL_RF_CHAN_REL(st.old_chan_nr)) {
|
||||
RSL.send(ts_RSL_RF_CHAN_REL_ACK(st.old_chan_nr));
|
||||
/* FIXME: unregister for old channel number in RSL emulation */
|
||||
//f_rslem_unregister(0, st.old_chan_nr);
|
||||
/* unregister for old channel number in RSL emulation */
|
||||
/* FIXME: Determine TRX NR by ARFCN, instead of hard-coded TRX0! */
|
||||
f_rslem_unregister(0, st.old_chan_nr);
|
||||
st.assignment_done := true;
|
||||
repeat;
|
||||
}
|
||||
|
|
|
@ -50,9 +50,10 @@ type port RSL_DCHAN_PT message {
|
|||
} with { extension "internal" };
|
||||
|
||||
signature RSLEM_register(uint8_t trx_nr, RslChannelNr chan_nr, RSL_DchanHdlr hdlr);
|
||||
signature RSLEM_unregister(uint8_t trx_nr, RslChannelNr chan_nr, RSL_DchanHdlr hdlr);
|
||||
|
||||
type port RSLEM_PROC_PT procedure {
|
||||
inout RSLEM_register;
|
||||
inout RSLEM_register, RSLEM_unregister;
|
||||
} with { extension "internal" };
|
||||
|
||||
/***********************************************************************
|
||||
|
@ -379,6 +380,13 @@ function main() runs on RSL_Emulation_CT {
|
|||
RSL_PROC.reply(RSLEM_register:{trx_nr, chan_nr, vc_conn});
|
||||
}
|
||||
|
||||
[] RSL_PROC.getcall(RSLEM_unregister:{?,?,?}) -> param(trx_nr, chan_nr, vc_conn) {
|
||||
cid := f_cid_by_chan_nr(trx_nr, chan_nr);
|
||||
f_cid_clear(cid);
|
||||
RSL_PROC.reply(RSLEM_unregister:{trx_nr, chan_nr, vc_conn});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -400,4 +408,12 @@ function f_rslem_register(uint8_t trx_nr, RslChannelNr chan_nr) runs on RSL_Dcha
|
|||
}
|
||||
}
|
||||
|
||||
/* client/conn_hdlr side function to use procedure port to unregister stream_id/chan_nr */
|
||||
function f_rslem_unregister(uint8_t trx_nr, RslChannelNr chan_nr) runs on RSL_DchanHdlr {
|
||||
RSL_PROC.call(RSLEM_unregister:{trx_nr, chan_nr, self}) {
|
||||
[] RSL_PROC.getreply(RSLEM_unregister:{?,?,?}) {};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue