fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/35086?usp=email )
Change subject: RSL_Emulation: allow RSL_DchanHdlr sandbox escape for both roles ......................................................................
RSL_Emulation: allow RSL_DchanHdlr sandbox escape for both roles
This feature was initially added in 1470fc668 for the RSL_Emulation_CT operating in the BTS role. In a subsequent patch I also need to escape the sandbox, but in my case the RSL_Emulation_CT is playing the BSC role.
Change-Id: I42557f85d3e5e7ef7147a87293f5dd1716884534 Related: 1470fc668 "allow ASP_RSL_UD on MSC_ConnHdlr RSL" Related: SYS#6655 --- M library/RSL_Emulation.ttcn 1 file changed, 25 insertions(+), 3 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/86/35086/1
diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index effe83b..891e565 100644 --- a/library/RSL_Emulation.ttcn +++ b/library/RSL_Emulation.ttcn @@ -651,15 +651,22 @@ cid := f_cid_by_comp_ref(vc_conn); IPA_PT.send(ts_ASP_RSL_UD(rx_rsl_msg, ConnectionTable[cid].stream_id)); } - [bts_role] CLIENT_PT.receive(tr_ASP_RSL_UD(?, sid := ?)) -> value rx_rsl { - IPA_PT.send(ts_ASP_RSL_UD(rx_rsl.rsl, rx_rsl.streamId)); - } [not bts_role] CLIENT_PT.receive(tr_RSL_MsgType(?)) -> value rx_rsl_msg sender vc_conn { cid := f_cid_by_comp_ref(vc_conn); conn_id := f_trx_conn_map_resolve(ConnectionTable[cid].stream_id); IPA_PT.send(ts_ASP_RSL_UD(rx_rsl_msg, ConnectionTable[cid].stream_id, conn_id)); }
+ /* allow the RSL_DchanHdlr components to "escape the sandbox" by sending RSL messages + * to other transceivers than they're bound to (determined by rx_rsl.streamId) */ + [bts_role] CLIENT_PT.receive(tr_ASP_RSL_UD(?, sid := ?)) -> value rx_rsl { + IPA_PT.send(ts_ASP_RSL_UD(rx_rsl.rsl, rx_rsl.streamId)); + } + [not bts_role] CLIENT_PT.receive(tr_ASP_RSL_UD(?, sid := ?)) -> value rx_rsl { + conn_id := f_trx_conn_map_resolve(rx_rsl.streamId); + IPA_PT.send(ts_ASP_RSL_UD(rx_rsl.rsl, rx_rsl.streamId, conn_id)); + } + /* RSL message from MTC */ [bts_role] CCHAN_PT.receive(tr_ASP_RSL_UD(?, sid := ?)) -> value rx_rsl { IPA_PT.send(ts_ASP_RSL_UD(rx_rsl.rsl, rx_rsl.streamId));