Commit Graph

718 Commits

Author SHA1 Message Date
David Rupprecht f9ea02b6bf Added functions for rrc reestablishing procedure if nr reconfig failes 2021-04-08 17:37:36 +02:00
Xavier Arteaga 58a9ef6e7f Minor NR PHY tweaks and aesthetic 2021-04-08 11:39:55 +02:00
Xavier Arteaga 49731ab5a1 Initial NR-DCI refactor
Added NR DCI 1_1 size

Several DCI NR fixes
2021-04-07 16:57:12 +02:00
Xavier Arteaga 1dcd75a6c7 Ignore CRC for RV!=0 in phy_dl_nr_test 2021-04-07 13:56:06 +02:00
Xavier Arteaga ecd2c1cdcc Improved LDPC decoded performance and other NR aesthetical changes 2021-04-07 13:56:06 +02:00
Francisco cdf72248f3 Reimplement batch-based background object/memory pool
Main changes:
- addition of pool utilities
- The node size/alignment and batch allocation threshold are now runtime arguments
- object pool and memory pool are not anymore based on the same class.
  The object pool cannot use intrusive free list because it would overwrite the object
  memory
2021-04-07 12:02:22 +01:00
Francisco 460d7a8f4f fix memory pool test - placed the pool state into a shared_ptr so that the callbacks still have a valid handle when the pool is destroyed 2021-04-07 12:02:22 +01:00
Francisco 9bec13731a adt unit test - fix memory pool test 2021-04-07 12:02:22 +01:00
Francisco ec3cd9ffea adt - added background object pool test, and fix existing bugs related to the creation of pools with objects that are too small to be used in free lists 2021-04-07 12:02:22 +01:00
Francisco d1c5b000dc adt - creation of pre-initialized object pool, that leverages the background memory pool allocator 2021-04-07 12:02:22 +01:00
Francisco a79ca92020 refactor type storage and pool tests 2021-04-02 17:40:50 +01:00
Francisco 2723993740 fix network utils test 2021-04-02 11:42:50 +01:00
Francisco c24e382c19 Refactor of socket manager class
- use of inheritance to simplify testing
- removal of global network manager
- pass of custon socket manager to s1ap and gtpu ctors
- overhauled the registration of socket fd,callback in socket manager
2021-04-02 11:42:50 +01:00
Francisco 4aac7ac238 use global rx multisocket handler, and remove stack-s1ap interface 2021-04-02 11:42:50 +01:00
Francisco bf96d897ee network utils refactor - renaming of socket handle to unique socket and cleanup of its methods 2021-04-02 11:42:50 +01:00
Francisco ced757a11b adt - add optional construct that closely emulates std::optional<T> 2021-03-31 19:14:11 +01:00
Francisco d04a19f8bc refactor - increase code reuse in adt files 2021-03-29 22:11:25 +01:00
Francisco eb38ff43ab fixed size buffer pool bugfix - deleted threads now return the cached memory blocks to the pool shared memory block container 2021-03-27 12:21:08 +00:00
Francisco be771e5c23 performance - use of new concurrent fixed size pool for byte_buffer pool 2021-03-27 12:21:08 +00:00
Francisco e1523692c2 implementation of concurrent fixed size pool that leverages thread local caches to avoid mutexing 2021-03-27 12:21:08 +00:00
faluco e2c7809abb - Introduce a new tracer scoped object that only records if the event duration exceeds the programmed threshold. 2021-03-26 10:31:26 +01:00
David Rupprecht 8c86d2084d Adding NR phy config RRC parsing
Added error handling

