[MERGED] osmo-ttcn3-hacks[master]: bts: Update towards most recent "laforge/trx" branch

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

Harald Welte gerrit-no-reply at lists.osmocom.org
Wed Feb 28 23:03:24 UTC 2018


Harald Welte has submitted this change and it was merged.

Change subject: bts: Update towards most recent "laforge/trx" branch
......................................................................


bts: Update towards most recent "laforge/trx" branch

The existing BTS testing code was based on a ~1 week old version
of trxcon+fake_trx from osmocom-bb.git fixeria/trx branch, which
has meanwhile evolved:

* port number change for TRX protocol
* FAKE_TIMING -> FAKE_TOA
* we can now expect responses to our UDP control commands

Let's adapt the testsuite to those changes

Change-Id: I6d0122202e5d23308421e76b75e608d206aab56e
---
M bts/BTS_Tests.ttcn
M library/TRXC_CodecPort.ttcn
M library/TRXC_Types.ttcn
3 files changed, 42 insertions(+), 13 deletions(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index be9b4cc..af28396 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -45,7 +45,7 @@
 	charstring mp_rsl_ip := "127.0.0.2";
 	integer mp_rsl_port := 3003;
 	integer mp_trx0_arfcn := 871;
-	integer mp_bb_trxc_port := 5704;
+	integer mp_bb_trxc_port := 6701;
 	charstring mp_pcu_socket := PCU_SOCK_DEFAULT;
 }
 
@@ -266,7 +266,7 @@
 
 	/* start with a default moderate timing offset equalling TA=2 */
 	f_main_trxc_connect();
-	BB_TRXC.send(ts_TRXC_Send(g_bb_trxc_conn_id, ts_TRXC_FAKE_TIMING(2*256)));
+	f_TRXC_transceive(BB_TRXC, g_bb_trxc_conn_id, valueof(ts_TRXC_FAKE_TIMING(2*256)));
 }
 
 /* Attach L1CTL to master test_CT (classic tests, non-handler mode) */
@@ -323,11 +323,11 @@
 }
 
 private function f_trxc_fake_rssi(uint8_t rssi) runs on ConnHdlr {
-	BB_TRXC.send(ts_TRXC_Send(g_bb_trxc_conn_id, ts_TRXC_FAKE_RSSI(rssi))); 
+	f_TRXC_transceive(BB_TRXC, g_bb_trxc_conn_id, valueof(ts_TRXC_FAKE_RSSI(rssi)));
 }
 
 private function f_trx_fake_toffs256(int16_t toffs256) runs on ConnHdlr {
-	BB_TRXC.send(ts_TRXC_Send(g_bb_trxc_conn_id, ts_TRXC_FAKE_TIMING(toffs256))); 
+	f_TRXC_transceive(BB_TRXC, g_bb_trxc_conn_id, valueof(ts_TRXC_FAKE_TIMING(toffs256)));
 }
 
 /* first function started in ConnHdlr component */
@@ -632,7 +632,7 @@
 
 private function f_rach_toffs(int16_t toffs256, boolean expect_pass) runs on test_CT {
 	/* tell fake_trx to use a given timing offset for all bursts */
-	BB_TRXC.send(ts_TRXC_Send(g_bb_trxc_conn_id, ts_TRXC_FAKE_TIMING(toffs256)));
+	f_TRXC_transceive(BB_TRXC, g_bb_trxc_conn_id, valueof(ts_TRXC_FAKE_TIMING(toffs256)));
 	f_sleep(0.5);
 
 	/* Transmit RACH request + wait for confirmation */
diff --git a/library/TRXC_CodecPort.ttcn b/library/TRXC_CodecPort.ttcn
index 6acead0..774b674 100644
--- a/library/TRXC_CodecPort.ttcn
+++ b/library/TRXC_CodecPort.ttcn
@@ -13,8 +13,8 @@
 	TrxcMessage	msg
 }
 
