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
Andre Puschmann
ed92f2bd34
enb,mac_nr: remove EUTRA cell param for MAC-NR cell config calls
...
* the old srsran_cell_cfg_t is only carried for SIB params
* the SIB scheduling, etc needs to be ported and integrated into NR data structures
* disbable SIB test for the moment
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
c1892eb2ec
enb,nsa: refactor of SgNB addition interface
...
* update of FSM
* better integration of parameter for X2 calls
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
Andre Puschmann
88bb92dc0d
mac_nr,sched: handle C-RNTI CE
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
Francisco Paisana
2ade4628ca
stack lte: create an gtpu-pdcp adapter class that correctly converts lcids to eps bearers and vice-versa
3 years ago
Andre Puschmann
3949a727a7
enb_interface: add stack interface for RRC
...
RRC uses the interface to register/deregister EPS bearer
3 years ago
Francisco Paisana
020bec025e
sched: created class common to LTE and NR for ue buffer status management
3 years ago
Francisco Paisana
04e5c81edf
sched,nr: nr_phy_test now uses the whole mac class rather than just the scheduler
3 years ago
Xavier Arteaga
83b9b2d1ff
Implemented UE open loop CFO compensation for NR
3 years ago
Francisco Paisana
eb4999a18e
lte,pdcp: silence error message when a reconfiguration of a PDCP entity is no-op
3 years ago
Andre Puschmann
c365c16531
gnb_interfaces: inherit from EUTRA interfaces when they are identical
3 years ago
Andre Puschmann
c03623863b
enb,nsa: fix UL PDU processing
...
* remove const from pusch_info() MAC/PHY interface to allow moving unique byte buffer
3 years ago
Andre Puschmann
fc35c0ee51
enb,nsa: fix packing of DL MAC PDUs
...
* use byte_buffer_t as interface type for DL PHY-MAC interface
* fix missing clear() for new DL tx
3 years ago
Xavier Arteaga
3ae131b336
gNb creates PUSCH decode PDU
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
38f1e158a5
enb,nr: fix NR PHY PRACH init and MAC-PHY interaction
3 years ago
David Rupprecht
11f9ac75db
Added PLMN to serving network string name
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
45c1971249
mac,phy,interface: clean up and add NR interface to LTE stack
...
* remove obsolte rx_data_ind
* add mac_phy_interface_nr to LTE stack
3 years ago
David Rupprecht
04ef6e120d
Added new SIM functions to get MCC, MNC and MSIN
3 years ago
Bedran Karakoc
a6226379b4
Introducing NGAP UE context procedures
3 years ago
Xavier Arteaga
bb4f469794
Integrated SR decoder in gNb
3 years ago
Xavier Arteaga
d783fbf3a0
Reviewed NR procedure for PUCCH resource sselection and reviewed gNb PUCCH interface
3 years ago
Francisco Paisana
74d0a8adb8
sched: add subband cqi info interface to LTE scheduler
3 years ago
Andre Puschmann
8d2e81ad6f
enb,mac,nr: add basic UE object skeleton
...
refactor that also adds a basic UE object to the NR MAC
3 years ago
Francisco Paisana
09c7000201
sched,nr: update nr scheduler to use new mac nr interface types
3 years ago
Francisco Paisana
d9336bcd9e
sched,nr: creation of pool of softbuffers for NR. Now the sched NR harq manages the lifetime of the softbuffer and its forwarding to the PHY
3 years ago
Francisco
357bc10a17
feature - make minimum SNR, under which the RRC is notified with UL KO, configurable
3 years ago
Francisco
67325ab5c1
add pdcch_cqi_offset parameter to enb.conf
3 years ago
faluco
7b7ecb7983
Add a new configuration option that controls PDSCH baseband sample dump to a file on KO.
3 years ago
Xavier Arteaga
b25681f9de
gnb,prach: add PRACH to gNB
...
rebase of Xavier's feature_gnb_prach branch
3 years ago
David Rupprecht
fb92118bb7
Add 5G NAS infrastructure
3 years ago
Xavier Arteaga
ecc0b92142
Integrated PUSCH decoder in gNb
3 years ago
Andre Puschmann
fd7b9a0575
enb,nsa: add basic RRC EUTRA<>RRC NR interface for SgNB addition
3 years ago
Xavier Arteaga
5307fec2f0
Added GNB MAC UL info initial interface and fix PHY implementation
3 years ago
Xavier Arteaga
3fe9176750
Added PUCCH dedocder to slot worker
3 years ago
Xavier Arteaga
eecaccb541
Added NR PHY helpers
3 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>
3 years ago
Pedro Alvarez
171d5727be
Moved lib RLC into it's own folder
3 years ago
Francisco Paisana
4d014e7ceb
s1ap,feature: make the ts1 reloc timers configurable via the enb.conf
3 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.
3 years ago
Xavier Arteaga
6f5614a0cc
Suggested modifications on gNb MAC/PHY interface
3 years ago
Xavier Arteaga
8378c85ec4
Refactored gNb PHY
3 years ago
Xavier Arteaga
aef3e5a40a
More NR PHY test and GNB PHY development
3 years ago
Xavier Arteaga
d49734b1bc
SRSENB: Refactor to accomodate 5G NR
3 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.
3 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.
3 years ago
David Rupprecht
6d5391756c
Refactor build of RLC NR config
3 years ago
David Rupprecht
d1d8500ce5
Add testcase for reconfiguration
3 years ago
David Rupprecht
ec19919246
Fix NGAP valgrind test
3 years ago
Pedro Alvarez
aae266e848
Added configuration option for S1AP SCTP bind port
3 years ago
Xavier Arteaga
b1e4720721
SRSUE/SRSENB: added tx_enable flag in worker_end
3 years ago
Xavier Arteaga
027201d457
SRSUE/SRSENB: Refactor NR workers to generalise lower PHY
3 years ago
Bedran Karakoc
c280ac5ad6
Introducing extended NGAP functionality
...
Remove unused logger for now in ngap::ue to pass tests
3 years ago
Francisco
5a82a63bb5
bugfix,srsenb: fix intraenb handover softbuffer allocation during handover
3 years ago
Francisco
2a009eb340
sched,feature: Enable configuring maximum coderate for SIB allocations
3 years ago
Francisco
6ababf401b
feature,sched: allow setting initial DL CQI in enb.conf
3 years ago
Francisco
e8983b88f0
refactor: use enb_cc_idx instead of ue_cc_idx in mac::ue
3 years ago
Pedro Alvarez
299d2ee35d
Added interface to make the PDCP notify the RRC of integrity check
...
failures.
3 years ago
Francisco
7e77da6a15
mac,optimization: use rnti memory pool to create mac::ue objects
3 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.
3 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).
3 years ago
Francisco
ceaef3523f
sched,feature: Enable setting the target PHR below which the maximum UL grant size starts decreasing
3 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
3 years ago
Francisco
89406b07d6
make eNB UL SNR initial value an exponential average alpha configurable
3 years ago
Pedro Alvarez
18e2149d68
Sending Initial Context Setup Response after RRC reconfiguration.
3 years ago
Xavier Arteaga
235a664120
SRSUE: Removed PUSCH-DMRS/SRS pregeneration methods
3 years ago
Francisco
a587d20252
allow specification of subset of valid measurement gap offsets in rr.conf
3 years ago
Xavier Arteaga
48e0fc3c99
Implemented initial PBCH decoder and refactored SSB candidate selection
4 years ago
Francisco
7076dbfef8
feature, scheduler: Add configuration parameter to set minimum TTI interval between TPCs
4 years ago
Francisco
dedd9c09a7
feature, scheduler: Add abitility to set minimum aggregation level in PDCCH, and disable adaptive aggregation level based on target BLER
4 years ago
Francisco
c5029fc266
feature - implement adaptive link adaptation in DL and UL
4 years ago
yagoda
9501283c1c
fixing support for extended Cyclic Prefix
...
small cosmetic fixes of CP code
4 years ago
yagoda
f90f6f0c7e
adding MAC 0 padding support
4 years ago
Xavier Arteaga
60015e7ceb
Made intra frequency cell search and measurment generic
4 years ago
Francisco
1488606156
refactor - create s1ap dedicated folder
4 years ago
Xavier Arteaga
a57336d64f
Integrate periodic SSB measurement in SRSUE and fix related defects
4 years ago
Francisco
c5396155ad
set default gtpu tunnel close timeout to infinity
4 years ago
Francisco
15484e9472
rrc - make t304 configurable via rr.conf
4 years ago
Francisco
c6b9c12ba2
gtpu, feature - added the ability to configure gtpu indirect tunnel timeout value. This parameter is useful in the case that the end marker is not received
4 years ago
David Rupprecht
c117b563c9
Initial commit for ngap in enb
4 years ago
Francisco
7bee75e126
update description of srsenb --expert.nof_prealloc_ues config parameter, and added a comment in header file explaining the use of such parameter.
4 years ago
Francisco
5818488b27
change enb max_nof_ues config parameter to nof_prealloc_ues
4 years ago
Francisco
01eace2631
rrc paging mechanism improvements
...
- moved paging record handling to separate class
- parallel access to pending pcch messages by phy workers based on TTI and without common lock
- asn1 pcch message packing now takes place in stack thread, to avoid real-time issues
4 years ago
Xavier Arteaga
a8e181971c
Refactored PHY NR procedures for supporting DCI formats 0_1 and 1_1
4 years ago
Francisco
5cecb40410
rlc,bugfix - increase pdcp sn notification ack list maximum size
4 years ago
Andre Puschmann
598594c51a
all: bunch of pass by const& changes suggested by LGTM
4 years ago
Xavier Arteaga
334b308c35
Fix DCI NR configuration from main configuration
4 years ago
Francisco Paisana
d39183419c
Separate TPC PUSCH and PUCCH target SINR ( #2740 )
...
* separate target pusch and pucch sinr configurations in tpc class and rr.conf
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
ff53d2b8b8
all: set of trivial changes reported by LGTM
...
mainly fixmes, unused/empty code, etc.
4 years ago
herlesupreeth
0f06ec0d9c
Add feature to provide custom GTP-U (S1) address to be advertised inside S1AP messages
...
This feature is useful in scenarios where eNB is behind a NAT and EPC on public cloud
Since eNB's GTP-U can only bind to IP address visible in it's host (usually a private IP beind a NAT), it advertises the same to UE in S1AP message
resulting in traffic from EPC to eNB (DL traffic) not able to reach eNB. This commit solves this issue by providing a means to advertise a different IP address than the one GTP-U UDP socket is bound to.
This IP is usually advertised in InitialContextSetupResponse and E-RABSetupResponse.
In order to make use of this feature, use the following parameter in enb.conf
Example:
gtp_advertise_addr = 213.61.141.82
4 years ago
Matan Perelman
7ee52dc676
srsUE: Add option to filter N_id_2 / PSS to configuration
4 years ago
faluco
0afd59a5a0
Replace a string with a const char * in the rlc to_string.
4 years ago
Xavier Arteaga
407903e0d6
SRSUE: refactor carrier setting for accepting a dynamic carrier configuration
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
David Rupprecht
6b41ae7e8b
Updated PDCP config struct for rat type
4 years ago
David Rupprecht
db9dd85783
Parse carrier config in NR RRC reconfig
4 years ago
David Rupprecht
bfe2ad98ef
Added parsing for NR DL HARQ cfg
4 years ago
Andre Puschmann
b9ae064338
mac_nr: add DL HARQ
...
this commit adds a complete DL HARQ entity to the MAC of the UE.
It also refactors demux into an own class and adapts the PHY-MAC
interface to use the new MAC capabilities.
4 years ago
David Rupprecht
1cbd1c9d26
Deleted hardcoded phy config
4 years ago
Ismael Gomez
77b11b82ac
Release UE if no activity in DRB ( #2658 )
...
* Count user activity with DRB only and SRBs for initial procedures. Add counter to release user after max KO in UL.
4 years ago
Francisco
4838cd2f5e
implement cell measurement bandwidth feature
4 years ago
Francisco
14d32db92f
implement Handover direct forwarding path availability configuration feature
4 years ago
Francisco
b8fa1d1b61
fix rrc mobility test
4 years ago
Francisco
66988ffd32
s1ap - simplified erab setup procedure. Handle correctly the failure to setup causes
4 years ago
Francisco
f401683960
s1ap - simplified erab modify procedure
4 years ago
Francisco
76978f0d14
s1ap - simplified erab release procedure
4 years ago
Francisco
c5fc543516
s1ap - handling of ts1 reloc overall timer.
4 years ago
Andre Puschmann
b7146c41b2
nr: add NDI for PUSCH grant to sch cfg struct
4 years ago
Francisco
c2a99a8112
handover - support for handover cancellation causes, check for E-RAB QoS requirements, cancellation of handover if E-RABs are not supported in the target eNB
4 years ago
Francisco
d2c404b166
handover - setup s1ap cause in case of handover failure at the target enb
4 years ago
Francisco
49bd895e29
s1ap - handle invalid or repeated erab ids in s1ap erab release command
4 years ago
Francisco
7842e3bff3
s1ap - add unit test to check correct handling of invalid E-RAB ids in modification request. Fix s1ap in order for the test to pass
4 years ago
Francisco
985846e3bd
s1ap - set multiple erab ids cause in replay when s1ap erab modify request has repeated ids.
4 years ago
David Rupprecht
5a3a2a6d6f
Added functions for adding phr and tag config
4 years ago
Andre Puschmann
48537f3fe7
pdcp,rlc: increase number of PDCP SDUs for notification from RLC
...
the current value of 256 limits the number of PDCP SDUs that can be
notified from RLC. The limit is quickly hit when too many SDUs
are in flight. This can cause unwanted log entries and weird PDCP
behaviour.
the patch increases the value to 1024, which still can be too few if
many smaller SDUs are traveling.
The patch also set the log level to warning to quicker spot
misconfigs in logs.
Fixes #2616
4 years ago
Xavier Arteaga
17a3c76540
Fix NR TDD pattern configuration
4 years ago
Francisco
21718af3b6
avoid allocating std::string to get lcid radio bearer name. Refactored the lte radio bearer enum type
4 years ago
Andre Puschmann
8024bf7820
mux_nr: improve logging when building UL MAC PDU
4 years ago
Francisco
ff8a43f6b0
avoid allocation of dl_sched_list and ul_sched_t by converting a std::vector to bounded_vector
4 years ago
Francisco
60d5c6df7b
implementation of memory pool with individual memory blocks per UE that get accessed via their rnti
4 years ago
David Rupprecht
56e947bf27
Added functionality for releasing a NR bearer
4 years ago
David Rupprecht
cc6d8128ad
Added gw interface if it is running
4 years ago
David Rupprecht
f9ea02b6bf
Added functions for rrc reestablishing procedure if nr reconfig failes
4 years ago
Xavier Arteaga
bd11b66b6c
Fix unitialised NR PHY arguments
4 years ago
Xavier Arteaga
49731ab5a1
Initial NR-DCI refactor
...
Added NR DCI 1_1 size
Several DCI NR fixes
4 years ago
Xavier Arteaga
01990c2e1d
SRSUE: Add PHY-MAC SR related interfaces
4 years ago
Francisco
046633674a
refactor - removal of stack-gtpu interface, and use of socket manager interface instead
4 years ago
Francisco
4aac7ac238
use global rx multisocket handler, and remove stack-s1ap interface
4 years ago
Pedro Alvarez
8194b5ec73
Added check for consequetive KOs in MAC. Change set_activity_user to pass activity and max KOs to RRC and trigger RLF timeout.
4 years ago
Francisco
c3482b45e1
s1ap - handle erroneous enb/mme s1ap ue id in received s1ap messages from the MME
4 years ago
Andre Puschmann
d135ae4d29
proc_bsr: initial BSR procedure for NR
...
* refactor some common methods to mac_common.cc
* add common mux_base class
* move UL PDU generation to mux class
* add logical channel registration to MAC, MUX, BSR
* add initial proc BSR
* add basic MAC NR test
* rework MAC interfaces
4 years ago
Francisco
5eccfad05b
gtpu - added comments, updated expected construct, handled in rrc the case a gtpu teid fails to allocate
4 years ago
Andre Puschmann
bde7b49ca3
ue,mac_nr: add basic SR procedure
...
the current implementation support only one SR config
and doesn't support the prohibit timer
4 years ago
Xavier Arteaga
6219500148
Added NR-RRC RACH parsing
4 years ago
David Rupprecht
8c86d2084d
Adding NR phy config RRC parsing
...
Added error handling
Reworked flattening error handling
4 years ago
Xavier Arteaga
5bdf2c93b3
Initial NR PDSCH CSI-RS RE skip and other changes
4 years ago
Codebot
4523ee6087
rename srsLTE to srsRAN
4 years ago