Harald Welte has submitted this change and it was merged.

Change subject: bts: Type Definition + Template for SI3; Send SI3 at start of 
test
......................................................................


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(-)

Approvals:
  Harald Welte: Looks good to me, approved
  Jenkins Builder: Verified



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: merged
Gerrit-Change-Id: I5dc3724f79e669f52593cd776806d84b4dd4bf5c
Gerrit-PatchSet: 2
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <lafo...@gnumonks.org>
Gerrit-Reviewer: Harald Welte <lafo...@gnumonks.org>
Gerrit-Reviewer: Jenkins Builder

Reply via email to