library: Add templates to initialize CellId, RAI, LAI

Change-Id: Ie9d86e1b651dff279e7d50a4282bf14fbed5bb76
diff --git a/library/GSM_Types.ttcn b/library/GSM_Types.ttcn
index 34b6517..6cc3c08 100644
--- a/library/GSM_Types.ttcn
+++ b/library/GSM_Types.ttcn
@@ -420,12 +420,20 @@
 	BcdMccMnc	mcc_mnc,
 	uint16_t	lac
 } with { variant "" };
+template (value) LocationAreaIdentification ts_LAI(BcdMccMnc mcc_mnc, uint16_t lac) := {
+	mcc_mnc := mcc_mnc,
+	lac := lac
+};
 
 /* 24.008 10.5.5.15 */
 type record RoutingAreaIdentification {
 	LocationAreaIdentification	lai,
 	uint8_t				rac
 } with { variant "" };
+template (value) RoutingAreaIdentification ts_RAI(template (value) LocationAreaIdentification lai, uint8_t rac) := {
+	lai := lai,
+	rac := rac
+};
 
 external function enc_RoutingAreaIdentification(RoutingAreaIdentification rai) return octetstring
 with { extension "prototype(convert)" extension "encode(RAW)" }
diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index b83131d..518d619 100644
--- a/library/Osmocom_Gb_Types.ttcn
+++ b/library/Osmocom_Gb_Types.ttcn
@@ -733,6 +733,11 @@
 		CellIdentity			cell_id
 	} with { variant "" };
 
+	template (value) BssgpCellId ts_BssgpCellId(template (value) RoutingAreaIdentification rai, CellIdentity cell_id) := {
+		ra_id := rai,
+		cell_id := cell_id
+	};
+
 	type enumerated BssgpCause {
 		BSSGP_CAUSE_PROC_OVERLOAD			('00'H),
 		BSSGP_CAUSE_EQUIMENT_FAILURE			('01'H),