rlc: Add unified gprs_rlc_window parent class

Currently gprs_rlc_ul_window and gprs_rlc_dl_window are completely
separate classes, containing several identical members and methods.

This commit add a shared parent class containing WS and SNS handling.

Sponsored-by: On-Waves ehf
diff --git a/src/rlc.cpp b/src/rlc.cpp
index 6d3cfd5..e4a9563 100644
--- a/src/rlc.cpp
+++ b/src/rlc.cpp
@@ -55,22 +55,6 @@
 	m_v_b.reset();
 }
 
-void gprs_rlc_dl_window::set_sns(uint16_t sns)
-{
-	OSMO_ASSERT(sns >= RLC_GPRS_SNS);
-	OSMO_ASSERT(sns <= RLC_MAX_SNS);
-	/* check for 2^n */
-	OSMO_ASSERT((sns & (-sns)) == sns);
-	m_sns = sns;
-}
-
-void gprs_rlc_dl_window::set_ws(uint16_t ws)
-{
-	OSMO_ASSERT(ws >= RLC_GPRS_SNS/2);
-	OSMO_ASSERT(ws <= RLC_MAX_SNS/2);
-	m_ws = ws;
-}
-
 int gprs_rlc_dl_window::resend_needed()
 {
 	for (uint16_t bsn = v_a(); bsn != v_s(); bsn = mod_sns(bsn + 1)) {
@@ -219,7 +203,7 @@
 		m_v_n[i] = GPRS_RLC_UL_BSN_INVALID;
 }
 
-void gprs_rlc_ul_window::set_sns(uint16_t sns)
+void gprs_rlc_window::set_sns(uint16_t sns)
 {
 	OSMO_ASSERT(sns >= RLC_GPRS_SNS);
 	OSMO_ASSERT(sns <= RLC_MAX_SNS);
@@ -228,7 +212,7 @@
 	m_sns = sns;
 }
 
-void gprs_rlc_ul_window::set_ws(uint16_t ws)
+void gprs_rlc_window::set_ws(uint16_t ws)
 {
 	OSMO_ASSERT(ws >= RLC_GPRS_SNS/2);
 	OSMO_ASSERT(ws <= RLC_MAX_SNS/2);