diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-07-29 17:09:36 +0800 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-07-31 04:09:38 +0800 |
commit | 4b85a323600a623afc7728f9d3433e4745765a7c (patch) | |
tree | 8c4110976d5024ef1275ce930ef661bcbc0ac940 /openbsc/include/openbsc/abis_rsl.h | |
parent | aeb45f518675db74135ac5067c15292ba6d4db31 (diff) |
chan_alloc: Change Channel Release to release SAPIs, then the channel
Currently every SAPI release indication will trigger the channel. It
was possible that we had SAPI=3 and SAPI=0 allocated and we tried to
release the channel by sending a RF Channel Release, the BTS answered
with a RF Channel Release ACK but also sent the SAPI Release Indication
which triggered a channel release here. So it was possible that we
would have released a newly allocated channel because of the SAPI
release of the old connection.
This code now works by releasing all SAPIs from highest to lowest,
then sending a SACH Deactivate and finally releasing the channel. This
approach is in use on the on-waves/bsc-master.
Diffstat (limited to 'openbsc/include/openbsc/abis_rsl.h')
-rw-r--r-- | openbsc/include/openbsc/abis_rsl.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/abis_rsl.h b/openbsc/include/openbsc/abis_rsl.h index 4a334108b..0b732d9fd 100644 --- a/openbsc/include/openbsc/abis_rsl.h +++ b/openbsc/include/openbsc/abis_rsl.h @@ -75,6 +75,7 @@ int rsl_lchan_set_state(struct gsm_lchan *lchan, int); /* to be provided by external code */ int abis_rsl_sendmsg(struct msgb *msg); int rsl_deact_sacch(struct gsm_lchan *lchan); +int rsl_lchan_rll_release(struct gsm_lchan *lchan, u_int8_t link_id); /* BCCH related code */ int rsl_ccch_conf_to_bs_cc_chans(int ccch_conf); |