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
Codebot
cf4b0f1739
Merge branch 'next' into agpl_next
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
Codebot
8c3332f894
Merge branch 'next' into agpl_next
...
# Conflicts:
# srsenb/hdr/stack/upper/pdcp_nr.h
# srsenb/hdr/stack/upper/rlc_nr.h
# srsenb/src/stack/upper/pdcp_nr.cc
# srsenb/src/stack/upper/rlc_nr.cc
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
Codebot
ecd0580b9e
Merge branch 'next' into agpl_next
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
Codebot
b87b760326
Merge branch 'next' into agpl_next
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
Codebot
958542dc2b
Merge branch 'next' into agpl_next
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
Codebot
de59c88954
Merge branch 'next' into agpl_next
...
# Conflicts:
# srsue/hdr/stack/bearer_manager.h
# srsue/src/stack/bearer_manager.cc
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
Codebot
522ca4b43a
Adding AGPL copyright to new files
3 years ago
Codebot
d1d38d1826
Merge branch 'next' into agpl_next
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
Codebot
83f103fe4b
Merge branch 'next' into agpl_next
3 years ago
David Rupprecht
3217c00cfc
Adjusting NAS base security function to 5G
3 years ago
Codebot
60fb9ae9a6
Merge branch 'next' into agpl_next
3 years ago
Codebot
635d0bc6e9
Merge branch 'next' into agpl_next
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
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.
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
Andre Puschmann
9c298b203d
srsue: reduce the default RRC release to 8 (minimum value)
3 years ago
Codebot
2dd440bb76
Adding AGPL copyright to new files
3 years ago
Codebot
a8ef3ba6b2
Merge branch 'next' into agpl_next
...
# Conflicts:
# srsenb/test/common/dummy_nr_classes.h
3 years ago
David Rupprecht
2563a78f34
Added basic 5G NAS metrics
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
Codebot
3a5ee8d41a
Adding AGPL copyright to new files
3 years ago
Codebot
ccf8cfb65f
Merge branch 'next' into agpl_next
...
# Conflicts:
# lib/include/srsran/common/basic_pnf.h
# lib/include/srsran/common/basic_vnf.h
# lib/include/srsran/common/basic_vnf_api.h
# lib/src/common/basic_vnf.cc
# lib/test/common/pnf_bridge.cc
# lib/test/common/pnf_dummy.cc
# srsenb/hdr/phy/vnf_phy_nr.h
# srsenb/hdr/stack/mac/nr/sched_nr_common.h
# srsenb/hdr/stack/mac/nr/sched_nr_phy_helpers.h
# srsenb/src/phy/vnf_phy_nr.cc
# srsenb/src/stack/mac/nr/sched_nr_common.cc
# srsenb/src/stack/mac/nr/sched_nr_phy_helpers.cc
# srsue/hdr/phy/vnf_phy_nr.h
# srsue/src/phy/vnf_phy_nr.cc
3 years ago
David Rupprecht
0217bf5332
Fixed name space for rrc ue
4 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
e0d9afc342
proc_ra: fix race detected with TSAN
...
rar_received is accessed from PHY worker and Stack thread
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
Codebot
516951c41c
Merge branch 'next' into agpl_next
...
# Conflicts:
# lib/include/srsran/interfaces/rrc_nr_interface_types.h
# lib/include/srsran/phy/enb/enb_dl_nr.h
# test/phy/nr_dl_flood.cc
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
Codebot
58ca99d22a
Adding AGPL copyright to new files
4 years ago
Codebot
585e3c51c1
Merge branch 'next' into agpl_next
...
# Conflicts:
# srsenb/hdr/phy/nr/cc_worker.h
# srsenb/hdr/phy/nr/sf_worker.h
# srsenb/src/phy/nr/cc_worker.cc
# srsenb/src/phy/nr/sf_worker.cc
# test/phy/nr_phy_test.cc
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
Codebot
bfa1215b89
Merge branch 'next' into agpl_next
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
Codebot
f77261927d
Adding AGPL copyright to new files
4 years ago
Codebot
a2cc847747
Merge branch 'next' into agpl_next
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
Codebot
20f62def63
Adding AGPL copyright to new files
4 years ago
Codebot
d9cb5d01ff
Merge branch 'next' into agpl_next
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
6123926353
Fix NR cell search frequency
4 years ago
Xavier Arteaga
a79d518799
Added SSB search measure/decode file test
4 years ago
Xavier Arteaga
5181a9d64c
Implemented PBCH blind decode
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
Codebot
73a61b884e
Merge branch 'next' into agpl_next
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
d2ec3ca5e1
intra_measure_base: fix race detected with TSAN
...
use mutex to protect state getters
4 years ago
Andre Puschmann
f43e82a8a6
ue_phy_test: fix test
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
Andre Puschmann
2c975732dc
metrics_stdout: fix race detected by TSAN
4 years ago
Andre Puschmann
8ab512c2be
nas_test: fix TSAN warnings
...
remove mutex and cvar again that we used to circumvent the startup.
we now use a atomic variable to sync the main thread and the stack.
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
11a6d3160f
mac_test: include TSAN options header
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
44b6a2b55f
Fix SYNC wait for IDLE if the state is reached
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
Xavier Arteaga
235a664120
SRSUE: Removed PUSCH-DMRS/SRS pregeneration methods
4 years ago
Xavier Arteaga
aab2211058
Protect UE PHY SCell configuration
4 years ago
Xavier Arteaga
a7dcd629ef
Cell search waits for IDLE transition before launch
4 years ago
Xavier Arteaga
cc2a6dc269
Review cell selection and SCell configuration during HO
4 years ago
Xavier Arteaga
65d51f5855
Fix unitialised value
4 years ago
Andre Puschmann
b40867ffec
ue,rrc: add simple connection setup procedure
...
this is an attempt to fix #2850 by defering the transmission of
the connection setup complete until the PHY has applied
the dedicated config in the connection setup.
4 years ago
Andre Puschmann
c1ad867824
epoll_helper: use std::atomic to protect exit called from different thread
4 years ago
Xavier Arteaga
48e0fc3c99
Implemented initial PBCH decoder and refactored SSB candidate selection
4 years ago
yagoda
8d2568ed2c
small fix for console print for cyclic prefix
4 years ago
Francisco
f2a56c9139
simplification of multiqueue design.
...
- the consumer does multi-staged waiting:
1. spins first across all queues in a RR fashion
2. each queue access is done with a try_lock.
3. if the try_lock fails, it increases the number of spins needed
2. if no queue had data, the consumer sleeps for 100 usec.
- no differentiation between queues, in terms of notification features
4 years ago
Francisco
2d6a878826
change interface to create multiqueue queues
4 years ago
Francisco
f705735093
optimization - only allow some multiqueue queues to notify the multiqueue consumer of the arrival of tasks
4 years ago
Codebot
b9bcdaf1c8
Adding AGPL copyright to new files
4 years ago
Codebot
e77c197633
Merge branch 'next' into agpl_next
...
# Conflicts:
# srsue/hdr/phy/scell/intra_measure.h
# srsue/src/phy/scell/intra_measure.cc
4 years ago
yagoda
9501283c1c
fixing support for extended Cyclic Prefix
...
small cosmetic fixes of CP code
4 years ago
Xavier Arteaga
7f853446d3
Added file option to NR cell search test
4 years ago
Xavier Arteaga
5eadc06dd4
Intra-frequency miscellanous changes
4 years ago
Xavier Arteaga
170fbefbf5
Avoid SCell receiver to copy
4 years ago
Xavier Arteaga
d39402ed54
Added TTI trigger condition to intra-frequency measurement base
4 years ago
Xavier Arteaga
c80f91ac9e
Fix compilation
4 years ago
Xavier Arteaga
ac9dc6f31d
Compute Performance
4 years ago
Xavier Arteaga
0b3f4e5de0
Improvements in NR cell search
4 years ago
Xavier Arteaga
5b31654ae2
Minor aesthertical changes in nr_cell_search_test
4 years ago
Xavier Arteaga
fb7623f5b6
Initial intra frequency NR cell search and test
4 years ago
Xavier Arteaga
60015e7ceb
Made intra frequency cell search and measurment generic
4 years ago
Codebot
f3da533f6b
Merge branch 'next' into agpl_next
4 years ago
faluco
1670124926
Implement UE metrics in JSON format.
...
Added config options to control this feature.
4 years ago
Xavier Arteaga
5e6983f8e6
SRSUE: enable 256QAM in RRC NR capability message
4 years ago
Xavier Arteaga
a57336d64f
Integrate periodic SSB measurement in SRSUE and fix related defects
4 years ago
Andre Puschmann
adcfcfe012
proc_ra_nr: fix typo
4 years ago
Andre Puschmann
c45540582d
rrc: announce NR-PDCP support over EUTRA
...
preperation for Split bearer support. This patch is needed to allow
split bearer. Otherwise, even if the config is set in the eNB, it
will not enable split bearers.
4 years ago
Francisco
ef9d1b8c13
stack optimization - reduction of contention in multiqueue class
...
With the new design, each queue created in the multiqueue object has its own mutex.
Pushing tasks to separate queues will, therefore, not cause contention.
There will be, however, still contention between the popping thread and the pushing threads.
4 years ago
Xavier Arteaga
60d1708b80
Initial SSB measurement implementation
4 years ago
Codebot
5fe9a14aa5
Merge branch 'next' into agpl_next
4 years ago
Andre Puschmann
833ddc3229
build: fix linking failure on RPi 32bit
...
this fixes a linking problem with RPi 3 (and probably others) running
with Raspbian (new Raspberry Pi OS) that can't use the inline
atomic functions but instead require linking against the lib -latomic.
The CMake code is based on SoapyRTLSdr file (licensed under MIT)
https://github.com/pothosware/SoapyRTLSDR/blob/master/CheckAtomic.cmake
4 years ago
Xavier Arteaga
1396c2a1e2
Mulpiple CSI measurement fixes. Channel and sync metrics from CSI measurements
4 years ago
Xavier Arteaga
653177ca7c
SRSUE: Refactored work_dl for NR. Added NZP-CSI-RS measurement
4 years ago
Ismael Gomez
0b91598e36
Move mlockall() to main() in srsUE and srsENB
4 years ago
David Rupprecht
f0d2a22cb6
Fixed band index in rrc
4 years ago
David Rupprecht
8c194b887b
Allow NAS init function to fail
4 years ago
David Rupprecht
617fb2ba7e
Added default destructor for args
4 years ago
Xavier Arteaga
9fb091262a
Duplicate NR PDSCH transmits ACK and add ACK Tx TTI to trace
4 years ago
Xavier Arteaga
de9158eeaf
Enable NR RRC MCS table selection
4 years ago
Pedro Alvarez
17a8ec6cdd
Using estimated COUNT (from NAS overflow counter and RX SQN) for decription of NAS messaages. Should avoid issues decripting messages when the COUNT is larger than 256.
4 years ago
Codebot
30df8052ce
Merge branch 'next' into agpl_next
4 years ago
Andre Puschmann
cd061d46e6
metrics_stdout: remove obsolete if
4 years ago
Codebot
77908eed1c
Merge branch 'next' into agpl_next
4 years ago
faluco
90e23d9de6
Print in the ue stdout metrics the CC number for LTE and the RAT for NR.
4 years ago
faluco
b9be7c7594
Small cleanup in the stdout UE metrics.
...
- Switch to use fmt for formatting the output.
- Change the CC column to be rat now.
- Reworked and re-styled the column alignment.
4 years ago
Xavier Arteaga
95dafcb413
SRSUE: fix NR carrier PCI in metrics
4 years ago
Codebot
c950209902
Merge branch 'next' into agpl_next
4 years ago
Andre Puschmann
598594c51a
all: bunch of pass by const& changes suggested by LGTM
4 years ago
Xavier Arteaga
e1ff824cc2
SRSUE avoid NR SR in UCI for PUSCH
4 years ago
Xavier Arteaga
6c39a5e4ff
Added PDSCH DMRS aditional unpacking
4 years ago
Xavier Arteaga
334b308c35
Fix DCI NR configuration from main configuration
4 years ago
Xavier Arteaga
86ad0446e1
Added NR PDSCH and PUSCH resource allocating flattening
4 years ago
Codebot
887f1da10c
Merge branch 'next' into agpl_next
4 years ago
Andre Puschmann
a083b0da2a
proc_ra: only log warning if RAR wasn't received in window
...
lead to some failing tests with RF where PRACH wasn't received
correctly. recovery machanism will retransmit PRACH.
4 years ago
Codebot
aeb4a5fc9d
Merge branch 'next' into agpl_next
4 years ago
Andre Puschmann
0826b86cec
srsue: remove NR DL freq and ARFCN option
...
not required anymore as all NR carrier tuning is done
through RRC signaling
4 years ago
Andre Puschmann
4dd17aee45
rrc/phy/nr: calculate tuning freq of NR carrier from RRC signaling params
...
skip initial tuning to hard-coded NR frequency and use RRC-provided
values to calculate center frequency
4 years ago
Andre Puschmann
ff53d2b8b8
all: set of trivial changes reported by LGTM
...
mainly fixmes, unused/empty code, etc.
4 years ago
AlaiaL
58ce75d3b4
Fixes coverity 369617
4 years ago
AlaiaL
82788ca094
Fixed issues from coverity:
...
- 370233
- 370234
- 370239
- 370240
- 370241
- 370242
- 370243
- 370295
4 years ago
Matan Perelman
7ee52dc676
srsUE: Add option to filter N_id_2 / PSS to configuration
4 years ago
David Rupprecht
102a943171
Fixed naming srsLTE to srsRAN
4 years ago
David Rupprecht
fd451e8be3
Configure Short PDCP NR SN support
4 years ago
Andre Puschmann
7817f12f1f
phy_common: reduce log level to info when UL grant is tried to activate twice
...
in accordance with discussion in #2717 we reduce the log level to info
to avoid failing tests due to that event
4 years ago
Xavier Arteaga
ab6a5ef17a
Added NR DCI conversion to string for formats 1_0 and 1_1
4 years ago
Francisco
ff3fc0826b
asn1 fixes and improvements
...
- use const char* instead of std::string in enumerated<>::to_string() to avoid mallocs.
- Remove the use of "typedef", and use "using" keyword instead.
- Fix rrc_nr::setup_release_c<>::to_string() broken linkage.
4 years ago
Codebot
0a15eeb57a
Adding AGPL copyright to new files
4 years ago
Codebot
1bb31e42ab
Merge branch 'next' into agpl_next
...
# Conflicts:
# lib/include/srsran/interfaces/nr_common_interface_types.h
4 years ago