Hello Jenkins Builder, I'd like you to reexamine a change. Please visit
https://gerrit.osmocom.org/6885 to look at the new patch set (#2). 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 --- M bts/BTS_Tests.ttcn M library/GSM_RR_Types.ttcn M library/General_Types.ttcn M library/L3_Templates.ttcn 4 files changed, 142 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/85/6885/2 diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn index 58c7118..287d869 100644 --- a/bts/BTS_Tests.ttcn +++ b/bts/BTS_Tests.ttcn @@ -12,6 +12,7 @@ import from Osmocom_CTRL_Adapter all; import from RSL_Types all; +import from IPA_Types all; import from IPA_Emulation all; import from RSL_Emulation all; @@ -19,6 +20,9 @@ import from TRXC_Types all; import from TRXC_CodecPort all; import from TRXC_CodecPort_CtrlFunct all; + +import from L3_Templates all; +import from MobileL3_CommonIE_Types all; /* The tests assume a BTS with the following timeslot configuration: * TS0 : Combined CCCH + SDCCH/4 @@ -75,11 +79,62 @@ ConnL1Pars l1_pars } +/* Default SYSTEM INFORMATION 3 */ +template (value) GsmRrMessage ts_SI3_default := { + header := t_RrHeader(SYSTEM_INFORMATION_TYPE_3, 0), + payload := { + si3 := { + cell_id := 23, + lai := { + mcc_mnc := '262F42'H, + lac := 42 + }, + ctrl_chan_desc := { + msc_r99 := true, + att := true, + bs_ag_blks_res := 1, + ccch_conf := CCHAN_DESC_1CCCH_COMBINED, + si22_ind := false, + cbq3 := CBQ3_IU_MODE_NOT_SUPPORTED, + spare := '00'B, + bs_pa_mfrms := 0, /* 2 multiframes */ + t3212 := 1 /* 6 minutes */ + }, + cell_opts := { + dn_ind := false, + pwrc := false, + dtx := MS_MAY_USE_UL_DTX, + radio_link_tout_div4 := 4/4 + }, + cell_sel_pars := { + cell_resel_hyst_2dB := 0, + ms_txpwr_max_cch := 0, + acs := '0'B, + neci := true, + rxlev_access_min := 0 + }, + rach_ctrl_pars := { + max_retrans := RACH_MAX_RETRANS_1, + tx_integer := '0000'B, /* 3 slots */ + cell_bar_access := false, + re_not_allowed := true, + acc := '1111111111111111'B + }, + rest_octets := ''O + } + } +} /* global init function */ function f_init(charstring id) runs on test_CT { f_init_rsl(id); RSL_CCHAN.receive(ASP_IPA_Event:{up_down := ASP_IPA_EVENT_UP}); + + /* Send SI3 to the BTS, it is needed for various computations */ + var GsmRrMessage si3 := valueof(ts_SI3_default); + log("Sending SI3 ", si3); + var octetstring si3_enc := enc_GsmRrMessage(si3); + RSL_CCHAN.send(ts_RSL_UD(ts_RSL_BCCH_INFO(RSL_SYSTEM_INFO_3, si3_enc))); } type function void_fn(charstring id) runs on ConnHdlr; @@ -99,6 +154,17 @@ return vc_conn; } +template ASP_RSL_Unitdata ts_RSL_UD(template RSL_Message rsl, IpaStreamId sid := IPAC_PROTO_RSL_TRX0) := { + streamId := sid, + rsl := rsl +} + +template ASP_RSL_Unitdata tr_RSL_UD(template RSL_Message rsl, + template IpaStreamId sid := IPAC_PROTO_RSL_TRX0) := { + streamId := sid, + rsl := rsl +} + private altstep as_Tguard() runs on ConnHdlr { [] g_Tguard.timeout { setverdict(fail, "Tguard timeout"); 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)" }; } -- To view, visit https://gerrit.osmocom.org/6885 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newpatchset Gerrit-Change-Id: I5dc3724f79e669f52593cd776806d84b4dd4bf5c Gerrit-PatchSet: 2 Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Owner: Harald Welte <lafo...@gnumonks.org> Gerrit-Reviewer: Jenkins Builder