aboutsummaryrefslogtreecommitdiffstats
path: root/tests/tbf/TbfTest.ok
AgeCommit message (Collapse)AuthorFilesLines
2016-02-08tbf/tests: Add tests for EGPRS TBF establishmentJacob Erlbeck1-0/+13
Add a test for EGPRS two phase access based on RA caps. Add a test for DL TBFs where data block are encoded with each MCS. Sponsored-by: On-Waves ehf
2016-02-08edge: Make window size configurableJacob Erlbeck1-0/+2
Currently the window size is fixed to 64 even for EGPRS. Support dynamic window sizes depending on the number of PDCH. The WS can be set to b + f * N_PDCH. If the result is not valid according to TS 44.060, Table 9.1.9.2.1, the value will be corrected to use the next lower valid value (or 64). The following VTY commands are added (config-pcu node): window-size <0-1024> set base (b) value and leave f unchanged window-size <0-1024> <0-256> set base (b) and factor (f) Sponsored-by: On-Waves ehf
2016-02-08edge: Disable GPRS/EGPRS mixed modeJacob Erlbeck1-0/+2
Currently the plain 'egprs' command enables EGPRS but doesn't prevent phones from being served in GPRS mode if they do not support EGPRS. This involves complex frame allocation implementations in dynamic mode, especially if 8PSK is being used. This is due to the inability of non-EGPRS phone to decode 8PSK USF and ES/P altogether. Since polling has a higher priority than USF, collisions will have to be prevented by the PCU by never using an GPRS USF if it refers to a FN that is already being used for polling. This commit just disables mixed usage by ignoring GPRS-only request if EGPRS is enabled. The following VTY command (config-pcu node) is changed: egprs -> egprs only Sponsored-by: On-Waves ehf
2016-02-05tbf/test: Add missing function name printfsJacob Erlbeck1-0/+6
Some test function don't have the "=== start/end ===" printfs. Sponsored-by: On-Waves ehf
2015-08-24tbf/test: Add test_tbf_dl_reuseJacob Erlbeck1-0/+2
This tests the usage of an existing TBF that is no longer in FLOW state to request a new DL TBF via the old TBF's PACCH. The test triggers a bug that breaks the association between both TBF objects, resulting in packet loss and transmission stalling. Sponsored-by: On-Waves ehf
2015-08-21tbf/test: Add tests for RACH while DL TBFs are activeJacob Erlbeck1-0/+6
This adds tests for - RA update with RACH for the RAUpdateComplete message - RACH for UL while DL is active (LLC queue not empty) Sponsored-by: On-Waves ehf
2015-07-03ms: Add tbf() method to get the TBF based on the directionJacob Erlbeck1-0/+2
To avoid the need for a switch or conditional statement when needing a TBF from an MS object in direction independant code, this method contains that case distinction. For additional flexibility, a reverse() function is added to get the opposite direction. Sponsored-by: On-Waves ehf
2015-06-22tbf/test: Add test for DL LLC packet lossJacob Erlbeck1-0/+2
Currently LLC frames are lost or even reordered when the TBF has be established via the AGCH and the procedure fails for some reason. This test tries to reproduce this behaviour by throwing away the first TBF while calling the handle() method several times. The results of create_dl_acked_block() are checked against expected values (this is currently party disabled because the bug still persists). Ticket: #1759 Sponsored-by: On-Waves ehf
2015-05-28tbf/test: Add tests for single and two phase accessJacob Erlbeck1-0/+4
These tests cover the message exchange from receiving from the first RACH request to the first data block when establishing an uplink TBF. This will be used to check, whether TA and other values are passed to an MS object correctly. In addition, the RX RACH log message in rcv_rach is extended to contain the single block fn. Sponsored-by: On-Waves ehf
2015-05-28tbf: Move IMSI to MS objectJacob Erlbeck1-0/+2
Currently the IMSI is stored in the TBFs. Since it directly refers to an MS, it should rather be stored in an MS object. This patch move the m_imsi field from gprs_rlcmac_tbf to GprsMs, changes gprs_rlcmac_tbf::imsi() to get the IMSI from the associated MS object, and adds getter and setter to GprsMs. Before changing the IMSI of the associated MS object, assign_imsi() checks if there is already another MS object with the same IMSI and eventually resets the IMSI of that one. So using update_ms() and assign_imsi() ensures that there are not two MS object entries is the storage with the same TLLI or the same IMSI. Ticket: #1674 Sponsored-by: On-Waves ehf
2015-04-09tbf/test: Add test for DL TBF exhaustionJacob Erlbeck1-0/+2
This test calls gprs_rlcmac_dl_tbf::handle() with varying TLLI and IMSI until the function fails. Sponsored-by: On-Waves ehf
2015-03-25tbf/test: Add test for delayed releaseJacob Erlbeck1-0/+2
This tests checks the implementation of the delayed release of an downlink TBF. Ticket: #556 Sponsored-by: On-Waves ehf
2013-10-30tbf: Learn and propagate the TLLI changes due a new P-TMSIHolger Hans Peter Freyther1-0/+0
During a routing area update a new P-TMSI was assigned. During the PACKET CONTROL ACK on the DL we notice the change of TLLI but didn't propagate this. This means that a Routing Area Update Complete was only sent after a new RACH request. Addresses: <0007> gprs_rlcmac_meas.cpp:103 UL RSSI of TLLI=0x88661bc6: -67 dBm <0002> bts.cpp:945 Got ACK, but UL TBF is gone TLLI=0xe512eba3 <0007> gprs_rlcmac_meas.cpp:158 DL packet loss of IMSI=274080000004765 / TLLI=0xe512eba3: 0% <0002> tbf.cpp:668 TBF TFI=0 TLLI=0x88661bc6 T3169 timeout during transsmission <0002> tbf.cpp:690 - Assignment was on PACCH <0002> tbf.cpp:694 - No uplink data received yet