Instead of conditionally calling the pucch_scheduler
we now only call the functions we need from the stub
function directly. This is better because we are not
modifying the OAI MAC layer code and ensuring that we
are not calling the pucch_scheduler twice for the same
sfn/slot
Adding error checking before indexing in mac layer harq array
Adding error checking before writing ul_harq_sfn_slot
Added comments
Made a "static" free_uci_inds() actually static
We have gotten rid of filling the ACK/NACK with
the DLSCH and now only fill with the PUCCH. This
assumes that the MAC layer is properly decoding the
dl_tti_req and tx_data_req and allows us to
simply use the MAC layers scheduled SNF/Slot
to return the ACK NACK. There are some hacks added
in this commit which ensure that the PDCP packet
has the correct header (1st byte = 80) and now with
15Mbps we are seeing about 20% packet loss and
a gNB bug on the edge case (current frame is 1023
and the gNB schduler wants an ACK in frame 0 but the
scheduled UL_TTI_REQ has a frame of 1023).
T tracer was not functional anymore. because init_tpools() was called
before T_Config_Init().
The problem was that init_tpools() creates some threads and T_Config_Init()
does call fork() and the child process (which is the one running the
softmodem, the parent process is used to monitor it, this is the design
of the T tracer, maybe to change at some point, it's too complicated) has
no thread after the fork(). The threads created by init_tpools() are gone.
Game over.
In conclusion: T_Config_Init() has to be called very early in the life of
the softmodem, at least before init_tpools().
T tracer was not functional anymore. because init_tpools() was called
before T_Config_Init().
The problem was that init_tpools() creates some threads and T_Config_Init()
does call fork() and the child process (which is the one running the
softmodem, the parent process is used to monitor it, this is the design
of the T tracer, maybe to change at some point, it's too complicated) has
no thread after the fork(). The threads created by init_tpools() are gone.
Game over.
In conclusion: T_Config_Init() has to be called very early in the life of
the softmodem, at least before init_tpools().
In case of TDD we usually disable TX during RX.
Unfortunately some USRPs create self-interference after disabling TX.
To be able to work-around this issue, we add the flag "--continuous-tx".
- Measure time of deinterleaving, rate unmatching, and LDPC decoding of
DLSCH decoding
- Add merge_meas() function to merge measurements into one
- Rename time meas variables with "turbo" to "ldpc"