Commit Graph

8228 Commits

Author SHA1 Message Date
Andre Puschmann 5838ec4999 rlc_am: revert expect macro back to error log and inform higher layers
the incidence really must be handled by the higher layers, i.e. the bearer
needs to be reestablished.
2021-06-03 21:11:47 +02:00
Andre Puschmann f22f4b4fbd rlc_am: fix potential stalling in RLC transmitter
it turned out that a certain order of events can lead to
a RLC transmitter stalling because even though unacknowledged PDUs
are queued, none of them was actually considered for retx.

This can happen if a pollRetxTimer expires for a SN that, meanwhile,
has already been acknowledged. The positive lead to the deletion of
the SN from the Tx window.

The fix makes sure that when a retx for a unexisting SN is requested,
the sender will consider the next unacknowledged SN instead.
2021-06-03 21:11:47 +02:00
Andre Puschmann 9612bb0e14 rlc_am_test: fix status PDU test and add extra test for failure signaling 2021-06-03 21:11:47 +02:00
Andre Puschmann aaffdeb326 rrc,rlc: add method to signal protocol failure to RRC
general-purpose method for lower layers to signal protocol
failures to higher layers, i.e. RRC.

In the current case, implement a direct release of the UE (enb) or
a reestablishment (UE).
2021-06-03 21:11:47 +02:00
Andre Puschmann 107f6334dd compile: fix compilation on 32bit systems that require -latomic 2021-06-03 20:45:02 +02:00
Andre Puschmann 5d238a6d80 cmake: fix compilation with MSAN and enable origin tracking 2021-06-03 20:43:37 +02:00
Andre Puschmann 80a89ec4bf enb,mac: protect concurrent access to ue_db from different threads
race condition between PHY worker(s) and Stack thread when
accessing ue_db member. RWlock needs to be hold.

partly fixes #2932
2021-06-03 20:43:37 +02:00
faluco 3df72cb6ab Move out a free call in a RT thread when doing lots of rachs. 2021-06-03 20:41:04 +02:00
Francisco ceaef3523f sched,feature: Enable setting the target PHR below which the maximum UL grant size starts decreasing 2021-06-03 15:33:38 +01:00
Francisco 486823e5de sched,bugfix: The PHR handling scheme now considers the number of PRBs of the UL grant that carried the PHR. Before, it was assuming the most conservative scenario of Nprb=1 2021-06-03 15:33:38 +01:00
Francisco f7aef3ffc1 sched,bugfix: fix nof_retx update when UL HARQs are resumed 2021-06-02 20:21:32 +01:00
Xavier Arteaga d74f70289e SRSUE: fix last reported RI state 2021-06-02 18:12:36 +02:00
Ismael Gomez 5cef780789 Radio-link KO notification. Measgap fix 2021-06-02 12:37:36 +02:00
Francisco 92e272ce3e limit minimum UL grant size to accommodate both BSR and RLC headers 2021-06-02 12:37:36 +02:00
Ismael Gomez 5db3030428 Tiny changes 2021-06-02 12:37:36 +02:00
Francisco 3b61df4b64 test,sched: update TPC test to reflect changes in SNR estimatioN 2021-06-02 10:08:34 +01:00
Francisco 89406b07d6 make eNB UL SNR initial value an exponential average alpha configurable 2021-06-02 10:08:34 +01:00
Francisco 2a2c56391c sched,refactor: Improve DL/UL grant log lines in the scheduler to print CFI as well 2021-06-02 10:08:34 +01:00
Francisco dda52afe61 move rrc unit tests to rrc/ folder 2021-06-02 10:05:49 +01:00
Francisco 47494a668d rrc,bugfix: fix reestablishment crash due to pointer invalidation 2021-06-02 10:05:30 +01:00
Francisco 3f75538660 rrc,feature: Use t301 to set time that the enb waits for the UE RRCConnectionSetupComplete or ReestablishmentComplete 2021-06-02 10:05:30 +01:00
Francisco 0349949cce bugfix, handover: disable inactivity timer during s1 handover in target enb 2021-06-02 10:05:30 +01:00
Francisco 19af55b63d bugfix, handover: Avoid sending UEContextReleaseRequest from Target eNB during S1 Handover due to UL KOs 2021-06-02 10:05:30 +01:00
Andre Puschmann b0a2f31478 prach: protect configuration and state getters with mutex
purely TSAN with unit-test based approach that protects
the state getters and configuration routines with a mutex
2021-06-02 09:36:44 +02:00
Andre Puschmann d2ec3ca5e1 intra_measure_base: fix race detected with TSAN
use mutex to protect state getters
2021-06-02 09:36:44 +02:00
Andre Puschmann f43e82a8a6 ue_phy_test: fix test 2021-06-02 09:36:44 +02:00
Andre Puschmann 98a91a2057 sync: protect sync_state, access ue_sync object only from one thread
races detected with TSAN, primarily the ue_sync object which isn't
thread-safe is accessed by all workers to set the CFO and by the
sync thread to receive samples (which read the CFO).

