Commit Graph

229 Commits

Author SHA1 Message Date
Xavier Arteaga e832769ae6 Updated copyright 2020-03-16 11:26:06 +01:00
Ismael Gomez e8b8c9922e
Add RF per-channel frequency band constraints (#1026) 2020-03-12 23:06:09 +01:00
Xavier Arteaga 76408b195e Rename TX_DELAY and FDD_HARQ_DELAY_MS 2020-03-11 21:16:36 +01:00
Xavier Arteaga e8f9bfc6ba Addition of PRACH TA correction 2020-03-11 16:25:56 +01:00
Ismael Gomez 4e12405fff
Remove radio_multi class and organize channels, ports and carrier buffers (#1019) 2020-03-06 15:26:48 +01:00
Andre Puschmann 664170fec6 pcap: add CC index when writing PCAP 2020-03-05 20:46:14 +01:00
Andre Puschmann a8bbe551ac move thread class into srslte namespace to avoid ambiguity between std::thread 2020-03-03 16:22:04 +01:00
Francisco Paisana 22f51bb30b made cell select non-blocking using background threads 2020-02-18 09:47:33 +01:00
Ismael Gomez 72e6fa40fc Fix multiple issues with DCI sizes when using CA. 2020-02-17 11:21:34 +01:00
Xavier Arteaga 6672f6df0f Minor aesthetic changes in intra measure class and changed scell_search test arguments 2020-02-13 14:25:00 +01:00
Xavier Arteaga 344016ef0a Refactored and commented SRSUE's Intra measure component 2020-02-13 14:25:00 +01:00
Andre Puschmann c7343cf6d8 protect sf_buffer from overrun in receive_samples
this patch adds a buffer len paramter to the receive_samples() call
that protects the (also) provided buffer from overflowing.

currently each call to srslte_ue_sync_zerocopy() which then calls receive_samples()
relies on a buffer that is "big enough". But that buffer is sometimes
2 subframes, sometimes 3 or 5, sometimes has space for the maximum PRB size, sometimes
only for 6 PRBs (i.e. during cell search).

By extending the interface to pass the buffer size we can make sure that
only samples are received that actually fit inside the provided buffer.
2020-02-07 10:21:30 +01:00
Ismael Gomez f2851b037e Fix concurrency issue in set_crnti() 2020-02-06 20:30:09 +01:00
Xavier Arteaga f8294fb9df SRSUE: RRC measurements refactor and more fixes 2020-02-03 12:51:46 +01:00
Ismael Gomez 52716f8716 Process HO complete in the background to avoid heap-after-use bug when PHY measurements are reported during a HO
rrc_meas refactor. Need to split commit

Fix typo

Temporal commit

Apply rx_gain_offset to neighbour cell measurements

srsLTE: modify TESTASSERT Macro to follow codeline

SRSUE: prevent RRC from having serving cell in neighbour list

SRSUE: DL HARQ does not need Time Aligment Timer. UL is disabled using PUCCH resources release

SRSUE: extend intra-frequency to CA SCell

SRSUE: fix confusing/ambiguous code in the RRC measurements and fix concurrency issue

SRSUE: remove RRC measurement report triggers when measurements are modified or HO succesful

SRSUE: fix compilation issues and Reest SIB indexes

Fixes sync using incorrect cell configuration when search cell does not find a correct cell

Small refactor to remove measurement report triggers always after removing measurement

SRSUE: Removed SIC PSS from UE

SRSUE: fix inter-frequency reestablishment and added more traces

SRSUE: Fix compilation issue
2020-02-03 12:51:46 +01:00
Ismael Gomez 17f9ff326b Expose in-sync and out-of-sync constants to ue.conf 2020-01-29 11:46:55 +01:00
Xavier Arteaga c92dce71b7 srsLTE: AGC only uses boundaries for requesting gain to Radio 2019-12-23 22:57:37 +01:00
Xavier Arteaga 384c420c7c SRSUE: fix phy workers concurrency issue 2019-12-19 13:01:05 +01:00
Andre Puschmann 4a9e3728c9 add condtional variable for PHY initialization and configuration
adding a cond variable and mutex to protect init and (re-)config of PHY
currently this is only used during init. If the stack couldn't be
initialized but the PHY init thread was already started, we need to
properly wait until this is done
2019-12-18 11:25:36 +01:00
Andre Puschmann 3127f59b4c wait with init of GUI until cell is found and initialized
with the stack refactor we've introduced a regression in which
the GUI was started too early when no cell was found yet.

this caused the GUI to be initilized with only one Tx port. When connecting
to a cell with ports, the GUI plotter would then write
into unitialized memory.
2019-12-16 21:03:08 +01:00
Pedro Alvarez c5979f59eb Clang format UE, eNB and lib (#850)
* Clang-formated UE, eNB and lib.
* Fixed compiling errors from clang-format.
* Fix linking issues introduced by clang-format
* Fix poor formating in initializing arrays of arrays.
* Fix mistake in conflict resolution on rm_turbo.c
* Re-apply clang format to gtpc_ies.h
2019-12-16 16:04:22 +01:00
Xavier Arteaga bcde542111 SRSUE: fix typo 2019-12-12 12:04:36 +01:00
Xavier Arteaga a8763cb7a0 SRSUE: Added Cell PCI in console trace 2019-12-04 15:30:07 +01:00
Xavier Arteaga d96836a0fa SRSUE: Stack TTI based purely in radio timestamp 2019-12-04 15:29:43 +01:00
Ismael Gomez 1d83bb08e2 Changes in ACK procedure to support CA. Tested 1 cell in SISO/MIMO 2019-10-14 11:20:35 +02:00
Xavier Arteaga efdec15964 Renamed lock_guard (lg) to lock 2019-10-02 11:03:03 +02:00
Xavier Arteaga 665f899a74 Fixed some coverity and Clang tidy warnings 2019-10-02 11:03:03 +02:00
Francisco Paisana e92632e729 zero-initialized mbms rrc interface types 2019-09-30 21:05:32 +02:00
Francisco Paisana fc9bb3c934 removed rrc asn1 header include from the ue_interfaces and phy 2019-09-30 21:05:32 +02:00
Andre Puschmann 2f47010eb6 fix various uninitialized vars 2019-09-24 13:23:30 +02:00
Xavier Arteaga 35f85c651c SRSUE: Added SCell synchronizer and measurements based on reference signals 2019-09-20 16:20:31 +02:00
Xavier Arteaga 8e17aba5d8 Improved SSS decoding and improved scell_search_test 2019-09-20 16:20:31 +02:00
Xavier Arteaga 54974d935e SRSUE PHY: unitialised values and attributes clean-tidy up 2019-09-20 16:03:37 +02:00
Xavier Arteaga 78fcc11a30 Fixes minor unitialised/leaked memory 2019-09-20 16:03:37 +02:00
Ismael Gomez 0984debe1b
Fix issues with RLF in B210 and X300 (#669)
* Calling tx_end() from radio_reset() causes long execution time in B210. Using boolean to call later instead. Fixes RLF failing in B210. Checked in X300

* Fix issue #655
2019-09-20 15:41:16 +02:00
Andre Puschmann 9e1c46dfb0 add initial TTCN3 code 2019-09-17 21:56:47 +02:00
Andre Puschmann 08ca9ebd4e write BCH to PCAP
this patch moves the BCH payload buffer into the UE sync object and
therefore allows to pass it to the MAC for PCAP logging
2019-09-17 21:56:06 +02:00
Xavier Arteaga 1a567a764e SRSUE: Call Radio tx-end when PHY is reseted and removed redundant attribute is_start_of_burst. 2019-09-12 09:49:56 +02:00
Andre Puschmann 513c7b12e3 remove warning and replace with pragma message 2019-09-09 17:28:53 +02:00
Ismael Gomez cbb1bbfaa1 Fix multiple PRACHs after SR fail and a minor issue in HO 2019-09-07 22:59:57 +02:00
Ismael Gomez bfddc55148
RRC-PHY interface (#639)
RRC-PHY interface refactor. Moved RRC-MAC interface to rrc_asn1_utils and created RRC-PHY interface also in rrc_asn1_utils. All ASN1 includes should be made from rrc_asn1_utils only keeping ue_interfaces clean of ASN1

Tested with different common and dedicated configurations (64QAM UL, 256QAM, CA, SRS enabled/disabled, etc)
2019-09-04 16:59:10 +02:00
Xavier Arteaga f653472aa8 SRSUE: SCell parameters condensed in a single structure 2019-07-19 18:10:23 +02:00
Xavier Arteaga b5685c8f09 SRSUE: Fixed HO with carrier aggregation 2019-07-19 18:10:23 +02:00
Ismael Gomez feafec2725 Fix srsENB PHY log and reorganized expert args 2019-07-17 12:40:57 +02:00
Andre Puschmann 4e86b2f6b2 introduce layerd architecture we use for UE to eNB
- this allows flexible use of different PHYs and radios
- use common radio_multi (moved to lib)
2019-07-12 04:17:56 +02:00
Xavier Arteaga 5dcf3b3563 Fix phy memory leaks 2019-07-08 17:13:32 +02:00
Andre Puschmann 8333a9be57 fix dtor of PHY when stack init fails 2019-06-26 17:57:25 +02:00
Xavier Arteaga c7be984819 sync.h uses lock_guard for mutex 2019-06-19 11:49:55 +02:00
Xavier Arteaga 9068280896 SRSUE: Sync.h/.cc mutexes changed to C++11 std::mutex and fixed attributes initialisation 2019-06-19 11:49:55 +02:00
Xavier Arteaga 810ce0358e SRSUE: removed CLang tidy warnings in phy.h and phy.cc except unused. Use smaer pointers for workers. 2019-06-19 11:49:55 +02:00
Xavier Arteaga 1f4cf8121b SRSUE: Initial UL channel simulator 2019-06-11 12:06:11 +02:00
Xavier Arteaga ad9808c2aa SRSUE: SCell include files rearange 2019-06-11 10:34:49 +02:00
Xavier Arteaga ceac7a02c8 SRSUE: moved sync SCell classes in new namespace 2019-06-11 10:34:49 +02:00
Ismael Gomez 4ce8d84339 Restored force frequency 2019-06-05 15:29:48 +02:00
Andre Puschmann 0e95867f13 remove task dispatcher class 2019-06-03 15:03:20 +02:00
Xavier Arteaga 9c84f8e3fd SRSLTE: Added Uniform Random vector generator; Delay channel test; Fixed Delay channel SEGFAULT; SRSUE channel unique pointer; 2019-05-30 13:07:23 +02:00
Xavier Arteaga 9ab2b2de81 SRSUE: Created delay channel emulator and added fading to the UE 2019-05-30 13:07:23 +02:00
Andre Puschmann af8564e376 add ue_lte_phy_base and move logger out of UE class 2019-05-22 11:40:23 +02:00
Xavier Arteaga 0b6efb657e SRSUE: CA can be performed without requiring clock synchronization between RF devices. Added Asynchronous SCell Synch metrics to console trace 2019-05-20 13:16:38 +02:00
Xavier Arteaga 080b4a327c SRSUE: Refactored asynchronous cell and ue_radio. CA Fixed. 2019-05-17 18:13:51 +02:00
Andre Puschmann 65f50cd7ba introduce new UE layer design
- abstract UE object now consists of a radio, a PHY, and a stack layer
- add new stack abstraction layer that combines MAC, RLC, RRC, PDCP, NAS and GW
- PHY layer now has a single stack interface and does not talk to MAC and RRC seperatly
2019-05-17 17:46:28 +02:00
Andre Puschmann dc9df36a24 remove unused radio_multi code 2019-05-16 12:30:26 +02:00
Xavier Arteaga b037fb8e51 Added minimal UE synch tweak and fix 2019-04-30 15:06:05 +02:00
Xavier Arteaga a1a797589a Added UE synchronization error metric (hard-coded disabled by default) 2019-04-30 15:02:08 +02:00
Andre Puschmann 4b01a2e4a0 update copyright notice 2019-04-29 09:20:02 +02:00
Ismael Gomez 7780b1aba5 add tdd/ca support 2019-04-25 20:57:58 +02:00
Andre Puschmann 1cc6ae3c60 enable c++11 support 2019-03-11 13:31:43 +01:00
Xavier Arteaga c782ef2aa5 Solved unitialised values in UE (up to prach) and free 2019-01-22 12:23:57 +01:00
Francisco Paisana 0204db2e12 new asn1 rrc library 2019-01-17 17:43:13 +01:00
Andre Puschmann d34ecaaa5e adding RI to DL metrics 2019-01-10 12:35:38 +01:00
Ismael Gomez cfb3a43aed Lower priority of workers 2018-09-26 14:30:39 +02:00
Ismael Gomez 6a791f1416 Change TX mutex to semaphores (mutex implementation was violating lock ownership requirement) 2018-09-06 15:22:37 +02:00
Ismael Gomez aaeec591b6 Fix race condition in phy recv 2018-08-14 19:50:03 +02:00
Xavier Arteaga 5e4fb48184 Refactored CQI reporting logging in UE. Fixes #199 2018-06-25 14:57:12 +02:00
Xavier Arteaga 6ab69b1d4c Added PDSCH coworkers 2018-06-06 16:59:00 +02:00
Xavier Arteaga 31496ab44c srsue PUSCH, set mcs idx to previous if it is a retransmission 2018-05-25 16:06:32 +02:00
Andre Puschmann 61d525ea80 Merge branch 'next' into embms_merge_final 2018-05-22 10:39:05 +02:00
Ismael Gomez 467ba4e326 Average sampling offset estimate before adjusting timing to be more robust against EVA and ETU fading 2018-05-21 23:00:57 +02:00
Ismael Gomez f8655f3260 Changed the way we detect out-of-sync 2018-05-18 18:55:23 +02:00
yagoda e4c3f0bc30 adding mbms-gw and mch generation tables 2018-05-15 17:27:10 +02:00
yagoda e35672e234 adding PHY embms support to the UE 2018-05-15 17:16:28 +02:00
Ismael Gomez 81b69327b1 Added TA to metrics 2018-05-10 21:49:00 -05:00
Ismael Gomez 3ab74fb552 Exposed continuous TX mode to ue.conf 2018-04-27 10:23:38 +02:00
Ismael Gomez 74d6028769 Delay application of time_adv by 1 subframe 2018-04-24 13:50:59 +02:00
Ismael Gomez ab7a0842ba Send PRACH from worker thread with zero time advance 2018-04-24 10:43:17 +02:00
Ismael Gomez 9c7b3339be Get CRS-based RSRP estimate for in/out-sync measurement. New SNR estimation gives 0 SNR when cell signal is lost preventing from detecting out-of-sync 2018-04-24 10:18:13 +02:00
Ismael Gomez ff1269add3 HO working 2018-04-11 15:37:27 +02:00
Ismael Gomez edd9cbf4dc Merge branch 'next' into sync_states 2018-04-10 09:35:21 +02:00
David Rupprecht 06d4559294 Change include path absolut to project dir 2018-04-01 18:08:24 +02:00
David Rupprecht 9d71bec7b6 Unified include guards 2018-03-31 19:04:04 +02:00
Ismael Gomez b3be54b274 Attach and paging ok. Reselection on IDLE not working 2018-03-21 10:46:24 +01:00
Ismael Gomez 2c3386a486 Updated missing changes 2018-03-20 15:09:32 +01:00
Ismael Gomez f88f465c97 Refactored NAS/RRC/PHY cell_search/selection procedures 2018-03-19 14:14:51 +01:00
Ismael Gomez 548a4ae29d RRC is_connected return and srsgui crashing if ports=0 when init 2018-03-16 11:23:37 +01:00
Ismael Gomez 86d4ce52e0 Make intra-frequency measurement period/length a parameter 2018-03-15 12:27:55 +01:00
Ismael Gomez f9d770e50e Added option for Doppler frequency correction 2018-03-14 17:30:55 +01:00
Ismael Gomez c0aea5ae13 Neighbour cell RSRP measurement always and only with correlation method 2018-03-14 10:23:41 +01:00
Ismael Gomez 0fbeee72a1 Fixed offset int in previous commit 2018-03-13 20:47:31 +01:00
Ismael Gomez 809c550ca2 Use RS power estimation for serving cell RSRP/SNR measurements. Use correlation of RS sequences for neighbour cell verification of Cell ID 2018-03-13 19:07:15 +01:00
Ismael Gomez c2098ad626 Removed unused sample offset correction 2018-03-13 18:52:21 +01:00