1. Fix UE_CONTEXT_SETUP_REQUEST and CONTEXT_MODIFICATION_REQUEST encode/decode
2. Add gNB_DU_CONFIGURATION_UPDATE and gNB_CU_CONFIGURATION_UPDATE procedure
3. Add C_RNTI_TO_BIT_STRING function
4. Add INITIAL_UL_RRC_MESSAGE_TRANSFER procedure and with mac_du_data_ind (MSG3)
5. Add GNB-CUSystemInformation extension part for the F1SetupResponse procedure
-- URL of jenkins build included in top of HTML report
-- when one of the needed processes not present, reported in HTML
Signed-off-by: Raphael Defosseux <raphael.defosseux@eurecom.fr>
Various problems were found with the basic simulator.
Variables used by various threads for synchronization need to
be initialized properly. That is before the various threads
start using them.
This goes for:
- UE->is_synchronized
- UE->proc.instance_cnt_synch
- UE->proc.instance_cnt_rxtx
The function "UE->rfdevice.trx_start_func" was called in
"UE_thread_synch" but should be called in "UE_thread" because
"UE_thread" is the one that calls "UE->rfdevice.trx_read_func"
and there is no guaranty that the call to "UE->rfdevice.trx_start_func"
is done before as it has to (it's in another thread).
And finally "pthread_cond_signal(&proc->cond_rxtx)" was called twice,
which may not be a problem but was certainly not intended. Plus
removing one call simplifies the code by removing some "if" logic,
which is a good thing per se.
This commit was not tested with a real UE and may thus introduce some
issues. Hopefully not!
With 50 RBs and 100 RBs the UE crashes in the basic simulator
because of false detection of DCIs.
Putting nothing in the unused REs in the DCI instead of random
bits solves this issue and let the basic simulator run with 50 RBs
and 100 RBs.
Note that in the real UE the problem needs to be solved because
the channel may lead to false DCI detection and the consequent
crashes have to be solved. This commit sort of "hides" the issue
to have the basic simulator functional.
Note also that putting nothing in the unused REs in the DCI should
be the normal general case. But it has not been tested with anything
but the basic simulator so the previous code is left.
Before this commit we were checking for UE->is_synchronized == 0
then we were waiting for a potentially active synch routine to
finish and then we were starting the synch routine again but the
synch routine that was running may have set UE->is_synchronized
to 1. This was leading to various problems, most notably the following
message repeated over and over in the UE log and the UE unable to
connect properly:
[RRC] [UE 0] Frame 377: OUT OF SYNC FROM eNB 0 (T310 active 0 : T310 0, N310 345, N311 0)
So let's wait for a potentially active synch routine to finish
before anything else.