aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bsc/osmo_bsc_main.c
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2021-04-18 15:58:35 +0200
committerneels <nhofmeyr@sysmocom.de>2021-04-22 18:50:32 +0000
commitc1a5310a3ed75ff24dc2d6a48c09d8dfc89d944c (patch)
tree8473c2a0a7af782ff80dee2b9e7c3737bc5cdd22 /src/osmo-bsc/osmo_bsc_main.c
parent5bc54d6ce88fb25bfd211d1659b2aa366ae8077e (diff)
update neighbor ARFCNs on startup and config changes
The effects of the neighbor configuration depend on the LAC, Cell Identity, ARFCN, BSIC configuration of neighbor cells. Make sure that the neighbor ARFCN list in the System Information is updated. This may seem rather aggressive: updating the SI of all BTS if only one config item changed. But indeed even modifying one config item of one BTS may cause a change in the neighbor relations that many other BTS may have to the changed BTS. For example, if many BTS configure a 'neighbor lac-ci 42 23', and this cell's config changes to LAC 43, all of those other BTS need to update their neighbor ARFCNs. Also update the system information even before the BTS are connected and started up. The main benefit here is that the VTY 'show bts N' command then already lists the correct neighbor ARFCNs. In gsm_bts_trx_set_system_infos(), make sure that the updated SI is only sent to TRXes that are actually usable, otherwise abis_rsl_sendmsg() spams the log with complaints that a message's dst == NULL. Still return an error rc in case a TRX is not connected, so that the CTRL command bts.N.send-new-system-informations accurately returns whether SI were actually sent to all TRXes. The desire to have the ARFCNs listed in the VTY before starting up BTSes came during analysis for Ifb54d9a91e9bca032c721f12c873c6216733e7b1, which fixes a bug that is now much easier to verify being fixed. Change-Id: I2222e029fc225152e124ed1e8887f1ffd4a107ef
Diffstat (limited to 'src/osmo-bsc/osmo_bsc_main.c')
-rw-r--r--src/osmo-bsc/osmo_bsc_main.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/osmo-bsc/osmo_bsc_main.c b/src/osmo-bsc/osmo_bsc_main.c
index 3069cc02f..fd41b7491 100644
--- a/src/osmo-bsc/osmo_bsc_main.c
+++ b/src/osmo-bsc/osmo_bsc_main.c
@@ -942,6 +942,10 @@ int main(int argc, char **argv)
exit(1);
}
+ /* Make the 'show bts' information list the neighbor ARFCNs by updating the
+ * system_information.si_common.neigh_list. */
+ gsm_net_set_system_infos();
+
/* start control interface after reading config for
* ctrl_vty_get_bind_addr() */
bsc_gsmnet->ctrl = bsc_controlif_setup(bsc_gsmnet,