rlc/tbf: Add function receive_bsn that updates v_r, v_q, v_n

We don't need to expose the mecanics of updating the variables to the
outside.
diff --git a/src/tbf.cpp b/src/tbf.cpp
index 9276c41..6b0e779 100644
--- a/src/tbf.cpp
+++ b/src/tbf.cpp
@@ -1606,14 +1606,12 @@
 		rh->bsn, dir.ul.window.v_q(),
 		(dir.ul.window.v_q() + ws - 1) & mod_sns);
 
-	dir.ul.window.m_v_n.mark_received(rh->bsn);
-	dir.ul.window.raise_v_r(rh->bsn);
-
 	/* Raise V(Q) if possible, and retrieve LLC frames from blocks.
 	 * This is looped until there is a gap (non received block) or
 	 * the window is empty.*/
 	const uint16_t v_q_beg = dir.ul.window.v_q();
-	const uint16_t count = dir.ul.window.raise_v_q();
+
+	const uint16_t count = dir.ul.window.receive_bsn(rh->bsn);
 
 	/* Retrieve LLC frames from blocks that are ready */
 	for (uint16_t i = 0; i < count; ++i) {