There was a problem with several UEs in the wireshark log. It seems that
wireshark needs the UE id otherwise it gets confused and sees retransmissions
where it's just another UE connecting and doing the same as a previous
UE.
Let's put kind of a UE id. Each RNTI seen by macpdu2wireshark gets an UE id
assigned the first time it's seen in a trace.
This is a bit hackish but seems to be fine.
We could have added UE_id in all the traces, that is change the T() calls
in the softmodem. It was less work to do it as it is, ie. only touch
macpdu2wireshark.c.
The RAR uses the same UE id all the time, may be a problem. To be refined
if needed.
- this commit was necessary because the location of the MAC UE
functions does not reflect the context in which they are used
- therefore all UL scheduling-related functions have been moved
to a new nr_ue_scheduler.c file
- and the irrelevant file rar_tools_nrUE.c has been deleted
(nr_ue_process_rar moved to nr_ue_procedures)
- the new locations are supposed to make the file and functions
organisations more structured and cleaner
- new data structure RAR_grant_t to handle RAR grant
- new common ul scheduler function
- new common ul pdu configuration function handling ul grants
- new function to fill ul_config_request
- moved pdu configuration code from process dci function
- merged procedures for Msg3 and PUSCH together in nr_ue_scheduler
- the same functions are now handling both PUSCH and Msg3
- relying on ul_config (no more RA Msg3 frame and slot storage)
- done some cleanup and logging in the process
- this return whether the transform precoder is enabled or not
- redundant configuration code has been migrated to the new function
- get_transformPrecoding is a common MAC function used already
@ UE side, can be adopted by gNB too
- now transmitting resetting Msg3 slot and frame to -1 after transmission
- cleanup in Msg3 scheduling
- checked Msg3 pdu configuration against the 3GPP specs
- sorted out according to recurring logic that wants function
prototypes in separate files from data struct and constants
definitions, variables in separate .c files with inclusion
of "extern" header files
- moved function prototypes to resective header files
- moved data structures and constants to respective header files
- merged unnecessary mac.h file into mac_defs.h @ MAC UE
- moved const variables suchs as tables to respective .c files
- moved extern references to respective extern.h files
- related to section 5 of 3GPP TS 38.321 specs
- handling of RA failure
- handling of RA completion
- first implementation of contention-based RA procedures
- minor fixes related to ue_get_rach and init_ra functions
If we NACK without SOstart/SOend then the other end of the RLC channel will consider all the bytes as NACKed and will have to resend them all.
If another status is then reported before all the bytes are sent, and because we don't use SOstart/SOend this status will NACK all the bytes again, then all the bytes are to be sent again.
And the cycle repeats. It will end with a max retx reached (which triggers RLF, Radio Link Failure).
MR1010 : NR UE: Fix for error message - no active DLSCH
- Fixes for the following error message at UE: [PHY] [UE][FATAL] nr_slot_rx 1: no active DLSCH
MR994 : Cleanup softmodem main
- Introduces --dlsch-parallel command line option to set the number of threads for dlsch decoding. If set to 0 (default) no parallelization.
- Some cleanup in tracing and in nr-uesoftmodem.c data.
MR999 : NR FR2 RA
- Temporary Fix of RA procedure for FR2 (both gNB and UE)
- Fixes in gold sequence initialization at UE
- Moves 2nd downlink to slot 3 instead of 2 to avoid clash with UL DCI (only 1 candidate per slot in FR2 currently)
MR988 : SIB1
Initial implementation of SIB1
- enhancement of DL indication flow for Msg2 (RAR)
- merging interface procedures to handle DLSCH and RAR together
- better separation of MAC and PHY functionalities
- cleanup of double ambiguous functions to process RAR
- merging functions to process TA command into the ue_ta_procedures function
- enhancement of logging and formatting in the process
- moved fill_dl_indication to phy procedures
- introduced a new function to fill the RX indication
- replaced redundant configuration code with the fill functions
- extended the function to fill the rx indication
- handling different dl pdus types
- cleanup of redundant code