aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/rlc.cpp2
-rw-r--r--tests/types/TypesTest.cpp5
2 files changed, 3 insertions, 4 deletions
diff --git a/src/rlc.cpp b/src/rlc.cpp
index e69d1fce..ee2635aa 100644
--- a/src/rlc.cpp
+++ b/src/rlc.cpp
@@ -227,7 +227,7 @@ void gprs_rlc_ul_window::update_rbb(char *rbb)
{
int i;
for (i=0; i < ws(); i++) {
- if (m_v_n.is_received(ssn()-1-i))
+ if (m_v_n.is_received((ssn()-1-i) & mod_sns()))
rbb[ws()-1-i] = 'R';
else
rbb[ws()-1-i] = 'I';
diff --git a/tests/types/TypesTest.cpp b/tests/types/TypesTest.cpp
index c5654f6d..8b3cfd1c 100644
--- a/tests/types/TypesTest.cpp
+++ b/tests/types/TypesTest.cpp
@@ -325,10 +325,9 @@ static void test_rlc_dl_ul_basic()
/*
* SSN wrap around case
- * TODO: Should not expect any BSN as nacked.
- * should be fixed in subsequent patch
+ * Should not expect any BSN as nacked.
*/
- rbb = "IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIRR";
+ rbb = "RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR";
for (int i = 0; i < 128; ++i) {
ul_win.receive_bsn(i);
ul_win.raise_v_q();