David Rupprecht
85d7a851fb
Added 5G NAS PCAP support
2021-06-22 09:02:07 +02:00
Francisco
78acf81cf0
bugfix,sched: avoid instability in TPCs around PHR~0
2021-06-21 17:35:24 +01:00
Xavier Arteaga
b1e4720721
SRSUE/SRSENB: added tx_enable flag in worker_end
2021-06-21 18:07:53 +02:00
Xavier Arteaga
027201d457
SRSUE/SRSENB: Refactor NR workers to generalise lower PHY
2021-06-21 18:07:53 +02:00
Andre Puschmann
83bf5dcd49
rlc_am_lte: reduce time holding Tx mutex when processing status PDUs
...
the patch is a re-implementation of the customer-specific optimization
we did in order to reduce the time the RLC holds the Tx mutex when
processing an incoming status PDU.
The patch makes sure to never operate on a raw mutex but instead
uses the deadlock-avoiding RAII lock.
2021-06-21 13:28:07 +02:00
Ismael Gomez
5aa5a8e997
Revert UE changes
2021-06-18 23:17:14 +02:00
Ismael Gomez
e35a0d72fa
Revert UE changes
2021-06-18 23:17:14 +02:00
Ismael Gomez
dd9889e07c
Add carrier index to uplink PCAP captures
2021-06-18 23:17:14 +02:00
Bedran Karakoc
c280ac5ad6
Introducing extended NGAP functionality
...
Remove unused logger for now in ngap::ue to pass tests
2021-06-17 13:05:29 +02:00
Francisco
5a82a63bb5
bugfix,srsenb: fix intraenb handover softbuffer allocation during handover
2021-06-16 10:21:13 +01:00
Xavier Arteaga
cf09044453
Optimised random bit (unpacked) and byte (packed) generator
2021-06-15 12:44:21 +02:00
Xavier Arteaga
d2a19c3043
SCH minimum number of iterations to 2 to reduce systematic false alarm probability
2021-06-15 12:44:21 +02:00
Xavier Arteaga
ef4c978d72
Optimized byte random generator
2021-06-15 12:44:21 +02:00
Andre Puschmann
475c033440
rlc_am_test: extend status PDU test
...
add full test with malformed status PDU
2021-06-15 11:01:02 +02:00
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
2021-06-15 11:01:02 +02:00
Xavier Arteaga
2cd8ba3a1a
PDCCH test skips 100PRB for ARM
2021-06-14 20:32:51 +02:00
Francisco
2a009eb340
sched,feature: Enable configuring maximum coderate for SIB allocations
2021-06-14 18:55:51 +01:00
Francisco
6ababf401b
feature,sched: allow setting initial DL CQI in enb.conf
2021-06-14 15:55:23 +01:00
Francisco
e8983b88f0
refactor: use enb_cc_idx instead of ue_cc_idx in mac::ue
2021-06-14 13:18:47 +01:00
Andre Puschmann
fa7a8fb687
rlc_am_test: add testcase for processing out-of-order status PDUs
2021-06-14 09:43:02 +02:00
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.
2021-06-14 09:43:02 +02:00
Xavier Arteaga
8743713bb1
Fix compilation
2021-06-14 09:21:29 +02:00
Xavier Arteaga
676080d6af
Added macro SRSRAN_VEC_SAFE_CMA
2021-06-14 09:21:29 +02:00
Andre Puschmann
b862bbc2e6
rlc_am_lte: add missing mutex to get_status getter
...
fixws race detected with TSAN
2021-06-10 10:44:18 +02:00
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
2021-06-10 10:44:18 +02:00
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.
2021-06-10 10:44:18 +02:00
Andre Puschmann
46265c5829
rlc_am_data_test: add data PDU unpack test
...
TV captured in PCAP
2021-06-09 14:44:15 +02:00
Andre Puschmann
b379910690
pdu_test: add UL-SCH unpacking test
...
TV captured in PCAPs.
2021-06-09 14:44:15 +02:00
Xavier Arteaga
6be57dd216
Disable PDCCH false detection for non AVX2 machines
2021-06-09 13:20:01 +02:00
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.
2021-06-09 09:34:46 +02:00
Pedro Alvarez
a53b321ab8
Release UE upon reception of integrity error.
2021-06-08 18:52:22 +01:00
Pedro Alvarez
299d2ee35d
Added interface to make the PDCP notify the RRC of integrity check
...
failures.
2021-06-08 18:52:22 +01:00
Xavier Arteaga
939dd1b977
Change struct sync_raster_t to class
2021-06-08 14:55:12 +02:00
Xavier Arteaga
a79d518799
Added SSB search measure/decode file test
2021-06-08 14:55:12 +02:00
Xavier Arteaga
5181a9d64c
Implemented PBCH blind decode
2021-06-08 14:55:12 +02:00
Xavier Arteaga
a7b7f8e78a
Avoid SSB search to have a peak that SSB data is outside buffer
2021-06-08 14:55:12 +02:00
Xavier Arteaga
480f1b14fe
Protect Radio from null phy
2021-06-08 14:55:12 +02:00
Xavier Arteaga
9621cf57c2
Implemented NR SS raster object
2021-06-08 14:55:12 +02:00
Xavier Arteaga
49d857cd17
Refactored decode_tb function
2021-06-08 10:19:24 +02:00
Xavier Arteaga
22b1673b36
Added CRC match function and simplify CRC check
2021-06-08 10:19:24 +02:00
Xavier Arteaga
7846bfccb1
Implemented softbuffer RX CRC reset
2021-06-08 10:19:24 +02:00
David Rupprecht
ff3e7c321d
Added bref function for calc distance til end
2021-06-08 10:14:43 +02:00
Xavier Arteaga
e8f2b3a74c
Add PDCCH decoder correlation check in blind search
2021-06-05 11:08:27 +02:00
Xavier Arteaga
7c78fd2050
Implemented PDCCH DCI message correlation and updated test
2021-06-05 11:08:27 +02:00
Xavier Arteaga
bcd2e59635
PDCCH test global variable cleanup
2021-06-05 11:08:27 +02:00
Francisco
7e77da6a15
mac,optimization: use rnti memory pool to create mac::ue objects
2021-06-04 21:29:13 +01:00
Andre Puschmann
295b5fe8fb
rlc_tm: fix stopping of entity detected with TSAN
2021-06-04 13:23:54 +02:00
Andre Puschmann
a013a2fe05
rlc_stress_test: fix bug when read_pdu was returning -1
2021-06-04 13:23:54 +02:00
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.
2021-06-04 13:23:54 +02:00
Francisco
539ca47fe2
lib,bugfix: fix blocking queue unit test. Dtor cannot destroy object while a thread is still pushing data
2021-06-04 13:02:39 +02:00
Xavier Arteaga
60f294a6a1
Refactor PDCCH encode/decode unit test
2021-06-04 11:13:23 +02:00
Xavier Arteaga
5ddc974beb
Reverted PDCCH threshold
2021-06-04 11:13:23 +02:00
Xavier Arteaga
d46be09663
Increase viterbi default number of iterations
2021-06-04 11:13:23 +02:00
Xavier Arteaga
090022568e
DCI NCCE find considers L and NCCE
2021-06-04 11:13:23 +02:00
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.
2021-06-03 21:11:47 +02:00
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
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
Ismael Gomez
5db3030428
Tiny changes
2021-06-02 12:37:36 +02:00
Francisco
89406b07d6
make eNB UL SNR initial value an exponential average alpha configurable
2021-06-02 10:08:34 +01: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
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
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
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
bbab2cd9ba
Make PDCCH LLR mean amplitude in function of maximum
2021-06-01 15:04:24 +02:00
Xavier Arteaga
2ca0932d9b
Reviewed LTE noise estimation
2021-06-01 08:26:36 +02:00
Xavier Arteaga
10a268fdba
Added SNR to phy_dl_test
2021-06-01 08:26:36 +02:00
Francisco
f36f5271d3
timers,feature: make timers thread-safe by using atomic to store timers state.
2021-05-31 23:26:36 +01:00
Xavier Arteaga
dddb3ede71
Fix zero parity
2021-05-31 21:30:17 +02:00
Andre Puschmann
50f7fc644b
rlc_am_lte: log event when status prohibit timer expires
2021-05-31 12:40:17 +02:00
Xavier Arteaga
3c93d5ba43
Fix carrier mapping concurrency issue
2021-05-31 10:48:17 +02:00
Xavier Arteaga
235a664120
SRSUE: Removed PUSCH-DMRS/SRS pregeneration methods
2021-05-31 10:48:17 +02:00
Andre Puschmann
531acc0a98
rlc_am_test: add check for RLC buffer state return during retx
2021-05-31 09:40:37 +02:00
Andre Puschmann
3102861ee3
rlc_am_lte: make func param const&
2021-05-31 09:40:37 +02:00
Francisco
0dafe4dd58
fix coderate derivation in PDCCH based on aggregation level
2021-05-28 17:20:08 +02:00
Francisco
a587d20252
allow specification of subset of valid measurement gap offsets in rr.conf
2021-05-28 17:19:30 +02:00
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.
2021-05-28 09:27:13 +02:00
Andre Puschmann
e7aa484308
rf_zmq_test: remove srsran.h include
2021-05-27 17:26:39 +02:00
Andre Puschmann
bb6a5ebe80
tsan: add TSAN options file to set some default flags and exclude some libs from checks
2021-05-27 17:26:39 +02:00
Andre Puschmann
28399dd876
rf_zmq_imp: remove sleep
2021-05-27 17:26:39 +02:00
Andre Puschmann
574459fd90
rf: remove srsran.h include
2021-05-27 17:26:39 +02:00
Xavier Arteaga
f33731ecd4
Disable irrelevant unit/component test by default
2021-05-27 16:06:17 +02:00
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.
2021-05-27 13:29:00 +02:00
Xavier Arteaga
a245039cf3
Initial NR-PBCH-DMRS integration
2021-05-27 13:08:42 +02:00
Pedro Alvarez
997f7db23a
Small fixes for observer.h missing std::size_t
2021-05-26 22:16:22 +02:00
Pedro Alvarez
c74b2dd633
Fix some warnings in PHY due to array parameter mismatch for a few functions
2021-05-26 22:16:22 +02:00
Andre Puschmann
c1ad867824
epoll_helper: use std::atomic to protect exit called from different thread
2021-05-26 14:25:38 +02:00
Andre Puschmann
d8b2cfcef8
zmq,ringbuffer: protect concurrent access
...
some issue found through TSAN execution
2021-05-26 14:25:38 +02:00
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.
2021-05-26 14:25:38 +02:00
Xavier Arteaga
48e0fc3c99
Implemented initial PBCH decoder and refactored SSB candidate selection
2021-05-26 14:19:34 +02:00
Xavier Arteaga
de1b25558f
Added PRN sequence apply bit with state
2021-05-26 14:19:34 +02:00
Xavier Arteaga
1f38817b3b
Added random bit vector generator
2021-05-26 14:19:34 +02:00
Xavier Arteaga
bcb91d6173
srsran_vec_sprint_hex returns number of written characters
2021-05-26 14:19:34 +02:00
Xavier Arteaga
3634e96c3e
Added SSB measure test add/put/encode time measure
2021-05-26 14:19:34 +02:00
Xavier Arteaga
0aa5b14145
Initial NR PBCH encoding
2021-05-26 14:19:34 +02:00
Xavier Arteaga
d66dac0ab2
Added bit sequence state apply
2021-05-26 14:19:34 +02:00
Francisco
7076dbfef8
feature, scheduler: Add configuration parameter to set minimum TTI interval between TPCs
2021-05-25 21:51:10 +02:00
Francisco
dedd9c09a7
feature, scheduler: Add abitility to set minimum aggregation level in PDCCH, and disable adaptive aggregation level based on target BLER
2021-05-25 21:50:56 +02:00
Francisco
c5029fc266
feature - implement adaptive link adaptation in DL and UL
2021-05-24 19:33:27 +02:00
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
2021-05-24 17:25:07 +02:00
Francisco
31936c9754
bugfix - printf formatting incorrect in bounded_bitset method
2021-05-24 17:24:50 +02:00
Francisco
b093576634
avoid sending UEContextReleaseRequest from Source eNB during S1 Handover.
2021-05-24 17:24:31 +02:00
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
2021-05-24 17:24:12 +02:00
Francisco
60a8ee0af9
multiqueue optimization - use condition_var wait_for() method, use queue try_lock in the consumer side
2021-05-24 17:24:12 +02:00
Francisco
b41aba2a03
fix task scheduler test
2021-05-24 17:24:12 +02:00
Francisco
2d6a878826
change interface to create multiqueue queues
2021-05-24 17:24:12 +02:00
Francisco
f705735093
optimization - only allow some multiqueue queues to notify the multiqueue consumer of the arrival of tasks
2021-05-24 17:24:12 +02:00
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
2021-05-20 23:19:17 +02:00
yagoda
9501283c1c
fixing support for extended Cyclic Prefix
...
small cosmetic fixes of CP code
2021-05-20 18:16:15 +02:00
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.
2021-05-20 13:41:07 +02:00
Andre Puschmann
81c1851bbd
rlc_am_test: fix TSAN isses and removing info log when dropping PDU
2021-05-20 13:41:07 +02:00
yagoda
f90f6f0c7e
adding MAC 0 padding support
2021-05-20 10:26:50 +02:00
Xavier Arteaga
8ffbf0ff6d
Fix SSB segfault
2021-05-18 18:41:03 +02:00
Xavier Arteaga
f9aafd00a7
Added subcarrier spacing parsing from string
2021-05-18 18:41:03 +02:00
Xavier Arteaga
b69057b76e
Filesource filename to constant
2021-05-18 18:41:03 +02:00
Xavier Arteaga
5eadc06dd4
Intra-frequency miscellanous changes
2021-05-18 18:41:03 +02:00
Xavier Arteaga
7b159563ab
Fixes in LTE CRS measurements
2021-05-18 18:41:03 +02:00
Xavier Arteaga
1603580901
Fix NR PSS correlation
2021-05-18 18:41:03 +02:00
Xavier Arteaga
0b3f4e5de0
Improvements in NR cell search
2021-05-18 18:41:03 +02:00
Xavier Arteaga
53b2c6076b
Fix UHD subdev specification
2021-05-18 18:41:03 +02:00
Xavier Arteaga
11d925c0b2
Minor SSB fix and changes
2021-05-18 18:41:03 +02:00
Xavier Arteaga
c8cb128317
Declare band helper methods as constant
2021-05-18 18:41:03 +02:00
Xavier Arteaga
60015e7ceb
Made intra frequency cell search and measurment generic
2021-05-18 18:41:03 +02:00
Xavier Arteaga
648f0af437
Implement SSB search based on correlation
2021-05-18 18:41:03 +02:00
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.
2021-05-18 09:28:03 +02:00
Francisco
1488606156
refactor - create s1ap dedicated folder
2021-05-17 15:32:57 +01:00
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>
2021-05-17 15:17:27 +02:00
Francisco
fa34aaa16e
ensure the DL mask count is reduced enough to fit required bytes
2021-05-14 19:58:03 +01:00
Francisco
485c6ee129
subband CQI feature - add K parameter in sched_interface::ue_cfg_t and update it from RRC
2021-05-14 19:58:03 +01:00
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
2021-05-14 19:58:03 +01:00
Francisco
a841b7580e
fix deadlock caused by non-notification of multiqueue consumer side
2021-05-13 16:48:17 +01:00
Xavier Arteaga
9e1a85afe8
Fix NR SCH Nref calculation
2021-05-13 08:45:42 +02:00
Xavier Arteaga
0ecb3a7220
Modify NR PHY info messages
2021-05-13 08:45:42 +02:00
Xavier Arteaga
91030c5824
Fix procedure for MCS table selection
2021-05-13 08:45:42 +02:00
Xavier Arteaga
b02a0d3db9
Added RNTI type short string
2021-05-13 08:45:42 +02:00