Commit Graph

882 Commits

Author SHA1 Message Date
Pedro Alvarez 02c077106b lib,rlc_am_nr: slowdown backoff if we run out of buffers in rlc_stress test 2022-04-12 14:43:44 +01:00
Robert Falkenberg e5e5266eea lib,rlc: add stress test support for NR AM18 2022-04-05 06:36:49 +02:00
Robert Falkenberg dd7bd351b3 lib,rlc_am_nr: fix pack/unpack of NACKs in status PDUs 2022-03-31 12:04:43 +02:00
Pedro Alvarez 718c0ba2cd lib,rlc: make it easier to save rlc_stress test result log to a file 2022-03-29 13:46:40 +01:00
Pedro Alvarez 0ada2adac7 lib,rlc_am_nr: minor fixes to address coments. Re-added comment, deleted useless assignement and fixed incorrect comment 2022-03-25 09:42:10 +00:00
Pedro Alvarez 981983377d lib,rlc_am_nr: fixes for retx_segment test for 18bits after changes for Rx_Highest_Status 2022-03-25 09:42:10 +00:00
Pedro Alvarez 1e0e451174 lib,rlc_am_nr: fixes for retx_segment_test after changes to RX_Highest_Status 2022-03-25 09:42:10 +00:00
Pedro Alvarez f4ff72bff8 lib,rlc_am_nr: fixes for setting the rx_highest_status incorrectly and incorrect status report generation. 2022-03-25 09:42:10 +00:00
Robert Falkenberg bd6e306c94 lib,rlc_am_nr: extend unit tests for 18-bit SN 2022-03-22 10:14:44 +01:00
Robert Falkenberg 7e13cd0712 lib,rlc_am_nr: rename get_tx_window_size() to get_tx_window_utilization() 2022-03-21 15:23:21 +01:00
Robert Falkenberg 329f3e519b lib,rlc_am_nr: reset do_status flag after sending status PDU
and extend unit test to fail when redundant status PDUs exist.
2022-03-19 07:07:42 +01:00
Pedro Alvarez c023dba175 lib,rlc_am_nr: cleaned up some test names and some comments. 2022-03-17 13:54:56 +00:00
Pedro Alvarez b4814bfdc1 lib,rlc_am_nr: added test for polling bit set when retx queue is empty. Fixed lost PDU test now that we correctly set the polling bit. 2022-03-17 13:54:56 +00:00
Pedro Alvarez 47aea19bd3 lib,rlc_am_nr: added test for poll setting in RETXes 2022-03-17 13:54:56 +00:00
Pedro Alvarez 1d1e6dd832 lib,rlc_am_nr: added pollBYTE support and a unit test for it 2022-03-17 13:54:56 +00:00
Robert Falkenberg b52a102021 lib,rlc_am_nr: extend unit tests for 18-bit SNs 2022-03-16 10:57:28 +01:00
Robert Falkenberg 717132e0c3 lib,rlc_am_nr: fix access of unconfigured entity 2022-03-16 10:57:28 +01:00
Robert Falkenberg 11ac8c2529 lib,rlc_am_nr: add support for 18-bit SNs
and first bunch of corresponding unit tests
2022-03-16 10:57:28 +01:00
Robert Falkenberg b6d93577a0 rlc, nr: replace so_end by segment_length 2022-03-09 08:28:46 +01:00
Robert Falkenberg bb7339910f rlc: separate types of rlc_amd_retx_t for LTE and NR 2022-03-09 08:28:46 +01:00
Robert Falkenberg 4886dc8340 rlc, nr: NACK's so_end shall point to last missing byte
and not to first byte received again.
2022-03-09 08:28:46 +01:00
Robert Falkenberg 60c3d79f47 rlc, nr: complete packing of status PDUs with 18bit SNs 2022-03-01 20:44:39 +01:00
Robert Falkenberg f7515e98cf rlc, nr: add pack/unpack of nack_range in status PDUs 2022-03-01 15:31:35 +01:00
Robert Falkenberg b55f8ea624 rlc, nr: cosmetic changes 2022-02-28 16:37:44 +01:00
Robert Falkenberg 0fb6420e8b rlc, nr: avoid multi increments of SDU's retx_count within one status message 2022-02-28 16:37:44 +01:00
Robert Falkenberg 511ad9ed25 rlc, nr: Increment retx_count for segments 2022-02-28 16:37:44 +01:00
Robert Falkenberg 034aa6a6d4 rlc, nr: inform upper layer when max retransmissions is exceeded 2022-02-28 16:37:44 +01:00
Pedro Alvarez 0c0642c289 lib,rlc_stress_test: changed global pcap handler from .h to .cc. Deleted
unecessary #define
2022-02-25 11:09:18 +00:00
Pedro Alvarez 7bcec48e19 lib,rlc_stress_test: fixed issue in making log_hex_limit configurable. 2022-02-25 11:09:18 +00:00
Pedro Alvarez 431ccb2754 lib,rlc_am_nr: Cleaned up rlc_stress test. Split test into .cc and .h 2022-02-25 11:09:18 +00:00
Robert Falkenberg 8f6e3996d3 rlc, nr: add discard_test for AM 2022-02-23 11:18:31 +01:00
Robert Falkenberg 9b44d13471 rlc, nr: notify PDCP about fully acked SDUs 2022-02-23 10:57:21 +01:00
Pedro Alvarez 2156c319d2 lib,rlc_am_nr: temporarily disable RLC AM NR stress test. 2022-02-17 16:37:53 +00:00
Pedro Alvarez 9205ede8c1 lib,rlc_am_nr: enabled RLC AM NR stress tests 2022-02-16 13:23:32 +00:00
Pedro Alvarez c8d15135c6 lib,rlc_am_nr: addressing reveier comments:
* made some methods const
  * changed from TESTASSERT to TESTASSERT_EQ
  * fix up comment
  * removed superfulous if
  * used typedef for list of segments received
  * added unit test for is_retx_required()
  * added unit test for malformed status PDU
