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
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 @@
 		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 @@
 
 	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 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.