This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
Max gerrit-no-reply at lists.osmocom.orgReview at https://gerrit.osmocom.org/3762 Support removing SI13 from PCU If SI13 becomes unavailable in runtime than send 0-length message with BCCH SAPI to PCU to indicate that SI13 have to be removed. Change-Id: I72aef8bd98f21c4b5ea6eed21fc56b30d85bfc1b Related: OS#2400 --- M include/osmo-bts/pcu_if.h M src/common/pcu_sock.c M src/common/rsl.c 3 files changed, 9 insertions(+), 7 deletions(-) git pull ssh://gerrit.osmocom.org:29418/osmo-bts refs/changes/62/3762/1 diff --git a/include/osmo-bts/pcu_if.h b/include/osmo-bts/pcu_if.h index ba3873e..4377833 100644 --- a/include/osmo-bts/pcu_if.h +++ b/include/osmo-bts/pcu_if.h @@ -6,7 +6,7 @@ extern int pcu_direct; int pcu_tx_info_ind(void); -int pcu_tx_si13(const struct gsm_bts *bts); +int pcu_tx_si13(const struct gsm_bts *bts, bool enable); int pcu_tx_rts_req(struct gsm_bts_trx_ts *ts, uint8_t is_ptcch, uint32_t fn, uint16_t arfcn, uint8_t block_nr); int pcu_tx_data_ind(struct gsm_bts_trx_ts *ts, uint8_t is_ptcch, uint32_t fn, diff --git a/src/common/pcu_sock.c b/src/common/pcu_sock.c index 0a9ba2d..e5bcf57 100644 --- a/src/common/pcu_sock.c +++ b/src/common/pcu_sock.c @@ -535,7 +535,7 @@ return rc; } -int pcu_tx_si13(const struct gsm_bts *bts) +int pcu_tx_si13(const struct gsm_bts *bts, bool enable) { /* the SI is per-BTS so it doesn't matter which TRX we use */ struct gsm_bts_trx *trx = gsm_bts_trx_num(bts, 0); @@ -543,7 +543,7 @@ /* The low-level data like FN, ARFCN etc will be ignored but we have to set lqual high enough to bypass the check at lower levels */ int rc = pcu_tx_data_ind(&trx->ts[0], PCU_IF_SAPI_BCCH, 0, 0, 0, GSM_BTS_SI(bts, SYSINFO_TYPE_13), - GSM_MACBLOCK_LEN, 0, 0, 0, INT16_MAX); + enable ? GSM_MACBLOCK_LEN : 0, 0, 0, 0, INT16_MAX); if (rc < 0) LOGP(DPCU, LOGL_NOTICE, "Failed to send SI13 to PCU: %d\n", rc); @@ -561,9 +561,9 @@ osmo_strlcpy(bts->pcu_version, txt->text, MAX_VERSION_LENGTH); if (GSM_BTS_HAS_SI(bts, SYSINFO_TYPE_13)) - return pcu_tx_si13(bts); - else - LOGP(DPCU, LOGL_INFO, "SI13 is not available on PCU connection\n"); + return pcu_tx_si13(bts, true); + + LOGP(DPCU, LOGL_INFO, "SI13 is not available on PCU connection\n"); break; case PCU_OML_ALERT: osmo_signal_dispatch(SS_FAIL, OSMO_EVT_EXT_ALARM, txt->text); diff --git a/src/common/rsl.c b/src/common/rsl.c index 69ecf2e..28dc2d0 100644 --- a/src/common/rsl.c +++ b/src/common/rsl.c @@ -308,7 +308,7 @@ } if (SYSINFO_TYPE_13 == osmo_si) - pcu_tx_si13(trx->bts); + pcu_tx_si13(trx->bts, true); if (SYSINFO_TYPE_2quater == osmo_si) { si2q = (struct gsm48_system_information_type_2quater *) TLVP_VAL(&tp, RSL_IE_FULL_BCCH_INFO); @@ -353,6 +353,8 @@ bts->si_valid &= ~(1 << osmo_si); LOGP(DRSL, LOGL_INFO, " RX RSL Disabling BCCH INFO (SI%s)\n", get_value_string(osmo_sitype_strs, osmo_si)); + if (SYSINFO_TYPE_13 == osmo_si) + pcu_tx_si13(trx->bts, false); } osmo_signal_dispatch(SS_GLOBAL, S_NEW_SYSINFO, bts); -- To view, visit https://gerrit.osmocom.org/3762 To unsubscribe, visit https://gerrit.osmocom.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I72aef8bd98f21c4b5ea6eed21fc56b30d85bfc1b Gerrit-PatchSet: 1 Gerrit-Project: osmo-bts Gerrit-Branch: master Gerrit-Owner: Max <msuraev at sysmocom.de>