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