From dbd994c05ba1f9881f884a7aa1e7d88054b7492e Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Thu, 9 Mar 2017 23:07:02 +0100 Subject: add gsm48_pdisc_names and gsm48_pdisc_name() I often want to log the protocol discriminator in the openbsc debug log. It's more useful to get the name directly instead of looking it up every time. Change-Id: I0f053e2a4360b27ffccda7cf82469fb1b1cbb3ae --- include/osmocom/gsm/protocol/gsm_04_08.h | 4 ++++ src/gsm/gsm48.c | 19 +++++++++++++++++++ src/gsm/libosmogsm.map | 1 + 3 files changed, 24 insertions(+) diff --git a/include/osmocom/gsm/protocol/gsm_04_08.h b/include/osmocom/gsm/protocol/gsm_04_08.h index 522015ac..87debba9 100644 --- a/include/osmocom/gsm/protocol/gsm_04_08.h +++ b/include/osmocom/gsm/protocol/gsm_04_08.h @@ -926,6 +926,10 @@ struct gsm48_rr_status { #define GSM48_PDISC_MASK 0x0f #define GSM48_PDISC_USSD 0x11 +extern const struct value_string gsm48_pdisc_names[]; +static inline const char *gsm48_pdisc_name(uint8_t val) +{ return get_value_string(gsm48_pdisc_names, val); } + bool gsm48_hdr_gmm_cipherable(const struct gsm48_hdr *hdr); static inline uint8_t gsm48_hdr_pdisc(const struct gsm48_hdr *hdr) diff --git a/src/gsm/gsm48.c b/src/gsm/gsm48.c index b626f82b..d4088977 100644 --- a/src/gsm/gsm48.c +++ b/src/gsm/gsm48.c @@ -678,3 +678,22 @@ int gsm48_number_of_paging_subchannels(struct gsm48_control_channel_descr *chan_ else return n_pag_blocks * (chan_desc->bs_pa_mfrms + 2); } + +const struct value_string gsm48_pdisc_names[] = { + OSMO_VALUE_STRING(GSM48_PDISC_GROUP_CC), + OSMO_VALUE_STRING(GSM48_PDISC_BCAST_CC), + OSMO_VALUE_STRING(GSM48_PDISC_PDSS1), + OSMO_VALUE_STRING(GSM48_PDISC_CC), + OSMO_VALUE_STRING(GSM48_PDISC_PDSS2), + OSMO_VALUE_STRING(GSM48_PDISC_MM), + OSMO_VALUE_STRING(GSM48_PDISC_RR), + OSMO_VALUE_STRING(GSM48_PDISC_MM_GPRS), + OSMO_VALUE_STRING(GSM48_PDISC_SMS), + OSMO_VALUE_STRING(GSM48_PDISC_SM_GPRS), + OSMO_VALUE_STRING(GSM48_PDISC_NC_SS), + OSMO_VALUE_STRING(GSM48_PDISC_LOC), + OSMO_VALUE_STRING(GSM48_PDISC_EXTEND), + OSMO_VALUE_STRING(GSM48_PDISC_MASK), + OSMO_VALUE_STRING(GSM48_PDISC_USSD), + { 0, NULL } +}; diff --git a/src/gsm/libosmogsm.map b/src/gsm/libosmogsm.map index 8d284760..60f83dec 100644 --- a/src/gsm/libosmogsm.map +++ b/src/gsm/libosmogsm.map @@ -217,6 +217,7 @@ gsm48_mcc_mnc_to_bcd; gsm48_mcc_mnc_from_bcd; gsm48_chan_mode_names; gsm_chan_t_names; +gsm48_pdisc_names; gsm_7bit_decode; gsm_7bit_decode_ussd; -- cgit v1.2.3