Commit Graph

81 Commits

Author SHA1 Message Date
Francisco 21718af3b6 avoid allocating std::string to get lcid radio bearer name. Refactored the lte radio bearer enum type 2021-04-12 13:21:43 +01:00
Pedro Alvarez d91119baf6
RLC discard (#2515)
* Added ability to discard to dyn_block_queue

* Change way of keeping track of SDUs

* Check nullptr in poping callback. Starting to check for nullptr in RLC read_pdu.

* Adding RLC discard tests

* Clearing PDCP info when RLC discard happens

* Read SDUs until they are no longer nullptr

* Changed discard_if to use template argument
2021-03-22 16:51:32 +00:00
Codebot 4523ee6087 rename srsLTE to srsRAN 2021-03-21 21:47:01 +01:00
Francisco 3e9f93eb8a refactor - remove old log_filter and logmap libraries from the codebase 2021-03-11 20:10:54 +00:00
Andre Puschmann 20cbc48f90 rlc_am_lte: refactor PDCP/RLC interface to use fix sized data structure
this patch replaces the std::vector type used in the interface between
PDCP and RLC to signal delivery status between both layers. The new
data type is a configurable but fixed-size vector.
The RLC AM doesn't need to dynamically allocate the vector for every SN but
uses the tx_window for storage.
2021-03-09 21:56:33 +01:00
Francisco 1ffc4cef86 rlc am,optimization - change helper log methods to avoid mallocs 2021-03-09 16:23:08 +00:00
Andre Puschmann 83f24fbf77 rlc_am_test: fix max_retx test
the test should only check the correct signaling of the maxretx
to the upper layer.
2021-03-06 20:55:08 +01:00
Andre Puschmann 9f627911df rlc_am_{control}_test: extend status PDU test 2021-03-05 19:46:00 +01:00
Andre Puschmann 1a59f2d5ba rlc_am_test: extend header reconstruction test
this patch adds various new test cases generated from
rlc_stress_test to test header reconstruction.
2021-03-05 15:47:30 +01:00
Francisco b329e25bbb move ue phy interfaces to separate interfaces header file 2021-02-26 16:44:57 +01:00
Francisco a988351f46 move ue pdcp interfaces to separate interfaces header file 2021-02-26 16:44:57 +01:00
Andre Puschmann c0a1b0efa3 rlc_am_test: add TC to check RLC AM drops PDU if max retx have been reached 2021-02-24 21:57:56 +01:00
Pedro Alvarez d8f3878ce1
RLC failure to deliver notifications and discard timer limits to 1500ms (#2368)
* Added interfaces for the RLC to notify the PDCP of failure to transmit
SDU

* Limit discard timer to 1500ms, to avoid issues of lingering SDUs in the undeliverd_sdus_queue.

* Fix bug in early exit of notify_delivery and notify_failure

* fix compilation issue in rlc-pdcp notification

Co-authored-by: Francisco <francisco.paisana@softwareradiosystems.com>
2021-02-22 10:36:14 +00:00
Francisco Paisana 5e48327eca fix valgrind memcheck warnings in rlc_am_test 2021-02-13 11:04:27 +01:00
faluco 57f66febfc Ported the RLC classes to srslog in the lib dir. 2021-02-11 14:37:27 +01:00
Francisco 04ab4eefcd use new make_byte_buffer() helper method to create unique_byte_buffers 2021-02-07 18:48:21 +00:00
Francisco 1e2153769e remove byte buffer pool cleanup method and unnecessary mutexes 2021-02-07 18:48:21 +00:00
Pedro Alvarez d0ef6ce00b Fix typos and bad comments in rlc_am_lte.cc and rlc_am_test.cc
Added checks for the nack_sn in the status reports of the rlc_am_test.
2021-02-05 12:24:50 +00:00
Pedro Alvarez 24db20bcca Removed some unused variables after changing method of tracking notifications. Removed rlc_am_notify_pdcp test file. Testing is now in rlc_am_test.cc 2021-02-05 12:24:50 +00:00
Pedro Alvarez 649d642776 Moved notification tests from rlc_am_notify_pdcp_test.cc to rlc_am_test.cc.
This added some tests to resegmentation.
2021-02-05 12:24:50 +00:00
Pedro Alvarez de90b4753f Added the ability of the RLC AM to notify the PDCP of the acknowledged
PDCP PDUs. This includes:

- Modifying the byte_buffer_t to include PDCP SN meta-data. This way,
  the RLC can keep track of the ack'ed bytes for a specific PDCP PDU.
- Added in the RLC an `undelivered_sdu_info queue`, to keep track of the
  amount of ack'ed bytes and the total size of the PDCP PDU,
  so the RLC can know when delivery is finished.
- Added an interface between the PDCP and the RLC so that the RLC can
  notify the PDCP when it receives an ack from the status PDUs. The RLC
  passes to the PDCP a vector of all the ack'ed pdus in a rx'ed status PDU.
- Added some tests to the notify functionality. This includes some tests
  where the PDUs are acked imediatly, and one test where the PDU is
  retx'ed.
2021-02-05 12:24:50 +00:00
David Rupprecht 99c3aa9ba2 Refactor assert to TESTASSERT in unit test 2021-01-26 21:19:37 +01:00
Pedro Alvarez 350e90a030 Make RLC retransmissions deterministic. It was creating unpredictablity
in the RLC AM tests. See issue #2228
2021-01-25 14:29:17 +00:00
Pedro Alvarez 6ca8bc12ec Fix wrong SN in RLC status PDU when packet is dropped. 2021-01-21 21:12:30 +01:00
Andre Puschmann bc4c9606ce rlc_am: add extended bearer metrics
this patch adds support for measuring the:
* SDU rx latency (Average time in ms from first RLC segment to full SDU)
* amount of buffered bytes (sum of payload of PDUs buffered in rx_window)

the implementation is using std::chrono
2020-12-17 17:46:55 +01:00
Pedro Alvarez 38206bea69 Fixed RLC AM fixed header size in get_buffer_state function. Fixed RLC AM tests accordingly. 2020-12-12 15:59:27 +01:00
Andre Puschmann 07d2bc4fe8 change license header to agnostic version with hint to root LICENSE file 2020-12-12 15:59:25 +01:00
Andre Puschmann f155b7a5d5 rlc: fix stopping of poll retx timer (#2006)
* rlc_am: add TC for pollRetx timer handling

* rlc_am: fix stopping of pollRetx timer

stopping the pollRetx timer when receiving a status PDU
without checking the acknowledged PDUs is wrong.

if an ACK for another PDU, for which the polling bit has been set,
is still pending, it won't be rescheduled until another
PDU is transmitted that again starts the pollRetx timer.

this fixes the issue with missing RLC AM segment retx in #1992,
and #2003
2020-12-12 15:58:32 +01:00
faluco cfd3f51931
Import of srslog into srsepc and srsenb. (#1574)
* - Import of srslog into srsepc and srsenb.
* - Removed logger_file and logger_stdout files.
2020-07-30 19:17:23 +02:00
Andre Puschmann df50dd7d3c rlc: extend RLC metrics
extend RLC metrics to count Rx/Tx PDUs/SDUs bytes/#
2020-06-26 17:58:36 +02:00
Francisco Paisana 2950d26daa remove asn1 namespace from srsue files 2020-04-09 10:10:04 +01:00
Francisco Paisana 344eaf49ec use logmap in the whole enb and ue 2020-03-25 15:50:30 +00:00
Xavier Arteaga e832769ae6 Updated copyright 2020-03-16 11:26:06 +01:00
Ismael Gomez 52716f8716 Process HO complete in the background to avoid heap-after-use bug when PHY measurements are reported during a HO
rrc_meas refactor. Need to split commit

Fix typo

Temporal commit

Apply rx_gain_offset to neighbour cell measurements

srsLTE: modify TESTASSERT Macro to follow codeline

SRSUE: prevent RRC from having serving cell in neighbour list

SRSUE: DL HARQ does not need Time Aligment Timer. UL is disabled using PUCCH resources release

SRSUE: extend intra-frequency to CA SCell

SRSUE: fix confusing/ambiguous code in the RRC measurements and fix concurrency issue

SRSUE: remove RRC measurement report triggers when measurements are modified or HO succesful

SRSUE: fix compilation issues and Reest SIB indexes

Fixes sync using incorrect cell configuration when search cell does not find a correct cell

Small refactor to remove measurement report triggers always after removing measurement

SRSUE: Removed SIC PSS from UE

SRSUE: fix inter-frequency reestablishment and added more traces

SRSUE: Fix compilation issue
2020-02-03 12:51:46 +01:00
Pedro Alvarez c5979f59eb Clang format UE, eNB and lib (#850)
* Clang-formated UE, eNB and lib.
* Fixed compiling errors from clang-format.
* Fix linking issues introduced by clang-format
* Fix poor formating in initializing arrays of arrays.
* Fix mistake in conflict resolution on rm_turbo.c
* Re-apply clang format to gtpc_ies.h
2019-12-16 16:04:22 +01:00
Andre Puschmann b20f7ba541 refactor RLC UM and add NR receiver 2019-11-16 14:35:16 +01:00
Andre Puschmann 03bd63d9ab rename RLC AM class to RLC AM LTE 2019-11-15 16:02:37 +01:00
Francisco Paisana d2c56caf7e applied new timer class to the whole code base 2019-10-23 19:33:25 +01:00
Andre Puschmann f07a9277a0 fix RLC AM issue where an invalid status PDU was generated
happens when very small grant is provided and the status
PDU generation fails because of a too small grant

add extra check to prevent that ACK_SN is also in NACKS list
2019-10-04 16:29:03 +02:00
Francisco Paisana 67d6a25194 Moving mac timers to stack timers (#638)
* first step towards moving MAC timers to stack. Mac is still using its own timers. srslte::timers class can be restructured.

* moved timers out of the UE MAC
2019-09-04 15:28:09 +02:00
Andre Puschmann 2ae35e4ce0 make sure status PDU doens't exceed grant size 2019-07-14 07:29:10 +02:00
Andre Puschmann db196cc052 add RLC AM test for status PDU generation with small and big MAC grants 2019-07-12 13:06:39 +02:00
Andre Puschmann 9f3a947c02 modify RLC AM retx test to provide exactly a MAC opportunity of the size
that is reported as buffer state
2019-07-12 13:06:39 +02:00
Francisco Paisana 92b4b168fe added default rlc um and am in the interface as factories 2019-07-05 10:44:15 +02:00
Francisco Paisana 58e2e51044 removed rlc_interfaces. The rlc_cnfg types are now part of the rrc_interface_types. Removed implicit RB initialization in the RLC. 2019-07-05 10:44:15 +02:00
Francisco Paisana b936629221 removed rrc asn1 header from bcd_helpers, from rlc_interface, and rlc tests 2019-07-05 10:44:15 +02:00
Andre Puschmann e8d6236975 remove init for all RLC TM/UM/AM
- all RLC entities are now initialized during contruction
- there is no need to check for, e.g., existance of timers, during
  runtime
- there is also no need to call re-init during resume
- timers are freed in dtor
2019-06-06 14:34:25 +02:00
Ismael Gomez ade720e032 Add RLC resume procedure 2019-06-06 14:34:25 +02:00
Andre Puschmann e47010130f extend thread class to set unique thread name in ctor
this will also extend all classes that use srslte::thread
to specify the name of the thread in the ctor as well
as to set the name of the worker threads in the thread pool
the thread name will be displayed in gdb.
2019-06-03 15:03:20 +02:00
Francisco Paisana 3bedc93ba5 added _t to unique_byte_buffer type 2019-05-16 12:35:01 +02:00