msc: Verify CommonID contains LastUsedEutranPLMNId when in CSFB
Validate in test that MSC sends Last Used E-UTRAN PLLMN Id IE when call
is started by SGs (CSFB).
Related: SYS#5337
Change-Id: I161529fd9c8cacb7d17ea18660998df06bb0b575
diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn
index 2b99a5b..1949fd6 100644
--- a/library/BSSMAP_Templates.ttcn
+++ b/library/BSSMAP_Templates.ttcn
@@ -1163,7 +1163,10 @@
elementIdentifier := '95'O,
mcc_mnc := mcc_mnc
}
-
+template BSSAMAP_IE_LastUsedEUTRANPLMNId tr_BSSMAP_LastUsedEUTRANPLMNId(template OCT3 mcc_mnc) := {
+ elementIdentifier := '95'O,
+ mcc_mnc := mcc_mnc
+}
function f_ts_BSSMAP_LastUsedEUTRANPLMNId(template (omit) OCT3 mcc_mnc)
return template (omit) BSSAMAP_IE_LastUsedEUTRANPLMNId {
if (not istemplatekind(mcc_mnc, "omit")) {
@@ -1172,6 +1175,18 @@
return omit;
}
}
+function f_tr_BSSMAP_LastUsedEUTRANPLMNId(template OCT3 mcc_mnc)
+return template BSSAMAP_IE_LastUsedEUTRANPLMNId {
+ if (istemplatekind(mcc_mnc, "*")) {
+ return *;
+ } else if (istemplatekind(mcc_mnc, "?")) {
+ return ?;
+ } else if (istemplatekind(mcc_mnc, "omit")) {
+ return omit;
+ } else {
+ return ts_BSSMAP_LastUsedEUTRANPLMNId(valueof(mcc_mnc));
+ }
+}
template BSSMAP_FIELD_CellIdentificationList ts_BSSMAP_CIL_noCell := {
cIl_noCell := ''O
@@ -1227,7 +1242,7 @@
}
-private function f_enc_mcc_mnc(GsmMcc mcc, GsmMnc mnc) return OCT3 {
+function f_enc_mcc_mnc(GsmMcc mcc, GsmMnc mnc) return OCT3 {
if (lengthof(mnc) == 2) {
return hex2oct(mcc[1] & mcc[0] & 'F'H & mcc[2] & mnc[1] & mnc[0]);
} else {
@@ -1235,6 +1250,15 @@
}
}
+function f_dec_mcc_mnc(in OCT3 mcc_mnc, out GsmMcc mcc, out GsmMnc mnc) {
+ var hexstring hs := oct2hex(mcc_mnc);
+ mcc := hs[1] & hs[0] & hs[3];
+ mnc := hs[5] & hs[4];
+ if (hs[2] == 'F'H) {
+ mnc := mnc & hs[2];
+ }
+}
+
template (value) BSSMAP_FIELD_CellIdentification_CGI ts_BSSMAP_CI_CGI(GsmMcc mcc, GsmMnc mnc, GsmLac lac, GsmCellId ci) := {
mcc_mnc := f_enc_mcc_mnc(mcc, mnc),
lac := int2oct(lac, 2),
@@ -1737,14 +1761,17 @@
}
}
-template PDU_BSSAP tr_BSSMAP_CommonId(template hexstring imsi_digits)
+template PDU_BSSAP tr_BSSMAP_CommonId(template hexstring imsi_digits,
+ template BSSAMAP_IE_LastUsedEUTRANPLMNId lastUsedEUTRANPLMNId := *)
modifies tr_BSSAP_BSSMAP := {
pdu := {
bssmap := {
commonID := {
messageType := '2F'O,
iMSI := tr_BSSMAP_Imsi(imsi_digits),
- sNAAccessInformation := *
+ sNAAccessInformation := *,
+ selectedPLMNId := *,
+ lastUsedEUTRANPLMNId := lastUsedEUTRANPLMNId
}
}
}