aboutsummaryrefslogtreecommitdiffstats
path: root/bts
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2019-11-17 02:23:51 +0700
committerlaforge <laforge@osmocom.org>2019-11-23 07:57:45 +0000
commit36558d9526185bd1d5eb2f86fcf7cfabf40ab2a1 (patch)
tree8fb814ce884b37d0d7b01a57b81048c0c2d4b710 /bts
parent619b2a654737951d2ddac94b156ef0e0dbfcae81 (diff)
library/PCUIF_Types.ttcn: extend RACH.ind with TRX / TS number fields
Since there can be multiple PDCH channels configured on different timeslots, different TRXes, and BTSes, the PTCCH/U handling code in OsmoPCU needs to know the exact origin of a given RACH.ind. Otherwise, it is not known which subscriber originated a given PTCCH/U indication, and hence it is impossible to send PTCCH/D Timing Advance notification properly. Fortunately, we can extend the RACH.ind message without even bumping the protocol version, because every single PDU has a fixed size defined by the largest message - INFO.ind. In case if the actual message payload is smaller, the rest is filled with a constant padding byte (0x00). Older versions of OsmoPCU will consider the new fields as padding, while the messages from older OsmoBTS versions will always have both fields set to 0x00. Since C0/TS0 cannot be configured to PDCH, this can be easily detected on the other end. Change-Id: Ia5c4e504a21dc5508920553d3856027455dba1b1 Related: OS#4102, OS#1545
Diffstat (limited to 'bts')
-rw-r--r--bts/BTS_Tests.ttcn8
1 files changed, 4 insertions, 4 deletions
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 87c91316..779f7c32 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -4170,8 +4170,8 @@ runs on test_CT {
chan_nr := ts_RslChanNr_PDCH(7),
link_id := ts_RslLinkID_OSMO_PTCCH(0));
- /* TODO: check time-slot and TRX number as soon as we extend the PCU interface */
- pcu_rach_ind := tr_PCUIF_RACH_IND(ra := ra, fn := fn, sapi := PCU_IF_SAPI_PTCCH);
+ pcu_rach_ind := tr_PCUIF_RACH_IND(bts_nr := 0, trx_nr := 0, ts_nr := 7,
+ ra := ra, fn := fn, sapi := PCU_IF_SAPI_PTCCH);
/* Expect a RACH.ind on the PCU interface (timeout is one multi-frame) */
T.start(52.0 * 4.615 / 1000.0);
@@ -4333,7 +4333,7 @@ testcase TC_pcu_rach_content() runs on test_CT {
timer T := 2.0;
T.start;
alt {
- [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_RACH_IND(0, oct2int(ra), 0, ?, fn))) {
+ [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_RACH_IND(0, 0, 0, oct2int(ra), 0, ?, fn))) {
T.stop;
}
[] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, tr_PCUIF_RACH_IND)) {
@@ -4382,7 +4382,7 @@ testcase TC_pcu_ext_rach_content() runs on test_CT {
/* Compose the expected message */
pcu_rach_ind := tr_PCUIF_RACH_IND(
- bts_nr := 0,
+ bts_nr := 0, trx_nr := 0, ts_nr := 0,
ra := bit2int(ra11),
is_11bit := 1,
burst_type := pcu_bt,