Fix Ul window calculation for GPRS

The problem was introduced while calculating flexible window
size for EGPRS in UL direction.
Incorrect window calculation for GPRS UL tbf is fixed
This commit is contained in:
Pravin Kumarvel 2016-10-13 19:39:42 +05:30
parent dcb2f6b3de
commit 75b8f8efd8
3 changed files with 8 additions and 3 deletions

View File

@ -244,6 +244,8 @@ void gprs_rlc_window::set_sns(uint16_t sns)
void gprs_rlc_window::set_ws(uint16_t ws)
{
LOGP(DRLCMAC, LOGL_ERROR, "ws(%d)\n",
ws);
OSMO_ASSERT(ws >= RLC_GPRS_SNS/2);
OSMO_ASSERT(ws <= RLC_MAX_SNS/2);
m_ws = ws;

View File

@ -700,13 +700,16 @@ struct gprs_rlcmac_ul_tbf *tbf_alloc_ul_tbf(struct gprs_rlcmac_bts *bts,
}
rc = setup_tbf(tbf, ms, use_trx, ms_class, egprs_ms_class, single_slot);
if (tbf->is_egprs_enabled())
tbf->egprs_calc_ulwindow_size();
/* if no resource */
if (rc < 0) {
talloc_free(tbf);
return NULL;
}
tbf->egprs_calc_ulwindow_size();
llist_add(&tbf->list(), &bts->bts->ul_tbfs());
tbf->bts->tbf_ul_created();

View File

@ -533,8 +533,8 @@ void gprs_rlcmac_ul_tbf::egprs_calc_ulwindow_size()
else
ws = OSMO_MIN(128 * num_pdch, ws);
LOGP(DRLCMAC, LOGL_INFO, "%s: Setting EGPRS window size to %d\n",
name(), ws);
LOGP(DRLCMAC, LOGL_ERROR, "%s: Setting EGPRS window size to %d, base(%d) slots(%d) ws_pdch(%d)\n",
name(), ws, bts_data->ws_base, num_pdch, bts_data->ws_pdch);
m_window.set_ws(ws);
}