diff options
author | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-11-16 12:59:46 +0100 |
---|---|---|
committer | Pau Espin Pedrol <pespin@sysmocom.de> | 2018-11-20 16:56:28 +0000 |
commit | c8772517d9dc32da7c5e8741155e4ab638c2d01e (patch) | |
tree | 8d33db38323a32f51dc1b81a79151ddd2d92d626 /include/osmocom/gsm | |
parent | 738782467f70e13b1c6667aceb6747c2f3755f61 (diff) |
gsm: Deprecate buggy gsm_arfcn2band API and introduce gsm_arfcn2band_rc
ARFCNs are values in well defined ranges. Until this patch, ARFCNs not
belonging to any band were blindly assigned to DCS1800 by
gsm_arfcn2band, causing unnoticed bugs and misconfigurations in
osmo-bsc.
Previous API gsm_arfcn2band cannot accomodate this kind of check easily,
so let's deprecate it to tell people to use a new API gsm_arfcn2band_rc
which performs this kind of checks and allows callers to log failures,
misconfigurations, etc.
At the same time, modify implementation of gsm_arfcn2band to abort if an
invalid ARFCN is passed, this way users of this API can notice they are
passing wrong data to it that most probably will produce unexpected
results.
Related: OS#3063
Change-Id: I780d452dcebce385469e32ef2fd844df6033393a
Diffstat (limited to 'include/osmocom/gsm')
-rw-r--r-- | include/osmocom/gsm/gsm_utils.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/osmocom/gsm/gsm_utils.h b/include/osmocom/gsm/gsm_utils.h index 7eda5b9f..fe5903db 100644 --- a/include/osmocom/gsm/gsm_utils.h +++ b/include/osmocom/gsm/gsm_utils.h @@ -161,7 +161,8 @@ static inline int rach_max_trans_raw2val(int raw) { #define ARFCN_UPLINK 0x4000 #define ARFCN_FLAG_MASK 0xf000 /* Reserve the upper 5 bits for flags */ -enum gsm_band gsm_arfcn2band(uint16_t arfcn); +int gsm_arfcn2band_rc(uint16_t arfcn, enum gsm_band *band); +enum gsm_band gsm_arfcn2band(uint16_t arfcn) OSMO_DEPRECATED("Use gsm_arfcn2band_rc() instead"); /* Convert an ARFCN to the frequency in MHz * 10 */ uint16_t gsm_arfcn2freq10(uint16_t arfcn, int uplink); |