aboutsummaryrefslogtreecommitdiffstats
path: root/src/common/rsl.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@osmocom.org>2020-10-11 19:56:08 +0200
committerlaforge <laforge@osmocom.org>2020-10-15 11:29:29 +0000
commit9a7acc17448e7486e41292379359239c7f5c81fe (patch)
treeb435d075a65e410528b590a6882c904822271424 /src/common/rsl.c
parent8d62d66ed5d52d7458b56db67d686defb183528e (diff)
sysinfo: Don't broadcast SI4 GPRS INDICATOR if PCU is disconnected
Diffstat (limited to 'src/common/rsl.c')
-rw-r--r--src/common/rsl.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/common/rsl.c b/src/common/rsl.c
index 919981dd..cb9c19b3 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -378,6 +378,15 @@ static int rsl_rx_bcch_info(struct gsm_bts_trx *trx, struct msgb *msg)
/* patch out GPRS indicator from binary if PCU is not connected; will be enabled
* after PCU connects */
regenerate_si3_restoctets(bts);
+ } else if (SYSINFO_TYPE_4 == osmo_si) {
+ /* decode original SI4 Rest Octets as sent by BSC */
+ const uint8_t *si4_ro_buf = (uint8_t *) GSM_BTS_SI(bts, osmo_si);
+ si4_ro_buf += offsetof(struct gsm48_system_information_type_4, data);
+ osmo_gsm48_rest_octets_si4_decode(&bts->si4_ro_decoded, si4_ro_buf,
+ GSM_MACBLOCK_LEN - offsetof(struct gsm48_system_information_type_4, data));
+ /* patch out GPRS indicator from binary if PCU is not connected; will be enabled
+ * after PCU connects */
+ regenerate_si4_restoctets(bts);
}
if (SYSINFO_TYPE_13 == osmo_si)