bts: Type Definition + Template for SI3; Send SI3 at start of test
The BTS needs some of the SI3 parameters like BS_AG_BLKS_RES for
internal computations, so make sure we send it after the connection
has been established.
Change-Id: I5dc3724f79e669f52593cd776806d84b4dd4bf5c
diff --git a/library/GSM_RR_Types.ttcn b/library/GSM_RR_Types.ttcn
index 4d1efd7..a8b6db2 100644
--- a/library/GSM_RR_Types.ttcn
+++ b/library/GSM_RR_Types.ttcn
@@ -366,6 +366,68 @@
uint3_t non_drx_timer
} with { variant "" };
+ /* 44.018 10.5.2.3 */
+ type enumerated CellOptions_DTX {
+ MS_MAY_USE_UL_DTX ('00'B),
+ MS_SHALL_USE_UL_DTX ('01'B),
+ MS_SHALL_NOT_USE_UL_DTX ('10'B)
+ } with { variant "FIELDLENGTH(2)" };
+ type record CellOptions {
+ boolean dn_ind,
+ boolean pwrc,
+ CellOptions_DTX dtx,
+ uint4_t radio_link_tout_div4
+ } with { variant "" };
+
+ /* 44.018 10.5.2.4 */
+ type record CellSelectionPars {
+ uint3_t cell_resel_hyst_2dB,
+ uint5_t ms_txpwr_max_cch,
+ BIT1 acs,
+ boolean neci,
+ uint6_t rxlev_access_min
+ } with { variant "" };
+
+ /* 44.018 10.5.2.29 */
+ type enumerated RachCtrlPar_MR {
+ RACH_MAX_RETRANS_1 ('00'B),
+ RACH_MAX_RETRANS_2 ('01'B),
+ RACH_MAX_RETRANS_4 ('10'B),
+ RACH_MAX_RETRANS_7 ('11'B)
+ } with { variant "FIELDLENGTH(2)" };
+ type record RachControlPars {
+ RachCtrlPar_MR max_retrans,
+ BIT4 tx_integer,
+ boolean cell_bar_access,
+ boolean re_not_allowed,
+ BIT16 acc
+ } with { variant "" };
+
+ /* 44.018 10.5.2.11 */
+ type enumerated CtrlChanDesc_CC {
+ CCHAN_DESC_1CCCH_NOT_COMBINED ('000'B),
+ CCHAN_DESC_1CCCH_COMBINED ('001'B),
+ CCHAN_DESC_2CCCH_NOT_COMBINED ('010'B),
+ CCHAN_DESC_3CCCH_NOT_COMBINED ('100'B),
+ CCHAN_DESC_4CCCH_NOT_COMBINED ('110'B)
+ } with { variant "FIELDLENGTH(3)" };
+ type enumerated CBQ3 {
+ CBQ3_IU_MODE_NOT_SUPPORTED ('00'B),
+ CBQ3_IU_MODE_MS_BARRED ('01'B),
+ CBQ3_IU_MODE_NOT_BARRED ('10'B)
+ } with { variant "FIELDLENGTH(2)" };
+ type record CtrlChanDesc {
+ boolean msc_r99,
+ boolean att,
+ uint3_t bs_ag_blks_res,
+ CtrlChanDesc_CC ccch_conf,
+ boolean si22_ind,
+ CBQ3 cbq3,
+ BIT2 spare,
+ uint3_t bs_pa_mfrms, /* off by 2 */
+ uint8_t t3212
+ } with { variant "" };
+
/* 24.008 10.5.5.15 */
type record RoutingAreaIdentification {
LocationAreaIdentification lai,
@@ -577,6 +639,16 @@
RestOctets rest_octets
} with { variant "" };
+ /* 9.1.35 */
+ type record SystemInformationType3 {
+ CellIdentity cell_id,
+ LocationAreaIdentification lai,
+ CtrlChanDesc ctrl_chan_desc,
+ CellOptions cell_opts,
+ CellSelectionPars cell_sel_pars,
+ RachControlPars rach_ctrl_pars,
+ RestOctets rest_octets
+ } with { variant (rest_octets) "FIELDLENGTH(4)" };
type union RrUnion {
/*
@@ -584,13 +656,13 @@
SystemInformationType2 si2,
SystemInformationType2bis si2bis,
SystemInformationType2ter si2ter,
- SystemInformationType3 si3,
SystemInformationType4 si4,
SystemInformationType5 si5,
SystemInformationType5bis si5bis,
SystemInformationType5ter si5ter,
SystemInformationType6 si6,
*/
+ SystemInformationType3 si3,
ImmediateAssignment imm_ass,
ImmediateAssignmentReject imm_ass_rej,
PagingRequestType1 pag_req_1,
diff --git a/library/General_Types.ttcn b/library/General_Types.ttcn
index b404fe1..83b2a42 100644
--- a/library/General_Types.ttcn
+++ b/library/General_Types.ttcn
@@ -75,6 +75,7 @@
type bitstring BIT16 length(16) with { variant "FIELDLENGTH(16)" };
type bitstring BIT24 length(24) with { variant "FIELDLENGTH(24)" };
type bitstring BIT31 length(31) with { variant "FIELDLENGTH(31)" };
+ type bitstring BIT32 length(32) with { variant "FIELDLENGTH(32)" };
type bitstring BIT56 length(56) with { variant "FIELDLENGTH(56)" };
//****************************************************
diff --git a/library/L3_Templates.ttcn b/library/L3_Templates.ttcn
index d3e021d..a614122 100644
--- a/library/L3_Templates.ttcn
+++ b/library/L3_Templates.ttcn
@@ -2093,6 +2093,8 @@
return f_concat_pad(12, '49123'H, suffix);
}
+external function enc_MobileIdentityLV(in MobileIdentityLV si) return octetstring
+ with { extension "prototype(convert) encode(RAW)" };
}