diff options
author | Neels Hofmeyr <neels@hofmeyr.de> | 2021-03-09 17:11:45 +0100 |
---|---|---|
committer | Neels Hofmeyr <neels@hofmeyr.de> | 2021-03-24 21:22:21 +0100 |
commit | 764449ec2ea6d6b45239278eae90613df8c93f59 (patch) | |
tree | f25eeef115083e20eaa7c4713b18d1889e7b865e /tests/ctrl | |
parent | dc60505bc585b1d5f61aa7190b3a2f14fecacaa1 (diff) |
fix/refactor neighbor config
The neighbor configuration storage is fundamentally broken: it requires
all local cells to be configured before being able to list them as
neighbors of each other. Upon config write-back, the neighbor config
however is placed back inline with the other config, and hence a
written-out neighbor config no longer works on program restart.
The cause of this problem is that the config is stored as explicit
pointers between local cells (struct gsm_bts), which of course requires
the pointer to exist before being able to reference it.
Instead, store the actual configuration that the user entered as-is,
without pointers or references to objects that need to be ready. Resolve
the neighbors every time a neighbor is needed.
Hence the user may enter any config at any place in the config file,
even non-working config (like a BTS number that doesn't exist), and the
relation to actual local or remote neighbor cells is made at runtime.
Abort program startup if the initial neighbor configuration contains
errors.
Related: OS#5018
Change-Id: I9ed992f8bfff888b3933733c0576f92d50f2625b
Diffstat (limited to 'tests/ctrl')
-rw-r--r-- | tests/ctrl/osmo-bsc-neigh-test.cfg | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/tests/ctrl/osmo-bsc-neigh-test.cfg b/tests/ctrl/osmo-bsc-neigh-test.cfg index 2fbc8f806..7ef8271fe 100644 --- a/tests/ctrl/osmo-bsc-neigh-test.cfg +++ b/tests/ctrl/osmo-bsc-neigh-test.cfg @@ -47,6 +47,8 @@ network codec-support fr gprs mode gprs gprs routing area 5 + ! local neigh, refers to bts 1: + neighbor cgi-ps 1 1 1 6 123 ! remote neigh: neighbor cgi-ps 23 42 423 2 5 arfcn 23 bsic 32 trx 0 @@ -134,9 +136,6 @@ network timeslot 7 phys_chan_config TCH/F hopping enabled 0 - bts 0 - ! local neigh, refers to bts 1: - neighbor cgi-ps 1 1 1 6 123 msc 0 type normal allow-emergency allow |