aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/osmocom/gsm/protocol/gsm_04_08.h4
-rw-r--r--src/gsm/gsm48.c19
-rw-r--r--src/gsm/libosmogsm.map1
3 files changed, 24 insertions, 0 deletions
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;