TBF: move window parameters to UL/DL level

The UL and DL TBF use different classes implementing window
management. Hence it's better to use it explicitly instead of using the
common window management superclass inside common TBF superclass. While
at it, also remove the direct access to window class - use accessor
functions instead.

Related: OS#1759
Change-Id: I0b55aa8947db65f7206adcf53ea32b74a831d9e6
diff --git a/src/bts.cpp b/src/bts.cpp
index c605967..14c05f2 100644
--- a/src/bts.cpp
+++ b/src/bts.cpp
@@ -1203,7 +1203,7 @@
 
 	num_blocks = Decoding::decode_gprs_acknack_bits(
 		&ack_nack->Ack_Nack_Description, &bits,
-		&bsn_begin, &bsn_end, &tbf->m_window);
+		&bsn_begin, &bsn_end, tbf->window());
 
 	LOGP(DRLCMAC, LOGL_DEBUG,
 		"Got GPRS DL ACK bitmap: SSN: %d, BSN %d to %d - 1 (%d blocks), "
@@ -1279,8 +1279,8 @@
 		(void *)&ack_nack->EGPRS_AckNack.Desc,
 		(int)offsetof(EGPRS_AckNack_t, Desc),
 		(int)offsetof(EGPRS_AckNack_w_len_t, Desc),
-		tbf->m_window.v_a(),
-		tbf->m_window.v_s(),
+		tbf->window()->v_a(),
+		tbf->window()->v_s(),
 		osmo_hexdump((const uint8_t *)&ack_nack->EGPRS_AckNack.Desc.URBB,
 			sizeof(ack_nack->EGPRS_AckNack.Desc.URBB)));
 
@@ -1290,7 +1290,7 @@
 
 	num_blocks = Decoding::decode_egprs_acknack_bits(
 		&ack_nack->EGPRS_AckNack.Desc, &bits,
-		&bsn_begin, &bsn_end, &tbf->m_window);
+		&bsn_begin, &bsn_end, tbf->window());
 
 	LOGP(DRLCMAC, LOGL_DEBUG,
 		"Got EGPRS DL ACK bitmap: SSN: %d, BSN %d to %d - 1 (%d blocks), "