From 92b12b748c53c8ffcd3ef1fe950a3555b5b97e0a Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Tue, 18 Sep 2018 14:30:23 +0200 Subject: bsc: test Classmark Enquiry Enhance TC_classmark to also include the BSSMAP Classmark Request -> RR Classmark Enquiry part. So far it was only testing the return path of RR Classmark Change -> BSSMAP Classmark Update. This test will thus fail with current osmo-bsc master, and will succeed as soon as osmo-bsc If5db638fd6e8d9c2ef9e139e99f0fabe1ef16ddf is merged. Add: * ts_BSSMAP_ClassmarkRequest in BSSMAP_Templates.ttcn * tr_RRM_CM_ENQUIRY in L3_Templates.ttcn Change-Id: Idaab4d568cf986b4897ba008f6262c839d1592fb --- bsc/BSC_Tests.ttcn | 7 ++++++- library/BSSMAP_Templates.ttcn | 12 ++++++++++++ library/L3_Templates.ttcn | 15 +++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn index b44de9f4..a99214bb 100644 --- a/bsc/BSC_Tests.ttcn +++ b/bsc/BSC_Tests.ttcn @@ -1940,13 +1940,18 @@ testcase TC_assignment_codec_amr_h() runs on test_CT { vc_conn.done; } -/* test if L3 RR CLASSMARK CHANGE is translated to BSSMAP CLASSMARK UPDATE */ +/* test the procedure of the MSC requesting a Classmark Update: + * a) BSSMAP Classmark Request should result in RR CLASSMARK ENQUIRY, + * b) L3 RR CLASSMARK CHANGE should result in BSSMAP CLASSMARK UPDATE */ private function f_tc_classmark(charstring id) runs on MSC_ConnHdlr { g_pars := valueof(t_def_TestHdlrPars); f_create_chan_and_exp(); /* we should now have a COMPL_L3 at the MSC */ BSSAP.receive(tr_BSSMAP_ComplL3); + BSSAP.send(ts_BSSMAP_ClassmarkRequest); + RSL.receive(tr_RSL_DATA_REQ(g_chan_nr, ?, decmatch tr_RRM_CM_ENQUIRY)); + f_rsl_send_l3(ts_RRM_CM_CHG(valueof(ts_CM2))); BSSAP.receive(tr_BSSMAP_ClassmarkUpd(?, omit)); setverdict(pass); diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index d92ea612..a3a50de2 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -944,6 +944,18 @@ modifies tr_BSSAP_BSSMAP := { } } +template PDU_BSSAP ts_BSSMAP_ClassmarkRequest +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + classmarkRequest := { + messageType := '58'O, + talkerPriority := omit + } + } + } +} + /* return Layer3 octetstring inside BSSAP PDU */ function f_bssap_extract_l3(PDU_BSSAP bssap) return template octetstring { if (ischosen(bssap.pdu.bssmap)) { diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn index 557b1b8f..1ce84cf2 100644 --- a/library/L3_Templates.ttcn +++ b/library/L3_Templates.ttcn @@ -525,6 +525,21 @@ template (value) PDU_ML3_MS_NW ts_RRM_CM_CHG(MobileStationClassmark2_LV cm2, } } +template PDU_ML3_NW_MS tr_RRM_CM_ENQUIRY := { + discriminator := '0110'B, + tiOrSkip := { + skipIndicator := '0000'B + }, + msgs := { + rrm := { + classmarkEnquiry := { + messageType := '00010011'B, + classmarkEnquiryMask := * + } + } + } +} + template (value) PDU_ML3_MS_NW ts_RRM_UL_REL(OCT1 cause) := { discriminator := '0110'B, tiOrSkip := { -- cgit v1.2.3