This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.
msuraev at sysmocom.de msuraev at sysmocom.deFrom: Max <msuraev at sysmocom.de> Add convertors for gsm48_chan_mode and gsm_chan_t types which are useful for debugging. --- include/osmocom/gsm/gsm_utils.h | 2 ++ include/osmocom/gsm/protocol/gsm_04_08.h | 2 ++ src/gsm/gsm48.c | 17 +++++++++++++++++ src/gsm/gsm_utils.c | 17 +++++++++++++++++ src/gsm/libosmogsm.map | 2 ++ 5 files changed, 40 insertions(+) diff --git a/include/osmocom/gsm/gsm_utils.h b/include/osmocom/gsm/gsm_utils.h index 6458447..c9c565e 100644 --- a/include/osmocom/gsm/gsm_utils.h +++ b/include/osmocom/gsm/gsm_utils.h @@ -199,6 +199,8 @@ enum gsm_chan_t { _GSM_LCHAN_MAX }; +const char * osmo_gsm48_chan_type2str(enum gsm_chan_t type); + /* Deprectated functions */ /* Limit encoding and decoding to use no more than this amount of buffer bytes */ #define GSM_7BIT_LEGACY_MAX_BUFFER_SIZE 0x10000 diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h index d49b77f..78aaef2 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08.h +++ b/include/osmocom/gsm/protocol/gsm_04_08.h @@ -347,6 +347,8 @@ enum gsm48_chan_mode { GSM48_CMODE_DATA_3k6 = 0x13, }; +const char * osmo_gsm48_chan_mode2str(enum gsm48_chan_mode); + /* Chapter 9.1.2 */ struct gsm48_ass_cmd { /* Semantic is from 10.5.2.5a */ diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index d0a2286..494c013 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -197,6 +197,23 @@ static const char *cc_state_names[32] = { "illegal state 31", }; +static const struct value_string gsm48_chan_modes[] = { + {GSM48_CMODE_SIGN, "SIGNALLING"}, + {GSM48_CMODE_SPEECH_V1, "SPEECH_V1"}, + {GSM48_CMODE_SPEECH_EFR, "SPEECH_EFR"}, + {GSM48_CMODE_SPEECH_AMR, "SPEECH_AMR"}, + {GSM48_CMODE_DATA_14k5, "DATA_14k5"}, + {GSM48_CMODE_DATA_12k0, "DATA_12k0"}, + {GSM48_CMODE_DATA_6k0, "DATA_6k0"}, + {GSM48_CMODE_DATA_3k6, "DATA_3k6"}, + { 0, NULL }, +}; + +const char * osmo_gsm48_chan_mode2str(enum gsm48_chan_mode mode) +{ + return get_value_string(gsm48_chan_modes, mode); +} + const char *gsm48_cc_state_name(uint8_t state) { if (state < ARRAY_SIZE(cc_state_names)) diff --git a/src/gsm/gsm_utils.c b/src/gsm/gsm_utils.c index e8e452f..16a4117 100644 --- a/src/gsm/gsm_utils.c +++ b/src/gsm/gsm_utils.c @@ -691,6 +691,23 @@ uint32_t gprs_tmsi2tlli(uint32_t p_tmsi, enum gprs_tlli_type type) return tlli; } +static const struct value_string gsm48_chan_types[] = { + { GSM_LCHAN_NONE, "NONE"}, + { GSM_LCHAN_SDCCH, "SDCCH"}, + { GSM_LCHAN_TCH_F, "TCH_F"}, + { GSM_LCHAN_TCH_H, "TCH_H"}, + { GSM_LCHAN_UNKNOWN, "UNKNOWN"}, + { GSM_LCHAN_CCCH, "CCCH"}, + { GSM_LCHAN_PDTCH, "PDTCH"}, + { GSM_LCHAN_CBCH, "CBCH"}, + { 0, NULL }, +}; + +const char * osmo_gsm48_chan_type2str(enum gsm_chan_t type) +{ + return get_value_string(gsm48_chan_types, type); +} + /* Wrappers for deprecated functions: */ int gsm_7bit_decode(char *text, const uint8_t *user_data, uint8_t septet_l) diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index a6908a2..411daf2 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -25,6 +25,8 @@ abis_nm_osmo_magic; abis_nm_ipa_magic; osmo_sitype_strs; +osmo_gsm48_chan_type2str; +osmo_gsm48_chan_mode2str; comp128; dbm2rxlev; -- 2.7.4