summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2019-08-14 14:44:10 +0200
committerlaforge <laforge@gnumonks.org>2019-08-18 17:13:20 +0000
commitf45824ad0e907bd27b8bc3c57f0d762fe8e51017 (patch)
tree3f9098e989b526e7d590a6402806fd544eae458c
parent26fbb6e0171f3dfe8019ff0e31129b8ee592daf7 (diff)
BSC_Tests: Change test-expectation of TC_paging_resp_unsol
The testcase TC_paging_resp_unsol expects the BSC to close the channel when an unsolicit paging response is received. This expectation is due to the fact that osmo-bsc supports multiple MSC, which is not specified in 3gpp specs. Therefore the BSC needs to know which MSC is in charge. However, with MT-CSFB calls it is a normal situation that the BSC receives a paging response on abis without sending a paging first since the MSC has paged the UE via the SGs interface. In those cases we expect the BSC to forward the paging response to the first configured MSC. Related: SYS#4624 Change-Id: I5562cbf61a2aa42e6950860bc0f9c6c20c61a9fe
-rw-r--r--bsc/BSC_Tests.ttcn29
1 files changed, 23 insertions, 6 deletions
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 09c5e5c..327326d 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -1604,17 +1604,22 @@ testcase TC_paging_imsi_a_reset() runs on test_CT {
f_shutdown_helper();
}
-/* Verify how we handle unsolicited Paging Response, for instance because we
- * receive a Paging Response after T3113 expired (and subscriber information was
- * dropped). See OS#3680.
+/* Verify how we handle unsolicited Paging Response. In case of an unsolicit
+ * paging response we can not know which MSC is in charge, so we will blindly
+ * pick the first configured MSC. This behavior is required in order to make
+ * MT-CSFB calls working because in those cases the BSC can not know that the
+ * MSC has already paged the subscriver via SGs. So any MT-CSFB call will look
+ * like an unsolicited Paging Response to the MSC.
*/
testcase TC_paging_resp_unsol() runs on test_CT {
f_init(1);
+ timer T := 5.0;
var BSSAP_N_CONNECT_ind rx_c_ind;
var DchanTuple dt;
var PDU_ML3_MS_NW l3 := valueof(ts_PAG_RESP(valueof(ts_MI_IMSI_LV('001010008880018'H))));
+ var octetstring rr_pag_resp := enc_PDU_ML3_MS_NW(l3);
/* Send CHAN RQD and wait for allocation; acknowledge it */
dt.rsl_chan_nr := f_chreq_act_ack();
@@ -1622,10 +1627,22 @@ testcase TC_paging_resp_unsol() runs on test_CT {
/* Send unsolicited Paging response (no matching Paging CMD stored in BSC) */
f_ipa_tx(0, ts_RSL_EST_IND(dt.rsl_chan_nr, valueof(ts_RslLinkID_DCCH(0)), enc_PDU_ML3_MS_NW(l3)));
- /* expect BSC to disable the channel */
- f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false);
- setverdict(pass);
+ /* Expevct a CR with a matching Paging response on the A-Interface */
+ T.start;
+ alt {
+ [] BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(rr_pag_resp))) {
+ setverdict(pass);
+ }
+ [] BSSAP.receive {
+ setverdict(fail, "Received unexpected message on A-Interface!");
+ }
+ [] T.timeout {
+ setverdict(fail, "Received nothing on A-Interface!");
+ }
+ }
+
+ setverdict(pass);
}
/* Test RSL link drop causes counter increment */