Fix issue with DL window size calculation

During performance testing it is found that when DL data alone is
triggered using Iperf, window size was being calculated as 160 for
EGPRS DL even when window size 480 is configured from VTY of
osmo-pcu.cfg. There was an issue with gprs_rlcmac_tbf::update function
causing this erroneous behavior.
This commit is contained in:
Aravind Sirsikar 2016-08-03 11:48:01 +05:30
parent 7b800323a5
commit 7631182563
1 changed files with 18 additions and 0 deletions

View File

@ -375,6 +375,24 @@ int gprs_rlcmac_tbf::update()
return -rc;
}
/* Only for DL direction. update the window size*/
if (is_egprs_enabled()) {
unsigned int num_pdch = pcu_bitcount(dl_slots());
unsigned int ws = bts->bts_data()->ws_base + num_pdch * bts->bts_data()->ws_pdch;
ws = (ws / 32) * 32;
ws = OSMO_MAX(64, ws);
if (num_pdch == 1)
ws = OSMO_MIN(192, ws);
else
ws = OSMO_MIN(128 * num_pdch, ws);
LOGP(DRLCMAC, LOGL_INFO, "%s: Setting EGPRS window size to\
%d num_pdch(%d) ws_base(%d) ws_pdch(%d)\n",
name(), ws, num_pdch, bts->bts_data()->ws_base,
bts->bts_data()->ws_pdch);
window()->set_ws(ws);
}
return 0;
}