51 Commits (1e2153769ef7bd052dc7a9abc56be2d3d770b4aa)

Author SHA1 Message Date
Pedro Alvarez 7b25eac47c Fix race condition in rlc_am_stress test and other fixes related to this
test. The race condition was being cause by write_sdu being called
simultanously to read_pdu, which could cause the read_pdu to try to get
the SDU info before it had been written by the write_sdu.

Changes in this commit include:
 - Make sure PDCP sn in included in RLC AM stress test.
 - Stop handling control PDU when TX is not enabled in RLC AM.
 - Fixed issue with length of the PDCP SN in rlc_stress_test.
 - Moved the place were sdu info erase was called to avoid double calls to erase
 - Tentative fix for race condition in rlc_am_stress test.
 - Added function to print information about undelivered_sdu_info_queue
   for debugging.
4 years ago
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.
4 years ago
David Rupprecht 99c3aa9ba2 Refactor assert to TESTASSERT in unit test 4 years ago
Andre Puschmann c0883291f6 rlc: pass TTI to get_metrics to calculate "real" LTE rx/tx rate
when retrieving the RLC metrics, the number of TTIs since the last
call are passed. This allows to calculate the actual rate
based on the LTE timing rather than only the system timing.
4 years ago
Andre Puschmann 07d2bc4fe8 change license header to agnostic version with hint to root LICENSE file 4 years ago
faluco f0d651ae8e - Fixed a leak in the MME class not releasing the static byte buffer pool.
- Now the pool gets destroyed on program exit using a unique_ptr.
- Removed manual cleanup() calls in all the code base to free the pool instance.
4 years ago
faluco cfd3f51931
Import of srslog into srsepc and srsenb. (#1574)
* - Import of srslog into srsepc and srsenb.
* - Removed logger_file and logger_stdout files.
4 years ago
Andre Puschmann df50dd7d3c rlc: extend RLC metrics
extend RLC metrics to count Rx/Tx PDUs/SDUs bytes/#
4 years ago
Andre Puschmann 48db31c5cf rlc_stress_test: fix random PDU dropping
the rand() was sometimes giving NaN so this case needs to be handled
and the PDU not dropped to have real zero drop-rate
4 years ago
Andre Puschmann fc3cd24177 rlc_um: fix counting of lost PDUs
* change try_push() return value to indicate whether the addition
  of the SDU to the tx queue was successful or not
* count lost PDUs
4 years ago
Andre Puschmann 96726a03e0 rlc_stress_test: fix PCAP support
expose actual RLC configuration to PCAP object
4 years ago
Francisco Paisana edba7f57e4 corrected mac_nr_pdu includes 5 years ago
Francisco Paisana 67f6eebf61 fix rlc stress test to reflect threading in stack 5 years ago
Francisco Paisana 344eaf49ec use logmap in the whole enb and ue 5 years ago
Xavier Arteaga e832769ae6 Updated copyright 5 years ago
Xavier Arteaga d3537fc340 srsLTE: expanded RLC stress test with the addition of multiple PDU per TTI in reverse order 5 years ago
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
5 years ago
Andre Puschmann 7885b5b9ee add CMake flag to enable 5G-NR components 5 years ago
Andre Puschmann b20f7ba541 refactor RLC UM and add NR receiver 5 years ago
Francisco Paisana d2c56caf7e applied new timer class to the whole code base 5 years ago
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
5 years ago
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. 5 years ago
Andre Puschmann 701db61fde rlc: extend stress tester to simulate MAC PDU corruption 5 years ago
Andre Puschmann 58763fb714 stack: move initialization of log object into ctor
this fixes the issue when the stack is torn down if, for example,
the radio couldn't be loaded correctly. it will hence call stop() on all stack
components which are not initialzized yet, and logging therefore doesn't work.
the log object is know during contruction time and therefore can be passed
in as soon as possible.
5 years ago
Francisco Paisana 415d3418b6 reorganized enb to mirror ue director/class structure with a stack class 6 years ago
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
6 years ago
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.
6 years ago
Francisco Paisana 3bedc93ba5 added _t to unique_byte_buffer type 6 years ago
Francisco Paisana f469e2178b replaced byte_buffer_t allocated by the buffer pool for unique_byte_buffer which is safer and easier to use 6 years ago
Andre Puschmann 4b01a2e4a0 update copyright notice 6 years ago
Andre Puschmann cecc28540b add crash handler to rlc_stress_test 6 years ago
Andre Puschmann f7d907f1b2 remove pedantic flag from RLC stress test 6 years ago
Andre Puschmann f20535657f add option to randomize MAC opportunities in RLC tester 6 years ago
Andre Puschmann 601b2a357b fix fail logic in RLC stress test 6 years ago
Andre Puschmann f5c3bd5328 cleaup RLC stress test 6 years ago
Andre Puschmann 34535c7efb fix RLC AM issues reported by clang-tidy 6 years ago
Andre Puschmann 6c4aaa6e10 adapt AM test to new MAC timer 6 years ago
Andre Puschmann 9a4ce125fb fix RLC stress test with respect to timer handling 6 years ago
Andre Puschmann 4b0171ccea fix MAC timer handling in rlc_stress_test 6 years ago
Andre Puschmann d981f129e0 Merge branch 'master' into next 6 years ago
Andre Puschmann a20a8b18ad fix rlc_stress_test, stop RLC instances and remove hard thread canceling 6 years ago
Andre Puschmann 3950629a75 remove obsolete RLC_MODE struct and move existing one to rlc_interface.h 6 years ago
Andre Puschmann 27d3d697df refactor RLC part#2
- move metrics into entities
- make configure interface return true/false on success/failure
- add own srslte mode type
6 years ago
Andre Puschmann 61d525ea80 Merge branch 'next' into embms_merge_final 7 years ago
yagoda d80d49a9da adding tests for embms rlc functionality 7 years ago
Andre Puschmann fd9f847d2d dont let RLC stress test fail if buffer gets empty 7 years ago
Andre Puschmann 4a29f1f0f0 reduce default execution for RLC stress tests 7 years ago
Andre Puschmann 60a9e5d756 in rlc_stress_test only call usleep if not null 7 years ago
Andre Puschmann 371e2f90fd print RLC throughput after finishing stress test
- also exit with failure when malformed PDU is received in release mode
7 years ago
Andre Puschmann d63b3e0376 add TM support to rlc_stress_test 7 years ago