Commit Graph

8573 Commits

Author SHA1 Message Date
Xavier Arteaga f07d925be1 Initial NR PHY test scheduling for PUSCH 2021-07-08 16:47:07 +02:00
Xavier Arteaga e3ea5d3d25 Renamed PHY NR test 2021-07-08 16:47:07 +02:00
Andre Puschmann 068267992d rnti_pool: add rrc_endc class and extra 1024B to UE memblock size
this should fix #3045

however, this hard-coded size seems pretty unflexible anyway so we might
have to increase/add to it, or find an alternative way to calculate the size?
2021-07-08 15:21:28 +02:00
Andre Puschmann 654afac9c7 nas_5g_msg_test: remove copy_msg_to_buffer() that is now in test_common.h 2021-07-08 14:06:10 +02:00
David Rupprecht 724af2b060 Added nas 5g msg packing and unpacking 2021-07-08 09:34:57 +02:00
Andre Puschmann e460739152 rrc_ue: only create and call endc_handler if NR RRC is available 2021-07-06 21:57:44 +02:00
Andre Puschmann 3f81d3e969 enb,rrc_endc: add handler for measurements and UE capabilities 2021-07-06 21:57:44 +02:00
Andre Puschmann f2f9082d09 ue,rrc_meas: fix invalid access to field when eport_quant_cell_nr_r15 is not present 2021-07-06 21:57:44 +02:00
Andre Puschmann e330f50ef8 rrc_meas_test: add packing test for measObjectNR 2021-07-06 21:57:44 +02:00
Andre Puschmann a2dd83a7e9 asn1: rename RRC NR test to avoid confusion with component test 2021-07-06 21:57:44 +02:00
Andre Puschmann 8d443d79e5 enb,rrc: add skeleton code for new RRC internal interface for SgNB addition 2021-07-06 21:57:44 +02:00
Andre Puschmann fd7b9a0575 enb,nsa: add basic RRC EUTRA<>RRC NR interface for SgNB addition 2021-07-06 21:57:44 +02:00
Andre Puschmann 6bf3feda92 rrc_nr_test: add packing test for NR radio bearer config
also add (still incomplete) secondary cell group config pack test
2021-07-06 21:57:44 +02:00
Andre Puschmann 8dd7075d12 enb,stack: add NR components for NSA mode
adds the main NR components for RLC, PDCP, MAC and RRC
for NSA operation.
2021-07-06 21:57:44 +02:00
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.
2021-07-06 21:57:44 +02:00
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)
2021-07-06 21:57:44 +02:00
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.
2021-07-06 12:50:48 +02:00
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.
2021-07-06 12:50:48 +02:00
Andre Puschmann ec3465bb98 s1ap: fix compilation of test on 32bit 2021-07-06 12:48:41 +02:00
Andre Puschmann 19996a4059 sched_nr: fix compilation 2021-07-06 10:11:50 +02:00
Xavier Arteaga c11a5cc2c8 Walk around GCC 4.8 compilation 2021-07-05 17:51:27 +02:00
Xavier Arteaga a7c728c189 Fix old gcc compilation 2021-07-05 17:51:27 +02:00
Xavier Arteaga 5307fec2f0 Added GNB MAC UL info initial interface and fix PHY implementation 2021-07-05 17:51:27 +02:00
Xavier Arteaga cf496e75eb Fix default PHY NR configuration 2021-07-05 17:51:27 +02:00
Xavier Arteaga 2fbd172888 Initial PHY NR configuration generator 2021-07-05 17:51:27 +02:00
Xavier Arteaga 320aabec13 Initial PHY NR configuration 2021-07-05 17:51:27 +02:00
Xavier Arteaga e764a26136 Integrated PUCCH decoding in gNb 2021-07-05 17:51:27 +02:00
Xavier Arteaga 3fe9176750 Added PUCCH dedocder to slot worker 2021-07-05 17:51:27 +02:00
Xavier Arteaga e3afd945bc Refactored NR HARQ ACK feedback 2021-07-05 17:51:27 +02:00
Xavier Arteaga 658b47d917 Added NR PUSCH and PUCCH decoder in gnb_ul 2021-07-05 17:51:27 +02:00
Xavier Arteaga 89994cd5a8 change ERROR macro format to be parsed by IDE 2021-07-05 17:51:27 +02:00
Xavier Arteaga f6fc215541 Refactored enb_dl_nr to gnb_dl and initial gnb_ul 2021-07-05 17:51:27 +02:00
Xavier Arteaga eecaccb541 Added NR PHY helpers 2021-07-05 17:51:27 +02:00
Andre Puschmann 6372f89c09 s1ap_test: fix compilation on 32bit 2021-07-05 12:29:49 +02:00
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.
2021-07-05 09:28:29 +02:00
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.
2021-07-05 09:28:29 +02:00
Andre Puschmann 5dbeecdbb5 ue,upper: fix linking on 32bit platforms with missing atomic libs 2021-07-05 08:59:19 +02:00
David Rupprecht f90e359208 Moved cp to test common 2021-07-02 17:23:06 +02:00
Andre Puschmann 5999b0d3a5 ue: move blocking wait for detach outside of stack class
the thread sleep waiting for the UE release should not run
on the stack thread. Move it to the UE class therefore.
2021-07-02 17:22:49 +02:00
Andre Puschmann bbcaa49429 network_utils: fix TSAN detected race 2021-07-02 17:22:49 +02:00
Andre Puschmann 3173dedf0a ue_stack_lte: make sure to execute stack commands on Stack thread
some commands were executed from the calling thread which may lead
to concurrent access to members. Detected by TSAN. The patch
moves all remaining calls (the majority was alread moved) to the
Stack task queue.
2021-07-02 17:22:49 +02:00
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.
2021-07-02 17:22:49 +02:00
Andre Puschmann 626f24c9f9 block_queue: use class mutex to protect size() getter
detected with TSAN
2021-07-02 17:22:49 +02:00
Andre Puschmann fb4dd3ba7b ttcn3: fix various races between SS and Stack thread detected by TSAN
fixed through the right usage of mutexes in both TTCN PHY and syssim.
nested mutex locking is solved by calling SS from the PHY after
releaseing the PHY lock again.
2021-07-02 17:22:49 +02:00
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
2021-07-02 12:01:39 +02:00
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>
2021-07-01 17:39:54 +02:00
Ismael Gomez c0fd64c4e6 Fix data races in srsENB MAC 2021-07-01 17:39:06 +02:00
David Rupprecht 4ed33fed7d Fixed unpack bytes limit 2021-07-01 17:02:29 +02:00
Pedro Alvarez 05fbca43d1 Fix GCC 11 warning in dyn_array 2021-07-01 10:55:11 +01:00
Pedro Alvarez 1b676aa406 Moved lib GTPU to its own folder 2021-06-30 18:19:20 +01:00