summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-09-18 14:30:23 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2018-09-18 14:33:42 +0200
commit92b12b748c53c8ffcd3ef1fe950a3555b5b97e0a (patch)
treee2979aac629737540eefaf1d65a4d1218762ffc4
parentf097a8b94ee6a2f70d90709323b55d1bea7a4480 (diff)
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
-rw-r--r--bsc/BSC_Tests.ttcn7
-rw-r--r--library/BSSMAP_Templates.ttcn12
-rw-r--r--library/L3_Templates.ttcn15
3 files changed, 33 insertions, 1 deletions
diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index b44de9f..a99214b 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 d92ea61..a3a50de 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 557b1b8..1ce84cf 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 := {