3974 Commits (0217bf533271c6e2c73a2058c9ea3fcb97fc8324)

Author SHA1 Message Date
Andre Puschmann 475c033440 rlc_am_test: extend status PDU test
add full test with malformed status PDU
3 years ago
Andre Puschmann d7204df896 rlc_am_lte: check rx window first when receiving status PDU
move rx window check up so no actions are taken when receiving
malformed status PDU
3 years ago
Xavier Arteaga 2cd8ba3a1a PDCCH test skips 100PRB for ARM 3 years ago
Francisco 2a009eb340 sched,feature: Enable configuring maximum coderate for SIB allocations 3 years ago
Francisco 6ababf401b feature,sched: allow setting initial DL CQI in enb.conf 3 years ago
Francisco e8983b88f0 refactor: use enb_cc_idx instead of ue_cc_idx in mac::ue 3 years ago
Andre Puschmann fa7a8fb687 rlc_am_test: add testcase for processing out-of-order status PDUs 3 years ago
Andre Puschmann 19f30aa652 rlc_am_lte: fix handling of out-of-order status PDUs
before processing incoming status PDUs we should be checking
if the ACK_SN falls within our current Tx window. If not the PDU
will be dropped.

Without the check we were incorrectly processing the status PDU
and because the sequence number wrap around wasn't working
correctly if ACK_SN is smaller than vt_a we were corrupting
our Tx window.
3 years ago
Xavier Arteaga 8743713bb1 Fix compilation 3 years ago
Xavier Arteaga 676080d6af Added macro SRSRAN_VEC_SAFE_CMA 3 years ago
Andre Puschmann b862bbc2e6 rlc_am_lte: add missing mutex to get_status getter
fixws race detected with TSAN
3 years ago
Andre Puschmann d51ee722f6 rlc_am_test: add unit test for ACK_SN is outside rx window
the test uses a malformed status PDU from a PCAP and makes
sure the RLC receiver detects such a PDU and raises a warning
3 years ago
Andre Puschmann 878142843e rlc_am_lte: add further sanity check when creating status PDU
the test verifies that the ACK_SN of a status PDU falls inside the
rx_window of the receiver. If not, than the RLC state has been
corrupted and the status PDU is likely invalid.
3 years ago
Andre Puschmann 46265c5829 rlc_am_data_test: add data PDU unpack test
TV captured in PCAP
3 years ago
Andre Puschmann b379910690 pdu_test: add UL-SCH unpacking test
TV captured in PCAPs.
3 years ago
Xavier Arteaga 6be57dd216 Disable PDCCH false detection for non AVX2 machines 3 years ago
Alejandro Leal Conejos a51f2a1de4 Fills the value of the number of cpus for the system_metrics_t and
initiliaze its value to 0 when executing 2 measures in less than 100 ms.
3 years ago
Pedro Alvarez a53b321ab8 Release UE upon reception of integrity error. 3 years ago
Pedro Alvarez 299d2ee35d Added interface to make the PDCP notify the RRC of integrity check
failures.
3 years ago
Xavier Arteaga 939dd1b977 Change struct sync_raster_t to class 3 years ago
Xavier Arteaga a79d518799 Added SSB search measure/decode file test 3 years ago
Xavier Arteaga 5181a9d64c Implemented PBCH blind decode 3 years ago
Xavier Arteaga a7b7f8e78a Avoid SSB search to have a peak that SSB data is outside buffer 3 years ago
Xavier Arteaga 480f1b14fe Protect Radio from null phy 3 years ago
Xavier Arteaga 9621cf57c2 Implemented NR SS raster object 3 years ago
Xavier Arteaga 49d857cd17 Refactored decode_tb function 3 years ago
Xavier Arteaga 22b1673b36 Added CRC match function and simplify CRC check 3 years ago
Xavier Arteaga 7846bfccb1 Implemented softbuffer RX CRC reset 3 years ago
David Rupprecht ff3e7c321d Added bref function for calc distance til end 3 years ago
Xavier Arteaga e8f2b3a74c Add PDCCH decoder correlation check in blind search 3 years ago
Xavier Arteaga 7c78fd2050 Implemented PDCCH DCI message correlation and updated test 3 years ago
Xavier Arteaga bcd2e59635 PDCCH test global variable cleanup 3 years ago
Francisco 7e77da6a15 mac,optimization: use rnti memory pool to create mac::ue objects 3 years ago
Andre Puschmann 295b5fe8fb rlc_tm: fix stopping of entity detected with TSAN 3 years ago
Andre Puschmann a013a2fe05 rlc_stress_test: fix bug when read_pdu was returning -1 3 years ago
Andre Puschmann c0be8187c8 rlc interface: convert entire read_pdu() interface to return uint32_t
we had it returning int but had a bug in using the return value properly,
i.e. handling when -1 was returned in RLC TM.

