Commit Graph

4255 Commits

Author SHA1 Message Date
yagoda bc4388a78c -adding temp crnti removal for NR carrier attach 2021-09-23 18:27:13 +02:00
Andre Puschmann 430694c72f gnb,dl: fix amplitude scaling
use PDSCH struct to get number of PRBs to compute scaling factor.
then PDCCH struct is only filled if it's encoded.
2021-09-22 16:41:18 +02:00
Andre Puschmann 802b22ac91 enb,nsa: refactor NR RRC/cell config parsing
this allows to access all cell-related params from within RRC
2021-09-22 16:41:18 +02:00
David Rupprecht 611255aa5f Added GTPU bind address as output parameter 2021-09-22 15:15:47 +02:00
David Rupprecht bd0e641633 Added GTPU PDU Session header parsing 2021-09-22 15:15:47 +02:00
Bedran Karakoc 43915550cc NGAP GTP Bearer Establishment 2021-09-22 15:15:47 +02:00
David Rupprecht 3712983308 Added PDU Session est request 2021-09-22 15:15:47 +02:00
David Rupprecht c670383ae9 Added NAS 5G functions incoming msg and reg proc 2021-09-22 15:15:47 +02:00
David Rupprecht bbe54fb248 Fix uninitialized issue in NAS 5G pack/unpacking 2021-09-22 15:15:47 +02:00
Xavier Arteaga d0ce17f736 Added SSB different SCS combination unit test 2021-09-22 14:15:41 +02:00
Xavier Arteaga e2facef540 Abort radio application if decimation/interpolation ratios are not integer 2021-09-22 13:19:51 +02:00
Xavier Arteaga cdfbe28b69 Initial NR-MIB packing/unpacking 2021-09-22 11:17:27 +02:00
Fabian Eckermann f44eb0534f Add RRC NR test for FDD 2021-09-21 18:12:34 +02:00
Xavier Arteaga 0324806d6c Packed NR TDD config in duplex configuration and created test case for FDD 2021-09-21 18:11:16 +02:00
Fabian Eckermann dd8db1a929 Replaced inet_addr() with inet_pton. 2021-09-21 11:59:40 +02:00
Xavier Arteaga 574683e3ef Fix error message 2021-09-21 11:30:56 +02:00
Fabian Eckermann d59ebfce9d add lock for fftw wisdom 2021-09-20 20:48:55 +02:00
Xavier Arteaga ffba972fb7 Fix gnb amplitude 2021-09-20 20:48:08 +02:00
Xavier Arteaga 51d6ab3b3f Disable CSI-RS resource mapping number of port check 2021-09-20 20:48:08 +02:00
Xavier Arteaga de00b80228 Review NR NSA CFO estimation and compensation 2021-09-20 20:48:08 +02:00
Xavier Arteaga 63bb86bce1 Added SS type conversion to string 2021-09-20 20:48:08 +02:00
Xavier Arteaga 7ba5099bee Implement CSI-RS resource mapping validation 2021-09-20 20:48:08 +02:00
Fabian Eckermann e57ffca722
gnss_sync: fix timestamp to TTI conversion
* Improve reliability of timestamp to tti conversion

Difftime is not reliable as it might use 32 bit calculation, depending on the system. This leads to wrong frame numbers and subframe indices.
I encountered this Issue when testing the pssch_ue exampel on my system and the conversion from timestamp to frame number and sf idx was wrong.

* Improve GNSS Sync 

Added loop to check for GNSS alignment while syncing.
If the received GNSS signal is weak, synchronization errors might occur while syncing.
2021-09-20 14:29:25 +02:00
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
2021-09-17 14:57:33 +02:00
faluco d2f09a8d3c Fix a nasty data race in the ue_bearer_manager class. The underlying std::map member was being accessed concurrently potentially corrupting memory. 2021-09-17 11:34:28 +02:00
faluco d009160ba6 Fix data race in the metrics of the rlc. 2021-09-17 11:34:28 +02:00
Andre Puschmann e563e5918e rf_imp: fail opening RF altogether if specified device fails to open
we've had a few runs in the CI where opening the specified RF device
failed but the eNB/UE still continued to run, just picking the next available
run. This led to false-positive tests.

The policy should be that whenever the user specified a RF device to
be openend, and this device fails, the whole process should fail and
the application should exit.

