Francisco
78acf81cf0
bugfix,sched: avoid instability in TPCs around PHR~0
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
d5234b5f65
sched,bugfix: avoid using UL SNR average in tpc control loop
4 years ago
Francisco
e8983b88f0
refactor: use enb_cc_idx instead of ue_cc_idx in mac::ue
4 years ago
Andre Puschmann
f65faba756
sched_harq: fix uninitialized values in HARQ
...
detected with Valgrind memcheck
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
Francisco
9e2a7d4592
bugfix,tpc: only cap PUSCH TPC when PHR is negative. I also extended TPC unit test
4 years ago
Francisco
bdc4362475
bugfix,tpc: place a cap on TPC due to PHR only when TPC is positive
4 years ago
Francisco
7badfb1c88
bugfix: avoid multiple TPC=0 for a single PHR<0
4 years ago
Francisco
e2c37ad513
bugfix: missing early return in TPC derivation
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
ceaef3523f
sched,feature: Enable setting the target PHR below which the maximum UL grant size starts decreasing
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
Francisco
f7aef3ffc1
sched,bugfix: fix nof_retx update when UL HARQs are resumed
4 years ago
Francisco
89406b07d6
make eNB UL SNR initial value an exponential average alpha configurable
4 years ago
Francisco
2cdda3b6db
sched,enhancement: allow PUSCH allocations when PHICH falls in measurement Gap by resuming UL HARQ
4 years ago
Francisco
200006c4b7
bugfix,scheduler: avoid offset to increase decrease unboundedly when mcs is equal to 0 or max_mcs
4 years ago
Francisco
7076dbfef8
feature, scheduler: Add configuration parameter to set minimum TTI interval between TPCs
4 years ago
Francisco
4627ae9802
bugfix, scheduler: effectively disable adaptive mcs when target bler is unspecified
4 years ago
Francisco
dedd9c09a7
feature, scheduler: Add abitility to set minimum aggregation level in PDCCH, and disable adaptive aggregation level based on target BLER
4 years ago
Francisco
c5029fc266
feature - implement adaptive link adaptation in DL and UL
4 years ago
Francisco
a17e3b71e7
set minimum snr under which the UL SNR estimate is not updated
4 years ago
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
4 years ago
yagoda
f90f6f0c7e
adding MAC 0 padding support
4 years ago
Francisco
0e0835a805
move scheduler rbg/prb/cce mask and interval types and associated helper functions to a separate file
4 years ago
Francisco
4d3ff0d139
implementation of basic search for optimal rbgmask for subband CQI
4 years ago
Francisco
f8b6eae2bf
use of min DL cqi across all PRBS to compute required DL PRBs
4 years ago
Francisco
8564996eaf
fix sched_dl_cqi method to compute cqi-optimal rbgmask
4 years ago
Francisco
485c6ee129
subband CQI feature - add K parameter in sched_interface::ue_cfg_t and update it from RRC
4 years ago
Francisco
84ad6dd8ee
Integrated new sched_dl_cqi class in sched_ue_cell
...
- extend sched_dl_cqi interface to allow getting tti when cqi was last updated
- extend sched_dl_cqi to quickly get average cqi across the whole bandwidth
4 years ago
Francisco
16d05ff042
Remove time exponential averaging of DL cqi
...
- renaming: sched_cqi -> sched_dl_cqi
- testing: add unit test for sched_dl_cqi wideband cqi mode.
- feature: remove time exponential averaging of dl cqi
4 years ago
Francisco
28c24a89ef
sched subband cqi - create method to get cqi-optimal RBG mask
4 years ago
Francisco
eeb8ad6571
sched,feature - creation of sched_cqi class to manage the update of CQI in a subband CQI setting
4 years ago
Francisco
b54bb35343
use rnti_map_t in scheduler
4 years ago
Francisco
1677abce8d
create typedef for circular map of rntis. check return of gtpu ue creation
4 years ago
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
Francisco Paisana
9de318c7e6
avoid allocating DL harqs when respective acks are still pending, when there is a reordering of ttis in the phy
4 years ago
Francisco Paisana
099dad8cb1
disable PHR handling in the UL sched by default
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
343587b32d
Update NR classes after metrics interface changes.
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
faluco
5529943172
Add a per sector rach preable counter for the metrics.
4 years ago
faluco
dcd1157d39
- Prototype the extension of enb metrics.
4 years ago
Francisco
cba0cc457f
sched rand test refactor: creation of abstract sched simulator class for testing
4 years ago
Francisco
b4861bc59a
move sched params and sched helper methods to sched_helpers.h/cc files. Removed place in the scheduler where the mcs is increased forcefully to avoid segmentation
4 years ago
Francisco
99f94d9a1a
Bug fixes of srseNB scheduler TPC
...
- fix encoding of TPC command
- use of exponential average with irregular sampling for the ULSNR average estimate.
Turns out using a time-windowed average for the SNR was a bad idea.
If the UL grants are very sporadic, the SNR time window will never have samples
when a TPC is encoded
- update of TPC sched test
- other fixes in accumulators lib
4 years ago
Francisco
22229adf08
fix: normal phr is only sent for PCell
4 years ago