diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-04-08 22:39:34 +0200 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2010-05-31 21:30:16 +0800 |
commit | dbc5fae576d4c3c32a534a8e625c48e7177ab7d1 (patch) | |
tree | 2c4e15d8d9e9b6e7b29afd92ad6dd6da46288c72 /openbsc/src/abis_rsl.c | |
parent | a4b16658d514a8bc43d44e4717b2eb9d507d1699 (diff) |
[rsl] Move rf channel release scheduling to a new method
The current channel release has a couple of issues we will
need to fix in a set of upcoming commits.
The issues include:
1.) sending release twice
2.) reassigning the channel inbetween the relase..
Diffstat (limited to 'openbsc/src/abis_rsl.c')
-rw-r--r-- | openbsc/src/abis_rsl.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/openbsc/src/abis_rsl.c b/openbsc/src/abis_rsl.c index 53b29823e..51c200b27 100644 --- a/openbsc/src/abis_rsl.c +++ b/openbsc/src/abis_rsl.c @@ -1258,6 +1258,14 @@ static int rsl_rx_rll_err_ind(struct msgb *msg) return 0; } +static void rsl_handle_release(struct gsm_lchan *lchan) +{ + /* we can now releae the channel on the BTS/Abis side */ + /* FIXME: officially we need to start T3111 and wait for + * some grace period */ + rsl_rf_chan_release(lchan); +} + /* ESTABLISH INDICATION, LOCATION AREA UPDATE REQUEST 0x02, 0x06, 0x01, 0x20, @@ -1309,20 +1317,14 @@ static int abis_rsl_rx_rll(struct msgb *msg) msg->lchan->sapis[rllh->link_id & 0x7] = LCHAN_SAPI_UNUSED; rll_indication(msg->lchan, rllh->link_id, BSC_RLLR_IND_REL_IND); - /* we can now releae the channel on the BTS/Abis side */ - /* FIXME: officially we need to start T3111 and wait for - * some grace period */ - rsl_rf_chan_release(msg->lchan); + rsl_handle_release(msg->lchan); break; case RSL_MT_REL_CONF: /* BTS informs us of having received UA from MS, * in response to DISC that we've sent earlier */ DEBUGPC(DRLL, "RELEASE CONFIRMATION\n"); msg->lchan->sapis[rllh->link_id & 0x7] = LCHAN_SAPI_UNUSED; - /* we can now releae the channel on the BTS/Abis side */ - /* FIXME: officially we need to start T3111 and wait for - * some grace period */ - rsl_rf_chan_release(msg->lchan); + rsl_handle_release(msg->lchan); break; case RSL_MT_ERROR_IND: rc = rsl_rx_rll_err_ind(msg); |