From 680acae725b2b8dda2f239ff20073306fdfb3f6e Mon Sep 17 00:00:00 2001 From: Philipp Maier Date: Thu, 1 Mar 2018 19:13:05 +0100 Subject: features: move bts feature related functionality to libosmocore osmo-bsc and osmo-bts share enums and value strings to describe feature data that is exchanged via OML (manufacturer id) on startup. Also the functions to set and get the respecitive bits in the feature bitvectors are in osmo-bsc and osmo-bts. This is a code duplication and should be resolved. - add enum osmo_bts_features (replaces enum gsm_bts_features) - add osmo_bts_features_descs (replaces gsm_bts_features_descs) - add osmo_bts_set_feature (replaces gsm_btsmodel_set_feature) - add osmo_bts_has_feature (replaces gsm_btsmodel_has_feature) Change-Id: Id0c35aef11aa49aa40abe7deef1f9dbd12210776 --- src/gsm/Makefile.am | 2 +- src/gsm/bts_features.c | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ src/gsm/libosmogsm.map | 2 ++ 3 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 src/gsm/bts_features.c (limited to 'src') diff --git a/src/gsm/Makefile.am b/src/gsm/Makefile.am index b0d6dbd2..0439ce62 100644 --- a/src/gsm/Makefile.am +++ b/src/gsm/Makefile.am @@ -30,7 +30,7 @@ libgsmint_la_SOURCES = a5.c rxlev_stat.c tlv_parser.c comp128.c comp128v23.c \ milenage/aes-internal.c milenage/aes-internal-enc.c \ milenage/milenage.c gan.c ipa.c gsm0341.c apn.c \ gsup.c gprs_gea.c gsm0503_conv.c oap.c gsm0808_utils.c \ - gsm23003.c mncc.c + gsm23003.c mncc.c bts_features.c libgsmint_la_LDFLAGS = -no-undefined libgsmint_la_LIBADD = $(top_builddir)/src/libosmocore.la diff --git a/src/gsm/bts_features.c b/src/gsm/bts_features.c new file mode 100644 index 00000000..4ec24fa2 --- /dev/null +++ b/src/gsm/bts_features.c @@ -0,0 +1,48 @@ +/*! \file bts_features.c + * osmo-bts features. */ +/* + * (C) 2018 by sysmocom s.f.m.c. GmbH + * + * SPDX-License-Identifier: GPL-2.0+ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + */ + +#include + +const struct value_string osmo_bts_features_descs[] = { + { BTS_FEAT_HSCSD, "HSCSD" }, + { BTS_FEAT_GPRS, "GPRS" }, + { BTS_FEAT_EGPRS, "EGPRS" }, + { BTS_FEAT_ECSD, "ECSD" }, + { BTS_FEAT_HOPPING, "Frequency Hopping" }, + { BTS_FEAT_MULTI_TSC, "Multi-TSC" }, + { BTS_FEAT_OML_ALERTS, "OML Alerts" }, + { BTS_FEAT_AGCH_PCH_PROP, "AGCH/PCH proportional allocation" }, + { BTS_FEAT_CBCH, "CBCH" }, + { BTS_FEAT_SPEECH_F_V1, "Fullrate speech V1" }, + { BTS_FEAT_SPEECH_H_V1, "Halfrate speech V1" }, + { BTS_FEAT_SPEECH_F_EFR, "Fullrate speech EFR" }, + { BTS_FEAT_SPEECH_F_AMR, "Fullrate speech AMR" }, + { BTS_FEAT_SPEECH_H_AMR, "Halfrate speech AMR" }, + { 0, NULL } +}; + +/*! return string representation of a BTS feature */ +const char *osmo_bts_feature_name(enum osmo_bts_features feature) +{ + return get_value_string(osmo_bts_features_descs, feature); +} diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 0a1c0c6f..b9035041 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -262,6 +262,8 @@ gsm48_mcc_mnc_to_bcd; gsm48_mcc_mnc_from_bcd; gsm48_generate_lai2; gsm48_decode_lai2; +osmo_bts_features_descs; +osmo_bts_feature_name; osmo_plmn_to_bcd; osmo_plmn_from_bcd; osmo_mcc_name; -- cgit v1.2.3