diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2020-11-06 23:19:45 +0100 |
---|---|---|
committer | laforge <laforge@osmocom.org> | 2020-12-01 11:58:24 +0000 |
commit | 0eb479e2831cfcb3e65bdce727b7b9909d2d5d09 (patch) | |
tree | 1d235a86364dcb6ee1b8239c5fad67e5d912e3f8 /src/osmo-bsc/gsm_08_08.c | |
parent | ca878ff4dff1fc88902732151f0eeed80347c985 (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.c | 9 |
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; |