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
850606f20b
Added deregistration (UE terminating)
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
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
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
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
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
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
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
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
David Rupprecht
e8a464228d
Cleaned string helpers
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
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
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
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
Codebot
de59c88954
Merge branch 'next' into agpl_next
...
# Conflicts:
# srsue/hdr/stack/bearer_manager.h
# srsue/src/stack/bearer_manager.cc
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
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
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
635d0bc6e9
Merge branch 'next' into agpl_next
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
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
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
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
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
Andre Puschmann
e0d9afc342
proc_ra: fix race detected with TSAN
...
rar_received is accessed from PHY worker and Stack thread
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
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
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
171d5727be
Moved lib RLC into it's own folder
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
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
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
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
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
Ismael Gomez
e35a0d72fa
Revert UE changes
4 years ago
Ismael Gomez
dd9889e07c
Add carrier index to uplink PCAP captures
4 years ago
Codebot
d9cb5d01ff
Merge branch 'next' into agpl_next
4 years ago
Pedro Alvarez
299d2ee35d
Added interface to make the PDCP notify the RRC of integrity check
...
failures.
4 years ago
Codebot
73a61b884e
Merge branch 'next' into agpl_next
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
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
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
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
Codebot
5fe9a14aa5
Merge branch 'next' into agpl_next
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
Codebot
887f1da10c
Merge branch 'next' into agpl_next
4 years ago
Codebot
aeb4a5fc9d
Merge branch 'next' into agpl_next
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
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
Andre Puschmann
e3b77fd82a
rrc_nr: set timeout for NR cell measurement to 250ms
...
the low timout of 10ms was:
1) causing too frequent measurement reports
2) causes a MO ping test to fail where the ICMP request
was sent on the LTE carrier but never got a reply because
the MCG addition was inbetween
4 years ago
David Rupprecht
d2aa25d451
Added option for simulated measurement
4 years ago
Xavier Arteaga
715f8900a8
Selected NR RA procedure PRACH send timeout according to system frame number period from PRACH PHY tables
4 years ago
Andre Puschmann
4b3538aaa8
{dl,ul}_harq: fix metrics calculation
...
rewrite metrics calculation for NR HARQ and remove
unneeded operations.
4 years ago
Andre Puschmann
b6f2c80f66
mac_common: add helper method to get total buffer state
4 years ago
David Rupprecht
a064e85c54
rename common lte header
4 years ago
David Rupprecht
81ad72b0ff
Refactor srb and drb handling
4 years ago
David Rupprecht
91ff8a2e6d
Add rrc_nr to rlc init function
4 years ago