David Rupprecht
724af2b060
Added nas 5g msg packing and unpacking
4 years ago
Andre Puschmann
e330f50ef8
rrc_meas_test: add packing test for measObjectNR
4 years ago
Andre Puschmann
a2dd83a7e9
asn1: rename RRC NR test to avoid confusion with component test
4 years ago
Andre Puschmann
fd7b9a0575
enb,nsa: add basic RRC EUTRA<>RRC NR interface for SgNB addition
4 years ago
Andre Puschmann
6bf3feda92
rrc_nr_test: add packing test for NR radio bearer config
...
also add (still incomplete) secondary cell group config pack test
4 years ago
Andre Puschmann
c9e87b2cf3
config_file: print message when config file couldn't be read
...
this prints an message on stdout so config files are not
simply skipped and the default one is read instead.
4 years ago
Andre Puschmann
fa461f0129
rrc_nr: fix linker error in setup_release_c
...
move implementation to cc file to avoid
[build] /bin/ld: CMakeFiles/rrc_nr_asn1_test.dir/rrc_nr_test.cc.o: in function `asn1::rrc_nr::setup_release_c<asn1::rrc_nr::pdcch_serving_cell_cfg_s>::set_setup()':
[build] /home/anpu/src/srsLTE/lib/include/srsran/asn1/rrc_nr.h:2276: undefined reference to `asn1::rrc_nr::setup_release_c<asn1::rrc_nr::pdcch_serving_cell_cfg_s>::set(asn1::rrc_nr::setup_release_c<asn1::rrc_nr::pdcch_serving_cell_cfg_s>::types_opts::options)'
[build] clang: error: linker command failed with exit code 1 (use -v to see invocation)
4 years ago
Andre Puschmann
4379c20eb9
rlc_am_lte: avoid locking of Rx mutex twice when generating status PDU
...
call reset_status(), which now is an private method directly when
building a status PDU. No need for the Tx side to call Rx again.
4 years ago
Andre Puschmann
53a7dc78ee
rlc_am_lte: replace do_status boolean with atomic
...
the do_status is queried from the Tx code frequently. To reduce
chances to delay the execution because the RLC Rx side is currently
holding the mutex we can use an atomic.
4 years ago
Xavier Arteaga
5307fec2f0
Added GNB MAC UL info initial interface and fix PHY implementation
4 years ago
Xavier Arteaga
cf496e75eb
Fix default PHY NR configuration
4 years ago
Xavier Arteaga
2fbd172888
Initial PHY NR configuration generator
4 years ago
Xavier Arteaga
320aabec13
Initial PHY NR configuration
4 years ago
Xavier Arteaga
e764a26136
Integrated PUCCH decoding in gNb
4 years ago
Xavier Arteaga
3fe9176750
Added PUCCH dedocder to slot worker
4 years ago
Xavier Arteaga
e3afd945bc
Refactored NR HARQ ACK feedback
4 years ago
Xavier Arteaga
658b47d917
Added NR PUSCH and PUCCH decoder in gnb_ul
4 years ago
Xavier Arteaga
89994cd5a8
change ERROR macro format to be parsed by IDE
4 years ago
Xavier Arteaga
f6fc215541
Refactored enb_dl_nr to gnb_dl and initial gnb_ul
4 years ago
Xavier Arteaga
eecaccb541
Added NR PHY helpers
4 years ago
Andre Puschmann
6372f89c09
s1ap_test: fix compilation on 32bit
4 years ago
Andre Puschmann
f292042f66
rlc_am_lte: use try-lock when building status PDU
...
the patch uses try-lock whenever a status PDU is tried
to be built. This makes sure that when the lock is currently
hold (e.g. by a thread processing rx PDUs) the generation
of the status PDUs is not taking too long and blocking the calling
thread. Instead the status PDU generation is deferred to the next
Tx opportunity.
It's a probabilistic approach that assumes that at some stage the
lock can in fact be acquired.
4 years ago
Andre Puschmann
a9d21696c5
rlc_am_lte: make number of RLC SDUs per PDU a compile-time parameter
...
this allows to set the maximum number of RLC SDUs included
in a single PDU at compile time.
4 years ago
David Rupprecht
f90e359208
Moved cp to test common
4 years ago
Andre Puschmann
bbcaa49429
network_utils: fix TSAN detected race
4 years ago
Andre Puschmann
a9ad408f51
task_scheduler: use block_queue for internal tasks
...
TSAN detected wrong use of the old deque-based internal queue. To avoid
unwanted/undetected mis-use the patch uses the thread-safe block_queue
data structure instead.
4 years ago
Andre Puschmann
626f24c9f9
block_queue: use class mutex to protect size() getter
...
detected with TSAN
4 years ago
Andre Puschmann
0e6e3d201e
sys_metrics: reduce log level when measurement interval is shorter than expected
...
on highly loaded systems it can happen that the get_metrics() is called
twice within a few houndred milliseconds. Logging a warning in this
case isn't needed, so reduce to info.
on the other hand, 100ms might be to convervative. Patch also
lowers the smallest interval to 10ms
4 years ago
Ismael Gomez
4e39982a19
Fix TSAN warnings in UE ( #3021 )
...
* 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>
4 years ago
David Rupprecht
4ed33fed7d
Fixed unpack bytes limit
4 years ago
Pedro Alvarez
05fbca43d1
Fix GCC 11 warning in dyn_array
4 years ago
Pedro Alvarez
1b676aa406
Moved lib GTPU to its own folder
4 years ago
Pedro Alvarez
865298f8d5
Moved lib PDCP to its own folder
4 years ago
Pedro Alvarez
171d5727be
Moved lib RLC into it's own folder
4 years ago
Francisco Paisana
4d014e7ceb
s1ap,feature: make the ts1 reloc timers configurable via the enb.conf
4 years ago
Andre Puschmann
b6a3b8c5b1
rlc: fix dtor
...
TSAN was complaining about destroying a locked mutex
4 years ago
faluco
a70ad58440
Fix a data race in the UHD class wrapper where the last error member was being set concurrently causing random crashes.
...
Introduce a new macro to catch UHD exceptions and log them directly instead of storing an error string, similar to what errno does.
Remove usrp logging helpers that depend on the now removed member since all calls potentially log the error directly.
4 years ago
Andre Puschmann
4d11e5552a
rrc,ue: for RRC conn release, delay transition to RRC idle by 60ms as per TS 36.331
...
when receiving RRC connection release all actions shall be delayed by 60ms as
per the standard
4 years ago
Andre Puschmann
368c7b9e4f
ue,stack: clear all EPS bearers when going RRC idle
...
the EPS bearer manager was only informed when a single DRB
was removed but not when entering idle which requires to
remove all bearers.
This cause the service request to fail.
4 years ago
faluco
e20934583e
Remove an unsafe assert in the log backend that could be triggered under very certain circumstances.
...
RFCI has detected this assert failing in the log_backend_test. I have not been able to reproduce this locally but my theory is the following one:
one of the unit tests does the following:
backend.start();
backend.stop();
the internal running_flag member could be set to true and then to false by the main thread before the worker thread calls do_work(). If this happens
the assert will be triggered, which is wrong and too conservative, so remove the assert.
4 years ago
Xavier Arteaga
6f5614a0cc
Suggested modifications on gNb MAC/PHY interface
4 years ago
Xavier Arteaga
8378c85ec4
Refactored gNb PHY
4 years ago
Xavier Arteaga
aef3e5a40a
More NR PHY test and GNB PHY development
4 years ago
Xavier Arteaga
9126ad3b8b
Added NR type1 RIV function helper
4 years ago
Xavier Arteaga
d49734b1bc
SRSENB: Refactor to accomodate 5G NR
4 years ago
Xavier Arteaga
e98a6f9eea
Make ACK M constant i UEDLNR
4 years ago
Xavier Arteaga
567c7c9c77
Create TTI semaphpore default constructor
4 years ago
Andre Puschmann
483a216bd5
ue,stack: refactor handling of radio bearears in UE stack
...
this is a rather large commit that is hard to split because
it touches quite a few components.
It's a preparation patch for adding NR split bearers in the next
step.
We realized that managing RLC and PDCP bearers for both NR and LTE
in the same entity doesn't work. This is because we use the LCID
as a key for all accesses. With NR dual connectivity however we
can have the same LCID active at the same time for both LTE and NR
carriers.
The patch solves that by creating a dedicated NR instance for RLC/PDCP
in the stack. But then the question arises for UL traffic on, e.g. LCID 4
what PDCP instance the GW should use for pushing SDUs. It doesnt' know
that. And in fact it doesn't need to. It just needs to know EPS
bearer IDs. So the next change was to remove the knowledge of what
LCIDs are from the GW. Make is agnostic and only work on EPS bearer IDs.
The handling and mapping between EPS bearer IDs and LCIDs for LTE
or NR (mainly PDCP for pushing data) is done in the Stack because
it has access to both.
The NAS also has a EPS bearer map but only knows about default and
dedicated bearers. It doesn't know on which logical channels they
are transmitted.
4 years ago
Andre Puschmann
a4b2a065ff
pdcp: reword warning when dropping PDU
4 years ago
Andre Puschmann
7113e55d53
rlc: refactor RLC entity to use smart pointers for holding bearers
...
this patch mainly modernizes the bearer creation to use smart pointers.
that allows to simplify the error handling.
ue_stack is changed to match new interface. This commit compiles
but doesn't work.
4 years ago
David Rupprecht
6d5391756c
Refactor build of RLC NR config
4 years ago
David Rupprecht
d1d8500ce5
Add testcase for reconfiguration
4 years ago
David Rupprecht
ec19919246
Fix NGAP valgrind test
4 years ago
Xavier Arteaga
eb7980f2b3
Initial UE synchronization for NR
4 years ago
Pedro Alvarez
4d13906760
Increase logging level of MAC mismatches to warning in PDCP
4 years ago
Andre Puschmann
e1fb58d76e
rlc_um: reduce log level for message handling lost PDUs
...
when a lost PDU is detected a warning will be logged. In theory
this could be info as well but a warning may help to detect issues
in tests. The same event causes multiple other warnings to be logged,
which is very spammy. The patch reduces the log level for
those messages to info.
4 years ago
Pedro Alvarez
aae266e848
Added configuration option for S1AP SCTP bind port
4 years ago
David Rupprecht
85d7a851fb
Added 5G NAS PCAP support
4 years ago
Francisco
78acf81cf0
bugfix,sched: avoid instability in TPCs around PHR~0
4 years ago
Xavier Arteaga
b1e4720721
SRSUE/SRSENB: added tx_enable flag in worker_end
4 years ago
Xavier Arteaga
027201d457
SRSUE/SRSENB: Refactor NR workers to generalise lower PHY
4 years ago
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.
4 years ago
Ismael Gomez
5aa5a8e997
Revert UE changes
4 years ago
Ismael Gomez
e35a0d72fa
Revert UE changes
4 years ago
Ismael Gomez
dd9889e07c
Add carrier index to uplink PCAP captures
4 years ago
Bedran Karakoc
c280ac5ad6
Introducing extended NGAP functionality
...
Remove unused logger for now in ngap::ue to pass tests
4 years ago
Francisco
5a82a63bb5
bugfix,srsenb: fix intraenb handover softbuffer allocation during handover
4 years ago
Xavier Arteaga
cf09044453
Optimised random bit (unpacked) and byte (packed) generator
4 years ago
Xavier Arteaga
d2a19c3043
SCH minimum number of iterations to 2 to reduce systematic false alarm probability
4 years ago
Xavier Arteaga
ef4c978d72
Optimized byte random generator
4 years ago
Andre Puschmann
475c033440
rlc_am_test: extend status PDU test
...
add full test with malformed status PDU
4 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
4 years ago
Xavier Arteaga
2cd8ba3a1a
PDCCH test skips 100PRB for ARM
4 years ago
Francisco
2a009eb340
sched,feature: Enable configuring maximum coderate for SIB allocations
4 years ago
Francisco
6ababf401b
feature,sched: allow setting initial DL CQI in enb.conf
4 years ago
Francisco
e8983b88f0
refactor: use enb_cc_idx instead of ue_cc_idx in mac::ue
4 years ago
Andre Puschmann
fa7a8fb687
rlc_am_test: add testcase for processing out-of-order status PDUs
4 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.
4 years ago
Xavier Arteaga
8743713bb1
Fix compilation
4 years ago
Xavier Arteaga
676080d6af
Added macro SRSRAN_VEC_SAFE_CMA
4 years ago
Andre Puschmann
b862bbc2e6
rlc_am_lte: add missing mutex to get_status getter
...
fixws race detected with TSAN
4 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
4 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.
4 years ago
Andre Puschmann
46265c5829
rlc_am_data_test: add data PDU unpack test
...
TV captured in PCAP
4 years ago
Andre Puschmann
b379910690
pdu_test: add UL-SCH unpacking test
...
TV captured in PCAPs.
4 years ago
Xavier Arteaga
6be57dd216
Disable PDCCH false detection for non AVX2 machines
4 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.
4 years ago
Pedro Alvarez
a53b321ab8
Release UE upon reception of integrity error.
4 years ago
Pedro Alvarez
299d2ee35d
Added interface to make the PDCP notify the RRC of integrity check
...
failures.
4 years ago
Xavier Arteaga
939dd1b977
Change struct sync_raster_t to class
4 years ago
Xavier Arteaga
a79d518799
Added SSB search measure/decode file test
4 years ago
Xavier Arteaga
5181a9d64c
Implemented PBCH blind decode
4 years ago
Xavier Arteaga
a7b7f8e78a
Avoid SSB search to have a peak that SSB data is outside buffer
4 years ago
Xavier Arteaga
480f1b14fe
Protect Radio from null phy
4 years ago
Xavier Arteaga
9621cf57c2
Implemented NR SS raster object
4 years ago
Xavier Arteaga
49d857cd17
Refactored decode_tb function
4 years ago
Xavier Arteaga
22b1673b36
Added CRC match function and simplify CRC check
4 years ago
Xavier Arteaga
7846bfccb1
Implemented softbuffer RX CRC reset
4 years ago
David Rupprecht
ff3e7c321d
Added bref function for calc distance til end
4 years ago
Xavier Arteaga
e8f2b3a74c
Add PDCCH decoder correlation check in blind search
4 years ago
Xavier Arteaga
7c78fd2050
Implemented PDCCH DCI message correlation and updated test
4 years ago
Xavier Arteaga
bcd2e59635
PDCCH test global variable cleanup
4 years ago
Francisco
7e77da6a15
mac,optimization: use rnti memory pool to create mac::ue objects
4 years ago
Andre Puschmann
295b5fe8fb
rlc_tm: fix stopping of entity detected with TSAN
4 years ago
Andre Puschmann
a013a2fe05
rlc_stress_test: fix bug when read_pdu was returning -1
4 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.
4 years ago
Francisco
539ca47fe2
lib,bugfix: fix blocking queue unit test. Dtor cannot destroy object while a thread is still pushing data
4 years ago
Xavier Arteaga
60f294a6a1
Refactor PDCCH encode/decode unit test
4 years ago
Xavier Arteaga
5ddc974beb
Reverted PDCCH threshold
4 years ago
Xavier Arteaga
d46be09663
Increase viterbi default number of iterations
4 years ago
Xavier Arteaga
090022568e
DCI NCCE find considers L and NCCE
4 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.
4 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.
4 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.
4 years ago
Andre Puschmann
9612bb0e14
rlc_am_test: fix status PDU test and add extra test for failure signaling
4 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).
4 years ago
Andre Puschmann
107f6334dd
compile: fix compilation on 32bit systems that require -latomic
4 years ago
Francisco
ceaef3523f
sched,feature: Enable setting the target PHR below which the maximum UL grant size starts decreasing
4 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
4 years ago
Francisco
f7aef3ffc1
sched,bugfix: fix nof_retx update when UL HARQs are resumed
4 years ago
Ismael Gomez
5db3030428
Tiny changes
4 years ago
Francisco
89406b07d6
make eNB UL SNR initial value an exponential average alpha configurable
4 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
4 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.
4 years ago
Andre Puschmann
b88f22b9fe
network_utils_test: fix race detected with TSAN
4 years ago
Andre Puschmann
f823340a95
rf_imp: fix race when stopping gain thread
...
detected with TSAN using benchmark_radio test
4 years ago
Andre Puschmann
716caafd6c
multiqueue_test: fix race reported by TSAN
4 years ago
Andre Puschmann
1ef3cb7e5d
threads: fix race in stopping periodic thread
4 years ago
Andre Puschmann
312b5a241c
mac_pcap_base: fix race detected with TSAN
4 years ago
Andre Puschmann
c434aac526
rlc_stress_test: include tsan options header
4 years ago
Andre Puschmann
1d34aa280f
byte_buffer_queue: make class thread-safe by using atomics
4 years ago
Pedro Alvarez
18e2149d68
Sending Initial Context Setup Response after RRC reconfiguration.
4 years ago
Xavier Arteaga
4f7a94acb6
Fix comment
4 years ago
Xavier Arteaga
d329297151
Implement radio invalid mapping countermeasure
4 years ago
Andre Puschmann
3966065bff
pssch_test: fix newlines in printf
4 years ago
Andre Puschmann
2ace2b47b8
pssch: fix uninitialized value
4 years ago
Xavier Arteaga
bbab2cd9ba
Make PDCCH LLR mean amplitude in function of maximum
4 years ago
Xavier Arteaga
2ca0932d9b
Reviewed LTE noise estimation
4 years ago
Xavier Arteaga
10a268fdba
Added SNR to phy_dl_test
4 years ago
Francisco
f36f5271d3
timers,feature: make timers thread-safe by using atomic to store timers state.
4 years ago
Xavier Arteaga
dddb3ede71
Fix zero parity
4 years ago
Andre Puschmann
50f7fc644b
rlc_am_lte: log event when status prohibit timer expires
4 years ago
Xavier Arteaga
3c93d5ba43
Fix carrier mapping concurrency issue
4 years ago
Xavier Arteaga
235a664120
SRSUE: Removed PUSCH-DMRS/SRS pregeneration methods
4 years ago
Andre Puschmann
531acc0a98
rlc_am_test: add check for RLC buffer state return during retx
4 years ago
Andre Puschmann
3102861ee3
rlc_am_lte: make func param const&
4 years ago
Francisco
0dafe4dd58
fix coderate derivation in PDCCH based on aggregation level
4 years ago
Francisco
a587d20252
allow specification of subset of valid measurement gap offsets in rr.conf
4 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.
4 years ago
Andre Puschmann
e7aa484308
rf_zmq_test: remove srsran.h include
4 years ago
Andre Puschmann
bb6a5ebe80
tsan: add TSAN options file to set some default flags and exclude some libs from checks
4 years ago
Andre Puschmann
28399dd876
rf_zmq_imp: remove sleep
4 years ago
Andre Puschmann
574459fd90
rf: remove srsran.h include
4 years ago
Xavier Arteaga
f33731ecd4
Disable irrelevant unit/component test by default
4 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.
4 years ago
Xavier Arteaga
a245039cf3
Initial NR-PBCH-DMRS integration
4 years ago
Pedro Alvarez
997f7db23a
Small fixes for observer.h missing std::size_t
4 years ago
Pedro Alvarez
c74b2dd633
Fix some warnings in PHY due to array parameter mismatch for a few functions
4 years ago
Andre Puschmann
c1ad867824
epoll_helper: use std::atomic to protect exit called from different thread
4 years ago
Andre Puschmann
d8b2cfcef8
zmq,ringbuffer: protect concurrent access
...
some issue found through TSAN execution
4 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.
4 years ago
Xavier Arteaga
48e0fc3c99
Implemented initial PBCH decoder and refactored SSB candidate selection
4 years ago
Xavier Arteaga
de1b25558f
Added PRN sequence apply bit with state
4 years ago
Xavier Arteaga
1f38817b3b
Added random bit vector generator
4 years ago
Xavier Arteaga
bcb91d6173
srsran_vec_sprint_hex returns number of written characters
4 years ago
Xavier Arteaga
3634e96c3e
Added SSB measure test add/put/encode time measure
4 years ago
Xavier Arteaga
0aa5b14145
Initial NR PBCH encoding
4 years ago
Xavier Arteaga
d66dac0ab2
Added bit sequence state apply
4 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
Francisco
ef9d1b8c13
stack optimization - reduction of contention in multiqueue class
...
With the new design, each queue created in the multiqueue object has its own mutex.
Pushing tasks to separate queues will, therefore, not cause contention.
There will be, however, still contention between the popping thread and the pushing threads.
4 years ago
Xavier Arteaga
d9586015f5
SSB related minor aesthetical corrections
4 years ago
Xavier Arteaga
60d1708b80
Initial SSB measurement implementation
4 years ago
Xavier Arteaga
5c31f4335f
Initial SSB module header file
4 years ago
Xavier Arteaga
3f078cdc24
Added SSB related constants
4 years ago
Francisco
b54bb35343
use rnti_map_t in scheduler
4 years ago
Xavier Arteaga
1396c2a1e2
Mulpiple CSI measurement fixes. Channel and sync metrics from CSI measurements
4 years ago
Xavier Arteaga
fd0d804321
Added macro for calculating the squared absolute value of a complex variable
4 years ago
Xavier Arteaga
e68c822505
NR Added CSI measurement channel processing
4 years ago
Xavier Arteaga
c51ff0c9f9
Added safe exponential moving average filter
4 years ago
Francisco
c5396155ad
set default gtpu tunnel close timeout to infinity
4 years ago
Francisco
15484e9472
rrc - make t304 configurable via rr.conf
4 years ago
Francisco
c6b9c12ba2
gtpu, feature - added the ability to configure gtpu indirect tunnel timeout value. This parameter is useful in the case that the end marker is not received
4 years ago
Francisco
cd51537234
add comment explaining the use case of cached_alloc
4 years ago
Francisco
28847badcf
implementation of custom allocator for memory caching. This allocator may be used for unbounded queues
4 years ago
David Rupprecht
c117b563c9
Initial commit for ngap in enb
4 years ago
Francisco
7bee75e126
update description of srsenb --expert.nof_prealloc_ues config parameter, and added a comment in header file explaining the use of such parameter.
4 years ago
Francisco
5818488b27
change enb max_nof_ues config parameter to nof_prealloc_ues
4 years ago
Xavier Arteaga
de9158eeaf
Enable NR RRC MCS table selection
4 years ago
Xavier Arteaga
eef3fac863
Improved float XOR readability
4 years ago
Xavier Arteaga
751b6858b3
Added CSI-RS resource set measurements
4 years ago
Xavier Arteaga
3b919b4f6c
Minor aestheics change
4 years ago
Xavier Arteaga
243ad05dfa
Added on the fly sequence apply in float
4 years ago
faluco
aef18f9931
Implement a benchmark for measuring latency in the foreground threads when pushing log entries.
...
This benchmark runs with several threads to test contention.
4 years ago
Francisco
01eace2631
rrc paging mechanism improvements
...
- moved paging record handling to separate class
- parallel access to pending pcch messages by phy workers based on TTI and without common lock
- asn1 pcch message packing now takes place in stack thread, to avoid real-time issues
4 years ago
Xavier Arteaga
318f064ff4
Multiple NR SCH fixes
4 years ago
Xavier Arteaga
b8e0164f7f
Multiple fix NR PHY procedures
4 years ago
Xavier Arteaga
a8e181971c
Refactored PHY NR procedures for supporting DCI formats 0_1 and 1_1
4 years ago
Andre Puschmann
bbea3dd6a1
byte_buffer: fix compilation when buffer pool log is enabled
4 years ago
Francisco
5cecb40410
rlc,bugfix - increase pdcp sn notification ack list maximum size
4 years ago
Francisco
ad1a0eb2ac
rlc,fix - Add PDCP PDUs to undelivered_sdu_info_queue when the PDUs are popped from the tx_sdu_queue, rather than they are pushed to.
...
- This simplifies the sdu discard
- This also fixes an existing race condition
4 years ago
Andre Puschmann
598594c51a
all: bunch of pass by const& changes suggested by LGTM
4 years ago
Francisco
7ced0e73eb
rlc,bugfix - avoid accessing the PDCP info of RLC segments when the PDCP has already discarded the respective PDCP SN.
4 years ago
Andre Puschmann
597729ac53
rlc: always remove PDCP SNs from undelivered queue
...
if RLC PDUs with certain PDCP SNs were already in flight
when their discard timer at PDCP expires, they weren't
remove from the undelivered_sdu_info_queue causing
indesired log entries like:
08:08:52.455280 [RLC ] [W] PDCP_SN=2103 already marked as undelivered
when the SN was sent again (after wrap around).
The patch makes sure to always try to delete the PDCP SN
from the queue. It should fix (at least partly) #2560
4 years ago
Andre Puschmann
20075f6f33
rf_uhd_generic: fix segfault when accessing device tree
...
for some reasons the dev tree isn't available on the X310
with UHD4 and the code never checked the return value, causing
a segfault with that combo.
4 years ago
Xavier Arteaga
949ce965c7
Fix SCH NR CRC check
4 years ago
Xavier Arteaga
fb5dfb3a86
Improved NR unit test
4 years ago
Xavier Arteaga
28170c92a9
Multiple NR SCH fixes
4 years ago
Xavier Arteaga
efb8da69d8
Cleaned DCI NR info string
4 years ago
Xavier Arteaga
8cb3e92ab3
Added LDPC flooded early stop
4 years ago
Xavier Arteaga
033661182a
Aded SF len macro for NR
4 years ago
Xavier Arteaga
6c39a5e4ff
Added PDSCH DMRS aditional unpacking
4 years ago
Xavier Arteaga
334b308c35
Fix DCI NR configuration from main configuration
4 years ago
Xavier Arteaga
86ad0446e1
Added NR PDSCH and PUSCH resource allocating flattening
4 years ago
Xavier Arteaga
892aea8219
Fix coverity warnings under lib/src/phy/utils
4 years ago
Xavier Arteaga
87cf3cf2e5
Fix coverity warnings under lib/src/phy/phch
4 years ago
Francisco
3f64b94a0f
increase asn1 variable length field intermediate buffer, to support longer UE Radio Capabilities messages
4 years ago
David Rupprecht
bde30bb9be
Added tests for band helper
4 years ago
Andre Puschmann
937c4ff3c3
demod_soft: removed unused NEON code
...
clang complained about unused code, so remove it of course.
4 years ago
Xavier Arteaga
71226e89df
Minor dereference check
4 years ago
Xavier Arteaga
b6fa82bf9a
Fix more static analysis warnings
4 years ago
Xavier Arteaga
290541993e
Fix debug compilation
4 years ago
Xavier Arteaga
efd6c569b8
Fix some static analisys warnings under lib/src/phy/fec
4 years ago
David Rupprecht
fafa03f7c8
Extended the band helper table
4 years ago
Francisco
3c4512cdd2
demote assert to expect check in circular stack pool destruction, when a leak is detected
4 years ago
Xavier Arteaga
217f3cb416
SRSENB: select highest with/without SR correlation PUCCH result
4 years ago
Andre Puschmann
ada6c71b5a
rf_soapy: fix logic to print warning when Lime is used with short sample rates
...
previously the warning was printed when a Lime was connected to the PC.
Now all connected devices are printed but the warning is only
shown if the selected device is the Lime.
4 years ago
faluco
aa3309157b
Fixed polar encoder and decoder initialization failure for ARM. Initialization unconditionally used x86 SIMD routines instead of getting disabled for ARM compilations.
4 years ago
faluco
d9e5f4ccc7
Replace a couple of inline functions in demod_soft with macros to allow constant propagation. The vgetq_lane_sX builtin expects a constant instead of a variable.
4 years ago
Francisco Paisana
d39183419c
Separate TPC PUSCH and PUCCH target SINR ( #2740 )
...
* separate target pusch and pucch sinr configurations in tpc class and rr.conf
4 years ago
Francisco
38bf895efa
fix asn1 compilation issue
4 years ago
Francisco
86dac9c823
several coverity high and medium impact fixes
4 years ago
Xavier Arteaga
9a4fcb605b
Reviewed UHD Tx FSM
4 years ago
Xavier Arteaga
3413f29cc8
Fix channel interpolator for 4 ports
4 years ago
Andre Puschmann
03e1277b0b
rf_soapy_imp: fix lowercase to detect Lime
4 years ago
Andre Puschmann
b569e81299
rf_soapy_imp: fix LTE sample rate info check
...
only print if Lime is substring in dev args, so don't print with blade
4 years ago
Andre Puschmann
f76cd5ef83
backward: fix compile error on aarch64
4 years ago
Andre Puschmann
0826b86cec
srsue: remove NR DL freq and ARFCN option
...
not required anymore as all NR carrier tuning is done
through RRC signaling
4 years ago
Andre Puschmann
4dd17aee45
rrc/phy/nr: calculate tuning freq of NR carrier from RRC signaling params
...
skip initial tuning to hard-coded NR frequency and use RRC-provided
values to calculate center frequency
4 years ago
Andre Puschmann
6e79ae67aa
ldpc/polar: add casts to avoid possible variable overflow before assignment
4 years ago
Andre Puschmann
92d4e6e746
adt/common: remove const from return type
...
reported by LGTM https://lgtm.com/projects/g/srsLTE/srsLTE/rev/pr-9ae46cae260b6b8137b34b9423bf1477bd6b5c42
4 years ago
Andre Puschmann
ff53d2b8b8
all: set of trivial changes reported by LGTM
...
mainly fixmes, unused/empty code, etc.
4 years ago
AlaiaL
0535473895
Fixes coverity 369570
4 years ago
AlaiaL
6332490cae
Fixes coverity 369581
4 years ago
AlaiaL
385b12a33a
Fixes coverity 369620
4 years ago
AlaiaL
23f0bd4d4f
Fixed coverity 369716
4 years ago
AlaiaL
862784ee46
Fixed coverity 369719
4 years ago
AlaiaL
82788ca094
Fixed issues from coverity:
...
- 370233
- 370234
- 370239
- 370240
- 370241
- 370242
- 370243
- 370295
4 years ago
herlesupreeth
0f06ec0d9c
Add feature to provide custom GTP-U (S1) address to be advertised inside S1AP messages
...
This feature is useful in scenarios where eNB is behind a NAT and EPC on public cloud
Since eNB's GTP-U can only bind to IP address visible in it's host (usually a private IP beind a NAT), it advertises the same to UE in S1AP message
resulting in traffic from EPC to eNB (DL traffic) not able to reach eNB. This commit solves this issue by providing a means to advertise a different IP address than the one GTP-U UDP socket is bound to.
This IP is usually advertised in InitialContextSetupResponse and E-RABSetupResponse.
In order to make use of this feature, use the following parameter in enb.conf
Example:
gtp_advertise_addr = 213.61.141.82
4 years ago
herlesupreeth
aff9091ad3
Make use of RF device passed as argument
4 years ago
herlesupreeth
00a7d3a4cd
Add option to provide RF device to use for cell search
4 years ago
Matan Perelman
7ee52dc676
srsUE: Add option to filter N_id_2 / PSS to configuration
4 years ago
David Rupprecht
102a943171
Fixed naming srsLTE to srsRAN
4 years ago
faluco
1ccb62af3d
Apply srsLTE formatting rules to srsLog. They were previously formatted with different rules when the project lived in the external rapo.
4 years ago
Xavier Arteaga
873f375ecc
Make NR DCI test more exhaustive and fix issues
4 years ago
Xavier Arteaga
ab6a5ef17a
Added NR DCI conversion to string for formats 1_0 and 1_1
4 years ago
Xavier Arteaga
bccfa8d875
Added NR DCI packing/unpacking format 1_1
4 years ago
Xavier Arteaga
11b9990224
Added NR DCI packing/unpacking format 0_1
4 years ago
faluco
0afd59a5a0
Replace a string with a const char * in the rlc to_string.
4 years ago
Francisco
289559af82
asn1 fix - fix choice access correct type assert
4 years ago
Francisco
ff3fc0826b
asn1 fixes and improvements
...
- use const char* instead of std::string in enumerated<>::to_string() to avoid mallocs.
- Remove the use of "typedef", and use "using" keyword instead.
- Fix rrc_nr::setup_release_c<>::to_string() broken linkage.
4 years ago
David Rupprecht
98914dab6a
Allow pdcp lte entity to use 18 bit SN
4 years ago
faluco
7df308c756
Remove two mallocs in the stack:
...
1) Extend the small buffer to 64bytes for the move_callback class.
2) Replace a std::map for a fixed size circular map in sched_time_pf.
4 years ago
Francisco
28f787f1de
extend timer handler unit test to check correct time wheel implementation
4 years ago
Francisco
2b572f5376
fix overwrite of timer timeout when it matches previous time wheel position
4 years ago
Xavier Arteaga
407903e0d6
SRSUE: refactor carrier setting for accepting a dynamic carrier configuration
4 years ago
Xavier Arteaga
47523935f6
Minor NR RRC fixes
4 years ago
Francisco
ce47cf5910
fix - re-add log flush to srsran_assert
4 years ago
Francisco
63913ff2b2
remove uneeded assert condition. change pdcp log when notified pdcp pdu doesnt exist to info.
4 years ago
Francisco
9efb959471
bugfix, scheduler - fix bit counter specializations for 32 and 64 bits.
4 years ago
Francisco
6137e4569b
fix srsran_assert definition when asserts are disabled
4 years ago
Francisco
3b78bf3730
bugfix - fix memcheck warnings. move instructions with side effects outside of asserts
4 years ago
David Rupprecht
a064e85c54
rename common lte header
4 years ago
David Rupprecht
81ad72b0ff
Refactor srb and drb handling
4 years ago
David Rupprecht
91ff8a2e6d
Add rrc_nr to rlc init function
4 years ago
David Rupprecht
6b41ae7e8b
Updated PDCP config struct for rat type
4 years ago
Xavier Arteaga
77b6b60b82
Fix rach_cfg.nof_groupA_preambles
4 years ago
Xavier Arteaga
aadbe6d880
Normalise NR PUSCH to maximum Tx power
4 years ago
Xavier Arteaga
53e41a165c
Revert zeros around DC REs in NR PDSCH
4 years ago
Xavier Arteaga
93c3dc1cb1
Revert "Demodulator sets LLR to zero for 0.0 symbols"
...
This reverts commit 1a6e5cdee5
.
4 years ago
Xavier Arteaga
1c1d7e2447
Revert "Review soft demodulator zero check"
...
This reverts commit b8a9a7fc70
.
4 years ago
Xavier Arteaga
0999b271ba
Added RFNOC based LO frequency offset
4 years ago
Francisco
ac375f07d9
add precompiler guards to restrict builtin use to gcc and clang
4 years ago
Francisco
22024ac35d
implemented bounded_bitset::find_lowest(...) for both reverse and non-reverse bit ordering. Applied this method to UL scheduling search for PRB intervals
4 years ago
Francisco
3f15fc2811
implemented bounded_bitset::find_first(...)
4 years ago
David Rupprecht
db9dd85783
Parse carrier config in NR RRC reconfig
4 years ago
David Rupprecht
f42d4dbc28
Refactored carrier config
4 years ago
Andre Puschmann
9009c3439c
rlc_um_nr: convert log entries to info if they are expected
...
dropping a PDU and not being able to build a PDU if the
grant is too small is expected and should therefore not cause a log warning.
4 years ago
Andre Puschmann
936bebcfd7
rrc_nr_utils: fix extraction of HARQ processes from ASN1 reconfig
4 years ago
Xavier Arteaga
53b38fccf9
Fix compile and other
4 years ago
Xavier Arteaga
ed0929b46d
NR PHY logging minor corrections
4 years ago
Xavier Arteaga
8ffced7e88
NR PHY logging minor corrections
4 years ago
Xavier Arteaga
abfc1da921
Multiple NR-PUSCH fixes
4 years ago
Xavier Arteaga
7e06e789d5
Fic NR UCI in the info string
4 years ago
Xavier Arteaga
01ce0718be
NR-PUSCH RE mapping correction and NR-SCH detailed grant information
4 years ago
David Rupprecht
bfe2ad98ef
Added parsing for NR DL HARQ cfg
4 years ago
Andre Puschmann
b9ae064338
mac_nr: add DL HARQ
...
this commit adds a complete DL HARQ entity to the MAC of the UE.
It also refactors demux into an own class and adapts the PHY-MAC
interface to use the new MAC capabilities.
4 years ago
Francisco
e3e4564a7e
fix inconsistency in use of invalid_sn and status_report_sn throughout rlc am code
4 years ago
Francisco
c3ec28002b
refactor - integration of segment list in rlc_amd_tx_pdu and pdcp_pdu_info classes
4 years ago
Francisco
7f0083a985
implementation of intrusive list abstract classes to be used in RLC for lists of segments
4 years ago