From f45824ad0e907bd27b8bc3c57f0d762fe8e51017 Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Wed, 14 Aug 2019 14:44:10 +0200 Subject: 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 --- bsc/BSC_Tests.ttcn | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index 09c5e5cd..327326d2 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 */ -- cgit v1.2.3