* Remove the ulsch_slot_bitmap and dlsch_slot_bitmap from nrmac
* Adopt the new is_dl_slot/is_ul_slot functions in the stack
to replace is_xlsch_in_slot: these functions are getting
the DL and UL slots as they are set in the TDD configuration
stored in tdd_slot_bitmap (frame_structure_t)
* Keep is_xlsch_in_slot in openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_phytest.c:
this is necessary because the phy-test pre-processors are using the bitmaps
dlsch_slot_bitmap and ulsch_slot_bitmap to check which DL/UL slots to use
for transmission among those set in the TDD configuration
Co-authored-by: Guido Casati <guido.casati@firecell.io>
* is_ul_slot: returns `true` for UL or mixed slots
* is_dl_slot: returns `true` for DL or mixed slots
* is_mixed_slot: returns `true` for mixed slots
These functions use the TDD slot bitmap for slot type checks
Co-authored-by: Guido Casati <guido.casati@firecell.io>
* take into account pattern2 in nr_rrc_config_dl_tda
* use get_tdd_period_idx in nr_rrc_config_ul_tda
* use get_first_ul_slot_multi_tdd in set_SR_periodandoffset
Co-authored-by: Guido Casati <guido.casati@firecell.io>
* refactor set_ideal_period to use frame_structure from MAC
* use get_ul_slot_offset to assign slot offset to nth UE and adopt in
updated config_csirs, configure_periodic_srs, set_csi_meas_periodicity
Co-authored-by: Guido Casati <guido.casati@firecell.io>
* allocate memory for pattern2 only if the IE is present (it is optional)
* fix scc (deallocate memory) when necessary
Co-authored-by: Guido Casati <guido.casati@firecell.io>
* use config_frame_structure in config_common:
- fill frame_structure in MAC and NFAPI Config Request
- use get_tdd_period_idx to set periodicity index in Config Request
- use config_tdd_patterns to fill tdd_period_config
- use set_tdd_config_nr to complete NFAPI Config Request configuration
Co-authored-by: Guido Casati <guido.casati@firecell.io>
* assuming num_dl_slots and num_ul_slots are including also
slots with dl/ul symbols respectively
* refactor set_tdd_config_nr
* moved function to MAC
* fill max_num_of_symbol_per_slot_list depending on slot type
* use new set_tdd_config_nr in stack
* minor refactor in config.c to improve readability (scs)
Co-authored-by: Guido Casati <guido.casati@firecell.io>
The absslot_tx overflow issue observed during integration testing of AW2S
RU with GPS as the source for the clock synchronization. Causes the gNB
not to start the TX thread and stops the processing.
- The DL MCS adapted based on the BLER for the minimum number of
DL(numd_sched) grants for the UE in the pre_configured number of frames.
The current threshold value is set to be >9 for 16 UE capacity.
- With increased number of UE to 32 and when all the UEs are DL data active
the num_dl_sched is not meeting the threshold value. Due to whcih the MCS
of all the UEs are stuck with MCS 10-12 in good channel condition.
- The threshold value is adjusted to support 32 UE capacity increase.
- Added the limit as MAX_DCI_CORESET for max_sched_ues in DL/UL scheduler.
This is needed because gNB crashes when tested with 100MHz cell as the
scheduler tries to schedule 11 UEs in a slot and the DCI informaiton is
corrupted due to the limitation in NFAPI interface because of
MAX_DCI_CORESET size.
The following ASSERT is tirggered while testing 16 UE setup.
Assertion (NPRB>0 && (NPRB + RBstart <= BWPsize)) failed!
In PRBalloc_to_locationandbandwidth0() /home/ran/common/utils/nr/nr_common.c:286
Illegal NPRB/RBstart Configuration (1,48) for BWPsize 48
Corrected the get_start_stop_allocation calculation to fix the issue.
The implementation was wrong. The rbstop shall be the last rb that could
be allocated. Also the following two conditions are taken care
rbStart needs to be strictly smaller than rbStop
rbStart+rbSize needs to be smaller or equal to rbStop
The problem was that we confounded both conditions, so rbStart could
be equal to rbStop, which then leads to one PRB being allocated at the end.
Setting rbStop to BWPsize - 1 and making sure the above two conditions are
true does not make it lead to wrong allocations anymore.
Instead of NULL RAND value check, added the flag to indicate if the
AUTH process started. The flag is used manage the timer handling
for authentication process when stored RAND values is same as received
RAND value in AUTH_REQ.
It was observed in simulation test the OAI UE always sends the sucessful
AUTH_RES when the AUTH_REQ has the RAND value "0". This opens a back door
in the authentication process.
The code is modified to fix this issue in OAI UE.