2022-02-16 13:23:32 +00:00
Pedro Alvarez 871142b722 lib,rlc_am_nr: fix up the last metric checks in the retx_segment_test() 2022-02-16 13:23:32 +00:00
Pedro Alvarez 3b9ad84bda lib,rlc_am_nr: fix checking some statistics in unit test 2022-02-16 13:23:32 +00:00
Pedro Alvarez 525d2db454 lib,rlc_am_nr: re-enable all tests 2022-02-16 13:23:32 +00:00
Pedro Alvarez b13d0ca84a lib,rlc_am_nr: fixed generation of status report when SOs are present. Starting to test retx of segments. 2022-02-16 13:23:32 +00:00
Pedro Alvarez 876c45c534 lib,rlc_am_nr: added ability to pack/unpack SO_start and SO_end to rlc am nr NACKs. Added unit test for this feature. 2022-02-16 13:23:32 +00:00
Pedro Alvarez 047831e178 lib,rlc_am_nr: fixup compilation of rlc_am_nr_pdu_test when saving pcaps 2022-02-16 13:23:32 +00:00
Pedro Alvarez 12e530a800 lib,rlc_am_nr: fix generation of status report when NACKs of lost SDU segments are present. 2022-02-16 13:23:32 +00:00
Pedro Alvarez 7206517846 lib,rlc_am_nr: starting to add unit test for retx'ing segments. Fixed issue in updating tx_next when segmenting the SDU. 2022-02-16 13:23:32 +00:00
Pedro Alvarez 801eddf899 lib,rlc_am_nr: fix up test regarding retx segmentation 2022-02-16 13:23:32 +00:00
Pedro Alvarez 5fa72b2b3d lib,rlc_am_nr: fix creation of retx segement from existing segment. 2022-02-16 13:23:32 +00:00
Pedro Alvarez 65d5df8b6e lib,rlc_am_nr: Continue to add functionality to provide segments of retx'es. Started to add function to re-segment already existing SDU segment 2022-02-16 13:23:32 +00:00
Pedro Alvarez e4a72de342 lib,rlc_am_nr: refactored build_pdu helpers to receive the payload pointer for consistency. Added function to segment retx. Added some comments to build PDU helper functions. 2022-02-16 13:23:32 +00:00
Pedro Alvarez b1a33a07a1 lib,rlc_am_nr: starting to add test for segmenting retx. Changed sdu under segmentation to only hold the SN. The actual SDU already exists in the pdu stored in the tx_window. 2022-02-16 13:23:32 +00:00
Francisco a2174a5714 Fix type storage copy and move assignment function helper
Previously, in the case both the lhs and rhs optionals were present, the copy/move assignments were erroneously destroying the lhs object.
2022-02-15 16:50:21 +01:00
Bedran Karakoc 70084cf9cc Added unit test for K_gnb derivation 2022-01-25 14:24:58 +01:00
Francisco 3c25b6cb24 asn1: remove presence flag for lists and octet strings, as the size of the latter implicitly tell if the asn1 field is present 2022-01-17 11:58:00 +00:00
Francisco f7efee9884 asn1: use typedefs for amf_ue_ngap_id, ran_ue_ngap_id, mme_ue_s1ap_id and enb_ue_s1ap_id and changed interface to access s1ap and ngap protocol_ies 2022-01-11 22:59:38 +00:00
Francisco Paisana d5f5df3e7b asn1: place common asn1 type for empty ie object sets in asn1_utils.h 2022-01-11 22:59:38 +00:00
Francisco Paisana ec1ed9d4a5 asn1: fix json generation for s1ap/ngap and improve ie protocol field interface 2022-01-11 22:59:38 +00:00
Francisco Paisana 61e225d762 asn1: move setup_release_c from rrc_nr_asn1 to asn1_utils and improved interface 2022-01-11 22:59:38 +00:00
Francisco Paisana 2d2a5bee03 asn1: update procotol_ie_single_container interface to use -> operator instead of .value to access container content 2022-01-11 22:59:38 +00:00
Francisco Paisana 6b181e7a94 asn1: move protocol_ie_single_container_s to asn1_utils, so it can be used by ngap, s1ap, and other layers 2022-01-11 22:59:38 +00:00
Francisco Paisana c8f7976014 asn1: use byte buffer pool for temporary variable length field generation instead of stack array 2022-01-11 22:59:38 +00:00
Pedro Alvarez e9a47ef7b1 lib,rlc_am_nr: added assert to make sure we never write over nof_bytes 2022-01-10 23:25:44 +00:00
Pedro Alvarez 8afea13d9a lib,rlc_am_nr: added initial logic to support receiving PDU segments. 2022-01-10 23:25:44 +00:00
Pedro Alvarez 76c33c78a9 lib,rlc_am_nr: starting to add test for segmentation. Starting to add functions for creating new segments and segment continuation. 2022-01-10 23:25:44 +00:00
Pedro Alvarez f544cc7f7e lib,rlc_am_nr: fixed issue introduced with the changes of the header packing. 2022-01-10 23:25:44 +00:00
Pedro Alvarez 40fab8fdb4 lib,rlc_am_nr: starting to add segmentation test 2022-01-10 23:25:44 +00:00
Francisco Paisana 40138c7125 changed namespace of asn1 ngap from 'ngap_nr' to simply 'ngap' 2022-01-05 18:26:05 +01:00
Fabian Eckermann 93210d9bb3 Add unit tests for new functions. 2021-12-14 18:00:49 +01:00
Pedro Alvarez 17d2eb0ea7 lib,rlc_am_lte: added unit test for t-pollRetransmssion re-arming when ACK/NACK is received. 2021-12-09 11:30:59 +00:00
Pedro Alvarez b425316936 lib,rlc_am_nr: fixed tx_mod_base_nr(). Added unit test for inside_tx_window(). 2021-12-07 16:46:26 +00:00
Pedro Alvarez 3d5682b180 lib,rlc_am_nr: added unit tests to check inside_rx_window helper 2021-12-07 16:46:26 +00:00
Francisco 3bd77befd3 nr,gnb,asn1: update asn1 rrc nr unit test 2021-11-25 16:49:50 +00:00
Pedro Alvarez b497d773ce lib,rlc_am_nr: Fixed some metrics calculation. Added more precise metrics checking to unit tests 2021-11-22 17:42:52 +00:00
Pedro Alvarez b794593469 lib,rlc_am_nr: added processing of ACKs from status report 2021-11-22 17:42:52 +00:00
Pedro Alvarez ec93cc7238 rlc_am_nr: added logic to retx NACK'ed PDU. 2021-11-22 17:42:52 +00:00
Pedro Alvarez 473a45aae0 rlc_am_nr: fix buffer status calculation for retxs 2021-11-22 17:42:52 +00:00
Pedro Alvarez 4e1c713c14 rlc_am_nr: Enabled sending NACKs on status PDUs
- Added some logic to only poll when PDU_WITHOUT_POLL > PollPDU
  - Fixed initalization of t-Reassembly
  - Fixed a bug in the packing of the status buffer.