Thinking about it more, it doesn't make sense to have a negative return
value here anyway. Either the RLC can return a PDU or not. If it can't the
returned lenght is zero.
3 years ago
Francisco 539ca47fe2 lib,bugfix: fix blocking queue unit test. Dtor cannot destroy object while a thread is still pushing data 3 years ago
Xavier Arteaga 60f294a6a1 Refactor PDCCH encode/decode unit test 3 years ago
Xavier Arteaga 5ddc974beb Reverted PDCCH threshold 3 years ago
Xavier Arteaga d46be09663 Increase viterbi default number of iterations 3 years ago
Xavier Arteaga 090022568e DCI NCCE find considers L and NCCE 3 years ago
Andre Puschmann a36e0477b8 rlc_am: fix status PDU packing when grant size isn't enough to send full report
when a small grant is provided it might not be possible to fit a full status
PDU. This is currently detected while packing the PDU.

In order to avoid sending potentiall contradicting status info to the sending
entity, the fix makes sure to only transmit a small PDU acking what really
has been received so far.

This might not be optimal in terms for retx but will not corrupt any
state.
3 years ago
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.
3 years ago
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.
3 years ago
Andre Puschmann 9612bb0e14 rlc_am_test: fix status PDU test and add extra test for failure signaling 3 years ago
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).
3 years ago
Andre Puschmann 107f6334dd compile: fix compilation on 32bit systems that require -latomic 3 years ago
Francisco ceaef3523f sched,feature: Enable setting the target PHR below which the maximum UL grant size starts decreasing 3 years ago
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 3 years ago
Francisco f7aef3ffc1 sched,bugfix: fix nof_retx update when UL HARQs are resumed 3 years ago
Ismael Gomez 5db3030428 Tiny changes 3 years ago
Francisco 89406b07d6 make eNB UL SNR initial value an exponential average alpha configurable 3 years ago
Andre Puschmann 1529379e9e fec,pbch: remove unused variables
unused code that moreover was causing TSAN to complain, e.g.
in the ue_phy_test
3 years ago
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.
3 years ago
Andre Puschmann b88f22b9fe network_utils_test: fix race detected with TSAN 3 years ago
Andre Puschmann f823340a95 rf_imp: fix race when stopping gain thread
detected with TSAN using benchmark_radio test
3 years ago
Andre Puschmann 716caafd6c multiqueue_test: fix race reported by TSAN 3 years ago
Andre Puschmann 1ef3cb7e5d threads: fix race in stopping periodic thread 3 years ago
Andre Puschmann 312b5a241c mac_pcap_base: fix race detected with TSAN 3 years ago
Andre Puschmann c434aac526 rlc_stress_test: include tsan options header 3 years ago
Andre Puschmann 1d34aa280f byte_buffer_queue: make class thread-safe by using atomics 3 years ago
Pedro Alvarez 18e2149d68 Sending Initial Context Setup Response after RRC reconfiguration. 3 years ago
Xavier Arteaga 4f7a94acb6 Fix comment 3 years ago
Xavier Arteaga d329297151 Implement radio invalid mapping countermeasure 3 years ago
Andre Puschmann 3966065bff pssch_test: fix newlines in printf 3 years ago
Andre Puschmann 2ace2b47b8 pssch: fix uninitialized value 3 years ago
Xavier Arteaga bbab2cd9ba Make PDCCH LLR mean amplitude in function of maximum 3 years ago
Xavier Arteaga 2ca0932d9b Reviewed LTE noise estimation 3 years ago
Xavier Arteaga 10a268fdba Added SNR to phy_dl_test 3 years ago
Francisco f36f5271d3 timers,feature: make timers thread-safe by using atomic to store timers state. 3 years ago
Xavier Arteaga dddb3ede71 Fix zero parity 3 years ago
Andre Puschmann 50f7fc644b rlc_am_lte: log event when status prohibit timer expires 3 years ago
Xavier Arteaga 3c93d5ba43 Fix carrier mapping concurrency issue 3 years ago
Xavier Arteaga 235a664120 SRSUE: Removed PUSCH-DMRS/SRS pregeneration methods 3 years ago
Andre Puschmann 531acc0a98 rlc_am_test: add check for RLC buffer state return during retx 3 years ago
Andre Puschmann 3102861ee3 rlc_am_lte: make func param const& 3 years ago
Francisco 0dafe4dd58 fix coderate derivation in PDCCH based on aggregation level 3 years ago
Francisco a587d20252 allow specification of subset of valid measurement gap offsets in rr.conf 3 years ago
Andre Puschmann 02cceee997 rf_zmq_imp: revert 28399dd876 and fix unit
although the manual test with Amarisoft eNB worked fine it seems
the delay is still needed in the default case. Over 50% of the
tests failed in the nightly with:

