aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2018-06-08 16:15:57 +0200
committerHarald Welte <laforge@gnumonks.org>2018-06-09 12:02:29 +0000
commitdb330522eaa14b667594e58aec2b7f3899903fb5 (patch)
treec9f5badcb9ec74fbbc83597950cfb0e62ce9ac7f /src
parent868c67fed34d3a5f0d9d1e5150073fee3d71c26c (diff)
Send DELETE_IND when dropping Imm Assign pending message
This way we give the opportunity to the BSC to release the channel quicker, otherwise it has to wait until T3101 expires. Same procedure is already done in rsl.c rsl_rx_imm_ass() when we return an error (hard limit AGCH queue len reached) from bts_agch_enqueue(). Related: OS#2990 Change-Id: Id9927c0789054ce3ecc7b30380585a1ffe05db5a
Diffstat (limited to 'src')
-rw-r--r--src/common/bts.c2
-rw-r--r--src/common/rsl.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/src/common/bts.c b/src/common/bts.c
index ae75b2c3..bec611cc 100644
--- a/src/common/bts.c
+++ b/src/common/bts.c
@@ -622,6 +622,8 @@ static void compact_agch_queue(struct gsm_bts *bts)
llist_del(&msg->list);
bts->agch_queue.length--;
+ rsl_tx_delete_ind(bts, (uint8_t *)imm_ass_cmd, msgb_l3len(msg));
+ rate_ctr_inc2(bts->ctrs, BTS_CTR_AGCH_DELETED);
msgb_free(msg);
bts->agch_queue.dropped_msgs++;
diff --git a/src/common/rsl.c b/src/common/rsl.c
index b5d0c2b0..5d30ca7c 100644
--- a/src/common/rsl.c
+++ b/src/common/rsl.c
@@ -427,7 +427,7 @@ int rsl_tx_ccch_load_ind_rach(struct gsm_bts *bts, uint16_t total,
}
/* 8.5.4 DELETE INDICATION */
-static int rsl_tx_delete_ind(struct gsm_bts *bts, const uint8_t *ia, uint8_t ia_len)
+int rsl_tx_delete_ind(struct gsm_bts *bts, const uint8_t *ia, uint8_t ia_len)
{
struct msgb *msg;