aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2016-10-13Update README with working commit versions of osmo componentsradisys/egprs_puanPravin Kumarvel2-12/+9
Necessary changes for build this pcu.
2016-10-13Fix generation of Compressed bitmap in PUANPravin Kumarvel6-62/+246
correction for generation of CRBB in PUAN.
2016-10-13Fix Ul window calculation for GPRSPravin Kumarvel3-3/+8
The problem was introduced while calculating flexible window size for EGPRS in UL direction. Incorrect window calculation for GPRS UL tbf is fixed
2016-09-30Update README with working commit versions of osmo componentspravin3-2/+112
Necessary changes for build this pcu.
2016-09-30EGPRS: fix for EPDAN out of windowpravin6-60/+193
Fix for aligning the EPDAN out of RLC transmit window is made according to section 9.1.8.2.4 in 44.060 version 7.27.0 Release 7. The specification explains that A bit within the uncompressed bitmap whose corresponding BSN is not within the transmit window shall be ignored Related: OS#1789
2016-09-30EGPRS: add test case to show EPDAN BSN out of window bugpravin3-1076/+136
This patch adds a test case test_tbf_egprs_epdan which expects a current bug with EPDAN for Interpretation of the bitmap explained in section 9.1.8.2.4 in 44.060 version 7.27.0 Release 7. the specification explains that A bit within the uncompressed bitmap whose corresponding BSN is not within the transmit window shall be ignored. But current PCU implementation ignores EPDAN The test's expectation is corrected along with the bug fix in a subsequent commit Related: OS#1789
2016-09-30Fix: DL slot allocation based on direction configuredpravin6-10/+52
Currently number of TS for second DL TBF is less compared to first DL TBF because PCU is considering the combined capacity of DL and UL for TS allocation, with this there is a difference in throughput between the 2 DL TBFs. This patch enables the user to maximize the number of DL TSs for the TBF based on the direction configured through VTY with cfg_pcu_ts_alloc_maximise_cmd Related: OS#1792
2016-09-30Add test case for testing PUANpravin3-0/+1088
This test case is for testing generation of EGPRS PUAN. Corresponding log files .ok and .err are modified.
2016-09-30Add compression support in EGPRS PUANpravin9-11/+443
This adds compression of bitmap in PUAN. The compressed bitmap is used only if the number of bits in the bitmap does not fit in the message and there is a gain after compression. Test case is updated for testing the compression with bitmaps of varying lengths.
2016-09-30Fix issues in URBB generation in EGPRS PUANpravin1-35/+38
Below issue in uncompresed bitmap generation is addressed 1. Corrected the number of bits that is included in URBB 2. If length is not present, 0s are coded as remaining bits Along with this, code is restructured to enable addition of compression support
2016-09-30EGPRS: Add EPDAN CRBB Tree based decodingpravin9-15/+788
Implemented tree based algorithm to decode compressed bitmap in EPDAN as described in section 9.1.10 of 3GPP 44.060. This algorithm intends to improve the performance over existing method. New Regression test is added under bitcomp directory. Test case is added to validate decompressed result of the bitmap Present in EPDAN. Test is done for multiple bitmaps of varying length. Invalid inputs are also part of the test vector.
2016-09-22heed VTY 'line vty'/'bind' commandNeels Hofmeyr1-1/+2
Like most other osmo-* programs, bind the telnet VTY to the address specified by the 'line vty'/'bind' command. This is added by vty_init(), so until now the PCU offered this config but ignored it. Change-Id: I4cca05a212ec0d493b906014dc3a83e687ebbb1d
2016-09-16Update the function immediate assignment for EGPRSbhargava3-12/+85
Encode the EGPRS fields of immediate assignment message in uplink when EGPRS PACKET CHANNEL REQUEST (11 bit RACH) is received. The series of patches for 11 bit RACH are dependent on libosmocore and osmo-bts patches for 11 bit RACH. Change-Id: Ie5e309156e5dbbb6add74a1b4d257c4ee2332e52
2016-09-16Handle EGPRS 11 bit RACH in osmo-pcubhargava2-11/+84
A function is_single_block is added to get request type of RACH. EGPRS 11 bit RACH is handled. Change-Id: I61d74a32f7764644ed86f7fdf97fa3c2f61503f7
2016-09-15Fix EGPRS DL window calculation during tbf updateAravind Sirsikar3-6/+10
Earlier there was no handling for recalculation of DL window size during tbf update. Which has been fixed in this patch. Related: OS#1808 Change-Id: I41aa807068520460fd665a55e3529e60f6bbb630
2016-09-15tbf_dl: factor out EGPRS DL window size calculationAravind Sirsikar3-14/+24
A subsequent patch needs to call this from gprs_rlcmac_tbf::update(), so to avoid code dup, put the calculation in a separate function. Related: OS#1808 Change-Id: I7c7777d43f843bbd3421503fc2a8600f148ca035
2016-09-15EGPRS: Fix issue with row 4 of Table 10.4.14a.1 of 44.060 version 7.27.0 ↵Aravind Sirsikar5-31/+24
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
2016-09-15EGPRS: add test case to show LI decoding bugAravind Sirsikar4-0/+289
This patch adds a test case test_tbf_li_decoding which expects a current bug with LI decoding for row 4 of Table 10.4.14a.1 in 44.060 version 7.27.0 Release 7. The test's expectation is corrected along with the bug fix in a subsequent commit Related: OS#1811 Change-Id: Ida410dab1aa4b0cf3e15b2090586377eb19b2469
2016-09-14DL TS allocation: add test case to show TS allocation bug for 2nd DL TBFAravind Sirsikar2-0/+54
This patch adds a test case test_2_consecutive_dl_tbfs which expects a current bug with TS allocation for 2nd DL TBF. The test's expectation is corrected along with the bug fix in a subsequent commit Related: OS#1792 Change-Id: I890e4fbb2b64037e051433e70082a197e2a929a6
2016-09-14Fix CSN1 decoding: CSN_LEFT_ALIGNED_VAR_BMP boundsNeels Hofmeyr2-12/+6
Fix attempted read past vector boundaries in case of a starting bit offset != 0, so that the last amount of bits read should be < 8. In the case of CSN_LEFT_ALIGNED_VAR_BMP, the mod-8 calculation was flawed, and in the final step, 8 bits were read instead of the remainder < 8. This lead to -EINVAL being returned by bitvec_get_bit_pos() and bogus resulting data. Instead, read 8 bits only as long as at least 8 bits remain, and read any remaining bits < 8 in a final step. Drop unneeded nB1 variable and an obvious comment. Adjust the unit test assertion in testCsnLeftAlignedVarBmpBounds() in RLCMACTest.cpp. Based on a fix by Aravind Sirsikar <Arvind.Sirsikar@radisys.com>, but implemented differently. Related: OS#1805 Change-Id: I490498c8da6b531f54acb673379379f7b10907c0
2016-09-14CSN1 decoding: add test to show bug in CSN_LEFT_ALIGNED_VAR_BMPAravind Sirsikar1-1/+22
CSN1 decoding currently contains an attempted read past vector boundaries in case of a starting bit offset != 0, so that the last amount of bits read should be < 8. In the case of CSN_LEFT_ALIGNED_VAR_BMP, the mod-8 calculation is flawed, and in what should be the final step of reading n < 8 bits, 8 bits are read instead of n (with an extraneous read of n bits following after that). This leads to -EINVAL being returned by bitvec_get_bit_pos() and bogus resulting data. Add testCsnLeftAlignedVarBmpBounds() in RLCMACTest.cpp to show and expect this bug. The test's expectation shall be corrected along with the bug fix in a subsequent commit. Related: OS#1805 Tweaked-by: Neels Hofmeyr <nhofmeyr@sysmocom.de> Change-Id: I4641f5d1d49f66cb1a5cd813befb3a2a266001b0
2016-09-12TBF flow: unit test compilation error fixAravind Sirsikar1-35/+39
The test failure was introduced by 9bbe1600cc02e1b538380393edb1dcdabe9247a2 "Fix Timing Advance handling": between patch build checking and patch submission, a new section was added to TbfTest.cpp which also needs adjustment. Tweaked-by: Neels Hofmeyr <nhofmeyr@sysmocom.de> Change-Id: If077da5f21fd5cba54556f1dead05a1bc4ea5540
2016-09-09Fix Timing Advance handlingMax7-86/+121
* initialize with invalid TA instead of making assumption that phone is located within 550 meters (TA=0) * only set valid TA Change-Id: Idfc40ff0c11bdac13d9e28fbfa4e95dfc6b735b0 Related: OS#1526
2016-09-06LC15: Change TRX numbering for the latest Litecell15 hardwareMinh-Quang Nguyen1-2/+2
Change-Id: If3c4aff0366587dd3e5baa3d15b9e91d8ebe7753
2016-09-02Fix GPRS PUAN encoding: wrong BSN statusAravind Sirsikar2-4/+3
Earlier there was an incorrect encoding of BSN status in GPRS PUAN message. This was a bottle neck for GPRS performance testing for UL. Which has been fixed in this patch. Related: OS#1806 Change-Id: I98e586aa5cb9200cf03e092556304211d4d459aa
2016-09-02GPRS: PUAN encoding: add test case to show wrong BSNs statusAravind Sirsikar1-0/+18
This patch adds a test case which expects a current bug with GPRS PUAN encoding. The test's expectation is corrected along with the bug fix in a subsequent commit Related: OS#1806 Change-Id: Ied0f1dd3037d8fac6a772f4e097defb72634f955
2016-08-30DL: add test case to show wrong window sizeAravind Sirsikar3-0/+111
This patch adds a test case test_tbf_update_ws. Which expects a current bug with DL window size calculation. The test's expectation is corrected along with the bug fix in a subsequent commit Related: OS#1808 Change-Id: I4659494c6f93ae89e4cc4ac79fff5fcaf2d23699
2016-08-28TBF flow: unit test compilation error fixAravind Sirsikar1-1/+1
Change-Id: I89638ba908e7d9964a5525061ce0cf26049be438
2016-08-28TBF flow: Coverity fixAravind Sirsikar1-0/+3
Related: CID#1361925, CID:#1361924 Change-Id: Ib1f71a8940eed7ad74211092275dfa29aa353fc7
2016-08-27vty: use OSMO_VTY_PORT_PCU instead of numberNeels Hofmeyr1-1/+2
Include vty/ports.h and use the proper constant. Change-Id: I9c5b7683f76994c539da5551f40df32379dc685e
2016-08-27Change interface in osmo-pcu for 11 bit RACHbhargava5-9/+18
Interface structure between osmo-bts and osmo-pcu is updated with the parameters to differentiate the type of RACH and further support 11 bit RACH. The function prototype and definitions are changed accordingly. Interface version number is increased. Change-Id: I265c2d92d36d6cbcbeee60cdd8407dafe1da06a4
2016-08-25Fix EGPRS PUAN encoding: use correct urbb_lenAravind Sirsikar3-5/+5
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
2016-08-25EGPRS: PUAN encoding: add test case to show wrong urbb_len issueAravind Sirsikar3-0/+304
This patch adds a test case which expects a current bug with EGPRS PUAN encoding when VQ != VR. The test's expectation is corrected along with the bugfix in a subsequent commit Adds test_tbf_puan_urbb_len to describe the following bug: EGPRS PUAN encoding disregards the urbb_len, leading to identical PUAN messages regardless of the urbb_len. Related: OS#1793 Change-Id: I00662a564f64c0c83627401ae8f7bfef0f0a5de8
2016-08-25Modify EGPRS DL TBF flow to support SPBAravind Sirsikar11-79/+957
Modify the EGPRS DL TBF flow to support Split block during Retx. This patch will also Upgrade the test suite with test cases to validate the EGPRS Downlink SPB for Retransmission Scenarios like MCS6->MCS3, MCS4->MCS1, MCS5->MCS2, MCS9->MCS3 MCS7->MCS2, MCS8->MCS3 have been simulated and Integration tested in NuRAN 1.0 hardware thoroughly. Change-Id: I242afdd8ae7622dec8593b26382ad66bad5b9516
2016-08-25Add data structure to handle SPB for EGPRS DLAravind Sirsikar2-4/+45
Modify the header files with necessary data structure to handle Split block for EGPRS DL TBF. The EGPRS resegmentation feature allows PCU to retransmit RLC blocks of HeaderType1, HeaderType2 by segmenting them to 2 HeaderType3 blocks(Example MCS5 will be retransmitted as 2 MCS2 blocks). Table 10.4.8b.2 of 44.060 explains the possible values of SPB in HeadrType3 for DL direction. The PCU decides to retransmit the blocks by resegmenting it based on Table 8.1.1.1 of 44.060. The retransmission MCS is calculated based on current MCS of the Block and demanded MCS by PCU. Section 10.3a.3.3 of 44.060 shows the HeadrType3 with SPB field present in it Change-Id: I57673e53a9da2affa7e8aaa6551ac4b271c3d525
2016-08-22Remove warning while using 'egprs only' command in VTYAravind Sirsikar1-6/+0
This warning is not valid since the PCU is not failing when EGPRS is activated. So removing this trace Change-Id: I62278f998adc691b9a3563ac2a46d756e7bfb66c
2016-08-16jenkins.sh: drop compat with old matrix paramsNeels Hofmeyr1-9/+0
Change-Id: I7b50a24cf5879cb473a5cf929768bdd30e863a26
2016-08-11jenkins.sh: change build matrix to $with_dsp and $with_vtyNeels Hofmeyr1-19/+43
The new $with_dsp matrix parameter is defined as "sysmo" or empty/"none". The lc15 DSP might be added in the future. Fetch the sysmo layer 1 API only if with_dsp==sysmo. The new $with_vty parameter is independent of $with_dsp, it is now up to jenkins to define a matrix filter. For compat, until jenkins is reconfigured with the new matrix parameters, use $sysmodsp to init the new parameters to reflect previous behavior. The $sysmobts matrix parameter made no sense, drop it. Change-Id: Ia120f918342dc9563814252258b73bfb267e5253
2016-08-11jenkins.sh: more quotes, cosmetics, less dupNeels Hofmeyr1-17/+16
Rename BTS_CONFIG to PCU_CONFIG. More quotes. Unify bash if-style. Define *_PATH variables once globally instead of duping in every line. Change-Id: If148632c3f340a8a395fa432135e593fecc41e82
2016-08-11jenkins.sh: use absolute paths instead of 'cd ..' and $PWDNeels Hofmeyr1-11/+16
Change-Id: If79d283fa0a559bb7ea319c513d09466eff523d1
2016-08-11jenkins.sh: ensure $MAKE is setNeels Hofmeyr1-0/+5
Change-Id: I2da8acdfe3abf79f68db4d00d04a7d162f0123ce
2016-08-09LC: fix build errorMax1-1/+1
Remove extra parameter which causes build to break. The error was introduced in 878bd1f296379ffba949d6fcae2938c13406df5b Change-Id: Id63187d925d448caa4fa85720582550919b1f216
2016-08-04Extend BTS <-> PCU protocol with measurementMax2-2/+13
Note: this increases the version of BTS <-> PCU protocol and thus requires corresponding change in BTS. Change-Id: Ide0e29b668ee38516605c1763fda85e87e867813 Related: OS#1616
2016-08-02Add support for SPB handling for EGPRS UL TBFAravind Sirsikar6-25/+908
This patch will modify the EGPRS UL TBF flow to support Split block handling. This patch also contains test suite modification for SPB UL. Scenarios like MCS6->MCS3, MCS4->MCS1, MCS5->MCS2, MCS9->MCS3 MCS7->MCS2, MCS8->MCS3 have been simulated and Integration tested in NuRAN 1.0 hardware thoroughly. The scope of Unit testing is limited. Change-Id: I39ca53218b6e0982abc2ab9c703c24c8bf0a09c0
2016-08-02Add data structure for SPB in EGPRS ULAravind Sirsikar1-0/+40
Modify header files with data structures required to support split blocks for EGPRS UL TBF This feature provides provision for MS to retransmit RLC blocks of HeaderType1, HeaderType2 by segmenting them to 2 HeaderType3 blocks(Example MCS5 will be retransmitted as 2 MCS2 blocks). Table 10.4.8b.1 of 44.060 explains the possible values of SPB in HeadrType3 for UL direction. When the MCS is changed at the PCU, PCU directs the changed MCS to MS by PUAN or UPLINK ASSIGNMENT message along with RESEGMENT flag, Then MS may decide to retransmit the blocks by resegmenting it based on Table 8.1.1.1 of 44.060. The retransmission MCS is calculated based on current MCS of the Block and demanded MCS by PCU. Section 10.3a.4.3 of 44.060 shows the HeadrType3 with SPB field present in it. Change-Id: I83ccd136bb361adcfd511c57c5a9d95ed72c36c2
2016-07-28Properly set TA_VALID bitMax1-3/+6
Check Timing Advance validity and set corresponding bit for Immediate Assignment message. Previously !polling was errorneously used (polling bit has nothing to do with TA validity according to 3GPP TS 44.018 Table 10.5.2.16.1) which lead to TA being always valid as polling is always 0 in other parts of the code. Change-Id: I5d7ecc7f71402b945cae99332be2ebc0b17b9d44 Related: OS#1526
2016-07-26Remove useless ARFCN parameterMax6-15/+13
ARFCN is already part of TRX struct so there's no need to supply it explicitly in a separate parameter. I've tested and those are the same anyway. Change-Id: I8e975c52cbc819427880093b1e5371fe1f8ce460
2016-07-23Cleanup readmeMax1-1/+0
Remove note on PCCCH/PBCCH support because according to 3GPP TS 44.060 version 12.5.0 Release 12 § 1.6 "The network shall never enable PBCCH and PCCCH". The rationale behind this from GP-091955: "Due to that P-channels are not deployed by any operator and are not expected ever to be, it has decided to remove the requirement on mandatory support of P-channels for the mobile stations in A/Gb mode." Change-Id: I2b16413e1b6ce8f2bc2e8183165fb6b3aa14f2d0
2016-07-20Remove unused definitionsMax2-34/+0
Those structs are not used anywhere (which was the case in the commit which introduced them as well) but give false-positives while grepping through the code. Better to just drop them. Change-Id: I0a0bb0c641e4e081a57f72187ff96e9beef16588
2016-07-14egprs: Use RLC/MAC headers from libosmocoreTom Tsou4-161/+68
EGPRS Type 1, 2, and 3 headers are used by OsmoPCU and OsmoBTS. Move the header definitions to libosmocore to be shared by both packages. Modify the struct variable naming to use *_hi/*_lo instead of *_a/*_b in order to be consistent with existing naming used in libosmocore. Change-Id: I98687ad981d27502aec42729611937ba1caf207c