Francisco
ea324e8cbe
nr,sched,test: update sched nr test to better reflect MAC-PHY FAPI
2021-10-14 19:27:52 +01:00
Francisco Paisana
cbb709d4e3
sched,nr: function to log UEs buffer status before scheduling decision, fix const_iterator of circular_map
2021-09-27 15:43:16 +02:00
faluco
fa351cd285
Rename functions that contain the unsafe word to nolock.
...
The term "unsafe" does not clearly state that the function is not locking the shared date and it sounds "dangerous", so use a more explicit term.
2021-09-27 13:26:21 +02:00
faluco
cf20b143c0
Fix the default constructor of the optional class to avoid a spurious uninitialized value warning in older GCC versions (seen for ARM32 and GCC 8.3).
...
Use a union of a byte and the real storage, and init the char by default.
2021-09-14 11:22:40 +02:00
Francisco Paisana
55d83a1279
fix compilation issue due to wrong include path for srsran_assert.h file
2021-08-24 12:06:24 +02:00
Francisco Paisana
f518861ebc
fix location of support/ folder. Created macros for ASSERT_EQ and ASSERT_NEQ
2021-08-23 16:47:54 +02:00
Francisco Paisana
599fc978a5
improvement of srsran_assert design, with specializations to enable/disable assertions based on compile flags other than ASSERTS_ENABLED. Creation of the support/ folder
2021-08-23 16:47:54 +02:00
Francisco Paisana
e896ac49e8
adt: create split optional span view to be used for C-array types
2021-08-20 14:30:19 +02:00
Francisco Paisana
d616e46936
adt: allow choice between static and dynamic optional vector types
2021-08-20 14:30:19 +02:00
Francisco Paisana
1596fcf349
adt: rename optional table to optional array
2021-08-20 14:30:19 +02:00
Francisco Paisana
8c24cfebd3
adt: create data structure type to represent an array of optional fields
2021-08-20 14:30:19 +02:00
Francisco
78acf81cf0
bugfix,sched: avoid instability in TPCs around PHR~0
2021-06-21 17:35:24 +01:00
Pedro Alvarez
997f7db23a
Small fixes for observer.h missing std::size_t
2021-05-26 22:16:22 +02:00
Francisco
8df6ed07c6
sched small fixes - use 0.930 instead of 0.932 for max coderate. Allow computing mcs/tbs based on max coderate directly. Other small fixes
2021-05-24 17:25:07 +02:00
Francisco
31936c9754
bugfix - printf formatting incorrect in bounded_bitset method
2021-05-24 17:24:50 +02:00
Francisco
b093576634
avoid sending UEContextReleaseRequest from Source eNB during S1 Handover.
2021-05-24 17:24:31 +02:00
Francisco
fa34aaa16e
ensure the DL mask count is reduced enough to fit required bytes
2021-05-14 19:58:03 +01:00
Francisco
b54bb35343
use rnti_map_t in scheduler
2021-05-07 10:58:04 +01:00
Francisco
cd51537234
add comment explaining the use case of cached_alloc
2021-05-06 18:06:10 +01:00
Francisco
28847badcf
implementation of custom allocator for memory caching. This allocator may be used for unbounded queues
2021-05-06 18:06:10 +01:00
Francisco
3c4512cdd2
demote assert to expect check in circular stack pool destruction, when a leak is detected
2021-04-27 19:14:25 +01:00
Andre Puschmann
92d4e6e746
adt/common: remove const from return type
...
reported by LGTM https://lgtm.com/projects/g/srsLTE/srsLTE/rev/pr-9ae46cae260b6b8137b34b9423bf1477bd6b5c42
2021-04-25 21:03:53 +02:00
faluco
7df308c756
Remove two mallocs in the stack:
...
1) Extend the small buffer to 64bytes for the move_callback class.
2) Replace a std::map for a fixed size circular map in sched_time_pf.
2021-04-21 15:05:48 +02:00
Francisco
63913ff2b2
remove uneeded assert condition. change pdcp log when notified pdcp pdu doesnt exist to info.
2021-04-20 16:27:40 +01:00
Francisco
9efb959471
bugfix, scheduler - fix bit counter specializations for 32 and 64 bits.
2021-04-20 14:01:19 +01:00
Francisco
ac375f07d9
add precompiler guards to restrict builtin use to gcc and clang
2021-04-19 13:31:20 +01:00
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
2021-04-19 13:31:20 +01:00
Francisco
3f15fc2811
implemented bounded_bitset::find_first(...)
2021-04-19 13:31:20 +01:00
Francisco
c3ec28002b
refactor - integration of segment list in rlc_amd_tx_pdu and pdcp_pdu_info classes
2021-04-16 13:54:10 +01:00
Francisco
1f1233782f
timers - fix old gcc compilation issue. Changed free list to intrusive list.
2021-04-15 18:46:42 +01:00
Francisco
e37968410e
simplification of timers handler design, relying solely on one time wheel.
2021-04-15 18:46:42 +01:00
Francisco
60896e30b5
implementation of time wheel-based timer handler, using a circular array and intrusive list
2021-04-15 18:46:42 +01:00
Francisco
49bd895e29
s1ap - handle invalid or repeated erab ids in s1ap erab release command
2021-04-12 22:07:26 +01:00
Francisco
437db3af03
forbid allocations when dispatching task to thread pool
2021-04-10 15:03:38 +01:00
Francisco
f1c67f5b2b
pool - avoid concurrent batch allocations in background threads
2021-04-09 12:54:22 +01:00
Francisco
71f1f1b556
enb - log warning when rnti-specific memory block is full
2021-04-09 12:54:22 +01:00
Francisco
a890a22ccd
enb - rnti memory pool now fallbacks to new/delete if rnti-specific memory block is full
2021-04-09 12:54:22 +01:00
Francisco
a780a6a7b6
fix obj pool interface
2021-04-09 12:54:22 +01:00
Francisco
60d5c6df7b
implementation of memory pool with individual memory blocks per UE that get accessed via their rnti
2021-04-09 12:54:22 +01:00
Francisco
ebbb74e639
rlc am - use of circular_map container in RLC AM window
...
The window elements are not being correctly cleaned up when clear() is called
or when overwritten by newer SN. Furthermore, the window count member is not being
correctly updated when the insertion of a newer SN overwrites the previous one.
I used the circular_map container to avoid this sort of bugs
2021-04-08 20:11:15 +01:00
Francisco
b7d4a72ea1
adt - fix circular map clear() and erase(it) functions
2021-04-07 22:26:42 +01: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
62a6d9a8dc
fix background memory pool destruction
2021-04-07 12:02:22 +01:00
Francisco
b004c2024d
integration of object pool in mac::ue for allocation of softbuffers. Definition of common object pool interface class
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
2fc2280c3b
adt pool - replace uint8_t* for void* to represent memory blocks
2021-04-02 17:40:50 +01:00
Francisco
a79ca92020
refactor type storage and pool tests
2021-04-02 17:40:50 +01:00