aboutsummaryrefslogtreecommitdiffstats
path: root/src/rlc.cpp
diff options
context:
space:
mode:
authorHolger Hans Peter Freyther <holger@moiji-mobile.com>2013-11-24 17:20:35 +0100
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2013-11-26 20:57:24 +0100
commitbc155706516dd63d1fbe3d87601df2f7606a1162 (patch)
treee0e8ebca0dbaad5fbc3f91e691c3a44f01664f60 /src/rlc.cpp
parente358ff8fa4865be81cd0fbf46ddd6baee3856e9b (diff)
tbf/rlc: Change the code and generate the entire state in the V_B
Diffstat (limited to 'src/rlc.cpp')
-rw-r--r--src/rlc.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/rlc.cpp b/src/rlc.cpp
index 24ffc176..a76703d5 100644
--- a/src/rlc.cpp
+++ b/src/rlc.cpp
@@ -116,3 +116,18 @@ int gprs_rlc_v_b::move_window(const uint16_t v_a, const uint16_t v_s,
return moved;
}
+
+void gprs_rlc_v_b::state(char *show_v_b, const uint16_t v_a, const uint16_t v_s,
+ const uint16_t mod_sns, const uint16_t mod_sns_half)
+{
+ int i;
+ uint16_t bsn;
+
+ for (i = 0, bsn = v_a; bsn != v_s; i++, bsn = (bsn + 1) & mod_sns) {
+ uint16_t index = (bsn & mod_sns_half);
+ show_v_b[i] = m_v_b[index];
+ if (show_v_b[i] == 0)
+ show_v_b[i] = ' ';
+ }
+ show_v_b[i] = '\0';
+}