aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/system_information.c
diff options
context:
space:
mode:
Diffstat (limited to 'openbsc/src/system_information.c')
-rw-r--r--openbsc/src/system_information.c20
1 files changed, 12 insertions, 8 deletions
diff --git a/openbsc/src/system_information.c b/openbsc/src/system_information.c
index a9df0ba26..3f9d60954 100644
--- a/openbsc/src/system_information.c
+++ b/openbsc/src/system_information.c
@@ -249,7 +249,7 @@ static int generate_si2(u_int8_t *output, struct gsm_bts *bts)
return sizeof(*si2);
}
-struct gsm48_si_ro_info si_info = {
+static struct gsm48_si_ro_info si_info = {
.selection_params = {
.present = 0,
},
@@ -264,7 +264,7 @@ struct gsm48_si_ro_info si_info = {
.gprs_ind = {
.si13_position = 0,
.ra_colour = 0,
- .present = 0,
+ .present = 1,
},
.lsa_params = {
.present = 0,
@@ -398,9 +398,9 @@ static int generate_si6(u_int8_t *output, struct gsm_bts *bts)
static struct gsm48_si13_info si13_default = {
.cell_opts = {
.nmo = GPRS_NMO_III,
- .t3168 = 1000,
- .t3192 = 1000,
- .drx_timer_max = 1,
+ .t3168 = 1500,
+ .t3192 = 500,
+ .drx_timer_max = 3,
.bs_cv_max = 15,
},
.pwr_ctrl_pars = {
@@ -410,15 +410,15 @@ static struct gsm48_si13_info si13_default = {
.pc_meas_chan = 0, /* downling measured on CCCH */
.n_avg_i = 15,
},
- .bcch_change_mark = 0,
+ .bcch_change_mark = 1,
.si_change_field = 0,
.pbcch_present = 0,
{
.no_pbcch = {
- .rac = 0,
+ .rac = 0, /* needs to be patched */
.spgc_ccch_sup = 0,
.net_ctrl_ord = 0,
- .prio_acc_thr = 0,
+ .prio_acc_thr = 6,
},
},
};
@@ -435,6 +435,8 @@ static int generate_si13(u_int8_t *output, struct gsm_bts *bts)
si13->header.skip_indicator = 0;
si13->header.system_information = GSM48_MT_RR_SYSINFO_13;
+ si13_default.no_pbcch.rac = bts->gprs.rac;
+
ret = rest_octets_si13(si13->rest_octets, &si13_default);
if (ret < 0)
return ret;
@@ -446,6 +448,8 @@ static int generate_si13(u_int8_t *output, struct gsm_bts *bts)
int gsm_generate_si(u_int8_t *output, struct gsm_bts *bts, int type)
{
+ si_info.gprs_ind.present = bts->gprs.enabled;
+
switch (type) {
case RSL_SYSTEM_INFO_1:
return generate_si1(output, bts);