library/Osmocom_Types: share RA generation helpers from BTS_Tests
Change-Id: I7c9c3d243b39bbd3d521009d23c1043df729ee10
This commit is contained in:
parent
74e1f6b5d6
commit
6f9f7d2662
|
@ -1348,55 +1348,6 @@ testcase TC_sacch_chan_act_ho_sync() runs on test_CT {
|
|||
* 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();
|
||||
|
|
|
@ -198,5 +198,54 @@ function f_pad_bcd_number(hexstring number) return hexstring {
|
|||
}
|
||||
}
|
||||
|
||||
/* 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)" }
|
||||
|
|
Loading…
Reference in New Issue