bsc: Add TC_classmark to test RR CLASSMARK -> BSSMAP CLASSMARK conversion

Related: OS#2902
Change-Id: Idd86b5505e1a4fee666287680a20dc235970be93
diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn
index ed477d5..ad4e575 100644
--- a/library/L3_Templates.ttcn
+++ b/library/L3_Templates.ttcn
@@ -102,8 +102,25 @@
 	esind := '1'B,
 	revisionLevel := '10'B,
 	spare1_1 := '0'B,
-	mobileStationClassmark2_oct4 := omit,
-	mobileStationClassmark2_oct5 := omit
+	mobileStationClassmark2_oct4 := {
+		fc := '1'B,
+		vgcs := '0'B,
+		vbs := '0'B,
+		sm_Capability := '1'B,
+		ss_ScreenIndicator := '01'B,
+		ps_Capability := '1'B,
+		spare2_1 := '0'B
+	},
+	mobileStationClassmark2_oct5 := {
+		a5_2 := '0'B,
+		a5_3 := '1'B,
+		cmsp := '0'B,
+		solsa := '0'B,
+		ucs2 := '0'B,
+		lcsva_cap := '0'B,
+		spare5_7 :='0'B,
+		cm3 := '0'B
+	}
 };
 
 /* Send template for CM SERVICE REQUEST */
@@ -268,6 +285,53 @@
 	}
 }
 
+template (value) PDU_ML3_MS_NW ts_RRM_AssignmentFailure(OCT1 cause) := {
+	discriminator := '0000'B, /* overwritten */
+	tiOrSkip := {
+		skipIndicator := '0000'B
+	},
+	msgs := {
+		rrm := {
+			assignmentFailure := {
+				messageType := '00101111'B,
+				rR_Cause := {
+					valuePart := cause
+				}
+			}
+		}
+	}
+}
+
+
+function ts_CM3_TLV(template (omit) OCTN cm3) return template MobileStationClassmark3_TLV {
+	if (not isvalue(cm3)) {
+		return omit;
+	}
+	var template MobileStationClassmark3_TLV ret := {
+		elementIdentifier := '20'O,
+		lengthIndicator := 0, /* overwritten */
+		valuePart := cm3
+	}
+	return ret;
+}
+
+template (value) PDU_ML3_MS_NW ts_RRM_CM_CHG(MobileStationClassmark2_LV cm2,
+					     template (omit) MobileStationClassmark3_TLV cm3 := omit) := {
+	discriminator := '0110'B,
+	tiOrSkip := {
+		skipIndicator := '0000'B
+	},
+	msgs := {
+		rrm := {
+			classmarkChange := {
+				messageType := '00010110'B,
+				mobileStationClassmark2 := cm2,
+				mobileStationClassmark3 := cm3
+			}
+		}
+	}
+}
+
 template PDU_ML3_MS_NW ts_ML3_MO := {
 	discriminator := '0000'B,
 	tiOrSkip := {