59 Commits (f2a56c91390ac9c80d6c6f4bdee789b92478b1ec)

Author SHA1 Message Date
Francisco fa34aaa16e ensure the DL mask count is reduced enough to fit required bytes 4 years ago
Francisco b54bb35343 use rnti_map_t in scheduler 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
Francisco 3c4512cdd2 demote assert to expect check in circular stack pool destruction, when a leak is detected 4 years ago
Andre Puschmann 92d4e6e746 adt/common: remove const from return type
reported by LGTM https://lgtm.com/projects/g/srsLTE/srsLTE/rev/pr-9ae46cae260b6b8137b34b9423bf1477bd6b5c42
4 years ago
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.
4 years ago
Francisco 63913ff2b2 remove uneeded assert condition. change pdcp log when notified pdcp pdu doesnt exist to info. 4 years ago
Francisco 9efb959471 bugfix, scheduler - fix bit counter specializations for 32 and 64 bits. 4 years ago
Francisco ac375f07d9 add precompiler guards to restrict builtin use to gcc and clang 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
Francisco c3ec28002b refactor - integration of segment list in rlc_amd_tx_pdu and pdcp_pdu_info classes 4 years ago
Francisco 1f1233782f timers - fix old gcc compilation issue. Changed free list to intrusive list. 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
Francisco 49bd895e29 s1ap - handle invalid or repeated erab ids in s1ap erab release command 4 years ago
Francisco 437db3af03 forbid allocations when dispatching task to thread pool 4 years ago
Francisco f1c67f5b2b pool - avoid concurrent batch allocations in background threads 4 years ago
Francisco 71f1f1b556 enb - log warning when rnti-specific memory block is full 4 years ago
Francisco a890a22ccd enb - rnti memory pool now fallbacks to new/delete if rnti-specific memory block is full 4 years ago
Francisco a780a6a7b6 fix obj pool interface 4 years ago
Francisco 60d5c6df7b implementation of memory pool with individual memory blocks per UE that get accessed via their rnti 4 years ago
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
4 years ago
Francisco b7d4a72ea1 adt - fix circular map clear() and erase(it) functions 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 62a6d9a8dc fix background memory pool destruction 4 years ago
Francisco b004c2024d integration of object pool in mac::ue for allocation of softbuffers. Definition of common object pool interface class 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 2fc2280c3b adt pool - replace uint8_t* for void* to represent memory blocks 4 years ago
Francisco a79ca92020 refactor type storage and pool tests 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 23ae9967cf replaced present+value for optional field in s1ap mme_ue_s1ap_id context field 4 years ago
Francisco c3482b45e1 s1ap - handle erroneous enb/mme s1ap ue id in received s1ap messages from the MME 4 years ago
Francisco ced757a11b adt - add optional construct that closely emulates std::optional<T> 4 years ago
faluco 54fab314c0 Enhance RRC eNB events:
- Implement a common event "log_rrc" for all RRC events and discriminate by procedure using an enum.
- Log events for connection, reestablishment, reconfig, reject and release.
- Log the corresponding ASN1 message used by each procedure.
- Redefine the JSON object for this event to match the new structure.

Fixed a compilation error detected by the static analyzer in gcc9.3 where bounded_vector::data() was using taking the address of the internal buffer which confused it, prefer to use the data method of std::array.
4 years ago
Francisco d04a19f8bc refactor - increase code reuse in adt files 4 years ago
Francisco 5eccfad05b gtpu - added comments, updated expected construct, handled in rrc the case a gtpu teid fails to allocate 4 years ago
Francisco ab2bd9a2d2 gtpu refactor - handle dl path state activation internally in gtpu tunnel manager class 4 years ago
Francisco cfd24f6a0e gtpu - leverage byte_buffer_pool to store buffered sdus in gtpu 4 years ago
Francisco c201eb7708 use of more space efficient sorted vector structure for lcid tunnels of a rnti 4 years ago
Francisco eba0edea4a creation of static id obj pool class. Application of this class to gtpu tunnels container to avoid allocations 4 years ago
Francisco 60cd7e6cfe adt - improved concurrent fixed memory pool policy to send buffers from thread cache to central cache 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 4b5e15cd70 - Fixed missing return statements in base_circular_buffer::try_push.
- Fixed array index calculation in base_circular_buffer::clear.
- Removed redundant explicit in srslog::backend_worker.
4 years ago