aboutsummaryrefslogtreecommitdiffstats
path: root/src/decoding.cpp
diff options
context:
space:
mode:
authorAravind Sirsikar <arvind.sirsikar@radisys.com>2016-09-15 17:24:49 +0530
committerAravind Sirsikar <arvind.sirsikar@radisys.com>2016-09-15 17:24:49 +0530
commit22a901905c9749b03fceccda4d550f3da799d524 (patch)
tree16ab25248b1dd773a7cf14c8f3aaaeaed7eb5a3b /src/decoding.cpp
parent3463bd4adc1598462560ed84da837d04d0e8e20c (diff)
EGPRS: Fix issue with row 4 of Table 10.4.14a.1 of 44.060 version 7.27.0 Release 7
row 4 of Table 10.4.14a.1 of Spec 44.060 version 7.27.0 Release 7. Says "The previous RLC data block contains a Upper Layer PDU, or a part of it, that fills precisely the previous data block and for which there is no length indicator in that RLC data block. The current RLC data block contains a Upper Layer PDU that either fills the current RLC data block precisely or continues in the next RLC data block." So when we receive block with 1st LI: value=0 and Value of E bit in the same octet as 1, we expect 2 chunks with 1st chunk as length as 0 and complete and 2nd chunk as length non zero. But with this bug we see only 1 chunk causing incorrect assembling This issue has been fixed in this patch. Related: OS#1811 Change-Id: I2cd0fca3ed28a553ede3f4b8a7d3267284dd2c9b
Diffstat (limited to 'src/decoding.cpp')
-rw-r--r--src/decoding.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/src/decoding.cpp b/src/decoding.cpp
index 7c00ff71..3f5c4d27 100644
--- a/src/decoding.cpp
+++ b/src/decoding.cpp
@@ -67,14 +67,11 @@ static int parse_extensions_egprs(const uint8_t *data, unsigned int data_len,
"but no more chunks possible\n");
return -ENOSPC;
}
- if (li->li == 0 && num_chunks == 0 && li->e == 0) {
+ if (li->li == 0 && num_chunks == 0) {
/* TS 44.060, table 10.4.14a.1, row 2a */
+ /* TS 44.060, table 10.4.14a.1, row 4 */
chunks[num_chunks].length = 0;
chunks[num_chunks].is_complete = true;
- } else if (li->li == 0 && num_chunks == 0 && li->e == 1) {
- /* TS 44.060, table 10.4.14a.1, row 4 */
- chunks[num_chunks].length = LENGTH_TO_END;
- chunks[num_chunks].is_complete = is_last_block;
} else if (li->li == 127 && li->e == 1) {
/* TS 44.060, table 10.4.14a.1, row 3 & 5 */
/* only filling bytes left */