aboutsummaryrefslogtreecommitdiffstats
path: root/src/osmo-bsc/gsm_08_08.c
diff options
context:
space:
mode:
authorPhilipp Maier <pmaier@sysmocom.de>2020-11-06 23:19:45 +0100
committerlaforge <laforge@osmocom.org>2020-12-01 11:58:24 +0000
commit0eb479e2831cfcb3e65bdce727b7b9909d2d5d09 (patch)
tree1d235a86364dcb6ee1b8239c5fad67e5d912e3f8 /src/osmo-bsc/gsm_08_08.c
parentca878ff4dff1fc88902732151f0eeed80347c985 (diff)
abis_rsl: parse cm3 and indicate ACCH repetition cap to BTS
In order to activate FACCH/SACCH repetition on the BTS, the classmark 3 IE in the CLASSMARK CHANGE message must be parsed and depending on the Repeated ACCH Capability bit the RSL_IE_OSMO_REP_ACCH_CAP is added to the RSL CHAN ACT und RSL CHAN MODE MODIFY. Since RSL_IE_OSMO_REP_ACCH_CAP is a propritary IE, it may only be added for BTS type osmo-bts. Change-Id: I39ae439d05562b35b2e47774dc92f8789fea1a57 Related: OS#4796 SYS#5114
Diffstat (limited to 'src/osmo-bsc/gsm_08_08.c')
-rw-r--r--src/osmo-bsc/gsm_08_08.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/osmo-bsc/gsm_08_08.c b/src/osmo-bsc/gsm_08_08.c
index 2c51c958a..9c5cf2faf 100644
--- a/src/osmo-bsc/gsm_08_08.c
+++ b/src/osmo-bsc/gsm_08_08.c
@@ -34,6 +34,7 @@
#include <osmocom/bsc/lcs_loc_req.h>
#include <osmocom/gsm/protocol/gsm_08_08.h>
+#include <osmocom/gsm/protocol/gsm_04_08.h>
#include <osmocom/gsm/gsm0808.h>
#include <osmocom/gsm/mncc.h>
#include <osmocom/gsm/gsm48.h>
@@ -602,6 +603,14 @@ void bsc_cm_update(struct gsm_subscriber_connection *conn,
}
conn_update_ms_power_class(conn, rc8);
+ rc = gsm48_decode_classmark3(&conn->cm3, cm3, cm3_len);
+ if (rc < 0) {
+ LOGP(DMSC, LOGL_NOTICE, "Unable to decode classmark3 during CM Update.\n");
+ memset(&conn->cm3, 0, sizeof(conn->cm3));
+ conn->cm3_valid = false;
+ } else
+ conn->cm3_valid = true;
+
if (!msc_connected(conn))
return;