diff options
author | Philipp Maier <pmaier@sysmocom.de> | 2020-08-21 22:40:23 +0200 |
---|---|---|
committer | Philipp Maier <pmaier@sysmocom.de> | 2020-09-07 12:44:41 +0200 |
commit | cc6d35d788d0164b3cff1c7536ee9121d95aa8b8 (patch) | |
tree | 4740d41791861dcfdca574f142c8d3a737f350e8 /include/osmocom/bsc/bts.h | |
parent | e2b20c4aa855fd295b72e090bd1df6cc12bd5993 (diff) |
abis_rsl: prioritize emergency calls over regular calls
when an emergency call arrives while all TCH are busy, the BSC should
pick an arbitrary (preferably the longest lasting) call / lchan and
release it in favor of the incoming emergancy call.
The release of the existing call is a process that can not be done
synchronously while the ChanRQD is handled sonce multiple messages are
exchanged between BTS and MSC and multiple FSMs need to do their work.
To be able to release one lchan while handling a ChanRQD a queue is
implemented in which the incomming channel requests are collected. If
an emergency call is established while all channels are busy, an
arbitrary lchan is picked and freed. When freeing the lchan is done,
the queue is checked again and the emergency call is put on the free
lchan (TCH/H or TCH/F).
Change-Id: If8651265928797dbda9f528b544931dcfa4a0b36
Related: OS#4549
Diffstat (limited to 'include/osmocom/bsc/bts.h')
-rw-r--r-- | include/osmocom/bsc/bts.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h index a50c70e64..7f369042e 100644 --- a/include/osmocom/bsc/bts.h +++ b/include/osmocom/bsc/bts.h @@ -634,6 +634,7 @@ struct gsm_bts { struct osmo_timer_list etws_timer; /* when to stop ETWS PN */ struct llist_head oml_fail_rep; + struct llist_head chan_rqd_queue; }; #define GSM_BTS_SI2Q(bts, i) (struct gsm48_system_information_type_2quater *)((bts)->si_buf[SYSINFO_TYPE_2quater][i]) |