aboutsummaryrefslogtreecommitdiffstats
path: root/src/gprs_rlcmac_sched.cpp
diff options
context:
space:
mode:
authorJacob Erlbeck <jerlbeck@sysmocom.de>2015-07-21 17:25:52 +0200
committerJacob Erlbeck <jerlbeck@sysmocom.de>2015-07-21 19:26:23 +0200
commit66ba0844be5058032cb31c6ee3e31428417b171f (patch)
tree3dcda8f238959987e9a058f0d2b033ab3e9cf48e /src/gprs_rlcmac_sched.cpp
parent6eed1911fd619fb594a9d1a7fc734c1f62ff2f08 (diff)
bssgp: Use measured leak rate for flow control (EXPERIMENTAL)
THIS IS EXPERIMENTAL, DO NOT USE IN PRODUCTION The leak rate sent to the SGSN does not reflect the current CS level, lost frames, and control message overhead. Use the ratio between sent blocks and successfully received bytes to derive the net leak rate. TODO: - The values are not stable, possibly resulting from interference with the sampling rate or from the interval between send and receive if they fall into different sampling intervals. - Perhaps the rate can be computed from sent data bytes / sent data frames or from the average packet size and the global nack rate.
Diffstat (limited to 'src/gprs_rlcmac_sched.cpp')
-rw-r--r--src/gprs_rlcmac_sched.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/gprs_rlcmac_sched.cpp b/src/gprs_rlcmac_sched.cpp
index dedea26..0fc252a 100644
--- a/src/gprs_rlcmac_sched.cpp
+++ b/src/gprs_rlcmac_sched.cpp
@@ -321,6 +321,10 @@ int gprs_rlcmac_rcv_rts_block(struct gprs_rlcmac_bts *bts,
if (!msg)
msg = sched_select_downlink(bts, trx, ts, fn, block_nr, pdch);
+ /* Used to calculate the net leak rate, must not include dummy messages */
+ if (msg)
+ gprs_bssgp_update_frames_sent();
+
/* Prio 3: send dummy contol message */
if (!msg)
msg = sched_dummy();