Reworked flattening error handling
2021-03-25 11:34:53 +01:00
Andre Puschmann 6eedd70275 rlc_stress_test: add RLC UM NR 12bit stresstest 2021-03-25 08:06:49 +01:00
Andre Puschmann f992350d2d rlc_um_nr_pdu_test: add testcases for 12bit SN length packing/unpacking 2021-03-25 08:06:49 +01:00
Xavier Arteaga 5bdf2c93b3 Initial NR PDSCH CSI-RS RE skip and other changes 2021-03-24 09:06:26 +01:00
Francisco 6d9709fe54 adt - make circular buffer work with types without default ctor 2021-03-23 17:28:35 +00:00
Francisco ef5329bec0 adt - extend circular map unit test to test the container with move-only types 2021-03-23 17:28:35 +00:00
faluco e8395c7474 - Implement a pool to store dyn arg store objects in srslog to avoid allocations when passing arguments to the backend.
- Use string views inside the log formatters to avoid allocations.
- Avoid a std::string when using fmt::vsprintf, instead favour fmt::vprintf.
2021-03-23 14:55:34 +01:00
Andre Puschmann 1a0891df51 all: check return value of make_byte_buffer() and handle them safely 2021-03-23 14:31:15 +01:00
Francisco b5692037a2 created macros for assertions and warnings. The assert macro prints the whole callstack on crash. The warning macro can just log a warning or call an assertion fail depending on the cmake flag STOP_ON_WARNING 2021-03-23 10:49:28 +00: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
Francisco 0d5038dd34 fix wrong lib linking in cmaker 2021-03-22 14:58:25 +00:00
Francisco 88f5add1fb adt - fix circular map erase function and added extra asserts 2021-03-22 14:58:25 +00:00
Francisco 4869b14de3 application of new circular map to mac::ue_db 2021-03-22 14:58:25 +00:00
Francisco 98d0637ded adt addition - implemented reusable circular map 2021-03-22 14:58:25 +00:00
Codebot 4523ee6087 rename srsLTE to srsRAN 2021-03-21 21:47:01 +01:00
David Rupprecht ad3a3af490 Adding more info into pcap test 2021-03-19 17:55:13 +01:00
faluco 358c4de0bd Fix a valgrind issue in a unit test in log_channel_test where the buffer was not being null terminated. 2021-03-18 10:29:54 +01:00
Andre Puschmann 3e07767f28 rlc_stress_test: set maxRetx for AM to 32 by default
since the tests are random we sometimes hit the maxRetx threshold
with 8 retx allowed that made the unit test fail.

increase threshold to lower the likelihood for this to happen.
2021-03-16 15:47:38 +01:00
faluco e43f555fc0 - Provide a fast path for logging pre-formatted strings that are small and fit in 64 bytes without any allocations.
- Use this new feature in the tracer.
2021-03-16 11:20:01 +01:00
Pedro Alvarez f02694dd3e PDCP status report: Fix issue in keeping track of Rx'ed COUNTs after eNB reestablishment. Fixed issue in logic that limits the size of the rx_counts info vector. 2021-03-12 13:47:20 +00:00
Pedro Alvarez d2ef541957 Changed the structure to store rx_counts info to std::vector, to reduce
memory allocations.
Update the rx_count_info queue if the queue size is too large.
2021-03-12 13:47:20 +00:00
Pedro Alvarez 3f79cd6281 Changed generation of status report to use rx_counts instead of
undeliverd_sdus_queue. Added a queue to store information about
rx_counts received.
Added unit test for when the SNs wrap-around in status report genaration
2021-03-12 13:47:20 +00:00
Francisco 3e9f93eb8a refactor - remove old log_filter and logmap libraries from the codebase 2021-03-11 20:10:54 +00:00
Francisco 7dcb703d06 adt lib,bugfix - fix bounded_bitset resize to clear bits outside of mask correctly 2021-03-11 15:18:16 +00:00
faluco 173dcdd421 - Import latest srslog version.
- Remove string allocs in some log lines in radio.cc.

Add new tracing buffer capcity options into srsenb and srsue.

