Change in osmo-bsc[master]: handover_test: allow arbitrary timeslot config and multiple TRX

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/.

neels gerrit-no-reply at lists.osmocom.org
Tue Nov 17 01:56:11 UTC 2020


neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-bsc/+/21195 )


Change subject: handover_test: allow arbitrary timeslot config and multiple TRX
......................................................................

handover_test: allow arbitrary timeslot config and multiple TRX

Adjust 'create-bts' command so that it allows multiple TRX and arbitrary
timeslot configurations. It is now possible to write tests for dynamic
timeslots and multiple TRX.

Change-Id: Ic645cea671aa4798804666b8886f11bab5351e11
---
M tests/handover/handover_test.c
1 file changed, 42 insertions(+), 7 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-bsc refs/changes/95/21195/1

diff --git a/tests/handover/handover_test.c b/tests/handover/handover_test.c
index b469f03..2aa48b7 100644
--- a/tests/handover/handover_test.c
+++ b/tests/handover/handover_test.c
@@ -176,7 +176,14 @@
 
 enum gsm_phys_chan_config pchan_from_str(const char *str)
 {
-	enum gsm_phys_chan_config pchan = gsm_pchan_parse(str);
+	enum gsm_phys_chan_config pchan;
+	if (!strcmp(str, "dyn"))
+		return GSM_PCHAN_TCH_F_TCH_H_PDCH;
+	if (!strcmp(str, "c+s4"))
+		return GSM_PCHAN_CCCH_SDCCH4;
+	if (!strcmp(str, "-"))
+		return GSM_PCHAN_NONE;
+	pchan = gsm_pchan_parse(str);
 	if (pchan < 0) {
 		fprintf(stderr, "Invalid timeslot pchan type: %s\n", str);
 		exit(1);
@@ -185,7 +192,7 @@
 }
 
 const char * const bts_default_ts[] = {
-	"CCCH+SDCCH4", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/H", "TCH/H", "NONE",
+	"c+s4", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/H", "TCH/H", "-",
 };
 
 static struct gsm_bts *create_bts(int num_trx, const char * const *ts_args)
@@ -197,6 +204,13 @@
 	int trx_i;
 	struct gsm_bts_trx *trx;
 
+	fprintf(stderr, "- Creating BTS %d, %d TRX\n", bsc_gsmnet->num_bts, num_trx);
+	for (trx_i = 0; trx_i < num_trx; trx_i++) {
+		for (i = 0; i < 8; i++)
+			fprintf(stderr, "\t%s", ts_args[8*trx_i + i]);
+		fprintf(stderr, "\n");
+	}
+
 	bts = bsc_bts_alloc_register(bsc_gsmnet, GSM_BTS_TYPE_UNKNOWN, 0x3f);
 	if (!bts) {
 		printf("No resource for bts1\n");
@@ -235,10 +249,20 @@
 			trx->ts[i].mo.nm_state.administrative = NM_STATE_UNLOCKED;
 		}
 
-		for (i = 0; i < ARRAY_SIZE(bts->c0->ts); i++) {
+		for (i = 0; i < ARRAY_SIZE(trx->ts); i++) {
 			/* make sure ts->lchans[] get initialized */
-			osmo_fsm_inst_dispatch(bts->c0->ts[i].fi, TS_EV_RSL_READY, 0);
-			osmo_fsm_inst_dispatch(bts->c0->ts[i].fi, TS_EV_OML_READY, 0);
+			osmo_fsm_inst_dispatch(trx->ts[i].fi, TS_EV_RSL_READY, 0);
+			osmo_fsm_inst_dispatch(trx->ts[i].fi, TS_EV_OML_READY, 0);
+
+			/* Unused dyn TS start out as used for PDCH */
+			switch (trx->ts[i].pchan_on_init) {
+			case GSM_PCHAN_TCH_F_TCH_H_PDCH:
+			case GSM_PCHAN_TCH_F_PDCH:
+				trx->ts[i].pchan_is = GSM_PCHAN_PDCH;
+				break;
+			default:
+				break;
+			}
 		}
 	}
 
@@ -1530,12 +1554,23 @@
 	while (*test_case) {
 		if (!strcmp(*test_case, "create-n-bts")) {
 			int n = atoi(test_case[1]);
-			fprintf(stderr, "- Creating %d BTS (one TRX each, "
-				"TS(1-4) are TCH/F, TS(5-6) are TCH/H)\n", n);
 			for (i = 0; i < n; i++)
 				create_bts(1, bts_default_ts);
 			test_case += 2;
 		} else
+		if (!strcmp(*test_case, "create-bts")) {
+			/* new BTS with one TRX:
+			 * "create-bts", "1", "CCCH+SDCCH4", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/H", "TCH/H", "PDCH",
+			 *
+			 * new BTS with two TRX:
+			 * "create-bts", "2", "CCCH+SDCCH4", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/H", "TCH/H", "PDCH",
+			 *                    "SDCCH8", "TCH/F", "TCH/F", "TCH/F", "TCH/F", "TCH/H", "TCH/H", "PDCH",
+			 */
+			int num_trx = atoi(test_case[1]);
+			const char * const * ts_cfg = (void*)&test_case[2];
+			create_bts(num_trx, ts_cfg);
+			test_case += 2 + 8 * num_trx;
+		} else
 		if (!strcmp(*test_case, "as-enable")) {
 			fprintf(stderr, "- Set assignment enable state at "
 				"BTS %s to %s\n", test_case[1], test_case[2]);

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-bsc/+/21195
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings

Gerrit-Project: osmo-bsc
Gerrit-Branch: master
Gerrit-Change-Id: Ic645cea671aa4798804666b8886f11bab5351e11
Gerrit-Change-Number: 21195
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20201117/1e8010b9/attachment.htm>


More information about the gerrit-log mailing list