Francisco Paisana
660b66dbe3
sched,nr: add option to run phy nr test with real NR scheduler
3 years ago
Francisco Paisana
e6683b7387
sched,nr: simplify scheduler threading architecture to reflect the new cc-based parallelism model
3 years ago
Francisco Paisana
74d0a8adb8
sched: add subband cqi info interface to LTE scheduler
3 years ago
Andre Puschmann
921a04ce65
enb,mac_nr: turn UE object into normal std::unique_ptr
3 years ago
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
Francisco Paisana
09c7000201
sched,nr: update nr scheduler to use new mac nr interface types
3 years ago
Francisco Paisana
8a34a3c41a
sched,nr: fix compilation issues in centos7 and removed unused variables
3 years ago
Francisco Paisana
d9336bcd9e
sched,nr: creation of pool of softbuffers for NR. Now the sched NR harq manages the lifetime of the softbuffer and its forwarding to the PHY
3 years ago
Francisco Paisana
1535e6b205
sched,nr: extend sched nr testing suite. restrict paralllelization for correct DAI generation
3 years ago
Francisco Paisana
323703c2f3
sched,nr: measure latency of sched nr in test
3 years ago
Francisco Paisana
d63ea00a5d
sched,nr: use PRBs instead of RBGs as the basic unit for PRB grants in the NR scheduler
3 years ago
Francisco Paisana
b81cbd1334
sched,nr: redesign the order available search spaces/coresets are found in the scheduler
3 years ago
Francisco Paisana
dd3c9b4d7e
sched,nr: utilization of common bwp params structure across multiple sched objects
3 years ago
Francisco Paisana
2db8b8d876
sched,nr: add RAR scheduler inspired in LTE one
3 years ago
Francisco Paisana
4f0b954cde
sched,nr: changed scheduler nr api to not require slot_indication function
3 years ago
Francisco Paisana
23afc66a86
sched,nr: implementation of PUCCH HARQ allocation in NR
3 years ago
Francisco Paisana
bcc374c2cd
implement TDD DL vs UL slot activation
3 years ago
Francisco Paisana
f87f898641
sched,nr: extend coreset pdcch allocation to UL
3 years ago
Ismael Gomez
1fd9d4300c
Move pdu buffer mutex in mac::ue to each carrier buffer map
3 years ago
Xavier Arteaga
b25681f9de
gnb,prach: add PRACH to gNB
...
rebase of Xavier's feature_gnb_prach branch
3 years ago
Andre Puschmann
8dd7075d12
enb,stack: add NR components for NSA mode
...
adds the main NR components for RLC, PDCP, MAC and RRC
for NSA operation.
3 years ago
Andre Puschmann
19996a4059
sched_nr: fix compilation
3 years ago
Xavier Arteaga
5307fec2f0
Added GNB MAC UL info initial interface and fix PHY implementation
3 years ago
Ismael Gomez
c0fd64c4e6
Fix data races in srsENB MAC
3 years ago
Francisco
4c316aa9ea
sched,nr: integrate mac-phy interface types into the scheduler
3 years ago
Francisco
5b3c5ded63
sched,nr: implement NR PDCCH allocation algorithm
3 years ago
Xavier Arteaga
8378c85ec4
Refactored gNb PHY
3 years ago
Xavier Arteaga
d49734b1bc
SRSENB: Refactor to accomodate 5G NR
3 years ago
Francisco
de05e1e549
sched,nr: fix invalid memory write
3 years ago
Francisco
75153c7c83
sched,nr: implementation of sched sim test class
3 years ago
Francisco
f1b3cfc764
sched,nr: implementation of sched NR harq retxs. Refactor of rb grid classes.
3 years ago
Francisco
d950433cbd
sched,nr: fix time-domain parallelization sched nr test. creation of util class to handle acquisition of boolean resources
3 years ago
Francisco
35a236b1b9
sched,nr: fix sched_nr_test. Resolve data race issues. Created new config structs used across the scheduler.
3 years ago
Francisco
407da794e1
sched,nr: implementation of slot grid class
3 years ago
Francisco
4fa27f3841
sched,nr: implementation of main classes for NR scheduler, and basic test for concurrency
3 years ago
Francisco
78acf81cf0
bugfix,sched: avoid instability in TPCs around PHR~0
3 years ago
Ismael Gomez
02ec4dd3d0
Remove unused variable
3 years ago
Ismael Gomez
dd9889e07c
Add carrier index to uplink PCAP captures
3 years ago
Francisco
5a82a63bb5
bugfix,srsenb: fix intraenb handover softbuffer allocation during handover
3 years ago
Francisco
d5234b5f65
sched,bugfix: avoid using UL SNR average in tpc control loop
3 years ago
Francisco
e8983b88f0
refactor: use enb_cc_idx instead of ue_cc_idx in mac::ue
3 years ago
Andre Puschmann
f65faba756
sched_harq: fix uninitialized values in HARQ
...
detected with Valgrind memcheck
3 years ago
Francisco
7e77da6a15
mac,optimization: use rnti memory pool to create mac::ue objects
3 years ago
Francisco
fd1d73666c
bugfix,srsenb,mac: avoid sanity check for UL PDU length if CRC=KO
3 years ago
Francisco
76004a3054
enb,mac,refactor: mac::ue now uses byte_buffer_pool for UL PDUs
3 years ago
Francisco
9e2a7d4592
bugfix,tpc: only cap PUSCH TPC when PHR is negative. I also extended TPC unit test
3 years ago
Francisco
bdc4362475
bugfix,tpc: place a cap on TPC due to PHR only when TPC is positive
3 years ago
Francisco
7badfb1c88
bugfix: avoid multiple TPC=0 for a single PHR<0
3 years ago
Francisco
e2c37ad513
bugfix: missing early return in TPC derivation
3 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.
3 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