summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDaniel Willmann <daniel@totalueberwachung.de>2011-08-11 04:47:11 +0200
committerHarald Welte <laforge@gnumonks.org>2011-08-11 17:21:24 +0200
commit7ddc3186878c0665a114b475015ce61c4118ac26 (patch)
tree53fec608eb106fa32d19fcd8789b8b2f301af041
parent513da17732fe498c7fddf48b027bd479f356095f (diff)
libbsc: Release the RF channel if BTS thinks it's still in use
The Nokia metrosite BTS seem to keep the channels open indefinitely. If osmo-nitb is restarted while one of the channel was still active and tries to activate that channel again the bts would return a CHANNEL ACTIVATE NACK with "Radio channel already activated". This accumulated over the restarts so soon enough no more channels were available. This patch sends a release request to the bts so the channel becomes available again.
-rw-r--r--openbsc/src/libbsc/abis_rsl.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/openbsc/src/libbsc/abis_rsl.c b/openbsc/src/libbsc/abis_rsl.c
index 4b3076322..c2533667c 100644
--- a/openbsc/src/libbsc/abis_rsl.c
+++ b/openbsc/src/libbsc/abis_rsl.c
@@ -863,6 +863,9 @@ static int rsl_rx_chan_act_nack(struct msgb *msg)
TLVP_LEN(&tp, RSL_IE_CAUSE));
if (*cause != RSL_ERR_RCH_ALR_ACTV_ALLOC)
rsl_lchan_set_state(msg->lchan, LCHAN_S_NONE);
+ else
+ rsl_rf_chan_release(msg->lchan, 1);
+
} else
rsl_lchan_set_state(msg->lchan, LCHAN_S_NONE);