From 0ee31cfa381282d0d724fb36c48bae297a0647ac Mon Sep 17 00:00:00 2001 From: Aravind Sirsikar Date: Thu, 15 Sep 2016 17:54:46 +0530 Subject: Fix EGPRS DL window calculation during tbf update Earlier there was no handling for recalculation of DL window size during tbf update. Which has been fixed in this patch. Related: OS#1808 Change-Id: I41aa807068520460fd665a55e3529e60f6bbb630 --- src/tbf.cpp | 6 ++++++ tests/tbf/TbfTest.cpp | 7 ++----- tests/tbf/TbfTest.err | 3 ++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/src/tbf.cpp b/src/tbf.cpp index cbc0710..97696cb 100644 --- a/src/tbf.cpp +++ b/src/tbf.cpp @@ -376,6 +376,12 @@ int gprs_rlcmac_tbf::update() return -rc; } + if (is_egprs_enabled()) { + gprs_rlcmac_dl_tbf *dl_tbf = as_dl_tbf(this); + if (dl_tbf) + dl_tbf->egprs_calc_window_size(); + } + return 0; } diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 4e37aa8..3e17d8f 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -1816,17 +1816,14 @@ static void test_tbf_update_ws(void) dl_tbf->update(); - /* - * TODO: Should not expect window size as 192. - * should be fixed in subsequent patch - */ + /* window size should be 384 */ OSMO_ASSERT(dl_tbf != NULL); fprintf(stderr, "DL TBF slots: 0x%02x, N: %d, WS: %d\n", dl_tbf->dl_slots(), pcu_bitcount(dl_tbf->dl_slots()), dl_tbf->window()->ws()); OSMO_ASSERT(pcu_bitcount(dl_tbf->dl_slots()) == 4); - OSMO_ASSERT(dl_tbf->window()->ws() == 128 + 1 * 64); + OSMO_ASSERT(dl_tbf->window()->ws() == 128 + 4 * 64); tbf_free(dl_tbf); diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index 90f04be..0c9c877 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -6400,7 +6400,8 @@ PDCH(TS 3, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), PDCH(TS 4, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), 1 TBFs, USFs = 00, TFIs = 00000001. - Assigning DL TS 5 PDCH(TS 5, TRX 0): Attaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS), 1 TBFs, USFs = 00, TFIs = 00000001. -DL TBF slots: 0x3c, N: 4, WS: 192 +TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS): Setting EGPRS window size to 384 +DL TBF slots: 0x3c, N: 4, WS: 384 TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=NULL EGPRS) changes state from NULL to RELEASING TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=RELEASING EGPRS) free PDCH(TS 2, TRX 0): Detaching TBF(TFI=0 TLLI=0x00000000 DIR=DL STATE=RELEASING EGPRS), 0 TBFs, USFs = 00, TFIs = 00000000. -- cgit v1.2.3