Add missing file.
2021-03-10 16:27:33 +01: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 20e341d0a1 mac,bugfix - fixed formatting of MAC and scheduler user-defined types 2021-03-09 16:23:08 +00:00
Francisco 5a1bf28fe1 optimization - minimization of number of std::string allocations for logging 2021-03-09 16:23:08 +00:00
Francisco 1ffc4cef86 rlc am,optimization - change helper log methods to avoid mallocs 2021-03-09 16:23:08 +00:00
Francisco d77b6e1d9c sched,optimization,refactor - use of custom formatter that avoids mallocs for getting bitmasks strings in hex and binary formats 2021-03-09 16:23:08 +00:00
Francisco f0ed1e06a8 documentation,bugfix - added documentation to new blocking queues, changed class names, and removed blocking pushes from the critical path 2021-03-08 14:49:14 +01:00
Francisco d1236fd62f stack,optimization - replaced previous block_queue design for new bounded queue in several places in the enb 2021-03-08 14:49:14 +01:00
Francisco 0ba93d274f converted byte_buffer_queue to use new circular buffer-based queue to avoid mallocs 2021-03-08 14:49:14 +01:00
Francisco 822e26b63f implemented circular buffer-based queue 2021-03-08 14:49:14 +01: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 fa23be4d6d rlc_stress_test: fix SDU generation
the PDCP SN was used to fill the SDU with data. But since
the max value isn't devisable by 256 it didn't always increment
correctly. Use a normal byte now that wraps correctly.
2021-03-05 19:46:00 +01:00
Andre Puschmann 5e345df439 rlc_stress_test: make pedantic operation the default
among cleaning up the the stress test, it does:
* remove optional pedantic flag and make it the default to catch resegmentation issues
* use random SDU and MAC grant size the default
* use factory functions to create RLC configs (make maxretx configurable)
* remove reestablishment and print error when maxRetx is triggered
* fix NR PCAP usage and removes PCAP ifdef
2021-03-05 15:47:30 +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
Pedro Alvarez 7b23a83306 Fixup tests to consider wrap-around in status report 2021-03-04 11:22:53 +01:00
Pedro Alvarez c4e9516561 Fix issue when LMS wraps-around and FMS doesn't in PDCP status report. Fix incorrect update of FMS on clear_sdu. Adding unit test to LMS wrap-around. 2021-03-04 11:22:53 +01:00
David Rupprecht 894e4d3501 Added mac pcap network class that dumps the packets to a udp network sink 2021-03-03 09:50:15 +01:00
David Rupprecht 5a95cbdfae Disable rat assignment in pcap class 2021-03-03 09:50:15 +01:00
Xavier Arteaga 1e55d68b55 Removed set RNTI from API 2021-03-01 15:30:33 +01:00
Pedro Alvarez 4011714664 Fix errors in RLC stress tests due to PDCP SN wrap-around 2021-03-01 10:20:17 +00:00
Francisco 4b09507c19 remove srslte.h includes from upper layers 2021-02-26 16:44:57 +01:00
Francisco b329e25bbb move ue phy interfaces to separate interfaces header file 2021-02-26 16:44:57 +01:00
Francisco b8bd869d0f move ue rlc 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
Francisco ea04104e8e move ue gw interfaces to separate interfaces header file 2021-02-26 16:44:57 +01:00
Francisco f610a7b83d Change background worker pool to become a global variable
Allocate rrc::ue objects in batches in the background worker pool
2021-02-25 15:56:40 +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
David Rupprecht fc9d5befda Remove header test case 2021-02-24 20:23:54 +01:00
Andre Puschmann 5e93a6f5bd rlc_um_nr_pdu_test: add 12bit SN unpack test 2021-02-24 20:23:54 +01:00
David Rupprecht 0f1586dd2d Deleted all HAVE_5GNR in CC and h files
CMakeList and travis yaml
2021-02-22 21:16:04 +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
Pedro Alvarez 24d5b9071c Fix issue with status report test config 2021-02-19 13:30:48 +00:00
David Rupprecht 876858b44c Added mac nr prach common config convert function with test case 2021-02-18 14:34:15 +01:00
David Rupprecht b19cbdde23 Added test case for testing the decoding of cell group config 2021-02-18 14:34:15 +01:00
Xavier Arteaga 784a33583b SRSUE: Initial NR MAC-PHY interfaces
SRSUE Fix compilation

SRSUE: temporary fixes LTE/NR PHY/Stack interface problem

fix

