Remove SI-related code
Get rid of unused data structures and functions related to SI handling. Change-Id: I048885e85a9f97b8b071f3a3f1c362b54a44720e
This commit is contained in:
parent
43b01b0514
commit
f953d8bbb2
|
@ -682,9 +682,6 @@ void bts_depend_clear(struct gsm_bts *bts, int dep);
|
|||
int bts_depend_check(struct gsm_bts *bts);
|
||||
int bts_depend_is_depedency(struct gsm_bts *base, struct gsm_bts *other);
|
||||
|
||||
int gsm_bts_get_radio_link_timeout(const struct gsm_bts *bts);
|
||||
void gsm_bts_set_radio_link_timeout(struct gsm_bts *bts, int value);
|
||||
|
||||
bool classmark_is_r99(struct gsm_classmark *cm);
|
||||
|
||||
#endif /* _GSM_DATA_H */
|
||||
|
|
|
@ -26,13 +26,6 @@
|
|||
|
||||
#include <osmocom/msc/common_cs.h>
|
||||
|
||||
/* 16 is the max. number of SI2quater messages according to 3GPP TS 44.018 Table 10.5.2.33b.1:
|
||||
4-bit index is used (2#1111 = 10#15) */
|
||||
#define SI2Q_MAX_NUM 16
|
||||
/* length in bits (for single SI2quater message) */
|
||||
#define SI2Q_MAX_LEN 160
|
||||
#define SI2Q_MIN_LEN 18
|
||||
|
||||
struct osmo_bsc_data;
|
||||
|
||||
struct osmo_bsc_sccp_con;
|
||||
|
@ -502,11 +495,6 @@ struct gsm_bts_trx {
|
|||
struct gsm_bts_trx_ts ts[TRX_NR_TS];
|
||||
};
|
||||
|
||||
#define GSM_BTS_SI2Q(bts, i) (struct gsm48_system_information_type_2quater *)((bts)->si_buf[SYSINFO_TYPE_2quater][i])
|
||||
#define GSM_BTS_HAS_SI(bts, i) ((bts)->si_valid & (1 << i))
|
||||
#define GSM_BTS_SI(bts, i) (void *)((bts)->si_buf[i][0])
|
||||
#define GSM_LCHAN_SI(lchan, i) (void *)((lchan)->si.buf[i][0])
|
||||
|
||||
enum gsm_bts_type {
|
||||
GSM_BTS_TYPE_UNKNOWN,
|
||||
GSM_BTS_TYPE_BS11,
|
||||
|
@ -744,17 +732,6 @@ struct gsm_bts {
|
|||
struct gsm_abis_mo mo;
|
||||
} site_mgr;
|
||||
|
||||
/* bitmask of all SI that are present/valid in si_buf */
|
||||
uint32_t si_valid;
|
||||
/* 3GPP TS 44.018 Table 10.5.2.33b.1 INDEX and COUNT for SI2quater */
|
||||
uint8_t si2q_index; /* distinguish individual SI2quater messages */
|
||||
uint8_t si2q_count; /* si2q_index for the last (highest indexed) individual SI2quater message */
|
||||
/* buffers where we put the pre-computed SI */
|
||||
sysinfo_buf_t si_buf[_MAX_SYSINFO_TYPE][SI2Q_MAX_NUM];
|
||||
/* offsets used while generating SI2quater */
|
||||
size_t e_offset;
|
||||
size_t u_offset;
|
||||
|
||||
/* ip.accesss Unit ID's have Site/BTS/TRX layout */
|
||||
union {
|
||||
struct {
|
||||
|
@ -855,30 +832,7 @@ struct gsm_bts {
|
|||
int chan_alloc_reverse;
|
||||
|
||||
enum neigh_list_manual_mode neigh_list_manual_mode;
|
||||
/* parameters from which we build SYSTEM INFORMATION */
|
||||
struct {
|
||||
struct gsm48_rach_control rach_control;
|
||||
uint8_t ncc_permitted;
|
||||
struct gsm48_cell_sel_par cell_sel_par;
|
||||
struct gsm48_cell_options cell_options;
|
||||
struct gsm48_control_channel_descr chan_desc;
|
||||
struct bitvec neigh_list;
|
||||
struct bitvec cell_alloc;
|
||||
struct bitvec si5_neigh_list;
|
||||
struct osmo_earfcn_si2q si2quater_neigh_list;
|
||||
size_t uarfcn_length; /* index for uarfcn and scramble lists */
|
||||
struct {
|
||||
/* bitmask large enough for all possible ARFCN's */
|
||||
uint8_t neigh_list[1024/8];
|
||||
uint8_t cell_alloc[1024/8];
|
||||
/* If the user wants a different neighbor list in SI5 than in SI2 */
|
||||
uint8_t si5_neigh_list[1024/8];
|
||||
uint8_t meas_bw_list[MAX_EARFCN_LIST];
|
||||
uint16_t earfcn_list[MAX_EARFCN_LIST];
|
||||
uint16_t uarfcn_list[MAX_EARFCN_LIST];
|
||||
uint16_t scramble_list[MAX_EARFCN_LIST];
|
||||
} data;
|
||||
} si_common;
|
||||
|
||||
bool early_classmark_allowed;
|
||||
/* for testing only: Have an infinitely long radio link timeout */
|
||||
bool infinite_radio_link_timeout;
|
||||
|
|
|
@ -268,31 +268,6 @@ struct gsm_bts *gsm_bts_alloc_register(struct gsm_network *net, enum gsm_bts_typ
|
|||
bts->dtxd = false;
|
||||
bts->gprs.ctrl_ack_type_use_block = true; /* use RLC/MAC control block */
|
||||
bts->neigh_list_manual_mode = 0;
|
||||
bts->si_common.cell_sel_par.cell_resel_hyst = 2; /* 4 dB */
|
||||
bts->si_common.cell_sel_par.rxlev_acc_min = 0;
|
||||
bts->si_common.si2quater_neigh_list.arfcn = bts->si_common.data.earfcn_list;
|
||||
bts->si_common.si2quater_neigh_list.meas_bw = bts->si_common.data.meas_bw_list;
|
||||
bts->si_common.si2quater_neigh_list.length = MAX_EARFCN_LIST;
|
||||
bts->si_common.si2quater_neigh_list.thresh_hi = 0;
|
||||
osmo_earfcn_init(&bts->si_common.si2quater_neigh_list);
|
||||
bts->si_common.neigh_list.data = bts->si_common.data.neigh_list;
|
||||
bts->si_common.neigh_list.data_len =
|
||||
sizeof(bts->si_common.data.neigh_list);
|
||||
bts->si_common.si5_neigh_list.data = bts->si_common.data.si5_neigh_list;
|
||||
bts->si_common.si5_neigh_list.data_len =
|
||||
sizeof(bts->si_common.data.si5_neigh_list);
|
||||
bts->si_common.cell_alloc.data = bts->si_common.data.cell_alloc;
|
||||
bts->si_common.cell_alloc.data_len =
|
||||
sizeof(bts->si_common.data.cell_alloc);
|
||||
bts->si_common.rach_control.re = 1; /* no re-establishment */
|
||||
bts->si_common.rach_control.tx_integer = 9; /* 12 slots spread - 217/115 slots delay */
|
||||
bts->si_common.rach_control.max_trans = 3; /* 7 retransmissions */
|
||||
bts->si_common.rach_control.t2 = 4; /* no emergency calls */
|
||||
bts->si_common.chan_desc.att = 1; /* attachment required */
|
||||
bts->si_common.chan_desc.bs_pa_mfrms = RSL_BS_PA_MFRMS_5; /* paging frames */
|
||||
bts->si_common.chan_desc.bs_ag_blks_res = 1; /* reserved AGCH blocks */
|
||||
bts->si_common.chan_desc.t3212 = net->t3212; /* Use network's current value */
|
||||
gsm_bts_set_radio_link_timeout(bts, 32); /* Use RADIO LINK TIMEOUT of 32 */
|
||||
|
||||
llist_add_tail(&bts->list, &net->bts_list);
|
||||
|
||||
|
@ -404,43 +379,6 @@ int bts_depend_check(struct gsm_bts *bts)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* get the radio link timeout (based on SACCH decode errors, according
|
||||
* to algorithm specified in TS 05.08 section 5.2. A value of -1
|
||||
* indicates we should use an infinitely long timeout, which only works
|
||||
* with OsmoBTS as the BTS implementation */
|
||||
int gsm_bts_get_radio_link_timeout(const struct gsm_bts *bts)
|
||||
{
|
||||
const struct gsm48_cell_options *cell_options = &bts->si_common.cell_options;
|
||||
|
||||
if (bts->infinite_radio_link_timeout)
|
||||
return -1;
|
||||
else {
|
||||
/* Encoding as per Table 10.5.21 of TS 04.08 */
|
||||
return (cell_options->radio_link_timeout + 1) << 2;
|
||||
}
|
||||
}
|
||||
|
||||
/* set the radio link timeout (based on SACCH decode errors, according
|
||||
* to algorithm specified in TS 05.08 Section 5.2. A value of -1
|
||||
* indicates we should use an infinitely long timeout, which only works
|
||||
* with OsmoBTS as the BTS implementation */
|
||||
void gsm_bts_set_radio_link_timeout(struct gsm_bts *bts, int value)
|
||||
{
|
||||
struct gsm48_cell_options *cell_options = &bts->si_common.cell_options;
|
||||
|
||||
if (value < 0)
|
||||
bts->infinite_radio_link_timeout = true;
|
||||
else {
|
||||
bts->infinite_radio_link_timeout = false;
|
||||
/* Encoding as per Table 10.5.21 of TS 04.08 */
|
||||
if (value < 4)
|
||||
value = 4;
|
||||
if (value > 64)
|
||||
value = 64;
|
||||
cell_options->radio_link_timeout = (value >> 2) - 1;
|
||||
}
|
||||
}
|
||||
|
||||
bool classmark_is_r99(struct gsm_classmark *cm)
|
||||
{
|
||||
int rev_lev = 0;
|
||||
|
|
Loading…
Reference in New Issue