aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorAndreas Eversberg <jolly@eversberg.eu>2013-06-17 11:58:30 +0200
committerHarald Welte <laforge@gnumonks.org>2018-01-19 22:09:19 +0000
commit935e5d76dd5cc0b023d21ce656436128d5bb635f (patch)
treef9dceb7ea76a3a2508354856fea6bf45d9b589e0 /include
parent2660c0412d6c5eb44d1bb09385231b6fd10a6a9e (diff)
HO: add queue to cache DTAP messages during handover/assignment
Add ho_dtap_cache to gsm_subscriber_connection, a stock msgb queue to be used with msgb_enqueue() and msgb_dequeue(). Keep a counter of queue length, to enforce a sane maximum counter for cached messages. So far a hardcoded maximum of 23 messages will be cached. Have balanced ho_dtap_cache_add() and ho_dtap_cache_flush() functions. The original patch was by jolly, but I have basically completely replaced it with the simpler msgb queue pattern. Change-Id: I6e4d93628befb3d97e5cee0343cd9f8ba0b8620c
Diffstat (limited to 'include')
-rw-r--r--include/osmocom/bsc/gsm_data.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/osmocom/bsc/gsm_data.h b/include/osmocom/bsc/gsm_data.h
index 6659b722f..4e07f2672 100644
--- a/include/osmocom/bsc/gsm_data.h
+++ b/include/osmocom/bsc/gsm_data.h
@@ -100,6 +100,10 @@ struct gsm_subscriber_connection {
/* buffer/cache for classmark of the ME of the subscriber */
struct gsm_classmark classmark;
+
+ /* Cache DTAP messages during handover/assignment (msgb_enqueue()/msgb_dequeue())*/
+ struct llist_head ho_dtap_cache;
+ unsigned int ho_dtap_cache_len;
};
static inline struct gsm_bts *conn_get_bts(struct gsm_subscriber_connection *conn) {