summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2020-06-08 22:30:54 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2020-06-17 01:01:13 +0200
commitd7eabd6ce656aeef890b4eded3a1de34009c5ba5 (patch)
tree67e1253f4c660d54b2001e91fdeb80516712444d
parenta16749582ec1f15bc3b9269f879127c9171dbd07 (diff)
RSL_Emulation: fix rx of tr_RSL_PAGING_CMD()
For tr_RSL_PAGING_CMD, also check comp_ref against null. Upon receiving a tr_RSL_PAGING_CMD, the code tries to dispatch the Paging Command to all valid clients. However, the ConnectionTable[*].comp_ref is *always* present, and actually null for unconnected clients. So, before this patch, a Paging Command from osmo-bsc gets sent to a null client, which disconnects the RSL emulation and aborts the test. There is currently no test using this, but the upcoming MSC pool tests will: see I21cbab193cd0de2e5692665442eae113d5f61904. Change-Id: Iaf7730153a3a19e448a33298c3e12212a55929d5
-rw-r--r--library/RSL_Emulation.ttcn2
1 files changed, 1 insertions, 1 deletions
diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn
index bb11340..618cf11 100644
--- a/library/RSL_Emulation.ttcn
+++ b/library/RSL_Emulation.ttcn
@@ -548,7 +548,7 @@ function main(boolean bts_role := true) runs on RSL_Emulation_CT {
[bts_role] IPA_PT.receive(tr_ASP_RSL_UD(tr_RSL_PAGING_CMD(?, ?), sid := ?)) -> value rx_rsl {
/* broadcast to all clients? */
for (i := 0; i < sizeof(ConnectionTable); i := i + 1) {
- if (ispresent(ConnectionTable[i].comp_ref)) {
+ if (ispresent(ConnectionTable[i].comp_ref) and ConnectionTable[i].comp_ref != null) {
CLIENT_PT.send(rx_rsl.rsl) to ConnectionTable[i].comp_ref;
}
}