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/OpenBSC@lists.osmocom.org/.
Holger Hans Peter Freyther holger at freyther.deOn Thu, Dec 05, 2013 at 04:02:38PM +0100, Andreas Eversberg wrote: > @@ -890,7 +892,18 @@ int rsl_release_request(struct gsm_lchan *lchan, uint8_t link_id, > DEBUGP(DRLL, "%s RSL RLL RELEASE REQ (link_id=0x%02x, reason=%u)\n", > gsm_lchan_name(lchan), link_id, release_mode); > > - return abis_rsl_sendmsg(msg); > + abis_rsl_sendmsg(msg); > + > + /* Do not wait for Nokia BTS to send the confirm. */ > + if (is_nokia_bts(lchan->ts->trx->bts) > + && release_mode == RSL_REL_LOCAL_END) { > + DEBUGP(DRLL, "Do not wait for RELease CONFirm, because Nokia" > + " BTS does not send it.\n"); > + lchan->sapis[link_id & 0x7] = LCHAN_SAPI_UNUSED; > + rsl_handle_release(lchan); In addition to what I wrote yesterday. This is also violating the principle of the least surprise and in fact breaks the error handling release. Before: The "effect" rsl_release_request could be observed after the event loop has been reached (only then we will parse the result from the BTS). Your patch: * RLL indication for the release is missing for the NokiaBTS (that is an issue and should be resolved by moving the sapi handling code out of the RSL_MT_REL_IND case into a method) * You directly call rsl_handle_release and can get ahead of itself. This is a problem for: if (deact_sacch == SACCH_DEACTIVATE) rsl_deact_sacch(lchan); rsl_release_sapis_from(lchan, 0, RSL_REL_LOCAL_END); /* TODO: start T3109 now. */ rsl_lchan_set_state(lchan, LCHAN_S_REL_ERR); So with your change rsl_handle_release will be called when lchan->state is not set to LCHAN_S_REL_ERR yet. holger