346 Commits (4ed33fed7df1fb251d71fc512bfe6af618bccd51)

Author SHA1 Message Date
Francisco b619a2b649 application of new cache allocator to deques in scheduler 4 years ago
Francisco 04ded030ea srsenb,bugfix - avoid logging error message when UE sends CRNTI MAC CE for old rnti whose context has already been erased. 4 years ago
Francisco f7016633d2 sched, fix - avoid tpc commands when target pusch and pucch snr are not specified 4 years ago
Francisco d3c51fdad4 limit minimum UL grant size to accommodate both BSR and RLC headers 4 years ago
Francisco Paisana d39183419c
Separate TPC PUSCH and PUCCH target SINR (#2740)
* separate target pusch and pucch sinr configurations in tpc class and rr.conf
4 years ago
faluco 69726bc939 Remove two allocs in the prio queues in sched_time_pf. 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 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
Francisco cc369aca1f sched - handle the case when the CRC is missing and max retx is reached 4 years ago
Francisco 4869b14de3 application of new circular map to mac::ue_db 4 years ago
Codebot 4523ee6087 rename srsLTE to srsRAN 4 years ago
Ismael Gomez 8d2197e751 Increase MAC UE circular buffer 4 years ago
Francisco 2054ad3f3c eliminate old BFS-based PDCCH allocator. Improvement the scheduler speed by ~2x 4 years ago
Francisco 6bec92fbc9 using new DFS-based PDCCH allocator as a default 4 years ago
Francisco 8347cabe4f implemented a DFS-based PDCCH allocator 4 years ago
Francisco fb48f4484c sched refactor - removal or cleanup of unused sched methods 4 years ago
Francisco 137a21d6b2 sched refactor - use simple enum to represent allocation result. Refactored logging messages when allocation fails. 4 years ago
Francisco c0a90c5aa8 refactored sf result resetting to avoid realloc of memory 4 years ago
Francisco 1f35c4dc8b sched, feature enhancement, bugfix - allow RAR DL grants with variable PRB size
Some bug fixes had to be solved:
- the cfi cannot be dynamic once we set a SIB/paging/RAR allocation. This is too avoid effective coderate to exceed its maximum
- the previous bugfix required adding the feature to cancel the last PDCCH+PDSCH allocation
4 years ago
Francisco 47f1175502 [sched, feature enhancement] - allow variable nof prbs allocated per SIB / Paging message 4 years ago
Francisco 76103065f7 collapse the 2-stage DCI generation process of SIB/Paging/RAR into one single stage in the scheduler. 4 years ago
Francisco 3a4ae3d69d extended broadcast+RAR DCI encoding scheduler tests 4 years ago
Francisco 16b5e1fd4d fix collision detection of n1pucch for the ACK and SR in the scheduler 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
Francisco 770021e364 remove uneeded formatting and std::string creation/allocation in scheduler 4 years ago
Francisco fbbbf7886c sched,bugfix - reset harq used for msg3 correctly 4 years ago
Francisco d1483dc0f8 sched,bugfix - fix bitmask formatting. fix msg3 adaptive retx pdcch allocation 4 years ago
Francisco 837c5bdce5 clang tidy update. applied small fixes to warnings from clang-tidy 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 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 b869b0d8e2 sched,bugfix&refactor: set dci_format before generating the remaining dci parameters in sched_ue::generate_dl_dci_format(...) 4 years ago
Francisco 77ac69796d sched,bug: change tbs/mcs derivation functions to forbid the use of alt cqi table for DCI format1A 4 years ago
Francisco 34e39a9835 Implementation of scheduler algorithm to avoid PUCCH collisions
- The cch_allocator considers the existence of a fixed PUCCH region dedicated to CQI, SR, and HARQ ACKs
- At the moment PUCCH multiplexing is not considered
- The PUCCH width was increased to accommodate possible PUCCH-ACK positions
4 years ago
Francisco 8ae8b31ba2 Allow collisions between PUCCH and Msg3 for 6 PRBs
- The UL Harq now stores the type of UL alloc (msg3 or data)
4 years ago
Francisco 7dcfe7bf0e sched: updated tbs calculation test. Fix edge cases that failed the test. 4 years ago
Francisco ed8ab3871c re-designed algorithm to compute lowest mcs that meets cqi,req_bytes,nof_prbs requirements in the scheduler 4 years ago
Francisco 9748c0be84 simplified tbs/mcs computation in scheduler 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 9a9ed01dda rename pdcch_sched to sf_cch_allocator 4 years ago
Francisco 9546634b37 use unique_ptr for sched_ue database in scheduler. This will minimize the time spent locking while adding new users 4 years ago
Francisco c1adaec038 refactored cce position table structs 4 years ago
Francisco 823da24a8e removed uneeded sched method to set sched algorithm, and made configured flag atomic 4 years ago
Francisco 6b3cf6c597 moved pdcch sched to separate file 4 years ago
Francisco a4423ff690 sched: fix compilation issue for gcc4.8 4 years ago
Francisco a7f4dfab2c sched: added checks for localized RBG assignment in case of DCI format1A 4 years ago
Francisco Paisana 34d4dc3974 set DCI format 1A while RRC setup/reestablishment/reconfiguration is on-going 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
Francisco 3265d940ec remove byte buffer pool cached member variables as they are unnecessary now. 4 years ago
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
4 years ago
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)
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
yagoda 1420c23863 adding RAR buffers for multiple carriers, previously RARs into different carriers in the same TTI would overwrite each other 4 years ago
Francisco 26086252ba fix resetting of harqs in the scheduler during intra-enb handover 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
Francisco a24091edf8 fix handover regression. The new pcell was not being correctly reactivated 4 years ago
Francisco 4ed87babff extend sched_ue_cell interface 4 years ago
Francisco 3d7a83cb6e delete cc_sched_ue class 4 years ago
Francisco Paisana c1ff03bd1a moved uci feedback and state variables from cc_sched_ue to sched_ue_cell class 4 years ago
Francisco Paisana dadee757a1 moved harq entity and tpc to sched_ue_cell 4 years ago
Francisco Paisana 3892194d98 sched refactor, use enb_cc_idx rather than ue_cc_idx primarily to avoid uneeded conversions 4 years ago
Ismael Gomez 47dbd6ed70
Merge pull request #2214 from softwareradiosystems/pr_mac_buffers
Limit the number of UL buffers in MAC and deallocate old ones
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 d5f0634975
Add PUCCH SNR measurement (#2175)
* Add PUCCH SNR measurement

* Fix PUCCH SNR estimation

* Reverted PUCCH noise estimation

* use fpclassify instead of iszero

Co-authored-by: Xavier Arteaga <xavier@softwareradiosystems.com>
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
Francisco Paisana 5391001c46 remove unused variable 4 years ago
Francisco Paisana d4242f2db7 precompute nof_re_table[sf][prb][slot][cfi] for faster nof_re computation and for more accurate lower bound nof_re computation 4 years ago
Francisco Paisana d0a17b0a40 created sched_ue_cell class that is indexed based on enb_cc_idx 4 years ago
Francisco Paisana 8b306c81e2 refactor tbs/mcs computation in sched 4 years ago
Francisco Paisana 32c47d4fac change sched warning when it fails to fit srb0 data in grant to info 4 years ago
Francisco Paisana 1dd211c91c fix log initialization in sched_helpers.cc 4 years ago
Francisco Paisana afef5188a6 move sched_harq to subfolder 4 years ago
Francisco Paisana 233e604cfe cleanup sched_ue, moving some unrelated functions to sched_helpers 4 years ago
Francisco Paisana 0d9ff3ecc7 fixed RBG<->PRB conversion. Changed PHICH logging to be single line 4 years ago
Francisco Paisana bc8e65c82f bug fix in the PF scheduler. The correct history was not being stored for newtxs 4 years ago
Francisco Paisana 02d4dde1f5 issue 2170 fix: add extra check that UL harq is empty before allocating it 4 years ago
Francisco Paisana ea8ad153c4 add configurable fairness parameter to pf scheduler 4 years ago
Francisco Paisana 2abe486e18 separate control loops for PUCCH and PUSCH TPC 4 years ago
Andre Puschmann 732a108982 mac: convert rar_pdu_msg[] from vector into array and protect access
attempt to address ASAN detected issue:

RACH:  tti=821, cc=3, preamble=11, offset=0, temp_crnti=0x47
ASAN:DEADLYSIGNAL
=================================================================
m==25385==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000024 (pc 0x564b19a26c93 bp 0x7fa0e5f1a8c0 sp 0x7fa0e5f1a798 T8)
==25385==The signal is caused by a WRITE memory access.
==25385==Hint: address points to the zero page.

------DL--------------------------------UL------------------------------------
rnti cqi  ri mcs brate   ok  nok  (%)  snr  phr mcs brate   ok  nok  (%)   bsr
  46 0.10   0 0.0     0    0    0   0%    0  0.0   0     0    0    0   0%   0.0
  47 0.10   0 0.0     0    0    0   0%    0  0.0   0     0    0    0   0%   0.0
    #0 0x564b19a26c92 in srslte::rar_subh::set_ta_cmd(unsigned int) /mnt/data/jenkins/workspace/srslte_ogt_manual_zmq/srsLTE/lib/src/mac/pdu.cc:1136
    #1 0x564b19577f7e in srsenb::mac::assemble_rar(srsenb::sched_interface::dl_sched_rar_grant_t*, unsigned int, int, unsigned int, unsigned int) /mnt/data/jenkins/workspace/srslte_ogt_manual_zmq/srsLTE/srsenb/src/stack/mac/mac.cc:837
    #2 0x564b19591765 in srsenb::mac::get_dl_sched(unsigned int, std::vector<srsenb::mac_interface_phy_lte::dl_sched_t, std::allocator<srsenb::mac_interface_phy_lte::dl_sched_t> >&) /mnt/data/jenkins/workspace/srslte_ogt_manual_zmq/srsLTE/srsenb/src/stack/mac/mac.cc:653
    #3 0x564b19497ee2 in srsenb::lte::sf_worker::work_imp() /mnt/data/jenkins/workspace/srslte_ogt_manual_zmq/srsLTE/srsenb/src/phy/lte/sf_worker.cc:208
    #4 0x564b199f8db4 in
4 years ago