For multiple UEs, we need to be able to filter the rx'd messages by
the RNTI. However, we do not have the RNTI value until the CFRA (NSA)
or CBRA (SA) procedure is complete. The check below will handle this.
Also, depending on the RNTI value, we can have a SIB (0xffff), RAR (0x10b),
Msg3 (TC_RNTI) or an actual DCI message (CRNTI). When we get Msg3, the
MAC instance of the UE still has a CRNTI = 0. Only once the RA procedure
succeeds is the CRNTI value updated to the TC_RNTI.
1. The preamble index in the NRUE is random for SA.
Using the preamble index from the mac->ra is
correct.
2. The dl_pathloss calculated is from L1. We should
shunt this feature out for our emulated mode. If
we add the abstraction later, we can model the
pathloss in the proxy and update it in the RA
procedure of the NRUE.
3. Checking that the crnti != t_crnti is not valid
for SA mode. And may only be needed for multi-UE
in NSA mode. We might be able to delete it all
together. For now, we only use for NSA mode.
4. Checking the RAR based on rnti = 10b and not the
RA_STATE is better.
MR !1233 : NR gNB MAC scheduler BWP start issue fix
This branch fix incorrect use of BWP start at gNB MAC scheduler (in DLSCH and ULSCH allocation and VRB map filling)
MR !1232 : SR/BSR support for NR UE
-added the support of scheduling request in NR UE.
-added the support of regular, periodic and padding BSR in NR UE.
-removed memcpy call in nr_ue_get_sdu().
-called mac_rlc_status_ind only for existing bearers.
-Moved NR_LONG_BSR_TABLE and NR_SHORT_BSR_TABLE to nr_mac_common.c
MR !1239 : NR SDAP gNB - Transparent Mode
MR !1257 : Nr ldpc cuda softmodem
Move ldpc decoder accelerated in cuda GPU in a shared lib compatible with oai loader.
libldpc_cuda.so is built as a ldpctest, nr-sotmodem, nr-uesoftmoden and ocp-gnb targets when cuda development environment is detected.
At runtime --loader.ldcp.shlibversion _cuda option can be used to select the cuda accelerated ldcp library, except for the ldpctest exec where the -G option has been preserved. Also start implementing an opencl version of the ldpc decoder, starting "translating" the cuda version.
MR !1296 : Apply the NSA t_Reordering value also for SA
Apply the NSA t_Reordering value also for SA to improve the iperf downlink bitrate. The same iperf performance is expected at both NSA and SA
MR !1293 : hotfix SEGV and divide by 0
With latest develop, two bugs appear as long as we don't hide them with gcc -O2 optimisations
MR !1259 : gNB nrUE SA: improve security
Improves security and addition security in nrUE side
MR !1260 : NR CSET0 BWP Start fixes
Fixes a bug in selecting the start of BWP for Coreset0
Use Magma MME in CI tests
Update NSA 2x2 test
Also, in the nr_rrc_mac_config_req_ue(), we should
only be configuring L1 if we are not in the L2 emul
mode. We are crashing due to the RRC state in the NRUE
not being set/checked properly.
In this commit, we changed the stub function of the NRUE
to handle the MIB and SIB1, which arrive in a single
DL_TTI_REQ. If we have not received the MIB, we first
call the scheduler, then we handle any received NFAPI
messages. The NFAPI message handler will then call
the nr_ue_dl_indication() again, which will process
first the MIB, then SIB1. It seems that we are not
properly sending the SIB1 response back to the gNB so
the NRUE eventually crashes. We are however, properly
decoding the MIB and SIB which is a step in the right
direction!