The auto-detection mode is still available but only if no device name
is specified at all.
2021-09-16 15:28:13 +02:00
Andre Puschmann b127327684 enb,s1ap: print filename when writing S1AP PCAP 2021-09-16 15:25:46 +02:00
David Rupprecht e8a464228d Cleaned string helpers 2021-09-16 15:24:32 +02:00
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.
2021-09-16 15:22:59 +02:00
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
2021-09-15 14:49:28 +02:00
faluco cf20b143c0 Fix the default constructor of the optional class to avoid a spurious uninitialized value warning in older GCC versions (seen for ARM32 and GCC 8.3).
Use a union of a byte and the real storage, and init the char by default.
2021-09-14 11:22:40 +02:00
faluco 485ec2edab Implement a new option to flush the file sink contents on every write. 2021-09-14 10:22:37 +02:00
Nils Fürste d75fe22a0a Soapy: Fix include path of Types.h 2021-09-14 09:38:31 +02:00
Andre Puschmann 06f000c2c4 band_helper: fix format 2021-09-13 17:10:32 +02:00
faluco c7ddedcf72 Log the invalid format string to help grepping it in the logs. 2021-09-13 11:11:41 +02:00
faluco 9571109a69 Abort program execution if STOP_ON_WARNING is defined when formatting an invalid log entry. 2021-09-13 11:11:41 +02:00
faluco 8cde3f20e7 Catch exceptions thrown on invalid format strings in the log backend and print an error message to signal the issue. 2021-09-13 11:11:41 +02:00
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
2021-09-13 10:27:16 +02:00
Andre Puschmann 11af5662a7 band_helper_test: extend TC for band 5 FDD freq calcs 2021-09-13 10:27:16 +02:00
Andre Puschmann d26a7e0350 band_helper: add helper to derive DL/UL freq from abs_freq_point
calculate DL and UL freq in carrier struct based on given values
2021-09-13 10:27:16 +02:00
Andre Puschmann 377eb52b86 band_helper_test: add TC for band n5 2021-09-13 10:27:16 +02:00
Andre Puschmann 69619d725a band_helper: add helper to derive UL ARFCN from DL ARFCN 2021-09-13 10:27:16 +02:00
Andre Puschmann 93e1d7712d enb,phy: add checks for invalid EARFCN and exit eNB if config is wrong 2021-09-10 22:08:26 +02:00
faluco 5703752faa Fix a enb crash when no more users could be added into the bearer manager map.
This was caused by not removing old user from the map, so add the code to cleanup the map on user removal.
2021-09-10 15:34:29 +02:00
Andre Puschmann f382a7c7db Revert "ue,proc_ra_nr: add temporary flag to skip RAR reception"
This reverts commit 28668aac34.
2021-09-09 14:29:04 +02:00
Andre Puschmann c1892eb2ec enb,nsa: refactor of SgNB addition interface
* update of FSM
* better integration of parameter for X2 calls
2021-09-09 14:29:04 +02:00
Andre Puschmann aba0ba9ad8 mac_sch_pdu_nr: fix newline in logs 2021-09-09 14:29:04 +02:00
Andre Puschmann 54ab64327a ue,mac_nr: move BSR levels lookup table into lib header
prepare for shared use with gNB
2021-09-09 14:29:04 +02:00
Andre Puschmann 6745eced49 ssb: avoid NaN when SSB can't be detected
when PSS+SSS can't be detected the RSRP was 0 and
the resulting conversion to dB resulted in NaN.
2021-09-09 12:04:27 +02:00
faluco ec272061a0 Fix a dangling SDU pointer in mac_sch_subpdu_nr when adding subpdus into a mac_sch_pdu_nr. 2021-09-08 14:45:23 +02:00
faluco 934802d23c Report the SIB9 home enb name in the enb sector start/sector stop events. 2021-09-07 16:36:56 +02:00
faluco 2fd3ed789a Rename sector_id to carrier_id JSON key in enb metrics and events. 2021-09-07 16:36:56 +02:00
faluco d122d0c69b Add new field for the PCI in the enb JSON report file. 2021-09-07 16:36:56 +02:00
faluco d168536bc4 Add a new program option to control how ASN1 messages get printed into the enb JSON report file. 2021-09-07 16:36:56 +02:00
faluco df6ae7b0e0 - Implement new enb events:
* ho_command
* connection_resume
* rlf_detected
- Rename rlf_report event to "rlf_report".
2021-09-07 16:36:56 +02:00
faluco 8a3586dfbf Include a ASN1 json representation for RRC enb events. 2021-09-07 16:36:56 +02:00
David Rupprecht a9a23214b0 Added more 5G security kdfs
Added new 5G SIM functions

