Philipp Maier | 680acae | 2018-03-01 19:13:05 +0100 | [diff] [blame] | 1 | /*! \file bts_features.c |
| 2 | * osmo-bts features. */ |
| 3 | /* |
| 4 | * (C) 2018 by sysmocom s.f.m.c. GmbH |
| 5 | * |
| 6 | * SPDX-License-Identifier: GPL-2.0+ |
| 7 | * |
| 8 | * This program is free software; you can redistribute it and/or modify |
| 9 | * it under the terms of the GNU General Public License as published by |
| 10 | * the Free Software Foundation; either version 2 of the License, or |
| 11 | * (at your option) any later version. |
| 12 | * |
| 13 | * This program is distributed in the hope that it will be useful, |
| 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 16 | * GNU General Public License for more details. |
| 17 | * |
| 18 | * You should have received a copy of the GNU General Public License |
| 19 | * along with this program; if not, write to the Free Software |
| 20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
| 21 | * MA 02110-1301, USA. |
| 22 | */ |
| 23 | |
| 24 | #include <osmocom/gsm/bts_features.h> |
| 25 | |
| 26 | const struct value_string osmo_bts_features_descs[] = { |
| 27 | { BTS_FEAT_HSCSD, "HSCSD" }, |
| 28 | { BTS_FEAT_GPRS, "GPRS" }, |
| 29 | { BTS_FEAT_EGPRS, "EGPRS" }, |
| 30 | { BTS_FEAT_ECSD, "ECSD" }, |
| 31 | { BTS_FEAT_HOPPING, "Frequency Hopping" }, |
| 32 | { BTS_FEAT_MULTI_TSC, "Multi-TSC" }, |
| 33 | { BTS_FEAT_OML_ALERTS, "OML Alerts" }, |
| 34 | { BTS_FEAT_AGCH_PCH_PROP, "AGCH/PCH proportional allocation" }, |
| 35 | { BTS_FEAT_CBCH, "CBCH" }, |
| 36 | { BTS_FEAT_SPEECH_F_V1, "Fullrate speech V1" }, |
| 37 | { BTS_FEAT_SPEECH_H_V1, "Halfrate speech V1" }, |
| 38 | { BTS_FEAT_SPEECH_F_EFR, "Fullrate speech EFR" }, |
| 39 | { BTS_FEAT_SPEECH_F_AMR, "Fullrate speech AMR" }, |
| 40 | { BTS_FEAT_SPEECH_H_AMR, "Halfrate speech AMR" }, |
Harald Welte | 994df26 | 2019-09-03 16:52:09 +0200 | [diff] [blame] | 41 | { BTS_FEAT_ETWS_PN, "ETWS Primary Notification via PCH" }, |
Harald Welte | 1793334 | 2020-06-21 15:32:41 +0200 | [diff] [blame] | 42 | { BTS_FEAT_PAGING_COORDINATION, "BSS Paging Coordination" }, |
Alexander Couzens | 03a4213 | 2020-06-07 22:53:31 +0200 | [diff] [blame] | 43 | { BTS_FEAT_IPV6_NSVC, "NSVC IPv6" }, |
Vadim Yanitskiy | 7e104d9 | 2021-01-07 14:22:45 +0100 | [diff] [blame] | 44 | { BTS_FEAT_ACCH_REP, "FACCH/SACCH Repetition" }, |
Pau Espin Pedrol | 3e3f377 | 2021-01-29 17:12:14 +0100 | [diff] [blame] | 45 | { BTS_FEAT_CCN, "Cell Change Notification (CCN)" }, |
Neels Hofmeyr | 158bc79 | 2021-03-27 17:14:57 +0100 | [diff] [blame] | 46 | { BTS_FEAT_VAMOS, "VAMOS (Voice services over Adaptive Multi-user channels on One Slot)" }, |
Pau Espin Pedrol | 42bb125 | 2021-05-31 17:11:45 +0200 | [diff] [blame] | 47 | { BTS_FEAT_ABIS_OSMO_PCU, "OsmoPCU over OML link IPA multiplex" }, |
Philipp Maier | 680acae | 2018-03-01 19:13:05 +0100 | [diff] [blame] | 48 | { 0, NULL } |
| 49 | }; |
| 50 | |
Neels Hofmeyr | 47c7b4f | 2021-04-02 23:20:09 +0200 | [diff] [blame] | 51 | /*! return description string of a BTS feature (osmo_bts_features_descs). |
| 52 | * To get the plain feature name, use osmo_bts_features_name() instead. */ |
Philipp Maier | 680acae | 2018-03-01 19:13:05 +0100 | [diff] [blame] | 53 | const char *osmo_bts_feature_name(enum osmo_bts_features feature) |
| 54 | { |
| 55 | return get_value_string(osmo_bts_features_descs, feature); |
| 56 | } |
Neels Hofmeyr | 47c7b4f | 2021-04-02 23:20:09 +0200 | [diff] [blame] | 57 | |
| 58 | const struct value_string osmo_bts_features_names[] = { |
| 59 | { BTS_FEAT_HSCSD, "HSCSD" }, |
| 60 | { BTS_FEAT_GPRS, "GPRS" }, |
| 61 | { BTS_FEAT_EGPRS, "EGPRS" }, |
| 62 | { BTS_FEAT_ECSD, "ECSD" }, |
| 63 | { BTS_FEAT_HOPPING, "HOPPING" }, |
| 64 | { BTS_FEAT_MULTI_TSC, "MULTI_TSC" }, |
| 65 | { BTS_FEAT_OML_ALERTS, "OML_ALERTS" }, |
| 66 | { BTS_FEAT_AGCH_PCH_PROP, "AGCH_PCH_PROP" }, |
| 67 | { BTS_FEAT_CBCH, "CBCH" }, |
| 68 | { BTS_FEAT_SPEECH_F_V1, "SPEECH_F_V1" }, |
| 69 | { BTS_FEAT_SPEECH_H_V1, "SPEECH_H_V1" }, |
| 70 | { BTS_FEAT_SPEECH_F_EFR, "SPEECH_F_EFR" }, |
| 71 | { BTS_FEAT_SPEECH_F_AMR, "SPEECH_F_AMR" }, |
| 72 | { BTS_FEAT_SPEECH_H_AMR, "SPEECH_H_AMR" }, |
| 73 | { BTS_FEAT_ETWS_PN, "ETWS_PN" }, |
| 74 | { BTS_FEAT_PAGING_COORDINATION, "PAGING_COORDINATION" }, |
| 75 | { BTS_FEAT_IPV6_NSVC, "IPV6_NSVC" }, |
| 76 | { BTS_FEAT_ACCH_REP, "ACCH_REP" }, |
| 77 | { BTS_FEAT_CCN, "CCN" }, |
| 78 | { BTS_FEAT_VAMOS, "VAMOS" }, |
Pau Espin Pedrol | 42bb125 | 2021-05-31 17:11:45 +0200 | [diff] [blame] | 79 | { BTS_FEAT_ABIS_OSMO_PCU, "ABIS_OSMO_PCU" }, |
Neels Hofmeyr | 47c7b4f | 2021-04-02 23:20:09 +0200 | [diff] [blame] | 80 | {} |
| 81 | }; |