gpborxy: Implement variety of paging tests for PS-PAGING and CS-PAGING

Change-Id: Ida44b62dfdb9c4ce2755de63d51a9907d34f247f
diff --git a/library/Osmocom_Gb_Types.ttcn b/library/Osmocom_Gb_Types.ttcn
index 2c82437..ee03a8a 100644
--- a/library/Osmocom_Gb_Types.ttcn
+++ b/library/Osmocom_Gb_Types.ttcn
@@ -829,6 +829,13 @@
 		digits := imsi
 	}
 
+	template (present) TMSI_BSSGP tr_BSSGP_TMSI(GsmTmsi tmsi) := {
+		iEI := '20'O,
+		ext := '1'B,
+		lengthIndicator := { length1 := 4 },
+		tMSI_Value := int2oct(tmsi, 4)
+	}
+
 	template TMSI_BSSGP ts_BSSGP_TMSI(GsmTmsi tmsi) := {
 		iEI := '20'O,
 		ext := '1'B,
@@ -1556,7 +1563,45 @@
 		}
 	}
 
-	template (value) Routeing_Area ts_BSSGP_RA_ID(RoutingAreaIdentification input) := {
+	template (value) Paging_Field4 ts_BssgpP4BssArea := {
+		bSS_Area_Indication := {
+			iEI := '02'O,
+			ext := '1'B,
+			lengthIndicator := {
+				length1 := 1
+			},
+			bSS_indicator := '00'O
+		}
+	}
+
+	template (value) Paging_Field4 ts_BssgpP4LAC(GSM_Types.LocationAreaIdentification lai) := {
+		location_Area := ts_BSSGP_LA_ID(lai)
+	}
+
+	template (value) Paging_Field4 ts_BssgpP4RAC(GSM_Types.RoutingAreaIdentification rai) := {
+		routeing_Area := ts_BSSGP_RA_ID(rai)
+	}
+
+	template (value) Paging_Field4 ts_BssgpP4Bvci(BssgpBvci bvci) := {
+		bVCI := t_BSSGP_BVCI(bvci)
+	}
+
+	template (value) Location_Area ts_BSSGP_LA_ID(GSM_Types.LocationAreaIdentification input) := {
+		iEI := '10'O,
+		ext := '1'B,
+		lengthIndicator := {
+			length1 := 5
+		},
+		mccDigit1 := input.mcc_mnc[0],
+		mccDigit2 := input.mcc_mnc[1],
+		mccDigit3 := input.mcc_mnc[2],
+		mncDigit3 := input.mcc_mnc[3],
+		mncDigit1 := input.mcc_mnc[4],
+		mncDigit2 := input.mcc_mnc[5],
+		lac := int2oct(input.lac, 2)
+	}
+
+	template (value) Routeing_Area ts_BSSGP_RA_ID(GSM_Types.RoutingAreaIdentification input) := {
 		iEI := '1B'O,
 		ext := '1'B,
 		lengthIndicator := {
@@ -1754,8 +1799,7 @@
 		BSSGP_RADIO_CAUSE_CELL_RESEL_FAILURE 	('04'H)
 	} with { variant "FIELDLENGTH(8)" };
 
-
-	function ts_BSSGP_RADIO_CAUSE(template (omit) BssgpRadioCause cause) return template (omit) Radio_Cause {
+        function ts_BSSGP_RADIO_CAUSE(template (omit) BssgpRadioCause cause) return template (omit) Radio_Cause {
 		var template (omit) Radio_Cause ret;
 		if (istemplatekind(cause, "omit")) {
 			ret := omit;