forked from cellular-infrastructure/osmo-pcu
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:
parent
7b800323a5
commit
7631182563
18
src/tbf.cpp
18
src/tbf.cpp
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue