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
 			}
 		}
 	}