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
Xavier Arteaga
9c3dd56398
Added PDCCH DMRS interleaved mapping
2021-08-26 09:34:43 +02:00
Xavier Arteaga
d61d6aa59f
Integrated CORESET0 into UE's RRC
2021-08-26 09:34:43 +02:00
Francisco Paisana
7a527cd09e
fix,lte: zero-initialize phy_meas_t in rlf test
2021-08-24 20:15:33 +02:00
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
2021-08-24 20:15:22 +02:00
Francisco Paisana
f518861ebc
fix location of support/ folder. Created macros for ASSERT_EQ and ASSERT_NEQ
2021-08-23 16:47:54 +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
Andre Puschmann
fc2b6a7fb5
ue,rrc: fail NR reconfiguration if mac-logicalChannelConfig is not present
2021-08-07 12:33:10 +02:00
Andre Puschmann
e6d9ec40ef
ue,rrc: let RRC reconfig fail when LCID cannot be derived from DRB id
2021-08-07 12:33:10 +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
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
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
c9183326ce
Clean up some code and minor change
2021-07-28 12:14:37 +02:00
Xavier Arteaga
dbb10dd6a2
Hold worker thread until baseband is transmitted
2021-07-28 12:14:37 +02:00
Xavier Arteaga
0c7239e5df
SRSUE: add RF channel offset
2021-07-28 12:14:37 +02:00
Xavier Arteaga
b57df4db10
Refactored worker_end mechanism for concurrent workers
2021-07-28 12:14:37 +02:00
Andre Puschmann
e833751031
rrc_nr: add CSI config packing
2021-07-28 10:26:09 +02:00
Andre Puschmann
f181733c7e
rrc_nr,enb: add more fields to spcell cfg dedicated
2021-07-28 10:26:09 +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
Xavier Arteaga
bb4f469794
Integrated SR decoder in gNb
2021-07-21 10:40:40 +02:00
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
2021-07-19 12:53:09 +02:00
David Rupprecht
0217bf5332
Fixed name space for rrc ue
2021-07-16 10:09:07 +02:00
faluco
7b7ecb7983
Add a new configuration option that controls PDSCH baseband sample dump to a file on KO.
2021-07-14 16:17:23 +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
David Rupprecht
59ca11db68
Added missing target_link_libs
2021-07-14 09:41:37 +02:00
Andre Puschmann
9d6d437ba5
mac_nr,ue: don't decode RAR PDU that couldn't be decoded
...
ignore RAR PDU when PDSCH wasn't OK
2021-07-14 09:28:51 +02:00
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
2021-07-13 10:16:36 +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
Andre Puschmann
f2f9082d09
ue,rrc_meas: fix invalid access to field when eport_quant_cell_nr_r15 is not present
2021-07-06 21:57:44 +02:00
Xavier Arteaga
e764a26136
Integrated PUCCH decoding in gNb
2021-07-05 17:51:27 +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
Andre Puschmann
5dbeecdbb5
ue,upper: fix linking on 32bit platforms with missing atomic libs
2021-07-05 08:59:19 +02:00
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.
2021-07-02 17:22:49 +02:00
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.
2021-07-02 17:22:49 +02:00
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.
2021-07-02 17:22:49 +02:00
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>
2021-07-01 17:39:54 +02:00
Pedro Alvarez
1b676aa406
Moved lib GTPU to its own folder
2021-06-30 18:19:20 +01:00
Pedro Alvarez
865298f8d5
Moved lib PDCP to its own folder
2021-06-30 18:19:20 +01:00
Pedro Alvarez
171d5727be
Moved lib RLC into it's own folder
2021-06-30 18:19:20 +01:00
Andre Puschmann
8087bb01e4
nas: log message when airplane mode timer expires
2021-06-28 17:35:02 +02:00
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.
2021-06-28 17:35:02 +02:00
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
2021-06-28 17:35:02 +02:00
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.
2021-06-28 17:35:02 +02:00
Xavier Arteaga
aef3e5a40a
More NR PHY test and GNB PHY development
2021-06-28 00:27:36 +02:00
Xavier Arteaga
d49734b1bc
SRSENB: Refactor to accomodate 5G NR
2021-06-28 00:27:36 +02:00
Andre Puschmann
e248e086ed
ttcn3_dut: reset TFT matcher object when DUT is switched off
2021-06-24 16:52:58 +02:00
Andre Puschmann
7a85191323
nas: call GW for all removed EPS bearers
...
this makes sure that GW can also remove all associated TFTs
2021-06-24 16:52:58 +02:00
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.
2021-06-24 16:52:58 +02:00
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.
2021-06-24 16:52:58 +02:00
Andre Puschmann
eef9eb80c4
ttcn3_ue: fix removal of dedicated EPS bearer
2021-06-24 16:52:58 +02:00
Andre Puschmann
60f8a8db1c
nas,tft: add support for TFT modification
2021-06-24 16:52:58 +02:00
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.
2021-06-24 16:52:58 +02:00
Andre Puschmann
3f9c069ff7
ue_stack_lte: add RLC and PDCP entities for NR
2021-06-24 16:52:58 +02:00
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.
2021-06-24 16:52:58 +02:00
David Rupprecht
6d5391756c
Refactor build of RLC NR config
2021-06-24 16:52:58 +02:00
David Rupprecht
d1d8500ce5
Add testcase for reconfiguration
2021-06-24 16:52:58 +02:00
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
2021-06-24 16:46:25 +02:00
Xavier Arteaga
b1e4720721
SRSUE/SRSENB: added tx_enable flag in worker_end
2021-06-21 18:07:53 +02:00
Xavier Arteaga
027201d457
SRSUE/SRSENB: Refactor NR workers to generalise lower PHY
2021-06-21 18:07:53 +02:00
Ismael Gomez
9c60ef092c
Fix test for non-contention HO
2021-06-21 11:46:21 +02:00
Ismael Gomez
66eb6f20f1
Fix non-contention HO missing the T-CRNTI
2021-06-21 11:46:21 +02:00
Ismael Gomez
5aa5a8e997
Revert UE changes
2021-06-18 23:17:14 +02:00
Ismael Gomez
e35a0d72fa
Revert UE changes
2021-06-18 23:17:14 +02:00
Ismael Gomez
aa5944da78
Fix T-CRNTI push pdu
2021-06-18 23:17:14 +02:00
Ismael Gomez
c206d3c0fa
fix ttcn3 tests
2021-06-18 23:17:14 +02:00
Ismael Gomez
dd9889e07c
Add carrier index to uplink PCAP captures
2021-06-18 23:17:14 +02:00
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
2021-06-14 19:27:55 +01:00
Xavier Arteaga
fc5d069743
SRSUE: Default PHY measurements to NAN
2021-06-14 09:21:29 +02:00
Andre Puschmann
94959b5318
srsue,test: reorganize test folders and move to components like we in PHY
2021-06-10 15:18:42 +02:00
Pedro Alvarez
a53b321ab8
Release UE upon reception of integrity error.
2021-06-08 18:52:22 +01:00
Pedro Alvarez
299d2ee35d
Added interface to make the PDCP notify the RRC of integrity check
...
failures.
2021-06-08 18:52:22 +01:00
Xavier Arteaga
6123926353
Fix NR cell search frequency
2021-06-08 14:55:12 +02:00
Xavier Arteaga
a79d518799
Added SSB search measure/decode file test
2021-06-08 14:55:12 +02:00
Xavier Arteaga
5181a9d64c
Implemented PBCH blind decode
2021-06-08 14:55:12 +02:00
Xavier Arteaga
a31f3d42ce
Added RF NR search tool and added baseband file
2021-06-08 14:55:12 +02:00
Xavier Arteaga
157af40417
Fix shadow variables in sync.cc
2021-06-08 10:21:38 +02:00
Xavier Arteaga
3a011155db
SRSUE: Make sure PHY reset is done when SYNC is IDLE
2021-06-08 10:21:38 +02:00
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.
2021-06-04 13:23:54 +02:00
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).
2021-06-03 21:11:47 +02:00
Andre Puschmann
107f6334dd
compile: fix compilation on 32bit systems that require -latomic
2021-06-03 20:45:02 +02:00
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
2021-06-03 15:33:38 +01:00
Xavier Arteaga
d74f70289e
SRSUE: fix last reported RI state
2021-06-02 18:12:36 +02:00
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
2021-06-02 09:36:44 +02:00
Andre Puschmann
d2ec3ca5e1
intra_measure_base: fix race detected with TSAN
...
use mutex to protect state getters
2021-06-02 09:36:44 +02:00