Added const parameters for security functions
2021-09-07 11:06:56 +02:00
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
2021-09-07 11:06:56 +02:00
David Rupprecht bce6b5cc0f Added kdf common
Use kdf functions in 5G KDF

Moved EPS KDF function to new KDF structure
2021-09-07 11:06:56 +02:00
David Rupprecht 15eaef21e2 Update test f12345 function
Moved XOR functions to lib

Added testcase for KDF

Minor liblte_security updates
2021-09-07 11:06:56 +02:00
David Rupprecht 0ef8976d53 Remove length from class and pass by reference 2021-09-07 11:05:59 +02:00
Andre Puschmann 88bb92dc0d mac_nr,sched: handle C-RNTI CE 2021-09-06 10:35:59 +02:00
Andre Puschmann f3e8847ad3 mac_pdu_nr_test: fix test 2021-09-03 12:09:41 +02:00
Andre Puschmann 82e9652a92 mac_sch_pdu_nr: fix ASAN/fmt issue when print space 2021-09-03 12:09:41 +02:00
Andre Puschmann ea48a350a4 mac_rar_pdu_nr: fix clearing of padding bytes 2021-09-03 12:09:41 +02:00
Andre Puschmann 02bd15878e mac_sch_pdu_nr: fix logging 2021-09-03 12:09:41 +02:00
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
2021-09-03 12:09:41 +02:00
Andre Puschmann 20c0e0bc41 mac_sch_pdu_nr: add to_string() helper to format MAC PDUs in logs 2021-09-03 12:09:41 +02:00
Francisco Paisana 227ae97bcb workaround gcc4.8 issue with inability to derive move ctor noexcept specifier 2021-09-03 12:06:17 +02:00
Francisco Paisana ebd12b0778 stack lte,refactor: pass bearer manager instead of stack pointer to srsenb::rrc 2021-09-03 12:06:17 +02:00
Francisco Paisana f4df55c245 stack lte: separate bearer manager into two classes, one for the ue and one for the enb 2021-09-03 12:06:17 +02:00
Francisco Paisana 2ade4628ca stack lte: create an gtpu-pdcp adapter class that correctly converts lcids to eps bearers and vice-versa 2021-09-02 17:12:04 +02:00
Francisco Paisana 4b2f079581 gtpu: renamed lcid to eps_bearer_id as parte of the refactor of gtpu to use eps_bearer_ids 2021-09-02 17:12:04 +02:00
Andre Puschmann 3949a727a7 enb_interface: add stack interface for RRC
RRC uses the interface to register/deregister EPS bearer
2021-09-02 17:12:04 +02:00
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
2021-09-02 17:12:04 +02:00
Francisco Paisana 020bec025e sched: created class common to LTE and NR for ue buffer status management 2021-09-01 20:08:11 +02:00
Xavier Arteaga 9e1669c403 Better comments in minimum size symbol selection 2021-08-31 18:56:41 +02:00
Xavier Arteaga 4858202bf6 Fix NR symbol size for 270RB 2021-08-31 18:56:41 +02:00
Xavier Arteaga 14a85d31ec Fix symbol size simensioning for LTE standard rate 2021-08-31 18:56:41 +02:00
Xavier Arteaga 01390a7340 Better NR softbuffer size adjustment 2021-08-31 18:56:41 +02:00
Andre Puschmann 9bf74843f6 mac_pdu_nr: add error handling to init_tx() method
check provided byte_buffer and return error if it's not valid
2021-08-31 17:20:13 +02:00
Francisco Paisana 04e5c81edf sched,nr: nr_phy_test now uses the whole mac class rather than just the scheduler 2021-08-27 15:50:23 +02:00
Francisco Paisana b486d2a1b5 sched,nr: implement prb grant fmt formatting 2021-08-26 12:09:11 +02:00
Francisco Paisana da4b7e4f80 sched,nr: fix sched RAR NR test; update test assert macros 2021-08-26 12:09:11 +02:00
Xavier Arteaga 83b9b2d1ff Implemented UE open loop CFO compensation for NR 2021-08-26 09:34:43 +02:00
Xavier Arteaga 5aa2279990 Fix NZP-CSI-RS CFO sign 2021-08-26 09:34:43 +02:00
Xavier Arteaga 7da2d20447 Added UE UL NR frequency offset option 2021-08-26 09:34:43 +02:00
Xavier Arteaga cfe2b305a1 Fix CORESET0 related PDSCH resource allocation procedure 2021-08-26 09:34:43 +02:00
Xavier Arteaga 36207db615 Added CORESET start_rb helper function 2021-08-26 09:34:43 +02:00
Xavier Arteaga 89ef3b64b4 Optimization NR PDCCH mapping minor optimization 2021-08-26 09:34:43 +02:00
Xavier Arteaga ae0d8f83f0 Add PDCCH interleaved mapping in phy_dl_nr_test and iterate all possible 15kHz SCS bandwidths 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 f5f18054eb Added PDCCH NR 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
Xavier Arteaga e07263ee26 Added band helper for getting band from ARFCN 2021-08-26 09:34:43 +02:00
Xavier Arteaga 7377496417 Added SCS to string and corrected coreset0 2021-08-26 09:34:43 +02:00
Xavier Arteaga 62ba7d386d Initial CORESET Zero constructor 2021-08-26 09:34:43 +02:00
Xavier Arteaga 5d149a4b78 Moved NR time/frequency allocation SLIV to new component 2021-08-26 09:34:43 +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 2668a8f68b sched,nr: fix Msg3 decoding in PHY to not expect any UCI 2021-08-24 20:15:22 +02:00
Xavier Arteaga 2cd5e98132 Fix NULL check in DCI NR for RAR type 2021-08-24 14:45:40 +02:00
Xavier Arteaga 3784359da5 Use NR DCI format 0_0 packing and unpacking for TC-RNTI type 2021-08-24 14:45:40 +02:00
Xavier Arteaga b846116c5c Added NR RAR UL DCI packing 2021-08-24 14:45:40 +02:00
Francisco Paisana 55d83a1279 fix compilation issue due to wrong include path for srsran_assert.h file 2021-08-24 12:06:24 +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
Francisco Paisana 599fc978a5 improvement of srsran_assert design, with specializations to enable/disable assertions based on compile flags other than ASSERTS_ENABLED. Creation of the support/ folder 2021-08-23 16:47:54 +02:00
Francisco Paisana e896ac49e8 adt: create split optional span view to be used for C-array types 2021-08-20 14:30:19 +02:00
Francisco Paisana d616e46936 adt: allow choice between static and dynamic optional vector types 2021-08-20 14:30:19 +02:00
Francisco Paisana 1596fcf349 adt: rename optional table to optional array 2021-08-20 14:30:19 +02:00
Francisco Paisana 8c24cfebd3 adt: create data structure type to represent an array of optional fields 2021-08-20 14:30:19 +02:00
Francisco Paisana eb4999a18e lte,pdcp: silence error message when a reconfiguration of a PDCP entity is no-op 2021-08-20 13:30:19 +02:00
Andre Puschmann 32ab1baeb1 enb,rrc: during NSA activation, remove EUTRA DRB and set MAC logical channel config 2021-08-07 12:33:10 +02:00
Andre Puschmann 9e7852ac83 srsran_asn1_nr: add RLC config to packing test 2021-08-07 12:33:10 +02:00
Andre Puschmann 1c3a03cb2b rlc: fix memleak in queue_rx_pdu
* alternative to #3141
* use byte_buffer as queue element
2021-08-07 12:31:49 +02:00
Andre Puschmann c365c16531 gnb_interfaces: inherit from EUTRA interfaces when they are identical 2021-08-05 10:28:29 +02:00
Andre Puschmann 4076338a1b enb: add MAC-NR PCAP
* use fixed filename until eNB stack layout is decided
2021-08-05 10:28:29 +02:00
Andre Puschmann c03623863b enb,nsa: fix UL PDU processing
* remove const from pusch_info() MAC/PHY interface to allow moving unique byte buffer
2021-08-05 10:28:29 +02:00
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
2021-08-05 10:28:29 +02:00
Andre Puschmann 4a828be39f rlc_am_test: fix reestablishment test
after changing the retx counting we receive one SDU more than before
2021-08-04 13:06:38 +02:00
Andre Puschmann 7726acad41 rlc_am_lte: fix counting of retx of entire PDUs and PDU segments
this patch fixes a bug discovered in a real network where the DL CQI of a
user degraded repidly in very short time. A relativly big RLC PDU that
was still sent with the good CQI in a big grant now needs to be split
across many tiny segments because the CQI degraded so much.

