aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2021-12-13abis_nm: actively block BTSs with invalid configurationPhilipp Maier4-53/+63
At the moment the BTS configuration is checked, but the check does not have much consequence other than that some initialization that is not executed. The BTS will go into the OML bootstrap phase anyway and most likely fail at some later point due to the invalid configuration. To reduce noise and unexpected behaviour of the BTS lets make sure that the OML boostrap phase can only proceed when the BSC conciders the configuration as valid. Change-Id: I42c1c26a9b800600787b1266a871f95f2114c26e Related: SYS#5369
2021-12-06bts-examples: add example for E1 connected BTSPhilipp Maier1-0/+117
The manual lacks an example on how to set up an E1 connected BTS. Especially the relation between trunk number and E1 line number is not obvious. Change-Id: I02f5d4fe059e5cc9c3ffc2e3636d812532c09239 Related: OS#5308
2021-11-30fix assignment success counters: count *before* cleanup of fsm stateNeels Hofmeyr1-2/+2
Counting the Assignment success after osmo_fsm_inst_term() meant that we were counting a cleared out channel mode, which always yielded signalling mode. Count the Assignment success *before* terminating, so that we correctly count the successful assignment as speech mode. Related: SYS#4878 Related: Icb1386ec2ccd70eb3c026301b9b08ad7177278f7 (osmo-ttcn3-hacks) Change-Id: Ie9fcd1e86f27ecb2f11e2e8813faac365cb470b8
2021-11-30dbg log: also log assignment counters on BTS levelNeels Hofmeyr1-0/+8
Change-Id: I68b3e794ddf97c80f647c3536ec466217b338af9
2021-11-30fix chreq:* counters: typos in chreq:successful_* constantsNeels Hofmeyr1-7/+7
Related: SYS#4878 Related: I17a7702b151ac03fd9f7ecd6927ef42133aad953 (osmo-ttcn3-hacks) Change-Id: I1fde77d5d5920093ab037184eb3518876804353d
2021-11-29dbg log: abis_rsl print_meas_rep(): clarify rxlevNeels Hofmeyr1-1/+1
Change-Id: Ia2c1d59eac556b8f6a56c39abf12b35a3ba807eb
2021-11-29stats: add bsc.paging:expiredOliver Smith4-0/+11
Similar to paging:attempted, count paging:expired not only per BTS, but also for the whole BSC. Add active_paging_requests to struct bsc_subscr, to increase the counter only once if paging expires, and not once per BTS where paging expired. Related: SYS#4878 Change-Id: I9c118e7e3d61ed8c9f1951111255b196905eba4d
2021-11-29Cosmetic: osmo-bsc/osmo_bsc_bssap: fix formattingOliver Smith1-14/+7
Change-Id: Icc4947e68fa46aab180f2047231e51b997cca71b
2021-11-27ipaccess-config: request and print NM_ATT_IPACC_NV_FLAGSVadim Yanitskiy1-1/+30
Below is an example output: """ Received SIGNAL S_NM_GET_ATTR_REP { "primary_oml_ip": "192.168.100.100", "primary_oml_port": "0", "unit_id": "6969/0/0", "nv_flags": { "static-ip": "no", "static-gw": "no", "no-dhcp-vsi": "no", "dhcp-enabled": "yes", "led-enabled": "yes", "secondary-oml-enabled": "yes", "diag-enabled": "yes", "cli-enabled": "yes", "http-enabled": "no", "post-enabled": "yes", "snmp-enabled": "yes" } } """ Change-Id: Ic901910878529e6d8b152b3417463bae60644b82
2021-11-27ipaccess-config: improve readability of printed attribute responseVadim Yanitskiy1-2/+18
Change-Id: If99ec89081af4ebd65152fc0a31ebdec491f3876
2021-11-25Disable C/I based MS Power Control Loop by defaultPau Espin Pedrol2-13/+38
osmo-trx-uhd with a B200 has proven to provide bad (lower than usually considered good) C/I values due to high noise (even with band filters in place). Hence, default thresholds (gathered from literature on the topic) are too high and end up in bad algorithm output decisions. Furthermore, most users of Osmocom don't use it in densely populated areas, hence RXLEV based algorithm used when C/I based one is disabled is good enough. Let's disable C/I based one by default, and let advanced users which specific needs to enable and confiure thresholds specifically for their needs (hardware, cell surrounding conditions, etc.). Related: SYS#4917 Change-Id: If1a73c60695379bcfcd0f44c6ec6dd659563e279
2021-11-24hodec2: fix segv for inter-BSC ho targetNeels Hofmeyr1-19/+31
Related: OS#5324 SYS#5259 Change-Id: I5a3345ab0005a73597f5c27207480912a2f5aae6
2021-11-24bsc_subscr_conn_fsm: fix crash if !connOliver Smith1-0/+5
Do not crash in gscon_ensure_mgw_endpoint() if conn is NULL. Related: SYS#5728 Change-Id: Id579243cc9ebbe8f315cd11754166970329dc9cf
2021-11-19abis_nm: use struct sdp_firmware from libosmocorePhilipp Maier1-10/+6
abis_nm locally declares its own struct for the ipaccess firmware header, even though libosmocore defines it as well. Lets use the definition from libosmocore. Change-Id: I69cb45fc40bd20ea2533cc8cd6a68363b59cc408
2021-11-19abis_nm: fix typoPhilipp Maier1-1/+1
Change-Id: I2cb7b986db9d394db2c912247db861704d2c7c23
2021-11-16Bump version: 1.7.0.359-d13ef-dirty → 1.8.01.8.0Pau Espin Pedrol5-30/+407
Change-Id: Ibd4f22f268aa5ec3c1b7839e334ffad69f2e50a9
2021-11-16move time_cc to libosmocore osmo_time_ccNeels Hofmeyr16-1563/+56
Related: SYS#4878 Depends: Iabb17a08e6e1a86f168cdb008fba05ecd4776bdd (libosmocore) Change-Id: Ica9f908a1a30f334a24c59471affa11225117e12
2021-11-15osmo_bsc_main: move generate_ma_for_bts() into bootstrap_bts()Philipp Maier1-3/+4
The function generate_ma_for_bts() is called when the OML TEI comes up. In the same code path boostrap_bts() is called as well. It would be more logical to call generate_ma_for_bts() from boostrap_bts() since it is also part of the bootstrapping process. Change-Id: Ib2ed5b1eac3701cfb3a3e8dd478488ba5404d1fd Related: SYS#5369
2021-11-15osmo_bsc_main: call bootstrap_bts when OML TEI comes upPhilipp Maier1-1/+17
At the moment check_bts and bootstrap_bts is called only once on startup. When a new BTS is set up during runtime bootstrap_bts, nor check_bts is called. This means that some parameters of the BTS stay uninitalized until osmo-bsc is restarted. Lets rather call check_bts() and then bootstrap_bts() when the OML TEI of the BTS comes up. Change-Id: Ie599f809623efd6ea4ab3f39294195fc1ef84b85 Related: SYS#5369
2021-11-15[overpower] By default, permit only for speech channels using AMRVadim Yanitskiy4-15/+25
Change-Id: I087025f9db59348f2f70d4a291f8d887644d6b17 Related: SYS#5319
2021-11-15[overpower] Allow configuring specific channel mode(s)Vadim Yanitskiy5-7/+79
Change-Id: I34d29d7d0f66c629367f3d6e8a660e199ecbe080 Related: SYS#5319
2021-11-15abis_rsl: s/*_acch_cap_for_bts/put_*_acch_cap_ie/gVadim Yanitskiy1-7/+7
Change-Id: I663023adb4f2381d4b8debb01786801803b3d741
2021-11-15abis_rsl: {rep,top}_acch_cap_for_bts(): make *lchan constVadim Yanitskiy1-4/+4
Change-Id: I3e71bb88db7b1eadff5a73fdb98fe7eee2fc2540
2021-11-15struct gsm_bts: s/temporary_overpower/top_acch_cap/gVadim Yanitskiy4-15/+15
Let's have a short and consistent naming for both ACCH repetition and temporary ACCH overpower structures, like it's done in osmo-bts. Change-Id: I39b98dcd14219402959646524315d5afea7c08cf Related: Ib1d51f91139b4c2fe794e37fc8543b2d7a9b9c07
2021-11-15struct gsm_bts: s/repeated_acch_policy/rep_acch_cap/gVadim Yanitskiy4-22/+22
Let's have a short and consistent naming for both ACCH repetition and temporary ACCH overpower structures, like it's done in osmo-bts. Change-Id: Ia12c83ad1af4744ce28ba655ac806784f746e88a Related: Ib1d51f91139b4c2fe794e37fc8543b2d7a9b9c07
2021-11-15struct gsm_bts: simplify comments for ACCH repetition/overpowerVadim Yanitskiy1-5/+2
Change-Id: I75b0e289c47841aea22b5966487535cbe855c84f
2021-11-15bts_vty: fix tabs-vs-spaces issues in cfg_bts_rep_dl_facchVadim Yanitskiy1-4/+4
The linter (executed by Jenkins) complains: src/osmo-bsc/bts_vty.c:653: ERROR:CODE_INDENT: code indent should use tabs where possible src/osmo-bsc/bts_vty.c:654: ERROR:CODE_INDENT: code indent should use tabs where possible src/osmo-bsc/bts_vty.c:656: ERROR:CODE_INDENT: code indent should use tabs where possible src/osmo-bsc/bts_vty.c:657: ERROR:CODE_INDENT: code indent should use tabs where possible and blocks changes, adding V-1 when I am changing the related code. Change-Id: If3c8c09ddff7cb945425e74344ceb4da989ddffc
2021-11-15abis_rsl: cosmetic: fix coding style rep_acch_cap_for_bts()Vadim Yanitskiy1-1/+1
The linter (executed by Jenkins) complains: src/osmo-bsc/abis_rsl.c:543: ERROR:POINTER_LOCATION: "(foo*)" should be "(foo *)" and blocks changes, adding V-1 when I am changing the related code. Change-Id: I0cf00ff898e69734850659e8ba0e2ff023f9b2dd
2021-11-15abis_rsl: simplify checking if channel mode is AMRVadim Yanitskiy1-2/+2
Change-Id: If933ce0fa0a162c4518ddab840f186ebaa1bcff9
2021-11-15Properly handle dyn TS TCH with vamos after updating subslots_per_pchanPau Espin Pedrol1-5/+10
In the case of ts->pchan_from_config=GSM_PCHAN_OSMO_DYN, ts->max_primary_lchans will be 8 due to SDCCH8 support, and we don't want to set lchan->vamos.is_secondary=true for lchans at the end of the array. Related: OS#5278 Change-Id: If86af5fafe059d5e830c1f6d37034f7325d9a96c
2021-11-15tests/Makefile.am: do not try removing non-existing filesVadim Yanitskiy1-1/+0
Change-Id: I4be60c858cea891aa49fd9b8ca1dec9a6e3fc305
2021-11-14doc/manuals: fix wrong CI in the inter-BSC handover diagramVadim Yanitskiy1-1/+1
The 'bts0' in BSS 'Beta' has LAC=42/CI=3. There is no LAC=42/CI=6. Change-Id: I0f2e351e802311d4601579c2e755ca13a9056348
2021-11-12doc/manuals: add documentation for Temporary ACCH OverpowerVadim Yanitskiy1-0/+58
Change-Id: Ie995dac6c7083a2b0b4d582f71f55b3736381edb Related: SYS#5319
2021-11-11osmo_bsc_ctrl: make sure strtok results are checkedPhilipp Maier1-7/+14
The function set_bts_loc does not check the string pointers resturned by strtok_r. In this particular case this is not a problem because the function set_bts_lock will only see verfied input. However, lets check the results anyway to avoid creating false positives in coverity scan. Change-Id: Ie21c392e0405fc45811c6d55bf5508e9eb6784de Fixes: CID#240849
2021-11-10implement bts.N.cm_serv_rej:<cause> rate countersNeels Hofmeyr3-0/+202
Related: I0214b27da18af87eca9715ebf7eeeff945e3e12a (osmo-ttcn3-hacks) Related: SYS#4878 Change-Id: I79b1261e5a281d9797eaaf9c27d90edd8e27c78b
2021-11-10osmo_bsc_main: move inp_sig_cb() below check_bts and bootstrap_btsPhilipp Maier1-47/+47
In order to be able to call check_bts() and bootstrap_bts() from inp_sig_cb(), we must move it below bootstrap_bts. Change-Id: I1a365bc2278368ec1f5c0db3f3e466b124b16e83 Related: SYS#5369
2021-11-10osmo_bsc_main: separate checks from bootstrap_btsPhilipp Maier1-6/+11
The function bootstrap_bts does a few checks before it does the actual initialization. To make the code more modular, lets split the function into two functions, check_bts and bootstrap_bts. Also be sure that we print the BTS number when the check failes. Change-Id: Id2b26f147d2f35e156e2da8ee58d2bbbb93de4ac Related: SYS#5369
2021-11-10osmo_bsc_main: bootstrap_bts: print errornous ARFCN numberPhilipp Maier1-9/+9
The function bootstrap_bts verifies that the ARFCN number is within the valid range of the current band. In case of error it prints that the ARFCN is out of range, but it does not print the BTS number, nor the ARFCN number. Change-Id: I432448b4bd5ea1a209838a6c5105cc1e9f7d80ee
2021-11-10implement all_allocated:{static_sdcch,static_tch} rate countersNeels Hofmeyr6-0/+82
Same as all_allocated:{sdcch,tch}, but already trigger when all non-dynamic timeslots are allocated. Related: SYS#4878 Related: Ib3997a827c9cc43d1361bb0cf3bfab9f6d91bf82 (osmo-ttcn3-hacks) Change-Id: I2fa14531f16d3f07085620f1c50eb839c420da6a
2021-11-10implement all_allocated:{sdcch,tch} rate countersNeels Hofmeyr9-0/+137
Based on allAvailable{SDCCH,TCH}Allocated performance indicators, see 3GPP TS 52.402. Related: SYS#4878 Related: Ib3997a827c9cc43d1361bb0cf3bfab9f6d91bf82 (osmo-ttcn3-hacks) Change-Id: I8b06e435a224c8708cd6c67e97ee5413718fc1ed
2021-11-10add time_cc API: cumlative counter for time, reported as rate_ctrNeels Hofmeyr10-0/+1508
This is a candidate for adding to libosmocore (as osmo_time_cc), but let's first use this in osmo-bsc to make sure that it works as intended. I started out expecting to be done with this in half an hour, but I found out that accumulating elapsed time to an integer counter has a staggering amount of complexity to it, and a million pitfalls. The intended use is to report allAvailableSDCCHAllocated and allAvailableTCHAllocated performance indicators in OsmoBSC. Hopefully this will also be generally useful elsewhere, to be worth the effort. Related: SYS#4878 Change-Id: Icdd36f27cb54b2e1b940c9e6404ba9dd3692a310
2021-11-10refactor lchan countingNeels Hofmeyr10-72/+238
Add chan_counts_for_trx() and chan_counts_for_bts(). Drop bts_count_free_ts() and trx_count_free_ts(). Rationale: The bts_count_free_ts() and trx_count_free_ts() always returned the number of free lchans, not timeslots. Hence, passing the pchan type as argument never really matched the semantics. Especially, when looking for free SDCCH, there is no clear match on a gsm_phys_chan_config enum value: SDCCH8_SACCH8C, CCCH_SDCCH4, CCCH_SDCCH4_CBCH, SDCCH8_SACCH8C_CBCH? -- GSM_LCHAN_SDCCH is clear. ==> Rather count free lchans by enum gsm_chan_t. Counting lchans of distinct types required separate iterations for each lchan type. ==> Rather compose an array of counts for all types, in one go. I need to count the amount of free SDCCH lchans in an upcoming patch to implement the performance indicator allAvailableAllocatedSDCCH (cumulate time for which no SDCCH are available). To implement allAvailableAllocated{SDCCH,TCH}, I need a count of both the used as well as the total lchans for a type: it does not make sense to flag "all available allocated" if none are ever available. To properly count dynamic ts, I need the maximum total that can be possible at any time. And to count currently free lchans, I need the current total. This may seem counter intuitive, but consider, e.g.: - Obviously, if a cell has only static TCH/F timeslots, it does not make sense to flag that all available TCH/H are occupied, because no TCH/H are available ever. Just stating this as contrast to dyn TS. - If a cell has OSMO_DYN timeslots, I *do* want to flag that all TCH/H are occupied when all dyn timeslots are fully occupied. - If those OSMO_DYN however are all used as TCH/F, the current total of TCH/H becomes zero, and it seems like TCH/H should not be considered. - To count the nr of currently free lchans, I need the currently possible total of lchans and the nr of occupied lchans. So return both a maximum total and a current total of lchans. In above example, the maximum total shows that there would be TCH/H possible. BTW, it would be nice to keep a chan_counts array on trx, bts and bsc level and update as channels are allocated and released, instead of counting them all over periodically. But it's less error prone this way. Related: SYS#4878 Change-Id: I2fb48c549186db812b1e9d6b735a92e80f27b8d3
2021-11-10gsm_data: use ascending order for interference boundariesVadim Yanitskiy4-16/+16
It's more logical to have the boundaries sorted in ascending order: * band 1 represents lowest interference levels, * band 5 represents highest interference levels. Change-Id: Ie9bf4bf0c89418685b8ea5096332d22cfba7c521 Related: SYS#5313
2021-11-10doc/manuals: add documentation for interference reportingVadim Yanitskiy2-0/+74
Change-Id: I3c15b11bbcba0811e3a15fe64365067bf8ad0dae Related: SYS#5313
2021-11-08ipaccess-config: warn about unknown flag nameVadim Yanitskiy1-1/+3
Change-Id: Iab3bae3af9e1cac992b1f8947cda25fcff647992
2021-11-08ipaccess-config: fix wrong flag name in ipa_nvflag_strs[]Vadim Yanitskiy1-1/+1
Change-Id: Idf8e3a9ee6d9a8801d53254c772548586d4a9c60
2021-11-08ipaccess-config: reduce verbosity of the OML loggingVadim Yanitskiy1-1/+1
Change-Id: Ie52db9236da15da540e14cad56e01c2246b3e82e
2021-11-08abis_rsl: permit simultaneous ACCH repetition and overpowerVadim Yanitskiy1-18/+3
As stated in "GSM/EDGE Evolution and Performance", section 12.3, both features *can* be enabled simultaneously. Change-Id: I2189f01bd78625dab3d642597240338ee581fc98 Related: SYS#5319
2021-11-07abis_rsl: print_meas_rep_{buf,uni}() accept const *mrVadim Yanitskiy1-5/+7
Change-Id: I5c3e27a00cd84f102558499072965ec538f5a87f
2021-11-07abis_rsl: do not pass lchan to print_meas_rep_buf()Vadim Yanitskiy1-16/+11
Change-Id: If965c7dc6b989ee758ddec0190ec1cce8363b240