diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2020-06-08 22:30:54 +0200 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2020-06-17 01:01:13 +0200 |
commit | d7eabd6ce656aeef890b4eded3a1de34009c5ba5 (patch) | |
tree | 67e1253f4c660d54b2001e91fdeb80516712444d | |
parent | a16749582ec1f15bc3b9269f879127c9171dbd07 (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.ttcn | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/library/RSL_Emulation.ttcn b/library/RSL_Emulation.ttcn index bb11340f..618cf117 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; } } |