library/Osmocom_Types: share RA generation helpers from BTS_Tests

Change-Id: I7c9c3d243b39bbd3d521009d23c1043df729ee10
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index 34fd702..d9ad45b 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -1348,55 +1348,6 @@
  * RACH Handling
  ***********************************************************************/
 
-/* like L1SAP_IS_PACKET_RACH */
-private function ra_is_ps(OCT1 ra) return boolean {
-	if ((ra and4b 'F0'O == '70'O) and (ra and4b '0F'O != '0F'O)) {
-		return true;
-	}
-	return false;
-}
-
-private function ra_is_emerg(OCT1 ra) return boolean {
-	/* See also: 3GPP TS 04.08, Table 9.9, ra=101xxxxx */
-	if ((ra and4b 'E0'O == 'A0'O) and (ra and4b '1F'O != '1F'O)) {
-		return true;
-	}
-	return false;
-}
-
-/* generate a random RACH for circuit-switched */
-private function f_rnd_ra_cs() return OCT1 {
-	var OCT1 ra;
-	do {
-		ra := f_rnd_octstring(1);
-	} while (ra_is_ps(ra));
-	return ra;
-}
-
-/* generate a random RACH for emergency */
-private function f_rnd_ra_emerg() return OCT1 {
-	var OCT1 ra;
-	do {
-		ra := f_rnd_octstring(1);
-	} while (not ra_is_emerg(ra));
-	return ra;
-}
-
-/* generate a random RACH for packet-switched */
-private function f_rnd_ra_ps() return OCT1 {
-	var OCT1 ra;
-	do {
-		ra := f_rnd_octstring(1);
-	} while (not ra_is_ps(ra));
-	return ra;
-}
-
-/* generate a random 11-bit RA (packet-switched only) */
-private function f_rnd_ra11_ps() return BIT11 {
-	var integer ra11 := f_rnd_int(bit2int('11111111111'B));
-	return int2bit(ra11, 11);
-}
-
 /* Send 1000 RACH requests and check their RA+FN on the RSL side */
 private function f_TC_rach_content(boolean emerg) runs on test_CT {
 	f_init();
diff --git a/library/Osmocom_Types.ttcn b/library/Osmocom_Types.ttcn
index 994a0cc..2ee3215 100644
--- a/library/Osmocom_Types.ttcn
+++ b/library/Osmocom_Types.ttcn
@@ -198,5 +198,54 @@
 	}
 }
 
+/* like L1SAP_IS_PACKET_RACH */
+function ra_is_ps(OCT1 ra) return boolean {
+	if ((ra and4b 'F0'O == '70'O) and (ra and4b '0F'O != '0F'O)) {
+		return true;
+	}
+	return false;
+}
+
+function ra_is_emerg(OCT1 ra) return boolean {
+	/* See also: 3GPP TS 04.08, Table 9.9, ra=101xxxxx */
+	if ((ra and4b 'E0'O == 'A0'O) and (ra and4b '1F'O != '1F'O)) {
+		return true;
+	}
+	return false;
+}
+
+/* generate a random RACH for circuit-switched */
+function f_rnd_ra_cs() return OCT1 {
+	var OCT1 ra;
+	do {
+		ra := f_rnd_octstring(1);
+	} while (ra_is_ps(ra));
+	return ra;
+}
+
+/* generate a random RACH for emergency */
+function f_rnd_ra_emerg() return OCT1 {
+	var OCT1 ra;
+	do {
+		ra := f_rnd_octstring(1);
+	} while (not ra_is_emerg(ra));
+	return ra;
+}
+
+/* generate a random RACH for packet-switched */
+function f_rnd_ra_ps() return OCT1 {
+	var OCT1 ra;
+	do {
+		ra := f_rnd_octstring(1);
+	} while (not ra_is_ps(ra));
+	return ra;
+}
+
+/* generate a random 11-bit RA (packet-switched only) */
+function f_rnd_ra11_ps() return BIT11 {
+	var integer ra11 := f_rnd_int(bit2int('11111111111'B));
+	return int2bit(ra11, 11);
+}
+
 
 } with { encode "RAW"; variant "FIELDORDER(msb)" }