The patch introduces shadow variables that are updates from the
main thread before/after the sync is executed. The atomic shadow
variables can then be read from otherthreads without holding a
mutex, i.e. blocking the sync.
2021-06-02 09:36:44 +02:00
Andre Puschmann 1529379e9e fec,pbch: remove unused variables
unused code that moreover was causing TSAN to complain, e.g.
in the ue_phy_test
2021-06-02 09:36:44 +02:00
Andre Puschmann 7ee38e6255 threads: disable thread attributes when compiled with TSAN
TSAN doesn't work well then threads are created with attributes
thar require root rights but the process is run as normal user.

this patch avoid the thread attributes in this case. TSAN isn't going
to be used for production builds.
2021-06-02 09:36:44 +02:00
Andre Puschmann b88f22b9fe network_utils_test: fix race detected with TSAN 2021-06-01 22:44:12 +02:00
Andre Puschmann f823340a95 rf_imp: fix race when stopping gain thread
detected with TSAN using benchmark_radio test
2021-06-01 22:44:12 +02:00
Andre Puschmann 716caafd6c multiqueue_test: fix race reported by TSAN 2021-06-01 22:44:12 +02:00
Andre Puschmann 2c975732dc metrics_stdout: fix race detected by TSAN 2021-06-01 22:44:12 +02:00
Andre Puschmann 1ef3cb7e5d threads: fix race in stopping periodic thread 2021-06-01 22:44:12 +02:00
Andre Puschmann 312b5a241c mac_pcap_base: fix race detected with TSAN 2021-06-01 22:44:12 +02:00
Andre Puschmann c434aac526 rlc_stress_test: include tsan options header 2021-06-01 22:44:12 +02:00
Andre Puschmann 1d34aa280f byte_buffer_queue: make class thread-safe by using atomics 2021-06-01 22:44:12 +02:00
Andre Puschmann 8ab512c2be nas_test: fix TSAN warnings
remove mutex and cvar again that we used to circumvent the startup.
we now use a atomic variable to sync the main thread and the stack.
2021-06-01 22:44:12 +02:00
Pedro Alvarez c23034e1a7 Make sure the S1AP state is reset after sending a successful/unsuccessful message 2021-06-01 19:16:16 +01:00
Pedro Alvarez 18e2149d68 Sending Initial Context Setup Response after RRC reconfiguration. 2021-06-01 19:16:16 +01:00
Xavier Arteaga 4f7a94acb6 Fix comment 2021-06-01 16:38:55 +02:00
Xavier Arteaga 2d0a21f779 Move radio frequency mapping out of the PHY common into the PHY reset method 2021-06-01 16:38:55 +02:00
Xavier Arteaga d329297151 Implement radio invalid mapping countermeasure 2021-06-01 16:38:55 +02:00
Andre Puschmann 3966065bff pssch_test: fix newlines in printf 2021-06-01 16:17:11 +02:00
Andre Puschmann 2ace2b47b8 pssch: fix uninitialized value 2021-06-01 16:17:11 +02:00
Xavier Arteaga 50b7d3937f Added RNTI in SRSENB PDCCH log line 2021-06-01 15:04:24 +02:00
Xavier Arteaga bbab2cd9ba Make PDCCH LLR mean amplitude in function of maximum 2021-06-01 15:04:24 +02:00
Xavier Arteaga 6de34524e2 Fix SRSENB PHY log line 2021-06-01 08:27:03 +02:00
Xavier Arteaga ce3c808a16 Reviewed SRSENB PHY unused variables and log messages 2021-06-01 08:27:03 +02:00
Xavier Arteaga 2ca0932d9b Reviewed LTE noise estimation 2021-06-01 08:26:36 +02:00