From eebcb1e3e87a37cde3ac6aaf89b8c6c201abb6ba Mon Sep 17 00:00:00 2001 From: Aravind Sirsikar Date: Thu, 25 Aug 2016 16:40:23 +0530 Subject: Fix EGPRS PUAN encoding: use correct urbb_len Earlier there was an incorrect encoding of PUAN when VQ is not equal VR case for EGPRS UL RLC window. The PCU was encoding the same PUAN message always irrespective of radio condition. This was a bottle neck for performance testing. Which has been fixed in this patch. Related: OS#1793 unit test assertion in the previous commit is fixed in this patch. Change-Id: Iba7b1995028bd81749ffb080616b2ad5f2540d57 --- src/encoding.cpp | 3 ++- tests/tbf/TbfTest.cpp | 3 +-- tests/tbf/TbfTest.err | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/encoding.cpp b/src/encoding.cpp index 63049ac3..41e0d105 100644 --- a/src/encoding.cpp +++ b/src/encoding.cpp @@ -575,7 +575,8 @@ static void write_packet_ack_nack_desc_egprs( eow = false; urbb_len = rest_bits - 9; /* TODO: use compression (see above) */ - } + } else + urbb_len = num_blocks; if (urbb_len + crbb_len == rest_bits) len = -1; diff --git a/tests/tbf/TbfTest.cpp b/tests/tbf/TbfTest.cpp index 8ec1dccb..5e40abcb 100644 --- a/tests/tbf/TbfTest.cpp +++ b/tests/tbf/TbfTest.cpp @@ -753,9 +753,8 @@ static gprs_rlcmac_ul_tbf *puan_urbb_len_issue(BTS *the_bts, msg1 = ul_tbf->create_ul_ack(*fn, ts_no); - /* TODO: Need to modify the assert */ OSMO_ASSERT(!strcmp(osmo_hexdump(msg1->data, msg1->data_len), - "40 24 01 3f 3e 24 46 68 90 87 b0 06 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b " + "40 24 01 3f 3e 24 46 68 90 88 b0 06 8b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b " )); return ul_tbf; diff --git a/tests/tbf/TbfTest.err b/tests/tbf/TbfTest.err index c3a7f207..452f1c16 100644 --- a/tests/tbf/TbfTest.err +++ b/tests/tbf/TbfTest.err @@ -6307,8 +6307,8 @@ TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS): Got MCS-3 RLC data block: CV TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS): data_length=37, data=00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - Raising V(R) to 5 Encoding Ack/Nack for TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS) (final=0) - - EGPRS URBB, len = 0, SSN = 3, ESN_CRBB = 2, SNS = 2048, WS = 64, V(Q) = 2, V(R) = 5, BOW, EOW -Uplink Ack/Nack bit count 98, max 184, message = 40 24 01 3f 3e 24 46 68 90 87 b0 06 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b + - EGPRS URBB, len = 2, SSN = 3, ESN_CRBB = 2, SNS = 2048, WS = 64, V(Q) = 2, V(R) = 5, BOW, EOW +Uplink Ack/Nack bit count 100, max 184, message = 40 24 01 3f 3e 24 46 68 90 88 b0 06 8b 2b 2b 2b 2b 2b 2b 2b 2b 2b 2b Got 'TBF(TFI=0 TLLI=0xf1223344 DIR=UL STATE=FLOW EGPRS)', TA=7 Got MS: TLLI = 0xf1223344, TA = 7 ********** TBF starts here ********** -- cgit v1.2.3