fix
2021-02-17 16:34:00 +01:00
Pedro Alvarez 89a23cec7e Added statusReportRequired to the PDCP entity config. 2021-02-16 13:21:50 +00:00
Pedro Alvarez 2ed8dceddf Use TX_COUNT in RLC AM stress test. Avoids issue with re-using SNs within the test 2021-02-15 19:37:49 +00:00
Pedro Alvarez f89b644902 Added function to get control pdu type to the PDCP base class. Shorten logger name in PDCP Status report test. 2021-02-15 11:44:57 +00:00
Pedro Alvarez 9bc08af880 - Added ability to the PDCP LTE entity to send PDCP Status report.
- Added handling of PDCP status report to the PDCP LTE entity.
- Added test to the generation and handling of PDCP status report.
2021-02-15 11:44:57 +00:00
Francisco Paisana 5e48327eca fix valgrind memcheck warnings in rlc_am_test 2021-02-13 11:04:27 +01:00
Francisco dc4283c572 added cmake functions as helpers to set labels in ctests 2021-02-12 20:27:31 +01:00
Pedro Alvarez 492ea2a5a8 Addressing reviewers comments to #2290.
Removing unecessary \n for logs and changed log of PDCP info queue
 capacity to debug to avoid log spam.
Changed log level for unhandled S1AP messages from error to warning
 in EPC to avoid failing tests because of error message.
Changed usage of allocate_unique_buffer to make_unique_buffer()
2021-02-11 15:49:00 +00:00
Pedro Alvarez fcaaf72187 Starting to add discard functionality to PDCP LTE entity.
This includes:
  - Adding a queue (implemented with std::map) for undelivered PDUs.
    This queue uses the SN used for TX as the key.
  - Added discard timer that is started upon reception of the SDU. Upon
    expiry of the timeout a discard callback removes undelivered PDUs
from the queue.
  - Added the mechanisms to the notify_delivery to remove PDUs from the
    undelivered queue when the PDU is ACK'ed.
  - Added test case for both timer expiry and acknowledgment.
  - Fix up the getter for buffered SDUs to return the undelivered SDUs
  - Changed default PDCP discard timer, so AM has a discard timer by
    default.
