2009 Commits (825d363d448ba83427843a231a6a2eec218ab9ed)

Author SHA1 Message Date
Xavier Arteaga 2ab3971ef1 Fix NR PBCH encoding/decoding 3 years ago
Ismael Gomez 6b506ec357
phy_common: clear tx_hold flag before releasing the semaphore (#3342) 3 years ago
faluco 72088dadb5 Fix race conditions in intra measure class. 3 years ago
Andre Puschmann 3cd2de1ffe ue,rrc_nr: accept RRC Reconfigs with disable NZP and ZP configs 3 years ago
Francisco Paisana 78dad52cc8 rrc,nr,gnb: disable CQI configuration in gNB until gNB PHY supports it 3 years ago
Andre Puschmann bf2606f94e ue,mac_nr: fix race condition by using thread-safe RNTI class 3 years ago
Ismael Gomez c09f09b7be Move rrc_common from srsue to lib 3 years ago
Fabian Eckermann 8830c2796f Add support for NSA FDD on band n3, n5 and n7. 3 years ago
Andre Puschmann ca6ea55cb6 mac_nr_test: fix test vector after making padding BSR work 3 years ago
Andre Puschmann bed4cfb5e5 ue,mac_nr: fix generation of padding BSRs
* in Msg3 don't add explicit SBSR (rely on padding BSR to add)
* fix padding BSR generation to always use padding bytes to add it
3 years ago
Ismael Gomez 1c77998df5 Stop PDCP for data bearers before initiating HO 3 years ago
faluco fa351cd285 Rename functions that contain the unsafe word to nolock.
The term "unsafe" does not clearly state that the function is not locking the shared date and it sounds "dangerous", so use a more explicit term.
3 years ago
Bedran Karakoc 43915550cc NGAP GTP Bearer Establishment 3 years ago
David Rupprecht 3712983308 Added PDU Session est request 3 years ago
David Rupprecht c670383ae9 Added NAS 5G functions incoming msg and reg proc 3 years ago
David Rupprecht 107eba9d66 Fixed srsue namespace 3 years ago
faluco 55f5f74ff3 Fixed case where calling gw::setup_if_addr after ue attachment would spawn a new thread without closing the current one.
This would end up being a resource leak as the number of threads grow forever until the application crashes.
3 years ago
Andre Puschmann 26cc6d7886 ue: remove stack type parameter
for the moment we always use the LTE stack (also for NSA mode).
For SA we likely pick a smarter approach to pick the stack type, i.e.
using the ARFCN specified in the config.
3 years ago
Xavier Arteaga 0324806d6c Packed NR TDD config in duplex configuration and created test case for FDD 3 years ago
Fabian Eckermann dd8db1a929 Replaced inet_addr() with inet_pton. 3 years ago
Xavier Arteaga 1f6c950dae SRSUE: Fix speed and distance from TA metrics 3 years ago
Andre Puschmann fbfca42ef3 ue,mux_nr: add missing break 3 years ago
Ismael Gomez ad646f436c Ignore PDSCH during cell selection 3 years ago
Xavier Arteaga de00b80228 Review NR NSA CFO estimation and compensation 3 years ago
Xavier Arteaga 63bb86bce1 Added SS type conversion to string 3 years ago
faluco c2b705c5ce Fix several data races in proc_phr, class needs to be fully protected since most member variables are accessed by different threads. 3 years ago
faluco f96ee097b4 Fix data race in ue mac metrics. 3 years ago
faluco 2b73beb3dd Fix data race in ul_harq. 3 years ago
faluco d02012b588 Fix data race in bsr_proc. 3 years ago
faluco 8d802e2aca Fix a data race in the simulate_rf global variable. 3 years ago
Andre Puschmann 36af79b9d5 ue,proc_bsr_nr: add missing mutex when redeading SBSR
detected with TSAN
3 years ago
Andre Puschmann ab6210b1fc ue,proc_sr_nr: add mutex to protect access from PHY and Stack
also detected by TSAN
3 years ago
Andre Puschmann 2248e63219 ue,proc_ra_nr: add mutex to protect access from PHY and Stack
detected with TSAN
3 years ago
Andre Puschmann cc2d71183e ue,phy,nr: fix race condition when setting UL grant for Msg3
the Msg3 UL grant requires the TTI in which the RAR has been received
to calcualte the correct timing. There was a race between PHY and Stack
thread.

This patch circumvents the issue by removing a PHY state member that only holds
the RAR Rx timing. In the new interface the RA proc passes the Rx TTI
to the PHY again when setting the UL grant so the PHY can calculate the
correct timing without any state.
3 years ago
faluco 485ec2edab Implement a new option to flush the file sink contents on every write. 3 years ago
Andre Puschmann 07019a5bd6 nr: refactor DL/UL frequency deriviation
* add separate DL/UL freq point a in NR carrier struct
* use freqInfoDL/freqInfoUL to get freq point a
* simplify carrier tuning logic
3 years ago
Andre Puschmann f382a7c7db Revert "ue,proc_ra_nr: add temporary flag to skip RAR reception"
This reverts commit 28668aac34.
3 years ago
Andre Puschmann a518b81a10 phy,nr: don't print hex content of failed PDSCH 3 years ago
Andre Puschmann 5a936d9940 ue,rrc: handle DRB removal correctly
when RRC receives a command to remove a DRB, it also needs to delete
the bearer at RLC and PDCP
3 years ago
Andre Puschmann 54ab64327a ue,mac_nr: move BSR levels lookup table into lib header
prepare for shared use with gNB
3 years ago
Andre Puschmann ba17b64c70 worker_pool: fix newline 3 years ago
David Rupprecht 285aae8e36 Fixing srsue namespace in rrc meas test 3 years ago
David Rupprecht a9a23214b0 Added more 5G security kdfs
Added new 5G SIM functions

Added const parameters for security functions
3 years ago
David Rupprecht a645d74eaf USIM functions for res star
Added gen_res_star in security.h

Added USIM interfaces for res star

Added RES star test case
3 years ago
David Rupprecht bce6b5cc0f Added kdf common
Use kdf functions in 5G KDF

Moved EPS KDF function to new KDF structure
3 years ago
David Rupprecht 15eaef21e2 Update test f12345 function
Moved XOR functions to lib

Added testcase for KDF

Minor liblte_security updates
3 years ago
Andre Puschmann 272fc47bc2 ue,worker_pool: fix logging of Msg3 UL grant 3 years ago
Andre Puschmann 548c45a8fc enb,mac_nr: add RAR packing 3 years ago
Andre Puschmann ede81be5e4 mac_rar_pdu_nr: add packing routines
* add packing for RAR PDUs
* rewrite to_string() to use fmt lib
* add test case for packer
3 years ago
Andre Puschmann b20fefbe45 mac_nr_test: flush srslog at the end of test
fixes stack use after free detected by ASAN

2021-08-31T17:21:44.885938 [MAC-NR ] [D] [    0] Building new MAC PDU (9 B)
==10908==ERROR: AddressSanitizer: stack-use-after-scope on address 0x7ffc481b5340 at pc 0x563c0486d489 bp 0x7ffc481b4470 sp 0x7ffc481b4460
READ of size 1 at 0x7ffc481b5340 thread T0
    #0 0x563c0486d488 in srsran::mac_sch_subpdu_nr::to_string(fmt::v7::basic_memory_buffer<char, 500ul, std::allocator<char> >&) (/home/ubuntu/workspace/srslte_ubuntu_20.04_pull_request/srslte/build/srsue/src/stack/mac_nr/test/mac_nr_test+0x139488)
    #1 0x563c0486db87 in srsran::mac_sch_pdu_nr::to_string(fmt::v7::basic_memory_buffer<char, 500ul, std::allocator<char> >&) (/home/ubuntu/workspace/srslte_ubuntu_20.04_pull_request/srslte/build/srsue/src/stack/mac_nr/test/mac_nr_test+0x139b87)
    #2 0x563c0481c127 in srsue::mux_nr::get_pdu(unsigned int) (/home/ubuntu/workspace/srslte_ubuntu_20.04_pull_request/srslte/build/srsue/src/stack/mac_nr/test/mac_nr_test+0xe8127)
    #3 0x563c0484e62b in srsue::ul_harq_entity_nr::ul_harq_process_nr::new_grant_ul(srsue::mac_interface_phy_nr::mac_nr_grant_ul_t const&, bool const&, srsue::mac_interface_phy_nr::tb_action_ul_t*) (/home/ubuntu/workspace/srslte_ubuntu_20.04_pull_request/srslte/build/srsue/src/stack/mac_nr/test/mac_nr_test+0x11a62b)
    #4 0x563c04850de4 in srsue::ul_harq_entity_nr::new_grant_ul(srsue::mac_interface_phy_nr::mac_nr_grant_ul_t const&, srsue::mac_interface_phy_nr::tb_action_ul_t*) (/home/ubuntu/workspace/srslte_ubuntu_20.04_pull_request/srslte/build/srsue/src/stack/mac_nr/test/mac_nr_test+0x11cde4)
    #5 0x563c047bb004 in srsue::mac_nr::new_grant_ul(unsigned int, srsue::mac_interface_phy_nr::mac_nr_grant_ul_t const&, srsue::mac_interface_phy_nr::tb_action_ul_t*) (/home/ubuntu/workspace/srslte_ubuntu_20.04_pull_request/srslte/build/srsue/src/stack/mac_nr/test/mac_nr_test+0x87004)
    #6 0x563c04760cdc in msg3_test() (/home/ubuntu/workspace/srslte_ubuntu_20.04_pull_request/srslte/build/srsue/src/stack/mac_nr/test/mac_nr_test+0x2ccdc)
    #7 0x563c0475f762 in main (/home/ubuntu/workspace/srslte_ubuntu_20.04_pull_request/srslte/build/srsue/src/stack/mac_nr/test/mac_nr_test+0x2b762)
    #8 0x7fae1cf400b2 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x270b2)
    #9 0x563c047601bd in _start (/home/ubuntu/workspace/srslte_ubuntu_20.04_pull_request/srslte/build/srsue/src/stack/mac_nr/test/mac_nr_test+0x2c1bd)

Address 0x7ffc481b5340 is located in stack of thread T0 at offset 320 in frame
    #0 0x563c0486d78f in srsran::mac_sch_pdu_nr::to_string(fmt::v7::basic_memory_buffer<char, 500ul, std::allocator<char> >&) (/home/ubuntu/workspace/srslte_ubuntu_20.04_pull_request/srslte/build/srsue/src/stack/mac_nr/test/mac_nr_test+0x13978f)
3 years ago
Andre Puschmann 9b4f6cb8bb mac_nr: pretty-print received/transmitted MAC PDUs in logs 3 years ago
Andre Puschmann db8b710442 bearer_manager: move to lib folder and extend for multiple users
prepare bearer manager to be used by eNB which requires
to support multiple RNTIs
3 years ago
faluco 5f9aceb8b6 Fix alignment issue with the stdout metrics in srsue. 3 years ago
Andre Puschmann 4ef1ac2649 gw: (re-)use class mutex when updating the DL/UL metrics 3 years ago
Andre Puschmann aa43e3c8d6 ue,mac: adding missing mutex when updating metrics 3 years ago
Andre Puschmann e1776f8d28 ue,phy: update the PRACH params inside the lambda that also executes the reconfig
setting the new PRACH params (writing the the local var) needs to protected as well
because it is called from the RRC context and the PHY worker will call configure_prach_params()
if it sees changes to it.
3 years ago
Andre Puschmann 40499e6b6d ue_stack_lte: use std::atomic for running var 3 years ago
Xavier Arteaga 83b9b2d1ff Implemented UE open loop CFO compensation for NR 3 years ago
Xavier Arteaga 9c3dd56398 Added PDCCH DMRS interleaved mapping 3 years ago
Xavier Arteaga d61d6aa59f Integrated CORESET0 into UE's RRC 3 years ago
Francisco Paisana 7a527cd09e fix,lte: zero-initialize phy_meas_t in rlf test 3 years ago
Francisco Paisana 36eee0ab40 test,nr: add ra_search_space configuration to phy_cfg_nr; now the test ue searches for RA-RNTI while expecting a RAR 3 years ago
Francisco Paisana f518861ebc fix location of support/ folder. Created macros for ASSERT_EQ and ASSERT_NEQ 3 years ago
Ismael Gomez 7839ab09dc Add RLF-Reportv9 to srsUE 3 years ago
David Rupprecht 3217c00cfc Adjusting NAS base security function to 5G 3 years ago
Andre Puschmann fc2b6a7fb5 ue,rrc: fail NR reconfiguration if mac-logicalChannelConfig is not present 3 years ago
Andre Puschmann e6d9ec40ef ue,rrc: let RRC reconfig fail when LCID cannot be derived from DRB id 3 years ago
Xavier Arteaga cba6df3722 Extended NR PHY robustnes against wrong RRC configuration 3 years ago
Andre Puschmann 28668aac34 ue,proc_ra_nr: add temporary flag to skip RAR reception
this will be removed again as soon as the eNB supports full RAR
transmission.
3 years ago
Andre Puschmann d78cbdf9bb ue,proc_ra_nr: fix retransmission of PRACH after failed RAR rx
if the backoff value is calculated to be zero, don't start
a timer but tx new preamble directly
3 years ago
Xavier Arteaga c9183326ce Clean up some code and minor change 3 years ago
Xavier Arteaga dbb10dd6a2 Hold worker thread until baseband is transmitted 3 years ago
Xavier Arteaga 0c7239e5df SRSUE: add RF channel offset 3 years ago
Xavier Arteaga b57df4db10 Refactored worker_end mechanism for concurrent workers 3 years ago
Andre Puschmann e833751031 rrc_nr: add CSI config packing 3 years ago
Andre Puschmann f181733c7e rrc_nr,enb: add more fields to spcell cfg dedicated 3 years ago
David Rupprecht 04ef6e120d Added new SIM functions to get MCC, MNC and MSIN 3 years ago
David Rupprecht 9172059078 Supply ctor with logger instead of fetching 3 years ago
Xavier Arteaga bb4f469794 Integrated SR decoder in gNb 3 years ago
Andre Puschmann fc8fe032ff rrc_nr,endc: add more fields to NR RRC Reconfig for EN-DC activation
adds a big chunk of new fields to the reconfig packing code,
tested with srsUE
3 years ago
faluco 7b7ecb7983 Add a new configuration option that controls PDSCH baseband sample dump to a file on KO. 4 years ago
Xavier Arteaga b25681f9de gnb,prach: add PRACH to gNB
rebase of Xavier's feature_gnb_prach branch
4 years ago
David Rupprecht fb92118bb7 Add 5G NAS infrastructure 4 years ago
David Rupprecht 505225d845 Added ue nas base class with security functions 4 years ago
David Rupprecht 7fa85ab336 Added nas test common file 4 years ago
David Rupprecht 59ca11db68 Added missing target_link_libs 4 years ago
Andre Puschmann 9d6d437ba5 mac_nr,ue: don't decode RAR PDU that couldn't be decoded
ignore RAR PDU when PDSCH wasn't OK
4 years ago
Andre Puschmann c7d29f4af1 ttcn3: fix potential deadlock
* fix a few races detected with TSAN in SR proc of the DUT
* fix deadlock caused by sync_queue_size set to 1
4 years ago
Andre Puschmann 6c82d63aa6 remove legacy PNF/VNF code
the code hasn't been maintained for a while an likely needs to be
adapted for a real-world scenarios.

in order to avoid having to maintain two MAC/PHY interfaces we
remove the code from now.
4 years ago
Xavier Arteaga 54a12870ec SRSUE: avoid negative SR transmission in NR 4 years ago
Andre Puschmann f2f9082d09 ue,rrc_meas: fix invalid access to field when eport_quant_cell_nr_r15 is not present 4 years ago
Xavier Arteaga e764a26136 Integrated PUCCH decoding in gNb 4 years ago
Xavier Arteaga e3afd945bc Refactored NR HARQ ACK feedback 4 years ago
Xavier Arteaga eecaccb541 Added NR PHY helpers 4 years ago
Andre Puschmann 5dbeecdbb5 ue,upper: fix linking on 32bit platforms with missing atomic libs 4 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.
4 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.
4 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.
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
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
Andre Puschmann 8087bb01e4 nas: log message when airplane mode timer expires 4 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.
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
Xavier Arteaga aef3e5a40a More NR PHY test and GNB PHY development 4 years ago
Xavier Arteaga d49734b1bc SRSENB: Refactor to accomodate 5G NR 4 years ago
Andre Puschmann e248e086ed ttcn3_dut: reset TFT matcher object when DUT is switched off 4 years ago
Andre Puschmann 7a85191323 nas: call GW for all removed EPS bearers
this makes sure that GW can also remove all associated TFTs
4 years ago
Andre Puschmann ab0fba5449 gw: try to remove TFTs for all non-default EPS bearer
GW needs to reset its default EPS bearer when it is removed
and also try to remove all TFTs for a non-default bearere when
it is removed.
4 years ago
Andre Puschmann 5313fb99d6 tft: add helper to delete all TFTs for EPS bearer
when a EPS bearer is removed, all associated TFTs need
to be removed as well.
4 years ago
Andre Puschmann eef9eb80c4 ttcn3_ue: fix removal of dedicated EPS bearer 4 years ago
Andre Puschmann 60f8a8db1c nas,tft: add support for TFT modification 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 3f9c069ff7 ue_stack_lte: add RLC and PDCP entities for NR 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
Andre Puschmann e2c496d825 srsue,mac: fix race between PHY and MAC when stopping UE
the issue let to unwanted log warning at the end of the UE
execution when the PHY was still pushing DL PDUs while MAC
was already stopped.

This fixes #3003
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
Ismael Gomez 9c60ef092c Fix test for non-contention HO 4 years ago
Ismael Gomez 66eb6f20f1 Fix non-contention HO missing the T-CRNTI 4 years ago
Ismael Gomez 5aa5a8e997 Revert UE changes 4 years ago
Ismael Gomez e35a0d72fa Revert UE changes 4 years ago
Ismael Gomez aa5944da78 Fix T-CRNTI push pdu 4 years ago
Ismael Gomez c206d3c0fa fix ttcn3 tests 4 years ago
Ismael Gomez dd9889e07c Add carrier index to uplink PCAP captures 4 years ago
Francisco 9139f88b31 fix,srsue: defer enqueuing of the rrc reconf complete message to avoid that it goes in the UL grant whose PDCCH was scheduled in the TTI as the PDSCH that carried the HO command 4 years ago
Xavier Arteaga fc5d069743 SRSUE: Default PHY measurements to NAN 4 years ago
Andre Puschmann 94959b5318 srsue,test: reorganize test folders and move to components like we in PHY 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 a31f3d42ce Added RF NR search tool and added baseband file 4 years ago
Xavier Arteaga 157af40417 Fix shadow variables in sync.cc 4 years ago
Xavier Arteaga 3a011155db SRSUE: Make sure PHY reset is done when SYNC is IDLE 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
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 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
Xavier Arteaga d74f70289e SRSUE: fix last reported RI state 4 years ago
Andre Puschmann b0a2f31478 prach: protect configuration and state getters with mutex
purely TSAN with unit-test based approach that protects
the state getters and configuration routines with a mutex
4 years ago
Andre Puschmann 98a91a2057 sync: protect sync_state, access ue_sync object only from one thread
races detected with TSAN, primarily the ue_sync object which isn't
thread-safe is accessed by all workers to set the CFO and by the
sync thread to receive samples (which read the CFO).

The patch introduces shadow variables that are updates from the
main thread before/after the sync is executed. The atomic shadow
variables can then be read from otherthreads without holding a
mutex, i.e. blocking the sync.
4 years ago
Xavier Arteaga 2d0a21f779 Move radio frequency mapping out of the PHY common into the PHY reset method 4 years ago
Andre Puschmann 018c734b09 dl_harq: fix unlocking of unlocked mutex bug detected by TSAN
in the mac_test the tb_decoded() method was called twice for
the 2nd codeword, causig TSAN to complain about an unlocked mutex
being unlocked.

The patch resolves the potential issue only calling tb_decoded
for a grant/tb thas has a non-zero MCS.

The patch also adjusts the reset function to have a safe and "unsafe"
version to be called from inside the class, similar to other
classes where we do the same.
4 years ago
Xavier Arteaga 5c55ff24ec Minor UE aesthetical changes 4 years ago
Xavier Arteaga 807b60988d Wait for PHY workers to transmit before considering SYNC in IDLE 4 years ago
Xavier Arteaga 93b35676e7 Solve concurrency issue when setting up SCell measurement 4 years ago
Xavier Arteaga 7185ec6beb PHY CC configuration is stashed and applied in the next TTI 4 years ago