mirror of
https://gitea.osmocom.org/cellular-infrastructure/osmo-mgw.git
synced 2025-10-23 08:12:01 +00:00
libbsc: Move SIs update/generation for a BTS into a separate function.
The code to do that doesn't belong to the control interface, so abstract it out to a separate function gsm_bts_set_system_infos(). [hfreyther: Fix the coding style...]
This commit is contained in:
committed by
Holger Hans Peter Freyther
parent
9cb249bf84
commit
c36a13b073
@@ -438,6 +438,7 @@ void gsm_trx_lock_rf(struct gsm_bts_trx *trx, int locked);
|
||||
int gsm_bts_has_feature(struct gsm_bts *bts, enum gsm_bts_features feat);
|
||||
struct gsm_bts_trx *gsm_bts_trx_by_nr(struct gsm_bts *bts, int nr);
|
||||
int gsm_bts_trx_set_system_infos(struct gsm_bts_trx *trx);
|
||||
int gsm_bts_set_system_infos(struct gsm_bts *bts);
|
||||
|
||||
/* generic E1 line operations for all ISDN-based BTS. */
|
||||
extern struct e1inp_line_ops bts_isdn_e1inp_line_ops;
|
||||
|
@@ -202,20 +202,12 @@ static int get_bts_si(struct ctrl_cmd *cmd, void *data)
|
||||
static int set_bts_si(struct ctrl_cmd *cmd, void *data)
|
||||
{
|
||||
struct gsm_bts *bts = cmd->node;
|
||||
struct gsm_bts_trx *trx;
|
||||
int rc;
|
||||
|
||||
/* Generate a new ID */
|
||||
bts->bcch_change_mark += 1;
|
||||
bts->bcch_change_mark %= 0x7;
|
||||
|
||||
llist_for_each_entry(trx, &bts->trx_list, list) {
|
||||
int rc;
|
||||
|
||||
rc = gsm_bts_trx_set_system_infos(trx);
|
||||
if (rc != 0) {
|
||||
cmd->reply = "Failed to generate SI";
|
||||
return CTRL_CMD_ERROR;
|
||||
}
|
||||
rc = gsm_bts_set_system_infos(bts);
|
||||
if (rc != 0) {
|
||||
cmd->reply = "Failed to generate SI";
|
||||
return CTRL_CMD_ERROR;
|
||||
}
|
||||
|
||||
cmd->reply = "Generated new System Information";
|
||||
|
@@ -120,7 +120,7 @@ static int rsl_si(struct gsm_bts_trx *trx, enum osmo_sysinfo_type i, int si_len)
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* set all system information types */
|
||||
/* set all system information types for a TRX */
|
||||
int gsm_bts_trx_set_system_infos(struct gsm_bts_trx *trx)
|
||||
{
|
||||
int i, rc;
|
||||
@@ -197,6 +197,26 @@ err_out:
|
||||
return rc;
|
||||
}
|
||||
|
||||
/* set all system information types for a BTS */
|
||||
int gsm_bts_set_system_infos(struct gsm_bts *bts)
|
||||
{
|
||||
struct gsm_bts_trx *trx;
|
||||
|
||||
/* Generate a new ID */
|
||||
bts->bcch_change_mark += 1;
|
||||
bts->bcch_change_mark %= 0x7;
|
||||
|
||||
llist_for_each_entry(trx, &bts->trx_list, list) {
|
||||
int rc;
|
||||
|
||||
rc = gsm_bts_trx_set_system_infos(trx);
|
||||
if (rc != 0)
|
||||
return rc;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Produce a MA as specified in 10.5.2.21 */
|
||||
static int generate_ma_for_ts(struct gsm_bts_trx_ts *ts)
|
||||
{
|
||||
|
Reference in New Issue
Block a user