Commit Graph
2265 Commits
Author SHA1 Message Date
Francesco Mani 9deb0ed08c Merge branch 'develop' into NR_RRC_PRACH_procedures 2020-04-16 18:58:53 +02:00
matzakos e1b968db8b Small Fix for NR Downlink IP traffic issue after last updates in develop branch 2020-04-15 10:17:12 +02:00
cig ec422f7050 Introduced a delay after a completed sync before starting msg1 generation:
- this was necessary because as soon as the gNB starts, it tries detecting
  the prach preambles and it mesaures the background noise. However, there is
  a delay of several dozens of frames before it considers the preables as
  detected.
- the solution at the UE consists in avoiding sending preamble as soon as the
  UE syncs by introducing an offset, this keeps the power measurements low at
  gNB side as long as the preamble detection counter is under threshold
2020-04-14 14:28:01 +02:00
Francesco Mani 3dc9ad0567 Merge branch 'develop' into NR_RRC_PRACH_procedures 2020-04-14 14:17:34 +02:00
Raphael Defosseux 238c83f400 Merge remote-tracking branch 'origin/feature-4g-sched' into develop 2020-04-13 22:08:41 +02:00
Raphael Defosseux 10b484279c Merge remote-tracking branch 'origin/feature-4g-sched' into develop_integration_2020_w15_bis 2020-04-10 12:11:58 +02:00
Raphael Defosseux d367260214 Merge remote-tracking branch 'origin/NR_gNB_SCF_Indication' into develop_integration_2020_w15_bis 2020-04-10 12:11:31 +02:00
Robert Schmidt 8f450f0e51 DL PP: consider the last RBG might be smaller 2020-04-10 00:09:36 +02:00
Thomas Schlichter 690176821d make mac_sdus an array instead of a pointer 2020-04-07 13:31:14 +02:00
cig 1e63219bbf Fixed bugs in UE RA procedures:
- number or RA preambles unitialised
- power ramp counter not incrementing
- segmentation fault due to wrong pointer initialisation
2020-04-07 11:07:41 +02:00
Robert Schmidt 1372e02206 Check for CCE allocation in UL PP 2020-04-06 13:56:59 +02:00
Robert Schmidt 36ebfe04f6 Use CCE_try_allocate_ulsch() in ULSCH 2020-04-06 13:56:59 +02:00
Robert Schmidt c76af0a142 Check for CCE allocation in DL PP 2020-04-06 13:56:56 +02:00
Robert Schmidt ed6e5ce832 Use CCE_try_allocate_dlsch() 2020-04-06 13:56:31 +02:00
Robert Schmidt 6b3b0b0b8b Final CCE allocation check: print message on fail 2020-04-06 13:56:31 +02:00
Robert Schmidt 88d156478f CCE_allocation_infeasible(): log only debug 2020-04-06 13:56:31 +02:00
Robert Schmidt 5443c7a792 fill_nfapi_dlsch_config() takes index for filling 2020-04-06 13:56:31 +02:00
Robert Schmidt 0f46f17c1c UL PP can change retx freq allocation 2020-04-06 13:56:31 +02:00
Robert Schmidt 24fb5e9c80 add adaptive HARQ UL 2020-04-06 13:56:31 +02:00
Robert Schmidt 9256a9e813 Clean up schedule_ulsch_rnti() 2020-04-06 13:56:31 +02:00
Robert Schmidt c9a921504c TEST: TPC + TA cleaned up in DLSCH 2020-04-06 13:56:31 +02:00
Robert Schmidt fd2e5fee96 Clean up schedule_dlsch() 2020-04-06 13:56:31 +02:00
Robert Schmidt 2f32448707 Correctly handle 2ms Sched. Reqs 2020-04-06 13:56:31 +02:00
Robert Schmidt a3bbbd0630 Lock PRACH region through vrb_map_UL 2020-04-06 13:56:31 +02:00
Robert Schmidt abc65b1d86 Reimplement UL PP 2020-04-06 13:56:31 +02:00
Robert Schmidt 8bf7a13ffa Remove first_rb from ULSCH scheduler 2020-04-06 13:56:31 +02:00
Robert Schmidt 8a84e2d92e Rewrite assign_max_mcs_min_rb() more concisely 2020-04-06 13:56:31 +02:00
Robert Schmidt 10bd164ad4 UL PP: Remove UE sorting and slicing 2020-04-06 13:56:31 +02:00
Robert Schmidt 9b4725ad0b Shortened UL-PP, remove CC and slicing 2020-04-06 13:56:31 +02:00
Robert Schmidt 4250f8eaec ULSCH: remove CC loop, remove variables or limit scope 2020-04-06 13:56:31 +02:00
Robert Schmidt 1670b4521e Reimplement the DLSCH preprocessor
This refactors the preprocessor. The new preprocessor implements the
same scheduling strategy (Modified Round-Robin: give resources according
to round-robin, then group) but should be fairer by changing every time
the RR start UE (i.e., 1st TTI UE 0 starts, 2nd TTI UE 1, etc) when the
UE number is not a divisor/multiple of the RBG size (and the last RBG is
often smaller). This also removes all unneeded code of the preprocessor
such as allocate(), positioning(), etc.
2020-04-06 13:56:27 +02:00
Robert Schmidt eb0af3a5e0 Simplify DLSCH code
* do not check rlc_ind()
* Simplify retransmission part and remove nb_rb_available var
* Simplify new transmission code
* Simplify fill_DLSCH_dci(), avoid unnecessary copies
* fix: first check No. RBs, then check CCE alloc
2020-04-06 13:43:52 +02:00
Robert Schmidt eeaa5a99d0 RLC: _req() accepts max TB size, _ind() not
Previously, the various rlc_*_ind() functions had a parameter to enable
the MAC to specify the max TB size that a subsequent call to the
corresponding rlc_*_req() (!) function would return. This patch removes
this parameter from the rlc_*_ind() functions and makes the parameter
working that is already in the rlc_*_req() functions.
2020-04-06 13:43:52 +02:00
Robert Schmidt 5c153ca0d2 Move release and RA control to own function, call once for every UE 2020-04-06 13:43:52 +02:00
Robert Schmidt 97a1bd105c store_dlsch_buffer() works per CC, checks only active LCs
store_dlsch_buffer() puts the RLC buffer status results in the
UE_TEMPLATE, which is per-CC. Since the DLSCH scheduler works per-CC,
too, we pass the right CC. However, this is not strictly necessary, as
we could do this once before every CC, and it might be updated.
2020-04-06 13:43:52 +02:00
Robert Schmidt 2e9f391a0a Store active LCs in MAC, remove unneeded headers 2020-04-06 13:43:52 +02:00
Francesco Mani 8892d00693 flag do_ra alternative to phy_test to perform RA procedures 2020-04-04 10:32:07 +02:00
Francesco Mani f72259de8e reactivating phytest schedulers 2020-04-03 16:58:08 +02:00
frtabu 0518ced81f dft/idft in shared lib 2020-04-02 12:11:21 +02:00
Robert Schmidt 8ffe5b4920 Rename UE_list_t to UE_info_t, UE_list_t separate struct
UE_list_t is now used as a separate list. It can be e.g. used in the
scheduler to mark groups of users. The original UE_list_t is renamed to
UE_info_t to reflect that it is a container for information about UEs.
2020-04-01 10:47:02 +02:00
Robert Schmidt 7c92456338 Remove DL Slicing-related variables 2020-04-01 10:38:47 +02:00
Robert Schmidt fd6618dc1c Simplify preprocessor, retain functionality
* Simplify store_dlsch_buffer()
* Simplify assign_rbs_required()
* Simplify dlsch_scheduler_pre_processor_partitioning()
* Simplify dlsch_scheduler_pre_processor_accounting() and dlsch_scheduler_pre_processor_accounting_allocate()
* Simplify allocation printing

