diff options
Diffstat (limited to 'openbsc/src/system_information.c')
-rw-r--r-- | openbsc/src/system_information.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/openbsc/src/system_information.c b/openbsc/src/system_information.c index 3f9d60954..3bd833a93 100644 --- a/openbsc/src/system_information.c +++ b/openbsc/src/system_information.c @@ -402,6 +402,16 @@ static struct gsm48_si13_info si13_default = { .t3192 = 500, .drx_timer_max = 3, .bs_cv_max = 15, + .ext_info_present = 0, + .ext_info = { + /* The values below are just guesses ! */ + .egprs_supported = 0, + .use_egprs_p_ch_req = 1, + .bep_period = 4, + .pfc_supported = 0, + .dtm_supported = 0, + .bss_paging_coordination = 0, + }, }, .pwr_ctrl_pars = { .alpha = 10, /* a = 1.0 */ @@ -448,7 +458,18 @@ 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 (bts->gprs.mode) { + case BTS_GPRS_EGPRS: + si13_default.cell_opts.ext_info_present = 1; + si13_default.cell_opts.ext_info.egprs_supported = 1; + /* fallthrough */ + case BTS_GPRS_GPRS: + si_info.gprs_ind.present = 1; + break; + case BTS_GPRS_NONE: + si_info.gprs_ind.present = 0; + break; + } switch (type) { case RSL_SYSTEM_INFO_1: |