aboutsummaryrefslogtreecommitdiffstats
path: root/src/gsm/gsm0808_utils.c
diff options
context:
space:
mode:
authorOliver Smith <osmith@sysmocom.de>2023-02-27 10:28:40 +0100
committerosmith <osmith@sysmocom.de>2023-02-27 13:49:34 +0000
commit57d4fae8325f7c8cccc03958d5f87f9174d13ba7 (patch)
tree0141a700afdb6135ce29132ab32fb12144c6c983 /src/gsm/gsm0808_utils.c
parent6345333fb101d5fc3ebe70e87c90673ac40cae3f (diff)
gsm0808_enc/dec_channel_type: fix transparent flag
According to 3GPP TS 48.008 3.2.2.11, it is inverted. 0: Transparent service 1: Non-transparent service Change-Id: I2e5786ad053ee871079b4a8d95caccd6b03b59b6
Diffstat (limited to 'src/gsm/gsm0808_utils.c')
-rw-r--r--src/gsm/gsm0808_utils.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/gsm/gsm0808_utils.c b/src/gsm/gsm0808_utils.c
index d8c275a7..efa9305f 100644
--- a/src/gsm/gsm0808_utils.c
+++ b/src/gsm/gsm0808_utils.c
@@ -510,7 +510,7 @@ uint8_t gsm0808_enc_channel_type(struct msgb *msg,
case GSM0808_CHAN_DATA:
byte = ct->data_rate;
- if (ct->data_transparent)
+ if (!ct->data_transparent)
byte |= 0x40; /* Set T/NT */
if (ct->data_rate_allowed_is_set) {
@@ -580,7 +580,7 @@ int gsm0808_dec_channel_type(struct gsm0808_channel_type *ct,
case GSM0808_CHAN_DATA:
byte = *elem;
elem++;
- ct->data_transparent = byte & 0x40; /* T/NT */
+ ct->data_transparent = !(byte & 0x40); /* T/NT */
ct->data_rate = byte & 0x3f;
/* Optional extension for non-transparent service */