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