aboutsummaryrefslogtreecommitdiffstats
path: root/include/osmocom/bsc/bts.h
diff options
context:
space:
mode:
authorPau Espin Pedrol <pespin@sysmocom.de>2022-10-13 18:21:50 +0200
committerPau Espin Pedrol <pespin@sysmocom.de>2022-10-16 22:21:17 +0200
commit0690c5bc75174558f7bb875597c82dbdc70ceb6d (patch)
tree19553d2d74560120fceadcf5021f96ab8a365ea3 /include/osmocom/bsc/bts.h
parentad27ef2b1567c2ca64c1c367d06d53f79cb26c74 (diff)
Introduce support for MGW-pinning per BTS
This feature allows pinning each BTS to a specific MGW from the configured pool. The pinning can be soft or hard (strict). If strict pinning is not set, the configured MGW is selected with priority, but other MGWs can still be selected during each call setup if the preferred MGW is found not available at that time, hence avoiding denial of service for the entire BTS if that MGW goes down. If strict mode is selected, the call will be refused if the configured preferred MGW is not available at the time the call is set up. It is useful to use this feature when Osmux is configured between the BTS and the BSC and an MGW pool is in use. This way the BSC is capable of grouping all the calls of a BTS towards one MGW, hence taking advantage of the Osmux trunking optimizations to reduce link data usage (AMR payload of several concurrent calls ending up sharing the same underlaying UPD packet). Furthermore, this allows the operator to intelligently spread load over the MGW pool in order to avoid ending up with more than 256 concurrent Osmux circuits on any of the co-located MGWs in the pool (maximum supported at the moment). Related: SYS#5987 Depends: osmo-mgw.git 5d8b5b093595e1203e288c3175c163c0994b1102 Change-Id: I9a7a5af72795faed0d12d9d73b59951b6a0e9c7d
Diffstat (limited to 'include/osmocom/bsc/bts.h')
-rw-r--r--include/osmocom/bsc/bts.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/osmocom/bsc/bts.h b/include/osmocom/bsc/bts.h
index b690652f3..d71d18fe9 100644
--- a/include/osmocom/bsc/bts.h
+++ b/include/osmocom/bsc/bts.h
@@ -580,6 +580,10 @@ struct gsm_bts {
/* exclude the BTS from the global RF Lock handling */
int excl_from_rf_lock;
+ /* MGW specificities for this BTS: */
+ int mgw_pool_target; /* Pin to specific MGW. -1 = wildcard */
+ bool mgw_pool_target_strict; /* Only allow pinned MGW */
+
/* supported codecs beside FR */
struct bts_codec_conf codec;