diff options
author | Stefan Sperling <ssperling@sysmocom.de> | 2018-03-14 20:15:24 +0100 |
---|---|---|
committer | Stefan Sperling <ssperling@sysmocom.de> | 2018-03-14 20:59:37 +0100 |
commit | 99805db3c30f5d9b1f6913407545a75ab41d7065 (patch) | |
tree | f24628322628f3fbd34255cf9c8fd23f42c7ab92 /openbsc/include/openbsc/gsm_data.h | |
parent | 55d172617c2b6df3abdd430bf5751ddbd4420551 (diff) |
Make "waiting indicator" of IMMEDIATE ASSIGN REJECT dynamic.
The IMMEDIATE ASSIGN REJECT message contains a wait indicator which
tells an MS requesting a channel to wait for a specified amount of
time before trying to request a channel again, i.e. the wait indicator
controls the T3122 timeout value in the MS.
Previously, the wait indicator was fixed to 10 seconds.
This is not sufficient if there are a lot of MS requesting channels
because the MS will retry too soon. Instead of using a fixed value,
maintain a dynamic wait indicator value based on average channel load.
The load (used vs. available channels on a BTS) is sampled once per
second, and once 8 samples have been collected we update a BTS-specific
T3122 wait indicator based on the measured load.
While the wait indicator could go up to 255 seconds, this initial
implementation keeps it in the range from 10 to 128 seconds.
Further experimentation and testing will show whether higher wait
indicator values are desirable, if the sampling rate needs to change,
or if the function mapping the load measurement to a wait indicator
value should change (currently we map the load average linearly into
the range [10, 128] inclusive).
Port of osmo-bsc commit 6cee893a0f2c4e53155a2631aff12a5f615b973d
Change-Id: Id9df0e790ece8108212b2ddf718cf2953f5b9bd4
Related: OS#2592
Diffstat (limited to 'openbsc/include/openbsc/gsm_data.h')
-rw-r--r-- | openbsc/include/openbsc/gsm_data.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/openbsc/include/openbsc/gsm_data.h b/openbsc/include/openbsc/gsm_data.h index 39c7458ca..b12c4edc3 100644 --- a/openbsc/include/openbsc/gsm_data.h +++ b/openbsc/include/openbsc/gsm_data.h @@ -372,6 +372,9 @@ struct gsm_network { /* timer to expire old location updates */ struct osmo_timer_list subscr_expire_timer; + /* Timer for periodic channel load measurements to maintain each BTS's T3122. */ + struct osmo_timer_list t3122_chan_load_timer; + /* Radio Resource Location Protocol (TS 04.31) */ struct { enum rrlp_mode mode; |