Francisco
f36f5271d3
timers,feature: make timers thread-safe by using atomic to store timers state.
4 years ago
Andre Puschmann
531acc0a98
rlc_am_test: add check for RLC buffer state return during retx
4 years ago
Pedro Alvarez
c74b2dd633
Fix some warnings in PHY due to array parameter mismatch for a few functions
4 years ago
Francisco
f2a56c9139
simplification of multiqueue design.
...
- the consumer does multi-staged waiting:
1. spins first across all queues in a RR fashion
2. each queue access is done with a try_lock.
3. if the try_lock fails, it increases the number of spins needed
2. if no queue had data, the consumer sleeps for 100 usec.
- no differentiation between queues, in terms of notification features
4 years ago
Francisco
b41aba2a03
fix task scheduler test
4 years ago
Francisco
2d6a878826
change interface to create multiqueue queues
4 years ago
yagoda
9501283c1c
fixing support for extended Cyclic Prefix
...
small cosmetic fixes of CP code
4 years ago
Andre Puschmann
81c1851bbd
rlc_am_test: fix TSAN isses and removing info log when dropping PDU
4 years ago
faluco
6fb81c7619
- Add a mutex with priority inheritance for srslog internal structures.
...
- Replace shared_variable members in log_channel class in favor of atomics.
- Remove the small string optimization in srslog now that we dont allocate anymore.
- Trim some critical sections in srslog.
4 years ago
Francisco
996d8ef74d
multiqueue bugfix for non-blocking pushes when queue is full
4 years ago
Francisco
99abae9e6a
fix multiqueue producer to consumer notification to avoid deadlocks
4 years ago
Francisco
0d800eb8f6
stack, multiqueue - bugfix for multiqueue destruction, and addition of unit test
4 years ago
Francisco
ef9d1b8c13
stack optimization - reduction of contention in multiqueue class
...
With the new design, each queue created in the multiqueue object has its own mutex.
Pushing tasks to separate queues will, therefore, not cause contention.
There will be, however, still contention between the popping thread and the pushing threads.
4 years ago
Francisco
cd51537234
add comment explaining the use case of cached_alloc
4 years ago
Francisco
28847badcf
implementation of custom allocator for memory caching. This allocator may be used for unbounded queues
4 years ago
faluco
aef18f9931
Implement a benchmark for measuring latency in the foreground threads when pushing log entries.
...
This benchmark runs with several threads to test contention.
4 years ago
Xavier Arteaga
fb5dfb3a86
Improved NR unit test
4 years ago
Xavier Arteaga
6c39a5e4ff
Added PDSCH DMRS aditional unpacking
4 years ago
Andre Puschmann
4dd17aee45
rrc/phy/nr: calculate tuning freq of NR carrier from RRC signaling params
...
skip initial tuning to hard-coded NR frequency and use RRC-provided
values to calculate center frequency
4 years ago
AlaiaL
862784ee46
Fixed coverity 369719
4 years ago
AlaiaL
82788ca094
Fixed issues from coverity:
...
- 370233
- 370234
- 370239
- 370240
- 370241
- 370242
- 370243
- 370295
4 years ago
faluco
1ccb62af3d
Apply srsLTE formatting rules to srsLog. They were previously formatted with different rules when the project lived in the external rapo.
4 years ago
Francisco
ff3fc0826b
asn1 fixes and improvements
...
- use const char* instead of std::string in enumerated<>::to_string() to avoid mallocs.
- Remove the use of "typedef", and use "using" keyword instead.
- Fix rrc_nr::setup_release_c<>::to_string() broken linkage.
4 years ago
Francisco
28f787f1de
extend timer handler unit test to check correct time wheel implementation
4 years ago
Francisco
2b572f5376
fix overwrite of timer timeout when it matches previous time wheel position
4 years ago
Francisco
ce47cf5910
fix - re-add log flush to srsran_assert
4 years ago
Francisco
3b78bf3730
bugfix - fix memcheck warnings. move instructions with side effects outside of asserts
4 years ago
David Rupprecht
6b41ae7e8b
Updated PDCP config struct for rat type
4 years ago
Xavier Arteaga
53e41a165c
Revert zeros around DC REs in NR PDSCH
4 years ago
Francisco
22024ac35d
implemented bounded_bitset::find_lowest(...) for both reverse and non-reverse bit ordering. Applied this method to UL scheduling search for PRB intervals
4 years ago
Francisco
3f15fc2811
implemented bounded_bitset::find_first(...)
4 years ago
David Rupprecht
f42d4dbc28
Refactored carrier config
4 years ago
Xavier Arteaga
abfc1da921
Multiple NR-PUSCH fixes
4 years ago
Xavier Arteaga
01ce0718be
NR-PUSCH RE mapping correction and NR-SCH detailed grant information
4 years ago
David Rupprecht
fe8727050b
Added new rrc_nr to phy flattening functions and fixes
4 years ago
Xavier Arteaga
e4e3456d76
Refactored PDSCH/PUSCH decoder for LDPC early stopping
4 years ago
Francisco
e37968410e
simplification of timers handler design, relying solely on one time wheel.
4 years ago
Francisco
60896e30b5
implementation of time wheel-based timer handler, using a circular array and intrusive list
4 years ago
Xavier Arteaga
80f5c82b53
Fix formatter test
4 years ago
Andre Puschmann
c9da21c9bb
mac_nr: add error handling when unpacking SCH MAC PDU
...
* only handle PDU if unpacking was successfull
* add TC unpacking with malformed PDU
4 years ago
Xavier Arteaga
2e3c00aa97
NR PDSCH zeroes RE around the DC. Added delay and CFO emulation to phy_dl_nr_test
4 years ago
Francisco
21718af3b6
avoid allocating std::string to get lcid radio bearer name. Refactored the lte radio bearer enum type
4 years ago
Andre Puschmann
6dd8c21073
mac_sch_pdu_nr: add unpacking of TA CE in DL-SCH
...
also add basic test to verify correct unpacking
4 years ago
David Rupprecht
82c9636156
Refactor pdcp ctor seperate the configure function
4 years ago
David Rupprecht
f9ea02b6bf
Added functions for rrc reestablishing procedure if nr reconfig failes
4 years ago
Xavier Arteaga
58a9ef6e7f
Minor NR PHY tweaks and aesthetic
4 years ago
Xavier Arteaga
49731ab5a1
Initial NR-DCI refactor
...
Added NR DCI 1_1 size
Several DCI NR fixes
4 years ago
Xavier Arteaga
1dcd75a6c7
Ignore CRC for RV!=0 in phy_dl_nr_test
4 years ago
Xavier Arteaga
ecd2c1cdcc
Improved LDPC decoded performance and other NR aesthetical changes
4 years ago
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
4 years ago
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
4 years ago
Francisco
9bec13731a
adt unit test - fix memory pool test
4 years ago
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
4 years ago
Francisco
d1c5b000dc
adt - creation of pre-initialized object pool, that leverages the background memory pool allocator
4 years ago
Francisco
a79ca92020
refactor type storage and pool tests
4 years ago
Francisco
2723993740
fix network utils test
4 years ago
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
4 years ago
Francisco
4aac7ac238
use global rx multisocket handler, and remove stack-s1ap interface
4 years ago
Francisco
bf96d897ee
network utils refactor - renaming of socket handle to unique socket and cleanup of its methods
4 years ago
Francisco
ced757a11b
adt - add optional construct that closely emulates std::optional<T>
4 years ago
Francisco
d04a19f8bc
refactor - increase code reuse in adt files
4 years ago
Francisco
eb38ff43ab
fixed size buffer pool bugfix - deleted threads now return the cached memory blocks to the pool shared memory block container
4 years ago
Francisco
be771e5c23
performance - use of new concurrent fixed size pool for byte_buffer pool
4 years ago
Francisco
e1523692c2
implementation of concurrent fixed size pool that leverages thread local caches to avoid mutexing
4 years ago
faluco
e2c7809abb
- Introduce a new tracer scoped object that only records if the event duration exceeds the programmed threshold.
4 years ago
David Rupprecht
8c86d2084d
Adding NR phy config RRC parsing
...
Added error handling
Reworked flattening error handling
4 years ago
Andre Puschmann
6eedd70275
rlc_stress_test: add RLC UM NR 12bit stresstest
4 years ago
Andre Puschmann
f992350d2d
rlc_um_nr_pdu_test: add testcases for 12bit SN length packing/unpacking
4 years ago
Xavier Arteaga
5bdf2c93b3
Initial NR PDSCH CSI-RS RE skip and other changes
4 years ago
Francisco
6d9709fe54
adt - make circular buffer work with types without default ctor
4 years ago
Francisco
ef5329bec0
adt - extend circular map unit test to test the container with move-only types
4 years ago
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.
4 years ago
Andre Puschmann
1a0891df51
all: check return value of make_byte_buffer() and handle them safely
4 years ago
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
4 years ago
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
4 years ago
Francisco
0d5038dd34
fix wrong lib linking in cmaker
4 years ago
Francisco
88f5add1fb
adt - fix circular map erase function and added extra asserts
4 years ago
Francisco
4869b14de3
application of new circular map to mac::ue_db
4 years ago
Francisco
98d0637ded
adt addition - implemented reusable circular map
4 years ago
Codebot
4523ee6087
rename srsLTE to srsRAN
4 years ago
David Rupprecht
ad3a3af490
Adding more info into pcap test
4 years ago
faluco
358c4de0bd
Fix a valgrind issue in a unit test in log_channel_test where the buffer was not being null terminated.
4 years ago
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.
4 years ago
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.
4 years ago
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.
4 years ago
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.
4 years ago
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
4 years ago
Francisco
3e9f93eb8a
refactor - remove old log_filter and logmap libraries from the codebase
4 years ago
Francisco
7dcb703d06
adt lib,bugfix - fix bounded_bitset resize to clear bits outside of mask correctly
4 years ago
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.
4 years ago
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.
4 years ago
Francisco
20e341d0a1
mac,bugfix - fixed formatting of MAC and scheduler user-defined types
4 years ago
Francisco
5a1bf28fe1
optimization - minimization of number of std::string allocations for logging
4 years ago
Francisco
1ffc4cef86
rlc am,optimization - change helper log methods to avoid mallocs
4 years ago
Francisco
d77b6e1d9c
sched,optimization,refactor - use of custom formatter that avoids mallocs for getting bitmasks strings in hex and binary formats
4 years ago
Francisco
f0ed1e06a8
documentation,bugfix - added documentation to new blocking queues, changed class names, and removed blocking pushes from the critical path
4 years ago
Francisco
d1236fd62f
stack,optimization - replaced previous block_queue design for new bounded queue in several places in the enb
4 years ago
Francisco
0ba93d274f
converted byte_buffer_queue to use new circular buffer-based queue to avoid mallocs
4 years ago
Francisco
822e26b63f
implemented circular buffer-based queue
4 years ago
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.
4 years ago