2018-02-12 15:45:39 +00:00
|
|
|
/* Manage a list of penalty timers per BTS;
|
|
|
|
* initially used by handover algorithm 2 to keep per-BTS timers for each subscriber connection. */
|
|
|
|
#pragma once
|
|
|
|
|
2021-03-09 16:10:18 +00:00
|
|
|
#include <osmocom/gsm/gsm0808_utils.h>
|
2018-02-12 15:45:39 +00:00
|
|
|
|
2021-03-09 16:10:18 +00:00
|
|
|
struct penalty_timer {
|
|
|
|
struct llist_head entry;
|
2018-02-12 15:45:39 +00:00
|
|
|
|
2021-03-09 16:10:18 +00:00
|
|
|
struct gsm0808_cell_id for_target_cell;
|
|
|
|
unsigned int timeout;
|
|
|
|
};
|
2018-02-12 15:45:39 +00:00
|
|
|
|
2021-03-09 16:10:18 +00:00
|
|
|
void penalty_timers_add(void *ctx, struct llist_head *penalty_timers,
|
|
|
|
const struct gsm0808_cell_id *for_target_cell, int timeout);
|
|
|
|
void penalty_timers_add_list(void *ctx, struct llist_head *penalty_timers,
|
|
|
|
const struct gsm0808_cell_id_list2 *for_target_cells, int timeout);
|
2018-02-12 15:45:39 +00:00
|
|
|
|
2021-03-09 16:10:18 +00:00
|
|
|
unsigned int penalty_timers_remaining(struct llist_head *penalty_timers,
|
|
|
|
const struct gsm0808_cell_id *for_target_cell);
|
|
|
|
unsigned int penalty_timers_remaining_list(struct llist_head *penalty_timers,
|
|
|
|
const struct gsm0808_cell_id_list2 *for_target_cells);
|
2018-02-12 15:45:39 +00:00
|
|
|
|
2021-03-09 16:10:18 +00:00
|
|
|
void penalty_timers_clear(struct llist_head *penalty_timers, const struct gsm0808_cell_id *for_target_cell);
|