Nacks now work for a single lost PDU.
2021-11-22 17:42:52 +00:00
Pedro Alvarez 25492de6b7 Stating to add PollPDU 2021-11-22 17:42:52 +00:00
Pedro Alvarez 3f000f0472 Adding t_reassembly to RLC AM NR 2021-11-22 17:42:52 +00:00
Pedro Alvarez f09020e57f Adding unit test for lost SDUs. Fixing way rx_next and rx_status_highest are updated. 2021-11-22 17:42:52 +00:00
Andre Puschmann 4dcbc70131 mac,packing: move test code to source folder 2021-11-22 15:16:12 +01:00
Andre Puschmann 85f7313f83 mac_pdu_nr_test: add TC for UL-SCH PDU with CCCH 48bits 2021-11-18 21:02:32 +01:00
Fabian Eckermann d0c07fc86e Add packing of dci format 1A for pdcch orders. 2021-11-18 14:56:31 +01:00
Pedro Alvarez 9e4631ee24 Added NR specific config struct for RLC AM. Added status prohibit timer. 2021-11-17 10:50:35 +00:00
Pedro Alvarez 1f8d0ab557 Fix generation of status report. 2021-11-17 10:50:35 +00:00
Pedro Alvarez 2d29e4005c Starting to generate RLC NR status report.
Starting to check if status pdu generation is correct.
2021-11-17 10:50:35 +00:00
Pedro Alvarez 7121152cff Added basic functionality for read_pdu to RLC AM NR entity. 2021-11-17 10:50:35 +00:00
Pedro Alvarez 4196abafee Added get_buffer_status to RLC AM NR entity 2021-11-17 10:50:35 +00:00
Andre Puschmann b3c7eeedd3 rlc_um_nr_test: add extra check to verify reassembly timer isn't running 2021-11-14 16:25:09 +01:00
Andre Puschmann 7141fda69c Revert "rlc_um_nr_test: disable test9 until low TCP UL rates are understood/fixed"
This reverts commit e491aef74e.
2021-11-14 16:25:09 +01:00
Pedro Alvarez f99e841421 Changed using a rlc_am_lte and rlc_am_nr entity, to a single rlc_am entity. 2021-11-12 22:41:37 +00:00
Pedro Alvarez 2a5d21164f Adding RLC AM NR unit tests 2021-11-04 16:12:07 +00:00
Pedro Alvarez 2bb249bf09 Moved RLC AM LTE and NR packing functions to their own file. 2021-11-04 16:12:07 +00:00
Carlo Galiotto ba50bbfb76 rlc,rrc,nr: remove rb_type from rlc_um_config
Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-03 19:31:47 +01:00
Carlo Galiotto 9c2099f680 rrc,rlc,nr: fix RB label in RLC-NR for UE logs + ..
add rb_type in rlc_um_config

