aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2019-04-10 19:23:45 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2019-04-26 20:36:39 +0200
commit302aafc3e22d552638120a17b1730b585767443e (patch)
treea0f584d087d2129c331ef86277a82cc3486d15b5
parentaffbb2064669a58aea4a18f773eed90b15dffcf9 (diff)
BSSMAP: tweaks
Change two instances of Speech Version values to enum gsm0808_permitted_speech. It is often not trivial to find the right values for a uint8_t member, giving the enum name makes it a lot easier/safer to use. In gsm0808_create_handover_required(), use msgb_tv_put() so that the enum's storage size doesn't matter. (Already used for handover_performed) Fix typo in doc of gsm0808_create_handover_required(). Change-Id: I6387836bab76e1fa42daa0f42ab94fc14b70b112
-rw-r--r--TODO-RELEASE2
-rw-r--r--include/osmocom/gsm/gsm0808.h4
-rw-r--r--src/gsm/gsm0808.c4
3 files changed, 6 insertions, 4 deletions
diff --git a/TODO-RELEASE b/TODO-RELEASE
index 7c81e323..db3be496 100644
--- a/TODO-RELEASE
+++ b/TODO-RELEASE
@@ -19,3 +19,5 @@ libosmocore osmo_quote_str(), On string truncation, these used to print a
osmo_quote_str_buf() truncated string. This is no longer the case. e.g. a string 'truncated' in a
9-char buffer used to print '"trunca"\0', which now becomes '"truncat\0'.
libosmocore osmo_quote_str_buf2() New function signature similar to snprintf(), for use with OSMO_STRBUF_APPEND().
+libosmogsm gsm0808_handover_required Storage size changed, speech_version_used now an enum.
+ gsm0808_handover_performed Storage size changed, speech_version_chosen now an enum.
diff --git a/include/osmocom/gsm/gsm0808.h b/include/osmocom/gsm/gsm0808.h
index a1345c38..0f2bf1fb 100644
--- a/include/osmocom/gsm/gsm0808.h
+++ b/include/osmocom/gsm/gsm0808.h
@@ -133,7 +133,7 @@ struct gsm0808_handover_required {
uint8_t current_channel_type_1;
bool speech_version_used_present;
- uint8_t speech_version_used;
+ enum gsm0808_permitted_speech speech_version_used;
bool old_bss_to_new_bss_info_present;
struct gsm0808_old_bss_to_new_bss_info old_bss_to_new_bss_info;
@@ -196,7 +196,7 @@ struct gsm0808_handover_performed {
uint8_t chosen_encr_alg;
bool speech_version_chosen_present;
- uint8_t speech_version_chosen;
+ enum gsm0808_permitted_speech speech_version_chosen;
bool speech_codec_chosen_present;
struct gsm0808_speech_codec speech_codec_chosen;
diff --git a/src/gsm/gsm0808.c b/src/gsm/gsm0808.c
index 48730766..3307a5dd 100644
--- a/src/gsm/gsm0808.c
+++ b/src/gsm/gsm0808.c
@@ -822,7 +822,7 @@ static uint8_t put_old_bss_to_new_bss_information(struct msgb *msg,
/*! Create BSSMAP HANDOVER REQUIRED message.
* \param[in] params All information to be encoded.
- * \returns newly allocated msgb with BSSMAP REQUIRED message. */
+ * \returns newly allocated msgb with BSSMAP HANDOVER REQUIRED message. */
struct msgb *gsm0808_create_handover_required(const struct gsm0808_handover_required *params)
{
struct msgb *msg;
@@ -846,7 +846,7 @@ struct msgb *gsm0808_create_handover_required(const struct gsm0808_handover_requ
/* Speech Version (Used), 3.2.2.51 */
if (params->speech_version_used_present)
- msgb_tv_fixed_put(msg, GSM0808_IE_SPEECH_VERSION, 1, &params->speech_version_used);
+ msgb_tv_put(msg, GSM0808_IE_SPEECH_VERSION, params->speech_version_used);
if (params->old_bss_to_new_bss_info_present)
put_old_bss_to_new_bss_information(msg, &params->old_bss_to_new_bss_info);