aboutsummaryrefslogtreecommitdiffstats
path: root/src/gprs_bssgp_pcu.cpp
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2015-07-17 11:38:49 +0200
committerJacob Erlbeck <jerlbeck@sysmocom.de>2015-07-17 12:06:19 +0200
commit7f79f0d332316acb306682ecac0a1b812d6023d1 (patch)
tree7e43e69e4715ca2418eb3ff3be9110a52cd2873a /src/gprs_bssgp_pcu.cpp
parent77da35515ce40baf2305cf7cf5e4008f6b478e36 (diff)
bssgp: Adapt flowcontrol MS default to current alloc algorithm
Currently the values Bmax/R default MS are computed under the assumption than min(4, N_PDCH) DL slots are allocated for an MS, even if multislot assignment is not enabled. This commit changes the computation to assume 1 DL slot if algorithm A is selected or the dynamic algorithm is used and has disabled multislot assigment due to high load. Sponsored-by: On-Waves ehf
Diffstat (limited to 'src/gprs_bssgp_pcu.cpp')
-rw-r--r--src/gprs_bssgp_pcu.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/gprs_bssgp_pcu.cpp b/src/gprs_bssgp_pcu.cpp
index dcb1b5b8..02395a8c 100644
--- a/src/gprs_bssgp_pcu.cpp
+++ b/src/gprs_bssgp_pcu.cpp
@@ -620,13 +620,16 @@ int gprs_bssgp_tx_fc_bvc(void)
if (ms_leak_rate == 0) {
int ms_num_pdch;
+ int max_pdch = gprs_alloc_max_dl_slots_per_ms(bts);
if (num_pdch < 0)
num_pdch = count_pdch(bts);
ms_num_pdch = num_pdch;
- if (ms_num_pdch > FC_MS_MAX_RX_SLOTS)
- ms_num_pdch = FC_MS_MAX_RX_SLOTS;
+ if (max_pdch > FC_MS_MAX_RX_SLOTS)
+ max_pdch = FC_MS_MAX_RX_SLOTS;
+ if (ms_num_pdch > max_pdch)
+ ms_num_pdch = max_pdch;
ms_leak_rate = gprs_bssgp_max_leak_rate(bts->initial_cs_dl,
ms_num_pdch);