summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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 */