2021-02-11 15:49:00 +00:00
faluco 57f66febfc Ported the RLC classes to srslog in the lib dir. 2021-02-11 14:37:27 +01:00
faluco f424f2e113 - Upgraded PDCP classes in lib to use srslog.
- Update tests to new changes.
2021-02-11 14:37:27 +01:00
faluco 9d15a44c73
Port lib/phy to srslog (#2298)
* - Ported the channel class to srslog.
- Removed all newlines of log messages in lib/phy.

* Remove more newlines that use the C debug macros.
2021-02-10 13:46:25 +01:00
Andre Puschmann 01acf95566 mac_rar_pdu_nr: update public interface to make it easier to access
* provide all subPDUs as const vector&
* return UL grant directly
2021-02-08 22:15:09 +01:00
Francisco 3265d940ec remove byte buffer pool cached member variables as they are unnecessary now. 2021-02-07 18:48:21 +00:00
Francisco 04ab4eefcd use new make_byte_buffer() helper method to create unique_byte_buffers 2021-02-07 18:48:21 +00:00
Francisco 8a9c326bcb remove old direct uses of byte_buffer_pool 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
Andre Puschmann 30216fe1fc mac_pdu_nr_test: add packing test for UL-SCH PDU with CRNTI, PHR and SBSR 2021-02-05 15:55:21 +01:00
Andre Puschmann 4ca43c6804 mac_sch_pdu_nr: add unpacking helpers for CRNTI, SBSR and PHR CEs
* unpackers for CEs
* testcase with TV
2021-02-05 15:55:21 +01:00
Xavier Arteaga a19671802e Added SRSUE NR-PUSCH initial procedures 2021-02-05 15:55:03 +01:00
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.
2021-02-05 12:24:50 +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 6c071a784c Changed notification mechanisms to use map of acked SNs instead of acked bytes.
This was required due to an issue where bytes were counted twice when a
packet had been lost.
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 de669d214a Fix test header and queue_capacity check in RLC notifications.
Also, remove unecessary nullptr initializaion and fixup some newlines.
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
faluco 821925a273 - Upgrade to srslog the loggers in lib/mac.
- Adapted users of these classes and tests.
2021-02-04 18:37:00 +01:00
Andre Puschmann 8e13f04684 mac_pcap: refactor MAC PCAP and include NR RAT into same object
after adding the thread-safe PCAP writer functionality to the EUTRA
MAC object it became clear that we don't wont to replicate the
same for the NR object.

This patch therefore refactors the class that now supports both EUTRA and
NR rats. The old mac_nr_pcap.[h/cc] has been deleted. All test-cases
and usages now use the new object that needs to pass the RAT type in
the ctor.

this patch addresses the last open point of #2160
2021-02-03 17:21:57 +01:00
faluco b014233662 - Port time related classes to srslog.
- Adapt tti_point_test to srslog.
2021-02-03 14:15:27 +01:00
faluco 1a5799a6ca - Replace loggers is network utils.
- Adapt tests that use network utils and callers.
2021-02-03 14:15:27 +01:00
faluco 79eca0980d - Ported fsm.h to srslog.
- Adapted and removed old loggers in tests and code that used fsm.h
2021-02-03 14:15:27 +01:00
Xavier Arteaga 2421f2cd99 Multiple PHY fixes and NR-PHY configuration refactor 2021-02-02 15:23:14 +01:00
Xavier Arteaga b652cd68a5 Refactored NR PHY configuration to accept multiple CORESETs/SearchSpaces 2021-02-02 15:23:14 +01:00
faluco 806268f6cf
Por asn1 code in lib directory to srslog (#2253)
* Match hex dump indentation with srslog.

* Port asn1 utils to use srslog. Converted logging functions from taking varargs to variadic template functions.

* Remove trailing new lines in log lines from asn1 utils.

* First round of upgrades to srslog to asn1 tests.

* Second round of porting asn1 tests to srslog.
2021-02-01 11:58:28 +01:00
Andre Puschmann f88943653b mac: implement MAC RAR PDU unpacking for NR
* add class for mac_rar_pdu_nr
* extend test case
2021-01-30 11:58:25 +01:00
Andre Puschmann da9e3363f1 mac_pdu_nr: rename MAC PDU class for NR to adhere naming conventions
* mainly to have _nr as trailing name for filename and class
* also add "sch" to class and filename (RAR PDU will have extra class)
2021-01-30 11:58:25 +01:00
faluco 711438f756
Port enb specific classes to use srslog (#2155)
* - Started porting the enb PHY layer to use srslog loggers.
- Updated srslog to manage the none level.

* Finished porting enb phy layer including the NR part.

* Ported MAC, GTPU, PDCP, RLC and S1AP enb classes to use srslog.

* Use new stack logger.

* Ported the enb RRC clases to use srslog.

* Remove unused log macros.

* Replace loggers in sched, sched_carrier, sched_helpers.

* Replaced loggers in sched grid.

* Replaced loggers in sched harq.

* Replaced loggers in sched ue.

* Replaced loggers in sched ue ctrl.

* Replace loggers in sched ue ctrl TPC.

* Replaced loggers in sched subclasses.

* Replaced loggers in rrc_meascfg_test

* Configure loggers in rrc_mobility_test.

* Fix compilation errors left out after the rebase.

* - Implement a custom log sink that will serve as a test spy to intercept and count the number of error and warning log entries.
- Adapt the erab_test_setup and rrc_mobility tests to use this new class and make them pass again.

* - Remove trailing new lines introduced in the rebase.
- Ported the sched_ue_cell class to srslog.

* Remove unused log member.

* Ported mac tests to srslog.

* - Removed remaining trailing newlines from log entries.

* Fix compiler errors detected in CI.

* Fix another static variable without definition passed to log lines.

* Fixed a bug in srslog::flush that would never end when the backend queue is full.

* Fetch the RRC logger instead of injecting it in the constructor.
2021-01-28 12:17:18 +01:00
David Rupprecht 306bb6b38b Added function for derive keys 2021-01-27 10:37:09 +01:00
David Rupprecht a6046ca875 Added funcs for asn flat config RLC and PDCP 2021-01-27 10:37:09 +01:00
David Rupprecht 145528ad32 Added unpacking test for RRC reconfig 2021-01-27 10:37:09 +01: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
Ismael Gomez a6423442c2
Refactor NR RA files and fix header includes all over library (#2162)
* Refactor NR resource allocation classes. Use DCI instead of grant for dummy PDSCH UE/eNB test

* Minor refactors in NR workers and ue_dl

* Fix include issues

* fix compilation issues
2021-01-20 15:46:46 +01:00
Andre Puschmann 10da7df194 pdu_test: add TC with malformed RAR PDU
a malformed RAR PDU should not be decoded further if the payload
indicates a length beyond the actual PDU size.
2021-01-12 20:24:20 +01:00
Francisco Paisana f8b7351e1b implementation of object memory pool via class-specific operator new/delete 2021-01-12 16:22:10 +01:00
Francisco Paisana e96b8c263a add mem pool test. fix mem pool leak bug 2021-01-12 16:22:10 +01:00
Andre Puschmann 4fa89b7039 pcap: make PCAP write thread-safe
* offload PCAP writing to background thread
* use blocking_queue between writer and clients to make it thread-safe
* add basic test case

this fixes point 1-3 of #2161
2021-01-04 11:05:02 +01:00
Xavier Arteaga b3200d9ef5 Renaming common UL/DL DMRS related types and initial NR PUSCH implementation 2020-12-30 13:39:08 +01:00
Xavier Arteaga 13443c3f8c Added number of DMRS CDM groups without data to NR grant 2020-12-28 10:11:08 +01:00
Francisco Paisana 74ffe393c6 asn1 update: s1ap asn1 is now v16.1 (2020-03) 2020-12-22 16:28:24 +01:00
Francisco Paisana 66aa34d173 update RRC NR ASN1 to 2020-09 v15.11 2020-12-18 12:50:37 +01:00
Andre Puschmann d5daf60773 pdu_test: add unpacking test for DL-SCH PDU containing TA command 2020-12-18 12:28:52 +01:00
Francisco Paisana e27c0869e5 update RRC ASN1 to 2020-09 v15.11 2020-12-17 17:55:58 +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
David Rupprecht 826dd32c89 Rename meas_cell to meas_cell_eutra
Added meas_cell_nr class

Make meas_cell list as template class

Inheritance rrc_cell to meas_cell_nr
Added process_new_cell_meas_nr function
2020-12-16 14:12:38 +01:00
faluco f23fdf0639 Include missing files. 2020-12-14 13:46:45 +01:00
faluco 98a2c868b5 Update srslog to latest version. 2020-12-14 13:46:45 +01:00
Francisco b86d2ab7d0 move choice_type to adt folder 2020-12-12 15:59:27 +01:00
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.
2020-12-12 15:59:27 +01:00
Francisco b41fc96d6d fix asn1 integer packing for integer values whose length is equal or above 32 bits 2020-12-12 15:59:27 +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
Francisco 5cce2e4dc7 extension of bounded_vector unit test and fix of compilation issues
- now bounded_vector::resize(N) works for move-only types
- bounded_vector assertions now print error messages
- fixed move ctor/assignment of bounded_vector
- created a unit test for bounded_vectors of move-only types
2020-12-12 15:59:27 +01:00
Francisco fc451f17f0 implementation of bounded_vector and respective unit test 2020-12-12 15:59:27 +01:00
Xavier Arteaga 788ed5ce70 Corrected PDCCH SEGFAULT 2020-12-12 15:59:27 +01:00
Xavier Arteaga e07cf513d0 Improved NR blind search and DL test 2020-12-12 15:59:27 +01:00
Xavier Arteaga c635b1e467 Initial NR DCI blind-search 2020-12-12 15:59:27 +01:00
Andre Puschmann 47c5f9e85b remove AGPL header from remaining cpp files
* also add commercial header to come CMake helpers
2020-12-12 15:59:26 +01:00
Xavier Arteaga f9643843a0 SRSENB/UE Fixed NR workers 2020-12-12 15:59:26 +01:00