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
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) }
}
}