-template TRXC_RecvFrom tr_TRXC_RecvFrom(template TrxcMessage msg) := {
-	connId := ?,
+template TRXC_RecvFrom tr_TRXC_RecvFrom(template ConnectionId cid, template TrxcMessage msg) := {
+	connId := cid,
 	remName := ?,
 	remPort := ?,
 	locName := ?,
@@ -59,4 +59,31 @@
 	msg := msg
 }
 
+function f_TRXC_transceive(TRXC_CODEC_PT pt, ConnectionId conn_id, TrxcMessage tx,
+			   template TrxcMessage tr := ?) return TrxcMessage {
+	var TRXC_RecvFrom rf;
+	timer T := 3.0;
+	/* build better default template */
+	if (istemplatekind(tr, "?")) {
+		tr := {
+			rsp := {
+				verb := tx.cmd.verb,
+				status := ?,
+				params := *
+			}
+		};
+	}
+	pt.send(ts_TRXC_Send(conn_id, tx));
+	T.start;
+	alt {
+	[] pt.receive(tr_TRXC_RecvFrom(conn_id, tr)) -> value rf {
+		return rf.msg;
+		}
+	[] T.timeout {
+		setverdict(fail, "Timeout waiting for ", tr, " on ", pt);
+		}
+	}
+	return rf.msg;
+}
+
 }
diff --git a/library/TRXC_Types.ttcn b/library/TRXC_Types.ttcn
index c12e5d2..1a37a8c 100644
--- a/library/TRXC_Types.ttcn
+++ b/library/TRXC_Types.ttcn
@@ -9,15 +9,17 @@
 type charstring TrxcVerb ("POWERON", "POWEROFF", "CLOCK",
 			  "RXTUNE", "TXTUNE", "SETSLOT", "SETTSC", "SETBSIC", "SETPOWER",
 			  "SETMAXDLY", "SETMAXDLYNB", "SETSLOT", "HANDOVER", "NOHANDOVER",
-			  "MEASURE", "FAKE_RSSI", "FAKE_TIMING" ) with {
+			  "MEASURE", "FAKE_RSSI", "FAKE_TOA" ) with {
 	variant "TEXT_CODING(,convert=upper_case,
-			'((POWERON)|(POWEROFF)|(CLOCK)|(RXTUNE)|(TXTUNE)|(SETSLOT)|(SETTSC)|(SETBSIC)|(SETPOWER)|(SETMAXDLY)|(SETMAXDLYNB)|(HANDOVER)|(NOHANDOVER)|(MEASURE)|(FAKE_RSSI)|(FAKE_TIMING))'
+			'((POWERON)|(POWEROFF)|(CLOCK)|(RXTUNE)|(TXTUNE)|(SETSLOT)|(SETTSC)|(SETBSIC)|(SETPOWER)|(SETMAXDLY)|(SETMAXDLYNB)|(HANDOVER)|(NOHANDOVER)|(MEASURE)|(FAKE_RSSI)|(FAKE_TOA))'
 			,case_insensitive)"
 }
 
 type integer TrxcStatus;
 type charstring TrxcParam;
-type record of TrxcParam TrxcParams;
+type record of TrxcParam TrxcParams with {
+	variant "SEPARATOR(' ', ' ')"
+}
 
 type record TrxcCommand {
 	TrxcVerb	verb,
@@ -63,10 +65,10 @@
 	}
 }
 
-template (value) TrxcMessage ts_TRXC_FAKE_TIMING(int16_t timing) := {
+template (value) TrxcMessage ts_TRXC_FAKE_TIMING(int16_t timing, int16_t thresh := 0) := {
 	cmd := {
-		verb := "FAKE_TIMING",
-		params := { int2str(timing) }
+		verb := "FAKE_TOA",
+		params := { int2str(timing), int2str(thresh) }
 	}
 }
 

-- 
To view, visit https://gerrit.osmocom.org/7013
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I6d0122202e5d23308421e76b75e608d206aab56e
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: Jenkins Builder



More information about the gerrit-log mailing list