The retx couting for each transmitted segment caused the retx counter to
reach maxRetx quickly.

With this patch we do not increment the retx counter for each transmitted
PDU or segment of a PDU but instead only increment the counter when
a given SN is added to the retx queue. This can happen either:
a) if the SN is negativly acknowledged and was not already on the retx queue,
b) no new data is available for tx and a SN is selected for retx.

This is in accordance with TS 36.322 which handles retx counting in section
5.2.1 according to the above description.
2021-08-04 13:06:38 +02:00
Xavier Arteaga cba6df3722 Extended NR PHY robustnes against wrong RRC configuration 2021-08-03 17:30:08 +02:00
Xavier Arteaga de89e829e7 Added NR PUCCH Resource ASN1 helper 2021-08-03 17:30:08 +02:00
Xavier Arteaga 3ae131b336 gNb creates PUSCH decode PDU 2021-08-03 17:30:08 +02:00
Xavier Arteaga 98f29961bc Fix old GCC compilation 2021-08-03 10:46:13 +02:00
Xavier Arteaga 856573b92f Added 4096 symbol size as LTE rate 2021-08-03 10:46:13 +02:00
Xavier Arteaga 54e1fe172c Minor NR PHY aesthetical modifications 2021-08-03 10:46:13 +02:00
Xavier Arteaga 956c4f8266 Added PHY NR test TDD FR1.15-1 pattern 2021-08-03 10:46:13 +02:00
Xavier Arteaga dfa323df6b Added 20MHz default configuration 2021-08-03 10:46:13 +02:00
Xavier Arteaga ea802c23f2 Remove PHY lib verbose from test and use byte vector random function 2021-08-03 10:46:13 +02:00
Xavier Arteaga 1b50758bd5 Initial NZP-CSI default configuration from TS38.101-4 2021-08-03 10:46:13 +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 3b5344b0f7 thread_pool: add optional ID to thread pool
this allows to prepend an ID to each thread pool to
better differentiate workers from different pools
2021-08-02 15:18:47 +02:00
Andre Puschmann 38f1e158a5 enb,nr: fix NR PHY PRACH init and MAC-PHY interaction 2021-08-02 15:18:47 +02:00
Xavier Arteaga a300a47673 Fix value selector for NEON 2021-08-02 11:10:25 +02:00
Xavier Arteaga 42b052112f Added TS reference and use SRSRAN_CEI_LOG2 macro 2021-07-30 20:23:09 +02:00
Xavier Arteaga 1f495cb008 Added generic SRSRAN_CEIL_LOG2 2021-07-30 20:23:09 +02:00
Andre Puschmann b6f8280f67 cqi: protect potential div by zero bug 2021-07-30 20:23:09 +02:00
Andre Puschmann b388930325 srsran_asn1_rrc_nr_test: disable PCAP output by default 2021-07-29 18:16:03 +02:00
David Rupprecht 11f9ac75db Added PLMN to serving network string name 2021-07-29 17:50:04 +02:00
Xavier Arteaga 085e247ece Fix ZMQ TX channel mapping for NULL pointers
Fix ZMQ transmit frequency mapping

Use map mask in ZMQ to determine mapped channels

Fix ZMQ mapping
2021-07-28 12:14:37 +02:00
Xavier Arteaga 562fd1b4d4 Fix segfault 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
Andre Puschmann 4915dc9642 test_pcap: add function description 2021-07-28 10:26:09 +02:00
Francisco Paisana bd08a64b5e sched: fix crash for 100 prbs and subband CQI reporting 2021-07-27 19:33:03 +02:00
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
2021-07-27 18:26:20 +02:00