[zmq] Error: tx time is 0.067 ms in the past (138240 < 139776)
[zmq] Error: tx time is 1.100 ms in the past (184320 < 209664)

While this usleep() should increase the pass likelihood it
still doesn't guarantee error-free runs, so we might need
to revisit it again as some stage.
3 years ago
Andre Puschmann e7aa484308 rf_zmq_test: remove srsran.h include 3 years ago
Andre Puschmann bb6a5ebe80 tsan: add TSAN options file to set some default flags and exclude some libs from checks 3 years ago
Andre Puschmann 28399dd876 rf_zmq_imp: remove sleep 3 years ago
Andre Puschmann 574459fd90 rf: remove srsran.h include 3 years ago
Xavier Arteaga f33731ecd4 Disable irrelevant unit/component test by default 3 years ago
Andre Puschmann d9a5d3f95a pcap_base: increase PDU queue length
some systems with slower HDD seem to have issues
writing the PDUs to disk. increasing length to see if that helps.
3 years ago
Xavier Arteaga a245039cf3 Initial NR-PBCH-DMRS integration 3 years ago
Pedro Alvarez 997f7db23a Small fixes for observer.h missing std::size_t 3 years ago
Pedro Alvarez c74b2dd633 Fix some warnings in PHY due to array parameter mismatch for a few functions 3 years ago
Andre Puschmann c1ad867824 epoll_helper: use std::atomic to protect exit called from different thread 3 years ago
Andre Puschmann d8b2cfcef8 zmq,ringbuffer: protect concurrent access
some issue found through TSAN execution
3 years ago
Andre Puschmann f1e6a975de thread_pool: fix concurrent access of state variable
the thread workers need access to their current state to exit properly
when they are set to state STOP. However, since the state is kept in
a std::vector for all workers, it seems more appropiate to add a per-thread
running variable rather then mutexing the entire vector.
3 years ago
Xavier Arteaga 48e0fc3c99 Implemented initial PBCH decoder and refactored SSB candidate selection 3 years ago
Xavier Arteaga de1b25558f Added PRN sequence apply bit with state 3 years ago
Xavier Arteaga 1f38817b3b Added random bit vector generator 3 years ago
Xavier Arteaga bcb91d6173 srsran_vec_sprint_hex returns number of written characters 3 years ago
Xavier Arteaga 3634e96c3e Added SSB measure test add/put/encode time measure 3 years ago
Xavier Arteaga 0aa5b14145 Initial NR PBCH encoding 3 years ago
Xavier Arteaga d66dac0ab2 Added bit sequence state apply 3 years ago
Francisco 7076dbfef8 feature, scheduler: Add configuration parameter to set minimum TTI interval between TPCs 4 years ago
Francisco dedd9c09a7 feature, scheduler: Add abitility to set minimum aggregation level in PDCCH, and disable adaptive aggregation level based on target BLER 4 years ago
Francisco c5029fc266 feature - implement adaptive link adaptation in DL and UL 4 years ago
Francisco 8df6ed07c6 sched small fixes - use 0.930 instead of 0.932 for max coderate. Allow computing mcs/tbs based on max coderate directly. Other small fixes 4 years ago
Francisco 31936c9754 bugfix - printf formatting incorrect in bounded_bitset method 4 years ago
Francisco b093576634 avoid sending UEContextReleaseRequest from Source eNB during S1 Handover. 4 years ago
Francisco f2a56c9139 simplification of multiqueue design.
- the consumer does multi-staged waiting:
  1. spins first across all queues in a RR fashion
  2. each queue access is done with a try_lock.
  3. if the try_lock fails, it increases the number of spins needed
  2. if no queue had data, the consumer sleeps for 100 usec.
- no differentiation between queues, in terms of notification features
4 years ago
Francisco 60a8ee0af9 multiqueue optimization - use condition_var wait_for() method, use queue try_lock in the consumer side 4 years ago
Francisco b41aba2a03 fix task scheduler test 4 years ago
Francisco 2d6a878826 change interface to create multiqueue queues 4 years ago
Francisco f705735093 optimization - only allow some multiqueue queues to notify the multiqueue consumer of the arrival of tasks 4 years ago
Andre Puschmann bc3be73364 rlc_am_lte: replace simple sanitfy check with error log with expect
this should help debugging the situation when this happens by
aborting when STOP_ON_WARNING is enabled
4 years ago
yagoda 9501283c1c fixing support for extended Cyclic Prefix
small cosmetic fixes of CP code
4 years ago
Andre Puschmann 21b3635ae4 rlc_am_lte: refactor retransmit_pdu() to send different SNs
it seems that different SNs should be retransmitted depending
on the actual situation. In case of pollRetx timer expiration,
vt_s - 1 should actually be resent.

