Commit Graph

1057 Commits

Author SHA1 Message Date
Andre Puschmann 28bd93be40 ue,sa: add minimal cell selection and setup request procedure
skeleton based on EUTRA procedures
2021-11-30 18:13:23 +01:00
Ismael Gomez 219bae4fd3 srsue,sa: dummy rrc_nr to initiate dummy cell_select and phy_cfg 2021-11-30 14:45:26 +01:00
Ismael Gomez c71ab70b83 Completed basic sync module with bypass camping. Removed ue_phy_nr and ue_phy_lte base classes 2021-11-30 14:45:26 +01:00
Ismael Gomez 6947f87bcb Add minimum NR SA logic in parent PHY class 2021-11-30 14:45:26 +01:00
Ismael Gomez fb897d2998 Refactor PHY interfaces to remove difference between SA and NSA PHY 2021-11-30 14:45:26 +01:00
Xavier Arteaga fb17e3326f More development in UE NR SA cell search 2021-11-30 14:45:26 +01:00
Xavier Arteaga 47b857db25 Initial gnb emulator 2021-11-30 14:45:26 +01:00
Xavier Arteaga b1bcc1a8c0 Initial UE NR SA PHY classes 2021-11-30 14:45:26 +01:00
Andre Puschmann 7227f03314 ue,rrc_nr: refactor reconfig procedure to own source file
preparation to add next procedure
2021-11-29 12:44:32 +01:00
Andre Puschmann ccd4334672 rrc_nr: add basic interface for NAS 2021-11-29 12:44:32 +01:00
Andre Puschmann a15962c817 ue,rrc: move NR RRC into own folder 2021-11-29 12:44:32 +01:00
faluco 3b2f0d2f65 Fix several issues in GW class:
- Avoid triggering an assertion when the  gw thread is pending termination.
- Re-order gw::stop method to avoid a race condition when closing the TUN device while the gw thread is still running.
2021-10-28 17:42:08 +02:00
faluco f1385640c4 Fix data race in proc_bsr and ul_harq classes. 2021-10-27 18:15:28 +02:00
faluco 92b81b200f Fix data race in ul_harq_process::current_irv. 2021-10-26 19:04:02 +02:00
faluco 91677a9dcb Fix data race in sync::state, the stop() did not acquire the required lock. 2021-10-25 20:30:57 +02:00
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>
2021-10-25 10:51:02 +02:00
faluco 5f93ff6ed0 Batch of data race fixes in the following classes: RLC AM, Intra measure, UL HARQ, PHY common. 2021-10-23 21:26:00 +02:00
Ismael Gomez c096270fc7 ue,nr: ignore NDI if received on T-CRNTI or RAR 2021-10-21 22:17:30 +02:00
faluco d7e8d6bf65 Fix data race in mux_nr::add_bsr_ce. 2021-10-20 18:08:41 +02:00
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>
2021-10-20 17:47:00 +02:00
Ismael Gomez d32bfa3756 remove warning when UE is already in camping 2021-10-19 15:16:52 +02:00
Francisco 81174bda64 nr,ue,rrc: release NR logical channels during RRC release 2021-10-15 18:28:09 +01:00
Bedran Karakoc 0507d9df2b nas,nr: Fix ciphering and sequence numbers in NAS 2021-10-15 14:47:22 +02:00
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.
2021-10-14 21:21:58 +02:00
Andre Puschmann 1068a84bd0 sync: fix typo 2021-10-14 21:21:58 +02:00
Xavier Arteaga 1bffebe0bf Removed cached PRACH signals 2021-10-14 09:46:15 +02:00
Alejandro Leal Conejos 1a64c6adad Enum fixes so clang 12 can build the repo 2021-10-14 08:48:04 +02:00
Xavier Arteaga 4cea3d92bd NR PHY accepts multiple SF PRACH sequence 2021-10-13 11:00:03 +02:00
David Rupprecht 5c44d774d0 Added 5G Metrics 2021-10-12 10:48:10 +02:00
David Rupprecht 59e847ba08 Added NAS 5G args 2021-10-12 10:48:10 +02:00
David Rupprecht 5910d8847a Split NAS security ctxt 2021-10-12 10:48:10 +02:00
Francisco b8976ca463 nr,ue,rrc: avoid configuring the CSI until NR RA is complete 2021-10-08 12:15:55 +01:00
Francisco 47e5e85449 refactor: clean unnecessary includes of the asn1/rrc_nr.h 2021-10-07 23:08:07 +01:00
Bedran Karakoc 1e1e1420b1 Return AUTS in authentication failure for case AUTH_SYNCH_FAILURE 2021-10-06 20:01:00 +02:00
Bedran Karakoc de750fad09 Added helper function for replayed security capabilities 2021-10-06 20:01:00 +02:00
Bedran Karakoc 193ec4abfa Trigger switch_off in NAS 2021-10-06 20:01:00 +02:00
Bedran Karakoc 441251bdd1 Remove unused parameter 2021-10-06 20:01:00 +02:00
Bedran Karakoc a4cc9b6ca0 Fix handle_authentication_request and add handler for authentication reject 2021-10-06 20:01:00 +02:00
Bedran Karakoc e8bcc0a61e Added handler for identity request and sender for identity response 2021-10-06 20:01:00 +02:00
Bedran Karakoc 850606f20b Added deregistration (UE terminating) 2021-10-06 20:01:00 +02:00
Xavier Arteaga d5b34696b4 Sepparate CSI report configuration from quantification and integrate in nr_phy_test with assertions 2021-10-06 16:33:51 +02:00
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.
2021-10-06 14:47:23 +02:00
faluco 6c4548c243 Fix several data races in LTE and NR harq classes. 2021-10-06 14:47:23 +02:00
faluco 666cb73cc9 Fix data race in phy_common::set_neighbour_cells. 2021-10-02 17:40:34 +02:00
faluco 72088dadb5 Fix race conditions in intra measure class. 2021-10-02 17:40:34 +02:00
Andre Puschmann bf2606f94e ue,mac_nr: fix race condition by using thread-safe RNTI class 2021-09-30 10:36:29 +02:00
Ismael Gomez c09f09b7be Move rrc_common from srsue to lib 2021-09-29 21:39:56 +02:00
Fabian Eckermann 8830c2796f Add support for NSA FDD on band n3, n5 and n7. 2021-09-29 16:03:44 +02:00
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
2021-09-27 21:15:30 +02:00
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.
2021-09-27 13:26:21 +02:00
Bedran Karakoc 43915550cc NGAP GTP Bearer Establishment 2021-09-22 15:15:47 +02:00
David Rupprecht 3712983308 Added PDU Session est request 2021-09-22 15:15:47 +02:00
David Rupprecht c670383ae9 Added NAS 5G functions incoming msg and reg proc 2021-09-22 15:15:47 +02:00
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.
2021-09-22 13:26:59 +02:00
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.
2021-09-22 10:56:56 +02:00
Ismael Gomez ad646f436c Ignore PDSCH during cell selection 2021-09-21 11:09:34 +02:00
Xavier Arteaga de00b80228 Review NR NSA CFO estimation and compensation 2021-09-20 20:48:08 +02:00
faluco c2b705c5ce Fix several data races in proc_phr, class needs to be fully protected since most member variables are accessed by different threads. 2021-09-17 11:34:28 +02:00
faluco 6b07e886b7 Fix data race in is_first_ul_grant. 2021-09-17 11:34:28 +02:00
faluco 1e3ba607ce Fix data race in is_pending_tx_end. 2021-09-17 11:34:28 +02:00
faluco 7dae4a491e Fix data race in ue_stack_lte::ul_dropped_sdus. 2021-09-17 11:34:28 +02:00
faluco 1796e12084 Fix data race in ul_harq_entity. 2021-09-17 11:34:28 +02:00
faluco 2b73beb3dd Fix data race in ul_harq. 2021-09-17 11:34:28 +02:00
David Rupprecht e8a464228d Cleaned string helpers 2021-09-16 15:24:32 +02:00
Andre Puschmann ab6210b1fc ue,proc_sr_nr: add mutex to protect access from PHY and Stack
also detected by TSAN
2021-09-16 15:22:59 +02:00
Andre Puschmann 2248e63219 ue,proc_ra_nr: add mutex to protect access from PHY and Stack
detected with TSAN
2021-09-16 15:22:59 +02:00
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.
2021-09-16 15:22:59 +02:00
Andre Puschmann f382a7c7db Revert "ue,proc_ra_nr: add temporary flag to skip RAR reception"
This reverts commit 28668aac34.
2021-09-09 14:29:04 +02:00
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
2021-09-09 14:29:04 +02:00
Andre Puschmann 54ab64327a ue,mac_nr: move BSR levels lookup table into lib header
prepare for shared use with gNB
2021-09-09 14:29:04 +02:00
David Rupprecht a9a23214b0 Added more 5G security kdfs
Added new 5G SIM functions

