247 Commits (fccfd5e1408206049139ecb7b029ecfb922222b5)

Author SHA1 Message Date
Pedro Alvarez 4e1c713c14 rlc_am_nr: Enabled sending NACKs on status PDUs
- Added some logic to only poll when PDU_WITHOUT_POLL > PollPDU
  - Fixed initalization of t-Reassembly
  - Fixed a bug in the packing of the status buffer.
Nacks now work for a single lost PDU.
3 years ago
Pedro Alvarez 3f000f0472 Adding t_reassembly to RLC AM NR 3 years ago
Fabian Eckermann 8bac4eceda Add ue MAC procedures for PDCCH orders. 3 years ago
Pedro Alvarez 9e4631ee24 Added NR specific config struct for RLC AM. Added status prohibit timer. 3 years ago
Pedro Alvarez 8ff545c423 Added RLC AM NR config structure. Added helpers to create RLC AM NR configs. Made it possible to create RLC AM NR entites in rlc.cc 3 years ago
Francisco 0c733f7ea3 nr,ngap: use const_byte_spans instead of unique_byte_buffers in ngap interface to avoid intermediate copies 3 years ago
Pedro Alvarez e65bcd7147 Changed default max S1 Setup retries to infinity 3 years ago
Pedro Alvarez 930e3699d0 Added max_s1_retries parameter 3 years ago
Andre Puschmann 0967cda042 gnb,stack: move gNB components into own folder
* move RRC, MAC, NGAP, SDAP into gnb folder
* move testing code below respective layers
3 years ago
Francisco 5f3afffd05 nr,gnb: implementation of sib and mib asn1 generation functions 3 years ago
Francisco 96fd3aae3c nr,gnb: small gnb interface refactors and fix of byte buffer operator= 3 years ago
Francisco 8d719db43d nr,gnb,mac: implement zero-copy get_dl_sched/get_ul_sched NR scheduler interface 3 years ago
Carlo Galiotto ba50bbfb76 rlc,rrc,nr: remove rb_type from rlc_um_config
Signed-off-by: Carlo Galiotto <carlo@srs.io>
3 years ago
Carlo Galiotto 9c2099f680 rrc,rlc,nr: fix RB label in RLC-NR for UE logs + ..
add rb_type in rlc_um_config

Signed-off-by: Carlo Galiotto <carlo@srs.io>
3 years ago
Carlo Galiotto d95c31d2de rlc,rrc,nr: fix rlc bearer string diplayed in logs
Signed-off-by: Carlo Galiotto <carlo@srs.io>
3 years ago
Francisco dfc2ea0a3e nr,gnb,pdcp: extend the use of local rb_name member to pdcp nr 3 years ago
Bedran Karakoc a14cc451d0 Addition NGAP cleanup 3 years ago
Carlo Galiotto 9c74dda039 rrc,nr: add msg5 and inactivity timers to RRC-NR
Signed-off-by: Carlo Galiotto <carlo@srs.io>
3 years ago
faluco edf0926a2f Batch of LGTM fixes. 3 years ago
Ismael Gomez d972fb368c
Some LGTM fixes (#3564)
* Fix LGTM issues

* ue: add logging to switch on function

* Fix new LGTM issues
3 years ago
Andre Puschmann 3eb1862ab9 gnb_interface: reduce MAX_GRANTS to 4
see #3530 for detailed discussion. This change saves some CPU cycles it seems
3 years ago
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>
3 years ago
Andre Puschmann 8294724aad gnb_interface: reduce MAX_GRANTS to 4
this significantly reduces data copies when providing the PHY
with scheduler results.
3 years ago
Pedro Alvarez fbcffb84bd Check if RLC is suspended before transmiting PDCP SDU.
This was done to avoid integrity issues, when the UE's RRC erroneously sent
measurement reports while the re-establishment was already in progress.

As errously sending PDCP PDUs on DRBs can cause issues as well, this was
disabled too.
3 years ago
Francisco c6226b0d94 lte,enb,rrc: parse cellIndividualOffset in rr.conf and propagate it to measConfig sent to UE 3 years ago
Francisco 0b51848dda nr,gnb,rrc: use multiqueue to forward x2 tasks to NR stack 3 years ago
Andre Puschmann 3bf09021f9 enb: remove unused parameter 3 years ago
Francisco 81174bda64 nr,ue,rrc: release NR logical channels during RRC release 3 years ago
Francisco 9df6c6b936 sched,nr: ensure the ue_cfg_t passed to the scheduler in NR FDD mode has the correct harq delay 3 years ago
Andre Puschmann 255ddb1329 enb,gnb: add basic support for sgnb release procedure
the procedure is currently started when the EUTRA UE object
is deleted (after RRC release) in order to clean-up the
ENDC resources on the gNB.
3 years ago
Francisco 1b595b6eff nr,gnb: if no nr cell is initiated, do not enable endc in the LTE RRC 3 years ago
Xavier Arteaga 1bdb1bb62d Store PUSCH CSI from PUSCH DMRS 3 years ago
Bedran Karakoc 850606f20b Added deregistration (UE terminating) 3 years ago
Francisco Paisana 23bf542ae7 stack,nr: isolate calls between LTE and NR stacks via the task multiqueue 3 years ago
Andre Puschmann 8bb06ff2c0 Added SSB in gNb PHY 3 years ago
Andre Puschmann 3e5b40fd36 enb,rrc: fix compilation after freq point a has been removed from nr_carrier_t
since absolute freq point a members have been removed from the srslte_nr_carrier_t
struct (they are now actual frequencies) the abs_point_a values are now in
the RRC cell structs
3 years ago
Ismael Gomez 6b506ec357
phy_common: clear tx_hold flag before releasing the semaphore (#3342) 3 years ago
yagoda 82bda02b36 adding nr metrics 3 years ago
Fabian Eckermann 8830c2796f Add support for NSA FDD on band n3, n5 and n7. 3 years ago
Andre Puschmann 315057d11c enb: signal user activity to EUTRA RRC when doing NR DL traffic
to avoid releasing the UE when only NR DL traffic is done.
similar to the EUTRA solution.
3 years ago
Ismael Gomez 1c77998df5 Stop PDCP for data bearers before initiating HO 3 years ago
Francisco Paisana bdf18856d1 sched,nr: fix handling of DL BSR in NR scheduler and computation of UCI 3 years ago
Andre Puschmann 426e876047 enb,nr: fix GTPU handler to forward UL PDUs 3 years ago
yagoda bc4388a78c -adding temp crnti removal for NR carrier attach 3 years ago
Andre Puschmann 802b22ac91 enb,nsa: refactor NR RRC/cell config parsing
this allows to access all cell-related params from within RRC
3 years ago
David Rupprecht 611255aa5f Added GTPU bind address as output parameter 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
Xavier Arteaga de00b80228 Review NR NSA CFO estimation and compensation 3 years ago
Andre Puschmann 3fd47d2af4 enb: refactor L2/L3 and (re)move all NR components to gNB stack
* decouple EUTRA and NR stack classes
* implement dummy X2 interface with control and data plane methods
* implement eNB time source interface that PHY calls
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
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