The original functions used in the fairRR scheduler have been moved to
eNB_scheduler_fairRR
2020-04-01 08:49:26 +02:00
Robert Schmidt 4462e2d710 Remove unused/broken code in preprocessor
* Remove MIMO_mode_indicator: it is simply not used ATM
* Remove min_rb_unit as parameter: function auto-detects
* Remove commented code
* Remove slice sharing/multiplexing: it is broken
* Remove UE sorting, add UE with add_new_ue() in MAC
  - UE sorting is useless overhead on every iteration, instead it should
    be governed by a scheduling algorithm (e.g., RR or PF)
  - The MAC keeps a UE list and automatically adds a UE
  - UE_list empty, set head to -1
* Remove slice_positioning: the slicing functionality is broken
* Remove unused/untested code
2020-04-01 08:49:26 +02:00
Robert Schmidt 8d3fa4dc22 Simplify dlsch_scheduler_pre_processor_reset()
The original reset() function used in fairRR has been moved to
eNB_scheduler_fairRR.c
2020-04-01 08:49:26 +02:00
Robert Schmidt ff766786a8 Remove mbsfn_flag from schedule_ue_spec(), simplify pre_processor interface 2020-04-01 08:49:26 +02:00
Robert Schmidt 8e72b1364a Remove sf0 DC limitation 2020-04-01 08:49:26 +02:00
Robert Schmidt cd480271af Remove everything related to TM5 in pre_processor 2020-04-01 08:49:26 +02:00
Robert Schmidt 99301f438f Call schedule_ue_spec() once for each CC 2020-04-01 08:49:26 +02:00
Robert Schmidt 81fb7628c5 get_min_rb_unit(): all channel bandwidths 2020-04-01 08:49:26 +02:00
Robert Schmidt ffc4f464f5 Remove useless mac_proto.h include
When a header is changed, all including files need to be recompiled,
too. Thus, including a header needlessly all over the place drives
compile times up without any reason.
2020-04-01 08:49:26 +02:00