This patch prepares the function to accept different SNs but
leaves it to send vt_a by default. The RLC AM test would need
to changed as well to not fail.
4 years ago
Andre Puschmann 81c1851bbd rlc_am_test: fix TSAN isses and removing info log when dropping PDU 4 years ago
yagoda f90f6f0c7e adding MAC 0 padding support 4 years ago
Xavier Arteaga 8ffbf0ff6d Fix SSB segfault 4 years ago
Xavier Arteaga f9aafd00a7 Added subcarrier spacing parsing from string 4 years ago
Xavier Arteaga b69057b76e Filesource filename to constant 4 years ago
Xavier Arteaga 5eadc06dd4 Intra-frequency miscellanous changes 4 years ago
Xavier Arteaga 7b159563ab Fixes in LTE CRS measurements 4 years ago
Xavier Arteaga 1603580901 Fix NR PSS correlation 4 years ago
Xavier Arteaga 0b3f4e5de0 Improvements in NR cell search 4 years ago
Xavier Arteaga 53b2c6076b Fix UHD subdev specification 4 years ago
Xavier Arteaga 11d925c0b2 Minor SSB fix and changes 4 years ago
Xavier Arteaga c8cb128317 Declare band helper methods as constant 4 years ago
Xavier Arteaga 60015e7ceb Made intra frequency cell search and measurment generic 4 years ago
Xavier Arteaga 648f0af437 Implement SSB search based on correlation 4 years ago
faluco 6fb81c7619 - Add a mutex with priority inheritance for srslog internal structures.
- Replace shared_variable members in log_channel class in favor of atomics.
- Remove the small string optimization in srslog now that we dont allocate anymore.
- Trim some critical sections in srslog.
4 years ago
Francisco 1488606156 refactor - create s1ap dedicated folder 4 years ago
Andre Puschmann 167200f5cd rrc_bearer_cfg: replace fixed E-RAB to DRB mapping
also make sure we don't assign LCIDs beyond the possible
number.

possible fix for https://github.com/srsran/srsRAN/issues/658

Co-authored-by: herlesupreeth <herlesupreeth@gmail.com>
Co-authored-by: Francisco <francisco.paisana@softwareradiosystems.com>
4 years ago
Francisco fa34aaa16e ensure the DL mask count is reduced enough to fit required bytes 4 years ago
Francisco 485c6ee129 subband CQI feature - add K parameter in sched_interface::ue_cfg_t and update it from RRC 4 years ago
Francisco 84ad6dd8ee Integrated new sched_dl_cqi class in sched_ue_cell
- extend sched_dl_cqi interface to allow getting tti when cqi was last updated
- extend sched_dl_cqi to quickly get average cqi across the whole bandwidth
4 years ago
Francisco a841b7580e fix deadlock caused by non-notification of multiqueue consumer side 4 years ago
Xavier Arteaga 9e1a85afe8 Fix NR SCH Nref calculation 4 years ago
Xavier Arteaga 0ecb3a7220 Modify NR PHY info messages 4 years ago
Xavier Arteaga 91030c5824 Fix procedure for MCS table selection 4 years ago
Xavier Arteaga b02a0d3db9 Added RNTI type short string 4 years ago
Xavier Arteaga 08ec1d0df9 Changed srsLTE to srsRAN 4 years ago
Xavier Arteaga a57336d64f Integrate periodic SSB measurement in SRSUE and fix related defects 4 years ago
Xavier Arteaga 5e41e99f08 Added NR symbol offset helper function 4 years ago
Xavier Arteaga 7450232b3e Added more NR band related helpers 4 years ago
Xavier Arteaga 758fd3c1ba Implemented initial NR cell search 4 years ago
Xavier Arteaga 2f9c7e1345 Avoid cexpf in srsran_vec_apply_cfo_simd 4 years ago
Xavier Arteaga 90c42bc9c3 Fix resampler stack overflow 4 years ago
Xavier Arteaga 9517b78c03 Fix resampler and improved unit test 4 years ago
Francisco 996d8ef74d multiqueue bugfix for non-blocking pushes when queue is full 4 years ago
Francisco 99abae9e6a fix multiqueue producer to consumer notification to avoid deadlocks 4 years ago
Francisco 0d800eb8f6 stack, multiqueue - bugfix for multiqueue destruction, and addition of unit test 4 years ago
Francisco d947e259c9 stack optimization - optimization of the multiqueue
avoid notifying the consumer side of the multiqueue of a new pushed object, if the
multiqueue already knows that the queue is not empty.
4 years ago
Francisco d574afcd33 cleanup of multiqueue unused methods, and made queue_handle move semantics correct 4 years ago