diff options
author | Harald Welte <laforge@gnumonks.org> | 2018-02-10 09:11:13 +0100 |
---|---|---|
committer | Harald Welte <laforge@gnumonks.org> | 2018-02-10 11:06:55 +0100 |
commit | 081b19a79103e3c141d7d1cf6deabeb6455523a4 (patch) | |
tree | a835447a87449f4c4904e346137497974bdc1abe /msc/BSC_ConnectionHandler.ttcn | |
parent | c0375167dabf4e78b3b34f77b5a2a829997ed043 (diff) |
msc: Unify channel establishment for CM SERV REQ + PAGING
Change-Id: I24e3dfa1ef88c48c39bf0248074e88e682bc8404
Diffstat (limited to 'msc/BSC_ConnectionHandler.ttcn')
-rw-r--r-- | msc/BSC_ConnectionHandler.ttcn | 37 |
1 files changed, 19 insertions, 18 deletions
diff --git a/msc/BSC_ConnectionHandler.ttcn b/msc/BSC_ConnectionHandler.ttcn index 4f50b701..1d39ab44 100644 --- a/msc/BSC_ConnectionHandler.ttcn +++ b/msc/BSC_ConnectionHandler.ttcn @@ -186,11 +186,23 @@ runs on BSC_ConnHdlr { } } +type enumerated EstablishType { + EST_TYPE_MO_CALL, + EST_TYPE_PAG_RESP +}; + /* helper function to fully establish a dedicated channel */ -function f_establish_fully(MobileIdentityLV mi) +function f_establish_fully(MobileIdentityLV mi, EstablishType etype := EST_TYPE_MO_CALL) runs on BSC_ConnHdlr { - var PDU_ML3_MS_NW l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, mi)); - var PDU_DTAP_MT dtap_mt; + var PDU_ML3_MS_NW l3_info; + select (etype) { + case (EST_TYPE_MO_CALL) { + l3_info := valueof(ts_CM_SERV_REQ(CM_TYPE_MO_CALL, mi)); + } + case (EST_TYPE_PAG_RESP) { + l3_info := valueof(ts_PAG_RESP(mi)); + } + } /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */ f_bssap_compl_l3(l3_info); @@ -199,24 +211,13 @@ runs on BSC_ConnHdlr { if (g_pars.net.expect_ciph) { /* implicit CM SERVICE ACCEPT? */ } else { - /* explicit CM SERVICE ACCEPT */ - BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_ACC)); + if (etype == EST_TYPE_MO_CALL) { + /* explicit CM SERVICE ACCEPT */ + BSSAP.receive(tr_PDU_DTAP_MT(tr_CM_SERV_ACC)); + } } } -/* helper function to fully establish a dedicated channel */ -function f_establish_fully_pag(MobileIdentityLV mi) -runs on BSC_ConnHdlr { - var PDU_ML3_MS_NW l3_info := valueof(ts_PAG_RESP(mi)); - var PDU_DTAP_MT dtap_mt; - - /* Send BSSAP_Conn_Req with COMPL L3 INFO to MSC */ - f_bssap_compl_l3(l3_info); - - f_mm_common(); -} - - /* build a PDU_ML3_MS_NW containing a Location Update by IMSI */ function f_build_lu_imsi(hexstring imsi) runs on BSC_ConnHdlr return PDU_ML3_MS_NW { |