aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSaurabh Sharan <saurabh.sharan@radisys.com>2016-03-16 19:17:32 +0530
committerHolger Hans Peter Freyther <holger@moiji-mobile.com>2016-03-16 15:01:53 +0100
commit2b09c39c9cb6d8a9761539d00e21b21352272905 (patch)
tree06bcecb94118b161190dea7cdfc44173fd0e53b9
parentbacb65b48b520ace03c877d3092b58e50cb68266 (diff)
Fix issue in encoding CSN_RECURSIVE_ARRAY
The remaining_bits_len is correctly decremented while encoding CSN_RECURSIVE_ARRAY for fixing the bug. Details of the bug is in https://projects.osmocom.org/issues/1641 During introduction of basic EGPRS feature new hex dump message PUASS, from a different working network log was used in Unit test. It exposed the issue of incorrect handling of recursive array encoding in osmo-pcu. Fixes: OS#1641
-rw-r--r--src/csn1.cpp1
-rw-r--r--tests/rlcmac/RLCMACTest.cpp1
-rw-r--r--tests/rlcmac/RLCMACTest.ok8
3 files changed, 10 insertions, 0 deletions
diff --git a/src/csn1.cpp b/src/csn1.cpp
index 82bf17f4..d51fe83e 100644
--- a/src/csn1.cpp
+++ b/src/csn1.cpp
@@ -2504,6 +2504,7 @@ gint16 csnStreamEncoder(csnStream_t* ar, const CSN_DESCR* pDescr, bitvec *vector
bitvec_write_field(vector, writeIndex, !Tag, 1);
LOGPC(DCSN1, LOGL_NOTICE, "%s = %u | ", pDescr->sz , (unsigned)(!Tag));
bit_offset++;
+ remaining_bits_len--;
pDescr++;
break;
diff --git a/tests/rlcmac/RLCMACTest.cpp b/tests/rlcmac/RLCMACTest.cpp
index 26d35ec6..466b89e5 100644
--- a/tests/rlcmac/RLCMACTest.cpp
+++ b/tests/rlcmac/RLCMACTest.cpp
@@ -93,6 +93,7 @@ void testRlcMacDownlink()
"47240c00400000000000000079eb2ac9402b2b2b2b2b2b", // Packet Uplink Ack Nack
"47283c367513ba333004242b2b2b2b2b2b2b2b2b2b2b2b", // Packet Uplink Assignment
"400820001a3904df0680efb3300b2b2b2b2b2b2b2b2b2b", // Packet Downlink Assignment (EGPRS)
+ "40284f0000001009810c826f4406809dcecb2b2b2b2b2b", // Packet Uplink Assignment (EGPRS)
"4024030f2f0000000087b0042b2b2b2b2b2b2b2b2b2b2b" // Packet Uplink Ack Nack (EGPRS)
"4913e00850884013a8048b2b2b2b2b2b2b2b2b2b2b2b2b"
"412430007fffffffffffffffefd19c7ba12b2b2b2b2b2b"
diff --git a/tests/rlcmac/RLCMACTest.ok b/tests/rlcmac/RLCMACTest.ok
index 4deced72..896982da 100644
--- a/tests/rlcmac/RLCMACTest.ok
+++ b/tests/rlcmac/RLCMACTest.ok
@@ -39,6 +39,14 @@ vector1 = 4082001a394df680efb330b2b2b2b2b2b2b2b2b2b
vector1 = 4082001a394df680efb330b2b2b2b2b2b2b2b2b2b
vector2 = 4082001a394df680efb330b2b2b2b2b2b2b2b2b2b
vector1 == vector2 : TRUE
+vector1 = 40284f00010981c826f446809dcecb2b2b2b2b2b
+=========Start DECODE===========
++++++++++Finish DECODE++++++++++
+=========Start ENCODE=============
++++++++++Finish ENCODE+++++++++++
+vector1 = 40284f00010981c826f446809dcecb2b2b2b2b2b
+vector2 = 40284f00010981c826f446809dcecb2b2b2b2b2b
+vector1 == vector2 : TRUE
vector1 = 40243f2f000087b042b2b2b2b2b2b2b2b2b2b2b
=========Start DECODE===========
+++++++++Finish DECODE++++++++++