Added const parameters for security functions
2021-09-07 11:06:56 +02:00
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
2021-09-07 11:06:56 +02:00
Francisco Paisana f4df55c245 stack lte: separate bearer manager into two classes, one for the ue and one for the enb 2021-09-03 12:06:17 +02:00
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
2021-09-02 17:12:04 +02:00
Andre Puschmann 40499e6b6d ue_stack_lte: use std::atomic for running var 2021-08-31 17:01:50 +02:00
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
2021-08-31 17:00:59 +02:00
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.
2021-08-31 17:00:59 +02:00
Xavier Arteaga 8aa7ae7d95 Remove unused attribute 2021-08-26 09:34:43 +02:00
Xavier Arteaga 4cb633e6e6 UE dicards NR CFO measurement if SNR is negative 2021-08-26 09:34:43 +02:00
Xavier Arteaga 83b9b2d1ff Implemented UE open loop CFO compensation for NR 2021-08-26 09:34:43 +02:00
Ismael Gomez 7839ab09dc Add RLF-Reportv9 to srsUE 2021-08-23 16:34:33 +02:00
David Rupprecht 3217c00cfc Adjusting NAS base security function to 5G 2021-08-19 11:03:06 +02:00
Xavier Arteaga cba6df3722 Extended NR PHY robustnes against wrong RRC configuration 2021-08-03 17:30:08 +02:00
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.
2021-08-02 15:18:47 +02:00
Andre Puschmann 99dc94ab38 nas: make state variables atomics
NAS states and substates maybe be requested from other threads so
they need to be protected.

