This commit include dynamically setting the slots_per_frame
value based on configuration. It also includes some comments.
Lastly, simplified bug fix in MAC layer related to sched_frame
calculation.
In F1, the time until the serving cell config comes from CU can be
longer than when we want to schedule a particular UE. Then, if we don't
configure the default number of HARQ processes, we can have a segfault.
In this commit, we initially configure 8 HARQ processes. When we get the
right number from RRC, we reconfigure.
Functions generate_missing() and missing_size() had different
computations of sn_count. Not sure if it is a problem or not,
but let's do the same in both functions.
Hopefully the computation is correct.
Previously, we thought the memset in the nr_ue_dl_indication()
was causing issues / exposing a race. This is not the case. The
memset is not problematic, the issue is that in the emulate_l1
mode we were not always configuring the DCI nbits before handling
the DCI when we are pushing high (15 Mbps) throughput traffic.
Overwriting sched_pusch information at that stage would in particular
lose information on the current frame/slot. Overwriting sched_pusch with
the retInfo structure is already done at the end of
allocate_ul_retransmission(), and is therefore not necessary at this
stage.
We compute the preferred DL TDAs when receiving the cellGroup from the
RRC. However, in F1 and the RFsim, it seems that the scheduler tries to
access the preferred DL TDAs before they have been set after receiving
the cellGroup. In this commit, add a simple check to verify the
preferred TDA has been set up.
Instead of conditionally calling the pucch_scheduler
we now only call the functions we need from the stub
function directly. This is better because we are not
modifying the OAI MAC layer code and ensuring that we
are not calling the pucch_scheduler twice for the same
sfn/slot
Adding error checking before indexing in mac layer harq array
Adding error checking before writing ul_harq_sfn_slot
Added comments
Made a "static" free_uci_inds() actually static
Also, the allocation of the eNB measurement
report keeps getting commented out becasue
the compiler throws an error. I have un-commented
the allocation of memory (becasue it breaks NSA
mode) and added a memset to ensure we are using
the allocated memory. This gets rid of the
warning and ensures NSA mode still works.