This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
fixeria gerrit-no-reply at lists.osmocom.orgfixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18951 )
Change subject: BTS: refactor f_init_rsl(): make number of transceivers configurable
......................................................................
BTS: refactor f_init_rsl(): make number of transceivers configurable
Not all osmo-bts backends do support multiple transceivers, while
we still want to run test cases against them. Let's make the
number of transceivers configurable (mp_transceiver_num), so it
can be adjusted depending on osmo-bts backend to be used.
Change-Id: Ic9dd49a2fc856de593b52b3ec0c559e0e15ca173
Related: OS#3155
---
M bts/BTS_Tests.ttcn
1 file changed, 31 insertions(+), 28 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/51/18951/1
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index f98419d..0c1d0e6 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -109,6 +109,8 @@
float mp_ipa_up_delay := 0.0;
/* false for now, as only virtphy supports it, not calypso-l1 nor trxcon */
boolean mp_l1_supports_gprs := false;
+ /* how many transceivers do we expect to connect */
+ integer mp_transceiver_num := 4;
}
type record of RslChannelNr ChannelNrs;
@@ -120,7 +122,6 @@
var RSL_Emulation_CT vc_RSL;
/* Direct RSL_CCHAN_PT */
port RSL_CCHAN_PT RSL_CCHAN;
- timer g_rslem_up_timer;
/* L1CTL port (for classic tests) */
port L1CTL_PT L1CTL;
@@ -183,16 +184,12 @@
port PCUIF_CODEC_PT PCU;
}
-private altstep as_rsl_init_guard() runs on test_CT {
- [] g_rslem_up_timer.timeout {
- Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
- "Timeout waiting for RSL bring up");
- }
- /* osmo-bts may send us CCCH LOAD INDication or whatever else */
- [] RSL_CCHAN.receive(ASP_RSL_Unitdata:?) { repeat; }
-}
-
function f_init_rsl(charstring id) runs on test_CT {
+ var bitstring trx_mask := '00000000'B;
+ var integer trx_count := 0;
+ var RSLEm_Event ev;
+ timer T;
+
vc_IPA := IPA_Emulation_CT.create(id & "-RSL-IPA");
vc_RSL := RSL_Emulation_CT.create(id & "-RSL");
@@ -203,27 +200,33 @@
vc_IPA.start(IPA_Emulation.main_server(mp_rsl_ip, mp_rsl_port));
vc_RSL.start(RSL_Emulation.main(false));
- /* TTCN-3 offers no way to guard 'interleave' statements */
- g_rslem_up_timer.start(mp_ipa_up_timeout);
- var default d := activate(as_rsl_init_guard());
-
- /* We expect all 4 transceivers to connect here (separate IPA/RSL connections).
+ /* We expect (N = mp_transceiver_num) IPA/RSL transceiver connections here.
* See https://gerrit.osmocom.org/q/Ib5ad31388ae25399ad09739aac3fdcb0b3a1f78b. */
- interleave {
+ T.start(mp_ipa_up_timeout);
+ alt {
/* These events are sent by the RSL_Emulation_CT */
- [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX0));
- [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX1));
- [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX2));
- [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, IPAC_PROTO_RSL_TRX3));
- /* These messages (RF RESource INDication) are sent by the IUT itself */
- [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX0));
- [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX1));
- [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX2));
- [] RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, IPAC_PROTO_RSL_TRX3));
- }
+ [] RSL_CCHAN.receive(tr_RSLEm_EV(RSLEM_EV_TRX_UP, ?)) -> value ev {
+ /* Make sure that all transceivers use unique stream ID */
+ if (trx_mask[enum2int(ev.sid)] == '1'B) {
+ Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
+ log2str("Duplicate RSL stream ID (", ev.sid, ")"));
+ }
- g_rslem_up_timer.stop;
- deactivate(d);
+ /* This message (RF RESource INDication) is sent by the IUT itself */
+ RSL_CCHAN.receive(tr_ASP_RSL_UD(tr_RSL_RF_RES_IND, ev.sid));
+ trx_mask[enum2int(ev.sid)] := '1'B;
+ trx_count := trx_count + 1;
+
+ log(trx_count, "/", mp_transceiver_num, " transceiver(s) connected");
+ if (trx_count < mp_transceiver_num) { repeat; }
+ }
+ /* osmo-bts may send us CCCH LOAD INDication or whatever else */
+ [] RSL_CCHAN.receive(ASP_RSL_Unitdata:?) { repeat; }
+ [] T.timeout {
+ Misc_Helpers.f_shutdown(__BFILE__, __LINE__, fail,
+ "Timeout waiting for RSL bring up");
+ }
+ }
}
type record ConnHdlrPars {
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/18951
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: Ic9dd49a2fc856de593b52b3ec0c559e0e15ca173
Gerrit-Change-Number: 18951
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200622/a04a603f/attachment.htm>