9611 Commits (9f7ae7a2b2e5472261007dbf6ae490095c40e4d4)
 

Author SHA1 Message Date
Andre Puschmann 6bf3feda92 rrc_nr_test: add packing test for NR radio bearer config
also add (still incomplete) secondary cell group config pack test
3 years ago
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.
3 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.
3 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)
3 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.
3 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.
3 years ago
Andre Puschmann ec3465bb98 s1ap: fix compilation of test on 32bit 3 years ago
Andre Puschmann 19996a4059 sched_nr: fix compilation 3 years ago
Xavier Arteaga c11a5cc2c8 Walk around GCC 4.8 compilation 3 years ago
Xavier Arteaga a7c728c189 Fix old gcc compilation 3 years ago
Xavier Arteaga 5307fec2f0 Added GNB MAC UL info initial interface and fix PHY implementation 3 years ago
Xavier Arteaga cf496e75eb Fix default PHY NR configuration 3 years ago
Xavier Arteaga 2fbd172888 Initial PHY NR configuration generator 3 years ago
Xavier Arteaga 320aabec13 Initial PHY NR configuration 3 years ago
Xavier Arteaga e764a26136 Integrated PUCCH decoding in gNb 3 years ago
Xavier Arteaga 3fe9176750 Added PUCCH dedocder to slot worker 3 years ago
Xavier Arteaga e3afd945bc Refactored NR HARQ ACK feedback 3 years ago
Xavier Arteaga 658b47d917 Added NR PUSCH and PUCCH decoder in gnb_ul 3 years ago
Xavier Arteaga 89994cd5a8 change ERROR macro format to be parsed by IDE 3 years ago
Xavier Arteaga f6fc215541 Refactored enb_dl_nr to gnb_dl and initial gnb_ul 3 years ago
Xavier Arteaga eecaccb541 Added NR PHY helpers 3 years ago
Andre Puschmann 6372f89c09 s1ap_test: fix compilation on 32bit 3 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.
3 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.
3 years ago
Andre Puschmann 5dbeecdbb5 ue,upper: fix linking on 32bit platforms with missing atomic libs 3 years ago
David Rupprecht f90e359208 Moved cp to test common 3 years ago
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.
3 years ago
Andre Puschmann bbcaa49429 network_utils: fix TSAN detected race 3 years ago
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.
3 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.
3 years ago
Andre Puschmann 626f24c9f9 block_queue: use class mutex to protect size() getter
detected with TSAN
3 years ago
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.
3 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
3 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>
3 years ago
Ismael Gomez c0fd64c4e6 Fix data races in srsENB MAC 3 years ago
David Rupprecht 4ed33fed7d Fixed unpack bytes limit 3 years ago
Pedro Alvarez 05fbca43d1 Fix GCC 11 warning in dyn_array 3 years ago
Pedro Alvarez 1b676aa406 Moved lib GTPU to its own folder 3 years ago
Pedro Alvarez 865298f8d5 Moved lib PDCP to its own folder 3 years ago
Pedro Alvarez 171d5727be Moved lib RLC into it's own folder 3 years ago
Francisco Paisana 30802777cf fix,enb: fix enb.conf param description 3 years ago
Francisco Paisana 4d014e7ceb s1ap,feature: make the ts1 reloc timers configurable via the enb.conf 3 years ago
Andre Puschmann b6a3b8c5b1 rlc: fix dtor
TSAN was complaining about destroying a locked mutex
3 years ago
Francisco 4c316aa9ea sched,nr: integrate mac-phy interface types into the scheduler 3 years ago
Francisco 5b3c5ded63 sched,nr: implement NR PDCCH allocation algorithm 3 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.
3 years ago
Andre Puschmann 8087bb01e4 nas: log message when airplane mode timer expires 3 years ago
Andre Puschmann 0a16f48869 gw: fix race condition
GW thread was checking the default_eps_bearer variable without
protection. RRC could update it when deleting DRB or receiving RRC
connection release.
3 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
3 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.
3 years ago