From 563185253bc05f218fecdaf6e6728d1bb089d486 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Sat, 24 Nov 2018 03:40:47 +0700 Subject: BSC_ConnectionHandler.ttcn: introduce f_mt_sms_send_rp_error() Change-Id: I3d67a451335e1c1e1b18237fdda82260c0c969fb --- msc/BSC_ConnectionHandler.ttcn | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn index e66a3e62..f005e027 100644 --- a/msc/BSC_ConnectionHandler.ttcn +++ b/msc/BSC_ConnectionHandler.ttcn @@ -925,6 +925,28 @@ runs on BSC_ConnHdlr { setverdict(pass); } +/* Send RP-ERROR for MT-SMS over an already existing DTAP connection */ +function f_mt_sms_send_rp_error(inout SmsParameters spars, uint7_t cause) +runs on BSC_ConnHdlr { + var template (value) RPDU_MS_SGSN rp_mo; + var template (value) PDU_ML3_MS_NW l3_mo; + var template PDU_ML3_NW_MS l3_mt; + + var default d := activate(as_other_sms()); + + /* send RP-ACK for RP-DATA */ + rp_mo := ts_RP_ERROR_MO(spars.rp.msg_ref, cause); + l3_mo := ts_ML3_MO_SMS(spars.tid, c_TIF_REPL, ts_CP_DATA_MO(rp_mo)); + BSSAP.send(ts_PDU_DTAP_MO(l3_mo, spars.dlci, true)); + + /* expect CP-ACK for CP-DATA(RP-ERROR) just sent */ + l3_mt := tr_ML3_MT_SMS(spars.tid, c_TIF_ORIG, tr_CP_ACK_MT); + BSSAP.receive(tr_PDU_DTAP_MT(l3_mt, spars.dlci)); + + deactivate(d); + setverdict(pass); +} + /* Wait for a MT-SMS and send RP-ACK over an already existing * (and authenticated, ...) DTAP connection */ function f_mt_sms(inout SmsParameters spars) -- cgit v1.2.3