* Protect PHY SR signal management in a class
* Protect intra_freq_meas vector
* Protect cell and srate shared variables in thread-safe classes
* srsue,srsenb: include TSAN options header
* Protect ue_rnti_t and rnti scheduling windows behind thread-safe classes
* Protect access to state variable in sync_state
* Protect access to metrics configuration
* Protect access to is_pending_sr
* Protect access to UE prach worker
* Protect UE mux
* Avoid unlocking mutex twice
* Fix data races in RF/ZMQ
* Fix data races in intra_measure and PHY
* Fix minor data races in MAC
* Make TSAN default behaviour to not halt on error
* Fix blocking in intra cell measurement
* Address comments
Co-authored-by: Andre Puschmann <andre@softwareradiosystems.com>
the issue let to unwanted log warning at the end of the UE
execution when the PHY was still pushing DL PDUs while MAC
was already stopped.
This fixes#3003
* Replaced UE logger in the ue class.
* Replaced loggers in the main phy class and prach.
* Replaced loggers in phy common and ta_control.
* Replace loggers in cc and sf workers.
* Replaced loggers in intra_measure, scell_recv, search, sfn_sync, sync.
* Remove last uses of the old loggers in the main phy class.
* Remove stray newline in logs.
* Replaced loggers in ue gw.
* - Started to replace loggers in the ue stack.
- Replaced loggers in usim and pcsc.
- Adapted nas and usim tests.
* Replace loggers in nas.
* Added missing log init calls in two previously modified tests.
* Replaced logger in nas idle procs.
* Replaced loggers in nas emm state.
* Replaced loggers in tft packet filter and adapted tft test.
* Replaced loggers in main RRC class.
* Replaced loggers in RRC cell.
* Replaced loggers in RRC meas.
* Replaced loggers in rrc procedures.
* Started logger replacement in MAC layer, more precisely in demux and dl_harq classes.
Been unable to inject loggers in construction for dl_tb_process due to very weird static assertions in the std::vector code being the type not constructible which is not true, so instead use the main MAC logger directly.
* Replaced loggers in mac mux class.
* Replaced loggers in mac pro_bsr.
* Replaced loggers in mac proc phr.
* Replaced loggers in mac proc SR and RA.
* Replace loggers in mac UL HARQ.
* Replaced loggers in main ue stack class.
* Fixed nas test crashing due to a null string.
* Ported mac_test to use the new loggers.
* Removed TTI reporting for the PHY log as the old logger did.
* Replaced loggers in UE phy tests.
* Configure loggers in nas_test.
* Replaced loggers in rrc_meas_test.
* Replaced loggers in rrc_reconfig_test.
* Added missing newline in tft_test.
* Fix compilation errors in TTCN3 tests.
* Fix linker error detected in CI and warning.
* Replaced loggers in TTCN3 tests.
* Fix a text replace error in some log messages.
* Remove trailing newlines from log entries.
* Remove old logger from rrc.
* Flush backend before printing the test status.
* - Fix compilation error from previous rebase.
- Remove trailing newlines from some missing log entries.
when releasing PUCCH/SRS (see 5.3.13 in 36.331) we need to reset the SR config as well.
In our case, SR is handled by MAC so we need to (re-)configure MAC, not all of
MAC though, just SR.
* Make PHY non-blocking and fefactor HO procedure
* makes entire PHY non-blocking through command interface
* adds dedicated queue for cell_search/cell_select commands
* refactor HO procedure to run faster, in one stack cycle. Looks closer to the specs
* force ue to always apply SIB2 configuration during reestablishment
* Run update_measurements in all workers
Co-authored-by: Ismael Gomez <ismagom@gmail.com>
* Clang-formated UE, eNB and lib.
* Fixed compiling errors from clang-format.
* Fix linking issues introduced by clang-format
* Fix poor formating in initializing arrays of arrays.
* Fix mistake in conflict resolution on rm_turbo.c
* Re-apply clang format to gtpc_ies.h
* first step towards moving MAC timers to stack. Mac is still using its own timers. srslte::timers class can be restructured.
* moved timers out of the UE MAC
this fixes the issue when the stack is torn down if, for example,
the radio couldn't be loaded correctly. it will hence call stop() on all stack
components which are not initialzized yet, and logging therefore doesn't work.
the log object is know during contruction time and therefore can be passed
in as soon as possible.
- abstract UE object now consists of a radio, a PHY, and a stack layer
- add new stack abstraction layer that combines MAC, RLC, RRC, PDCP, NAS and GW
- PHY layer now has a single stack interface and does not talk to MAC and RRC seperatly