69 Commits (e896ac49e8513b23066e19fceb82d1a4aa8d1b1f)

Author SHA1 Message Date
Andre Puschmann 8d2e81ad6f enb,mac,nr: add basic UE object skeleton
refactor that also adds a basic UE object to the NR MAC
3 years ago
Ismael Gomez 1fd9d4300c Move pdu buffer mutex in mac::ue to each carrier buffer map 3 years ago
Ismael Gomez c0fd64c4e6 Fix data races in srsENB MAC 4 years ago
Ismael Gomez 02ec4dd3d0 Remove unused variable 4 years ago
Ismael Gomez dd9889e07c Add carrier index to uplink PCAP captures 4 years ago
Francisco 5a82a63bb5 bugfix,srsenb: fix intraenb handover softbuffer allocation during handover 4 years ago
Francisco e8983b88f0 refactor: use enb_cc_idx instead of ue_cc_idx in mac::ue 4 years ago
Francisco 7e77da6a15 mac,optimization: use rnti memory pool to create mac::ue objects 4 years ago
Francisco fd1d73666c bugfix,srsenb,mac: avoid sanity check for UL PDU length if CRC=KO 4 years ago
Francisco 76004a3054 enb,mac,refactor: mac::ue now uses byte_buffer_pool for UL PDUs 4 years ago
Andre Puschmann c0be8187c8 rlc interface: convert entire read_pdu() interface to return uint32_t
we had it returning int but had a bug in using the return value properly,
i.e. handling when -1 was returned in RLC TM.

Thinking about it more, it doesn't make sense to have a negative return
value here anyway. Either the RLC can return a PDU or not. If it can't the
returned lenght is zero.
4 years ago
Francisco 486823e5de sched,bugfix: The PHR handling scheme now considers the number of PRBs of the UL grant that carried the PHR. Before, it was assuming the most conservative scenario of Nprb=1 4 years ago
yagoda f90f6f0c7e adding MAC 0 padding support 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 fbeb87c53e remove unused parameters from mac::ue 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 8fda69a3dd refactor mac::ue cc_used_buffers_map class to use new circular_map container 4 years ago
Pedro Alvarez e1a852d4b8 Split split RLF timer and Inactivity timer 4 years ago
Pedro Alvarez 8194b5ec73 Added check for consequetive KOs in MAC. Change set_activity_user to pass activity and max KOs to RRC and trigger RLF timeout. 4 years ago
Codebot 4523ee6087 rename srsLTE to srsRAN 4 years ago
Ismael Gomez 8d2197e751 Increase MAC UE circular buffer 4 years ago
Francisco 6feb311e17 remove instantiations of move-constructors and move assignment operators from cc_buffer_handler 4 years ago
Francisco ca7fe1349e remove unnecessary sfinae from bounded_vector. Use bounded_vector for UE cc buffers. Set ue cc used buffers remove_pdu method to private 4 years ago
Francisco d27e0be609 created special class to manage mac::ue currently allocated rx UL buffers. This class avoids mallocs 4 years ago
Francisco 3e9f93eb8a refactor - remove old log_filter and logmap libraries from the codebase 4 years ago
David Rupprecht aef6805d03 Added pcap net feature to eNodeB 4 years ago
Francisco 023cb0fdde log on allocation failure in mac::ue class 4 years ago
Francisco beed2ddbaa simplified tx softbuffer acquisition interface in mac::ue 4 years ago
Francisco e0da736a5f fix memory management of softbuffers in mac::ue class 4 years ago
Francisco 02539344fb move rx used buffers of mac::ue to separate cc buffer handler class 4 years ago
Francisco cc6c9ffc51 move tx/rx softbuffers of mac::ue to separate cc buffer handler class 4 years ago
Francisco 2f95862932 move tx payload buffers of mac::ue to separate cc buffer handler class 4 years ago
Francisco 9eb46cc134 fixed clang tidy warnings in mac::ue.cc 4 years ago
Xavier Arteaga 1e55d68b55 Removed set RNTI from API 4 years ago
Francisco 23459dee28 Created enb_{rlc/pdcp/gtpu/phy_interfaces.h files. 4 years ago
Francisco 43e57df00b breaking enb_interfaces.h into multiple files on a layer basis. Created enb_rrc_interfaces.h, enb_mac_interfaces.h and enb_s1ap_interfaces.h 4 years ago
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.
4 years ago
Ismael Gomez fed4e0ad82
Protect access to ul buffers (#2227)
* Protect access to ul buffers

* Fix interval calculation when removing old buffers
4 years ago
Ismael Gomez 44e411be2b Track UL buffers per TTI instead of per PID and remove old ones periodically 4 years ago
Ismael Gomez c1c5fa426c Fix issue with new way of managing ul buffers not working with CA 4 years ago
Ismael Gomez e413086576 Limit the number of UL buffers in MAC and deallocate old ones 4 years ago
Ismael Gomez f9a02299f9 Use MAC PDU pointer instead of tti_rx and rnti as a key to associate buffers. Decouple crc_info() and push_pdu() functions. This allows for different timing architectures in the PHY 4 years ago
faluco f20b75a05f Re-structure enb metrics a bit. Create a generic mac metric struct and per ue mac metrics struct. 4 years ago
Francisco 5865df39d1 created class that implements the scheduler transmit power control and PHR handling 4 years ago
Andre Puschmann 07d2bc4fe8 change license header to agnostic version with hint to root LICENSE file 4 years ago
Francisco Paisana cb7f620254 created separate class to manage bearers buffers/status reports in the scheduler 5 years ago
Ismael Gomez 493b7ea2da Remove SNR threshold based link failure detection 5 years ago
Andre Puschmann a0e4b18507 enb_mac: pre-allocate UE object for quicker PRACH/RAR handling
we've seen long delays in handling PRACH on low-power devices
such as the RPi4. This was mainly caused by long delays
in creating the UE object on the fly during PRACH handling.

This patch pre-allocates one UE object that is then used
during the PRACH.
5 years ago
faluco 7ff251f112 - Fixed warnings caught by Clang 9.0.0 5 years ago