HO: Add function to count currently ongoing handovers to a given BTS
In order to keep processing power at BTS at a defined level, the handover
decision might want to limit maximum number of slots that require RACH
detection.
Change-Id: I8908e37fe0d8d2eda906cc6301ba0969b25a5575
diff --git a/src/libbsc/handover_logic.c b/src/libbsc/handover_logic.c
index f525b21..ee7b683 100644
--- a/src/libbsc/handover_logic.c
+++ b/src/libbsc/handover_logic.c
@@ -389,3 +389,21 @@
{
osmo_signal_register_handler(SS_LCHAN, ho_logic_sig_cb, NULL);
}
+
+/* Count number of currently ongoing handovers
+ * inter_cell: if true, count only handovers between two cells. If false, count only handovers within one
+ * cell. */
+int bsc_ho_count(struct gsm_bts *bts, bool inter_cell)
+{
+ struct bsc_handover *ho;
+ int count = 0;
+
+ llist_for_each_entry(ho, &bsc_handovers, list) {
+ if (ho->inter_cell != inter_cell)
+ continue;
+ if (ho->new_lchan->ts->trx->bts == bts)
+ count++;
+ }
+
+ return count;
+}