Signed-off-by: Carlo Galiotto <carlo@srs.io>
2021-11-03 19:31:47 +01:00
Andre Puschmann e491aef74e rlc_um_nr_test: disable test9 until low TCP UL rates are understood/fixed 2021-10-28 19:09:35 +02:00
Andre Puschmann 85e478d8ad rlc_um_nr_test: add TC to reproduce reassembly issue
* add TC to reproduce reassembly issue that causes low TCP throughput
* fix PCAP writing
* fix other testcase to wait for t_reassembly to expire
2021-10-27 19:50:35 +02:00
faluco dc31fb05a3 Fix ODR issue detected by ASAN in arch for the srsran_verbose global variable. 2021-10-26 16:56:11 +02:00
Pedro Alvarez fbcffb84bd Check if RLC is suspended before transmiting PDCP SDU.
This was done to avoid integrity issues, when the UE's RRC erroneously sent
measurement reports while the re-establishment was already in progress.

As errously sending PDCP PDUs on DRBs can cause issues as well, this was
disabled too.
2021-10-22 17:27:32 +01:00
Pedro Alvarez 65a2b35f09 Fix not checking initialization of S11 in MME. Fixed typo. 2021-10-21 14:50:44 +01:00
Pedro Alvarez e721504f8e Removed the sctp_init_server for consistency. Added listen method to unique_socket class. 2021-10-21 14:50:44 +01:00
Pedro Alvarez e9a7e6dbae Getting rid of sctp_init_client function. The only thing it does is call the sctp_init_socket function. 2021-10-21 14:50:44 +01:00
Xavier Arteaga 4edb61212f Added number of CDM groups to phy_dl_nr_test 2021-10-20 10:27:45 +02:00