2433 Commits (98494a1ea267b896ecd07ffbcd39874cde6db781)

Author SHA1 Message Date
faluco f1385640c4 Fix data race in proc_bsr and ul_harq classes. 3 years ago
faluco 3f0d4f0293 Fix data races in proc_bsr_nr and proc_ra_nr. 3 years ago
Fabian Eckermann 1c75ed10a8 Initialize variable. 3 years ago
Ismael Gomez d972fb368c
Some LGTM fixes (#3564)
* Fix LGTM issues

* ue: add logging to switch on function

* Fix new LGTM issues
3 years ago
Alejandro Leal Conejos 2a2518b7e4 Fixes coverity 372096 3 years ago
Ismael Gomez bdbaf7357a ue,nr: Protect pending_cfgs in PHY worker_pool 3 years ago
faluco b058945142 Fix data race in sync::current_earfcn. 3 years ago
faluco 92b81b200f Fix data race in ul_harq_process::current_irv. 3 years ago
faluco dc31fb05a3 Fix ODR issue detected by ASAN in arch for the srsran_verbose global variable. 3 years ago
Pedro Alvarez a40a2dc191 Disable integrity/encription at PDCP-NR, as it will break when packets arrive out-of-order. 3 years ago
faluco 91677a9dcb Fix data race in sync::state, the stop() did not acquire the required lock. 3 years ago
Xavier Arteaga ebab12403f
Asynchronous NR PHY configuration (#3527)
* Fix a race condition when accessing the NR PHY cfg by the RRC and phy workers.
Rework how the phy cfg is handled, now workers have their own copy that gets updated after a reconfig moving it out of the state class.

* Default initialize sf_len member in sf_worker for consistency.

* Asynchronous NR PHY configuration

* Fix compilation

* Corrected method override and fix unitialised value

* Added carrier equal comparison to avoid aligment byte padding comparison

Co-authored-by: faluco <borja.ferrer@softwareradiosystems.com>
3 years ago
faluco 28887a4384 Relax memory ordering for atomic load for the ul_harq::current_tx_nb member. 3 years ago
faluco 3ecc8bb4c6 Fix data race in gw::deactivate_eps_bearer. 3 years ago
faluco 5f93ff6ed0 Batch of data race fixes in the following classes: RLC AM, Intra measure, UL HARQ, PHY common. 3 years ago
Andre Puschmann dd5eda04e3 ue,rrc_nr: clear DRB to LCID lookup during RRC release 3 years ago
Pedro Alvarez fbcffb84bd Check if RLC is suspended before transmiting PDCP SDU.
This was done to avoid integrity issues, when the UE's RRC erroneously sent
measurement reports while the re-establishment was already in progress.

As errously sending PDCP PDUs on DRBs can cause issues as well, this was
disabled too.
3 years ago
faluco 904d05d4c4 Fix data race in bsr_proc::print_state().
While there, early exit if the log info channel is disabled to avoid formatting a string that will not be used.
3 years ago
Ismael Gomez c096270fc7 ue,nr: ignore NDI if received on T-CRNTI or RAR 3 years ago
Ismael Gomez 0de984d12f srsue: protect access to phy common shared measurement 3 years ago
Pedro Alvarez 7155de91ca Added command to forcefully flush the buffers on srsenb and srsue. 3 years ago
faluco d7e8d6bf65 Fix data race in mux_nr::add_bsr_ce. 3 years ago
Carlo Galiotto 4e3564a8a2 mac,stdout: add PUSCH and PUCCH SINR to stdout
This commit implements the PUCCH and PUSCH metrics in the MAC,
to be displayed in the eNB console.

Signed-off-by: Carlo Galiotto <carlo@srs.io>
3 years ago
Carlo Galiotto ebaa71d190 ue,stdout: fix the SNR formatting in UE console (NR)
When the SNR value is INF, the conversion to (int) causes
-2147483648 to be displayed in the UE console.
This commit fixes the formatting, so that the values INF or
NaN would be displayed as N/A

NOTE: The issue of getting an INF value for the reported SNR metric
still needs to be addressed separately.
3 years ago
Ismael Gomez d32bfa3756 remove warning when UE is already in camping 3 years ago
Andre Puschmann 97d43eb044 mac_nr_test: add PDU packing test for two SDUs from different LCs 3 years ago
Andre Puschmann d4a4da7ecc mux_nr: fix tiny issue in mux unit when adding SDUs of different logical channels
this issue has a tiny affect when adding new SDUs from different logical channels
to an UL MAC PDU.

Since the MAC subPDU header is accounted for twice, less SDU payload may be packed.

The patch calculates the required header space and accounts for it in the scheduling.
Howerver, it is only substracted from the available space when an SDU was actually added.
3 years ago
Andre Puschmann cc87af2986 ue,rrc: simplify code 3 years ago
Francisco 08c96b0e35 nr,ue,mac: added TODO comment warning about missing functionality in srsue::mac_nr::reset method 3 years ago
Francisco 81174bda64 nr,ue,rrc: release NR logical channels during RRC release 3 years ago
Xavier Arteaga e93503bae3 Minor changes 3 years ago
Xavier Arteaga 3c40cd2840 Improved NR PHY logging info 3 years ago
faluco dacf40f63e Delete move constructor and move assignment operator explictly for mac_pcap_base and s1ap_pcap classes.
Move emergency handlers header file into the support folder.

Refactored signal handling:
- Remove the dependency with the running static variable in the header file.
- Move implementations down to cc files.
- Allow specifying a new signal handler that will be used to stop the applications.
- Move signal handling files to support.
3 years ago
faluco 9075251627 Move the cleanup code from the signal handlers down to the new emergency handlers for the ue, epc and enb. 3 years ago
Bedran Karakoc 0507d9df2b nas,nr: Fix ciphering and sequence numbers in NAS 3 years ago
Andre Puschmann c467c3c0e6 ue,rrc_nr: remove warning when zp_csi_rs_res_to_add_mod_list is not present
we currently don't enable ZP CSI in the eNB so the warning can be removed.
3 years ago
faluco 5f648d195c Implement JSON reporting in the scell search test. 3 years ago
Andre Puschmann 908c469f30 sync: don't fail camping on cell if current and target srate match
this fixes #3437. The check/requirement for target srate to be different
to current srate isn't needed, and in fact fails for 6 PRBs where both are
indentical always.
3 years ago
Andre Puschmann 1068a84bd0 sync: fix typo 3 years ago
Andre Puschmann fed53c91d0 mac_nr_test: add TC to reproduce #3325
extend the rlc_dummy to allow providing different RLC PDUs.
add TC for issue #3325 but leave the original TV because it is very large.
3 years ago
Andre Puschmann 7cbd3d50b7 mac_sch_pdu_nr,bsr: fix length check for BSR
fix nasty bug where the length calucation for the LCID
was taking the bsr_format_nr_t that was having the same name.
3 years ago
Xavier Arteaga 1bffebe0bf Removed cached PRACH signals 3 years ago
Alejandro Leal Conejos 1a64c6adad Enum fixes so clang 12 can build the repo 3 years ago
Xavier Arteaga 753edc7d7b Force NR PRACH scaling to 0.99 of the DAC dynamic range 3 years ago
Xavier Arteaga c7940f455c More clear equation to calculate number of PRACH subframes 3 years ago
Xavier Arteaga 4cea3d92bd NR PHY accepts multiple SF PRACH sequence 3 years ago
David Rupprecht 5c44d774d0 Added 5G Metrics 3 years ago
David Rupprecht 59e847ba08 Added NAS 5G args 3 years ago
David Rupprecht 5910d8847a Split NAS security ctxt 3 years ago
Francisco b8976ca463 nr,ue,rrc: avoid configuring the CSI until NR RA is complete 3 years ago
Xavier Arteaga 9d4fd1c5cc Add NR SFN from SSB assertion and fix dummy SSB scheduling 3 years ago
Xavier Arteaga 954d6f5f8d Removed sfn_4lsb from debug trace 3 years ago
Xavier Arteaga 5afe20e7da UE loads SSB config from helper method 3 years ago
Francisco 47e5e85449 refactor: clean unnecessary includes of the asn1/rrc_nr.h 3 years ago
Joaquim 82ae0e6c37
nr_phy test: add AWGN channel simulator, add High Speed Train channel (#3288)
Add channel simulator to nr_phy tests.

UL and DL channel simulators added, with AWGN and CFO using the HST scenario. The DL AWGN is adjusted according to signal power.
3 years ago
Ismael Gomez 9d35c5d018 srsue: stop rx stream after finishing sync thread to avoid deadlock at stop 3 years ago
Ismael Gomez 8fff7f6646 Fix potential overflow in rssi_read_cnt 3 years ago
Bedran Karakoc 1e1e1420b1 Return AUTS in authentication failure for case AUTH_SYNCH_FAILURE 3 years ago
Bedran Karakoc 361ff3f37a Extend identity type handling in Identity Response 3 years ago
Bedran Karakoc de750fad09 Added helper function for replayed security capabilities 3 years ago
Bedran Karakoc 193ec4abfa Trigger switch_off in NAS 3 years ago
Bedran Karakoc 441251bdd1 Remove unused parameter 3 years ago
Bedran Karakoc a4cc9b6ca0 Fix handle_authentication_request and add handler for authentication reject 3 years ago
Bedran Karakoc e8bcc0a61e Added handler for identity request and sender for identity response 3 years ago
Bedran Karakoc 1adf67c559 Extend NAS failure causes 3 years ago
Bedran Karakoc 850606f20b Added deregistration (UE terminating) 3 years ago
Xavier Arteaga d5b34696b4 Sepparate CSI report configuration from quantification and integrate in nr_phy_test with assertions 3 years ago
faluco a9c65bd369 UE: Implement a thread safe wrapper class for accessing the mac_grant_ul_t member in ul_harq_process.
This fixes many race conditions detected by TSAN around this class.
3 years ago
faluco 6c4548c243 Fix several data races in LTE and NR harq classes. 3 years ago
Fabian Eckermann 991013ca2c Fix order of dl/ul common cfg. dl must be first. 3 years ago
Ismael Gomez 6bdeb2d6b6 Fix division by zero in JSON metrics 3 years ago
Andre Puschmann ea21232f61 ue,rrc_nr: fix SSB config warning
first read freqInfoDL then try to build SSB config
3 years ago
Xavier Arteaga c9d7db7314 Minor changes 3 years ago
Xavier Arteaga e3bd92d87c Fix SSB pattern in UE 3 years ago
Xavier Arteaga 8f90ee847a Refactor carrier frequency from PHY and fix OFDM phase compensation 3 years ago
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 666cb73cc9 Fix data race in phy_common::set_neighbour_cells. 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 6b07e886b7 Fix data race in is_first_ul_grant. 3 years ago
faluco 1e3ba607ce Fix data race in is_pending_tx_end. 3 years ago
faluco f96ee097b4 Fix data race in ue mac metrics. 3 years ago
faluco 7dae4a491e Fix data race in ue_stack_lte::ul_dropped_sdus. 3 years ago
faluco 1796e12084 Fix data race in ul_harq_entity. 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
David Rupprecht e8a464228d Cleaned string helpers 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
Francisco Paisana f4df55c245 stack lte: separate bearer manager into two classes, one for the ue and one for the enb 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
Andre Puschmann 79cdc28015 nas_test_common: call NAS layer from stack thread context
since NAS layers insn't thread safe, all calls must come from
the same thread
3 years ago
Andre Puschmann 78d60bc138 nas: remove all uses of atomic from 4G and 5G classes
the NAS classes aren't thread safe and thread-safety shouldn't be
pretended by using atomics. Remove them and add explicit notice.
3 years ago
Xavier Arteaga 8aa7ae7d95 Remove unused attribute 3 years ago
Xavier Arteaga 4cb633e6e6 UE dicards NR CFO measurement if SNR is negative 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