This commit enables more slots so that the "real UE" preprocessor can
schedule them. The DL phytest preprocessor continues to only schedule
slots 1 & 3. This is because the OAI-UE needs to have PUCCH scheduled
at least six slots in advance. Since we do not support this (yet), but
assume that two slots are enough, we schedule the UE only in slot 1 & 3
so it has 6 slots until slot 7 to send PUCCH.
Before this commit, the DLSCH scheduler would construct the MAC PDU by
reading RLC data into a memory on the stack, and then construct the PDU
with CEs first. There are at least two problems:
- we need to keep track of the exact number of bytes of CEs (cumbersome)
to calculate the number of MAC SDUs to include
- we needlessly copy data around.
This commit does the following instead:
- write all CEs first (no need of keeping track of this in DLSCH and a
separate function)
- then read MAC SDUs directly into nFAPI as much as possible or
necessary, without recopying
According to SCF222, a single PDCCH allocation groups DCIs that are
within the same BWP and CORESET. Therefore, if we want to allocate
multiple DCIs, we need to decouple PDCCH allocation and DCI (previously
jointly done in nr_configure_pdcch()), especially to be forward
compatible.
***Note that as of this commit, we would still allocate different PDCCH
PDUs for multiple UEs (which we do not support yet, anyway)***
nr_configure_pdcch(): simply take out DCI allocation.
nr_generate_Msg2(): separately allocate dci_pdu in common RA SS, and
rename DCI payload variable. Also, reorganize the function so that it is
first checked for CCE allocation and messages nFAPI messages are
allocated afterwards.
nr_schedule_ue_spec(): separately allocate dci_pdu in UE-specific SS.
Rename DCI payload variable.
nr_schedule_ulsch(): separately allocate dci_pdu in UE-specific SS.
Rename DCI payload variable.
nr_fill_nfapi_dl_sib1_pdu(): separately allocate dci_pdu in common SS.