Note that the caller still needs to hold it's own mutex if different
actions are required based on the state.
2021-08-01 11:41:11 +02:00
Xavier Arteaga b57df4db10 Refactored worker_end mechanism for concurrent workers 2021-07-28 12:14:37 +02:00
David Rupprecht 04ef6e120d Added new SIM functions to get MCC, MNC and MSIN 2021-07-27 09:26:52 +02:00
Andre Puschmann 9c298b203d srsue: reduce the default RRC release to 8 (minimum value) 2021-07-26 11:04:02 +02:00
David Rupprecht 2563a78f34 Added basic 5G NAS metrics 2021-07-22 19:41:26 +02:00
David Rupprecht 9172059078 Supply ctor with logger instead of fetching 2021-07-22 14:12:39 +02:00
David Rupprecht 0217bf5332 Fixed name space for rrc ue 2021-07-16 10:09:07 +02:00
Xavier Arteaga b25681f9de gnb,prach: add PRACH to gNB
rebase of Xavier's feature_gnb_prach branch
2021-07-14 14:30:58 +02:00
David Rupprecht fb92118bb7 Add 5G NAS infrastructure 2021-07-14 13:38:08 +02:00
David Rupprecht 505225d845 Added ue nas base class with security functions 2021-07-14 13:38:08 +02:00
David Rupprecht 7fa85ab336 Added nas test common file 2021-07-14 13:38:08 +02:00
Andre Puschmann e0d9afc342 proc_ra: fix race detected with TSAN
rar_received is accessed from PHY worker and Stack thread
2021-07-13 10:16:36 +02:00
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.
2021-07-12 19:24:02 +02:00
Xavier Arteaga 54a12870ec SRSUE: avoid negative SR transmission in NR 2021-07-09 22:32:40 +02:00
Xavier Arteaga e3afd945bc Refactored NR HARQ ACK feedback 2021-07-05 17:51:27 +02:00
Xavier Arteaga eecaccb541 Added NR PHY helpers 2021-07-05 17:51:27 +02:00