MR !1085 : Nr mac ssb
-MAC scheduling of multiple SSBs
-Symbol level occupation of VRB map for SSBs
-Multi SSB SIB1 scheduling
MR !1097 : NR_PRACH: nr_du\[\] buffer not filled in High Speed case for both gNB and nrUE
Issue: TC nr_prachsim failed with High Speed(-H) enabled.
While generating NR PRACH for High Speed case : Array nr_du\[\] was not filled for both gNB and nrUE. Added function nr_fill_du() to resolve the issue.
MR !1107 : Small bugfixes for 5G NR
Before this commit, when the gNB crashes, the eNB keeps running.
Same, if the eNB crashes, the gNB keeps running.
In a far past when this happened, the other program (the one not
crashing) was forced to exit.
Then this behavior was changed, for some reason.
But the code was not finished, so now we have a system in an inconsistent
state.
So either we accept that the connection between eNB and gNB can break,
that is one of the programs crashes, and we clean the state of the
program that keeps running. But this is a complex work and it will
surely not survive very long, because someone will change something
in the code later that will break this complex behavior.
Or, simpler, we go back to initial behavior, which is: the program that
did not crash does actually exit when the other crashes.
This commit provides the second solution.
It can easily be reverted whenever someone wants to implement the complex
solution.
We used to set 'does_nr' of an UE if we detect ENDC supported in the
UE capabilities.
Then we activate NR measurements if 'does_nr' is true.
The problem is that if the eNB is not connected to a gNB but the UE
reports some NR measurements (because a gNB is running somewhere near)
then the eNB will crash when starting the switch to NR.
A (quick) solution is to set 'does_nr' only if there is a gNB connected to
the eNB.
Maybe not the best solution. To be changed if needed.
MR !1092: Nr pdcp nia2 integrity
This code has not been tested with a COTS UE. We need SRB1/2 (so we need SA) to test.
The activation of security and integrity for SRB1 will need more code (new functions) because it happens after some time, not at creation time of the PDCP entity and there is no way to do this with current code.
MR !1075: Fft bench hotfix
Simple fix to make the FFT testbench compile and run on current develop.
MR !1083: NR power measurement fixes
If the array of pointers is allocated using malloc(), it is not guaranteed that the pointers are NULL, so the actual PHY_VARS_gNB might nit be allocated correctly!
Also replace a malloc() + memset() combination by just a calloc().
This code has not been tested with a COTS UE. We need SRB1/2 (so we need SA)
to test.
The activation of security and integrity for SRB1 will need more code
(new functions) because it happens after some time, not at creation time
of the PDCP entity and there is no way to do this with current code.
With the merge of fix_NR_DLUL_PF, gNB_dlsch_ulsch_scheduler() has no
nb_periods_per_frame variable. There are two changes here:
1) calculate this locally for initializing tdd_beam_association
2) do not pass it into schedule_nr_mib(). Further, use the following:
nb_periods_per_frame = slots_per_frame / slots_per_period
slots_per_frame / nb_periods_per_frame =
= slots_per_frame / (slots_per_frame / slots_per_period)
= slots_per_period