nr_DRB_preconfiguration() is used in phy-test mode by both, OAI UE and gNB, and in all other modes by OAI UE.
Because of inconsistencies, data transfer with OAI UE was only reliably working in phy-test mode.
Ultimately, OAI UE should use nr_DRB_preconfiguration() only in phy-test mode and do proper DRB configuration instead in all other modes!
Before this commit, pdcp_data_ind is done in the realtime PHY/MAC
thread, and this may have an impact on realtime performances.
Let's introduce a new thread to do the job, freeing the realtime
PHY/MAC logic.
This is not a minor change. It may have positive and/or negative
effects. To be tested carefully.
This commit includes about 1/3 of the code clean up
in preparation for the merge to the OAI develop
branch. Several of the changes are white space changes,
removing of logs, comment removals, and updating any
changed code for our use-case to be clear for NSA mode.
Note: some modifications have been done to the UE too, but for syntactic
reasons. The UE may fail to work, not tested.
For the UE, we have the problem of handling properly SecurityModeCommand.
We don't verify its integrity. This is a bit complicated to handle properly
and may require some API changes in the PDCP layer. So, as of today, the
integrity of this message is not verified.
Also, NSA mode has been touched, but it should not be a problem. But not
tested, so not sure.
In this commit we have updated the NRUE
to properly get the RadioBearer info from
the gNB. Because NSA and SA mode both use
this information, we have updated the SA
function previously in place by changing
the name to allow both NSA and SA mode to
use. This commit also updated the NR/LTE UEs
configuration files to with the correct
proxy IP address.
Also, we only should be handling/generating AM
PDUs in the PDCP/RLC layer, not UM PDUs. Updated
the pre-configuration settings. This seemed to
make the uplink traffic work (meaning it gets
from NR UE to the gNB to the EPC). Woo! Still
working on the downlink.
At this point we are successfully able to build.
Additionally, we can run the scenario,
however, it does not pass. It seems that the gNB
is not connecting to the proxy correctly. Just
wanted to push the progress so far. FYI, the items
that had to be changed to correct the linking issues
were the following:
- mac_rrc_data_ind_ue vs. nr_mac_rrc_data_ind_ue
- rrc_data_req vs. nr_rrc_data_req
- mac_rrc_data_req_ue vs. nr_mac_rrc_data_req_ue
- rrc_data_req_ue vs. rrc_data_req_nr_ue
- rrc_data_req vs. nr_rrc_data_req
The listed functions should be declard in the LTE/NR
UE directory depending on the functionality. Several
were mixed. i.e.: LTE functions being called in NR UE.
Also, removing siWindowLength, siWindowLength_int,
SIBType, SIBPeriod, and siPeriod_int from the NR UE RRC.
These variable were not used in the NR UE and are defined
for LTE only.
Lastly, in the NR_IF_Module.c of the NR UE, the global
variable def_dci_pdu_rel15 is not accessible. Need to
revisit this. For not it is commented out.