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/.
Holger Freyther gerrit-no-reply at lists.osmocom.org
lchan: Release channel in case of late activation ack
In case of the sysmoBTS and receiving a channel activation ack on
a channel that was marked as broken, release it again.
Use a normal release without SACCH deactivation and release the
rqd_ta data.
Change-Id: I63dc0deaf15ba7c21e20b1e0c7b85f0437e183ed
---
M openbsc/src/libbsc/abis_rsl.c
1 file changed, 13 insertions(+), 2 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/openbsc refs/changes/13/713/2
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c
index b84a0b5..2c3ff93 100644
--- a/openbsc/src/libbsc/abis_rsl.c
+++ b/openbsc/src/libbsc/abis_rsl.c
@@ -1121,8 +1121,19 @@
osmo_timer_del(&lchan->act_timer);
if (lchan->state == LCHAN_S_BROKEN) {
- LOGP(DRSL, LOGL_NOTICE, "%s CHAN ACT ACK for broken channel.\n",
- gsm_lchan_name(lchan));
+ int do_free = is_sysmobts_v2(lchan->ts->trx->bts);
+ LOGP(DRSL, LOGL_NOTICE, "%s CHAN ACT ACK for broken channel. %s\n",
+ gsm_lchan_name(lchan),
+ do_free ? "Release it" : "Keeping it broken");
+ if (do_free) {
+ talloc_free(lchan->rqd_ref);
+ lchan->rqd_ref = NULL;
+ lchan->rqd_ta = 0;
+ rsl_lchan_set_state(msg->lchan, LCHAN_S_ACTIVE);
+ if (lchan->ts->pchan == GSM_PCHAN_TCH_F_TCH_H_PDCH)
+ dyn_ts_switchover_complete(lchan);
+ rsl_rf_chan_release(msg->lchan, 0, SACCH_NONE);
+ }
return 0;
}
--
To view, visit https://gerrit.osmocom.org/713
To unsubscribe, visit https://gerrit.osmocom.org/settings
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I63dc0deaf15ba7c21e20b1e0c7b85f0437e183ed
Gerrit-PatchSet: 2
Gerrit-Project: openbsc
Gerrit-Branch: master
Gerrit-Owner: Holger Freyther <holger at freyther.de>
Gerrit-Reviewer: Jenkins Builder