Commit Graph

2872 Commits

Author SHA1 Message Date
Francisco Paisana f26b5ccde7 fix drb reestablishment during handover 2020-10-29 21:19:40 +00:00
Francisco Paisana 97f2e4336e refactor of functions for filling the asn1 radio resource config structs. This functions are used during rrc setup/reest/reconf 2020-10-29 21:19:40 +00:00
Xavier Arteaga 9487d27ef9 Renamed NR constants and comments 2020-10-29 09:23:09 +01:00
Xavier Arteaga e8f168b20c PDSCH NR: Added files 2020-10-29 09:23:09 +01:00
Xavier Arteaga c8477483d9 PDSCH NR: Added files 2020-10-29 09:23:09 +01:00
Xavier Arteaga 30d8e05d50 Fix PDSCH-DMRS symbol index 2020-10-29 09:23:09 +01:00
Xavier Arteaga 275cbafe6e Modified comments 2020-10-29 09:23:09 +01:00
Xavier Arteaga 8d34d344a8 Created PDSCH-NR configuration structures and refactored DMRS 2020-10-29 09:23:09 +01:00
Xavier Arteaga 009f300c5e Initial PHY Data procedures 2020-10-29 09:23:09 +01:00
Xavier Arteaga 775692f461 Rearanged PDCCH NR functions structures 2020-10-29 09:23:09 +01:00
Xavier Arteaga 452eb2dbbf Updated some DOCS 2020-10-29 09:23:09 +01:00
Xavier Arteaga 937c52339d Added PDCCH DMRS estimation and measurement 2020-10-29 09:23:09 +01:00
Xavier Arteaga 5799100e42 FFT based Resampler admits NULL inputs/outputs 2020-10-29 09:23:09 +01:00
Xavier Arteaga 44ae70dcc6 Initial implementation of the 5G NR PDCCH DMRS encoding 2020-10-29 09:23:09 +01:00
Xavier Arteaga 29ad2427d9 Initial implementation of the 5G NR PDCCH DMRS encoding 2020-10-29 09:23:09 +01:00
Xavier Arteaga 579526f1fe Added sequence advance without generating data 2020-10-29 09:23:09 +01:00
Xavier Arteaga eba20b6367 Radio: fix frame overlap at start-of-burst 2020-10-28 19:01:09 +01:00
Xavier Arteaga be400503b9 Add pass criteria to PRACH USRP test 2020-10-27 21:12:21 +01:00
Xavier Arteaga 28bb4709ff Solved possible high impact PHY out-of-bounds issues 2020-10-27 20:33:48 +01:00
Pedro Alvarez e4f143059e Simple log fix to make it easier to compare PDCP RX and TX. 2020-10-27 20:30:56 +01:00
Xavier Arteaga 58be68f856 Changed cell gain command from cell index to cell id 2020-10-26 10:13:02 +01:00
Andre Puschmann 0740154bff rrc,sync: fix two uninit vars
detected by Valgrind when running UE with TDD cell
2020-10-25 14:42:30 +01:00
Andre Puschmann 723ca2dd48 ra_dl: fix TDD reference symbol extraction
reported/provided by user softdev86 in https://github.com/srsLTE/srsLTE/issues/566

author tested with local 4 port cell. I am not able to verify locally but
it looks ok, we'll revise later if needed.
2020-10-25 14:42:30 +01:00
gracid f67a152a2a Remove unnecessary Lime calibration step from Soapy implementation
When using srsLTE with Lime devices, calibration was performed before any configuration steps have happened, thus making calibration values invalid. Removing Lime specific calibration step from rf_soapy_imp makes so that devices will be automatically calibrated by SoapyLMS on rf_soapy_start_stream call.

Tested and working with srsENB using LimeSDR-USB v1.4 and LimeSDR-Mini v1.2 boards.
2020-10-25 14:32:08 +01:00
gracid 78b63c9465 Set same antennas for all Soapy channels
This commit adresses an issue where two or more channels could have different antennas, despite being explicitly set in the configuration file
2020-10-25 14:30:42 +01:00
Francisco Paisana 4cb6ed27eb updated scheduler ue mcs computation to account for new 256QAM tables 2020-10-22 19:55:46 +02:00
Francisco Paisana c7697b62a6 fix asn1_utils_test. arrays used for equal comparison where not being initialized. 2020-10-22 12:33:11 +01:00
Xavier Arteaga fac6d40a45 SRSENB: fix PUSCH max number of iterations 2020-10-22 09:24:40 +02:00
Xavier Arteaga 791c979063 Vector: fix cf to cs conjugate conversion 2020-10-22 09:24:40 +02:00
Francisco Paisana 698af97ec4 updated asn1 utils to account for conversion from 0 to bitstring. Added asn1 utils test to repository. 2020-10-20 16:29:44 +01:00
Andre Puschmann 5e7de0a95b cmake: install individual libraries (common, phy, etc)
this seems to be important for package maintainers
or people who use srslte components in other projects
thar require to link against static libs

so besides installing headers, the apps and the RF lib, we also
install all individual libraries

this fixes https://github.com/srsLTE/srsLTE/issues/500#
and https://github.com/softwareradiosystems/srsLTE/issues/1754
2020-10-20 14:47:03 +02:00
faluco 8376111419 - LGTM fixes. 2020-10-20 14:45:18 +02:00
Xavier Arteaga caf37b8e62 Added serving cell index in UCI/CSI report trace 2020-10-20 11:53:28 +02:00
Douglas Anderson fe21b2717c Fix "Comparison is always true because ret >= 0" LGTM warnings
... and refactor out some other dead code in the vacinity of these warnings
2020-10-19 18:10:36 +02:00
Andre Puschmann 48e7734188 phy_dl_test: fix uninit var 2020-10-18 15:56:16 +02:00
Andre Puschmann 1a03839f78 rlc_am_lte: fix potential bug when setting uint32_t to -1
discovered in Coverity CID 359664
2020-10-18 15:56:16 +02:00
Andre Puschmann bb1dd0f4cf gnb_interface: remove FIXME 2020-10-18 15:56:16 +02:00
Francisco Paisana 665b3996bb now the phy controller handles the scenario where the phy cell selection failed to be initialized 2020-10-16 15:54:42 +01:00
Pedro Alvarez 4c1416b84f Remove redundant declaration of EIA2 2020-10-16 11:11:51 +01:00
Andre Puschmann 5a31c5765b rf_soapy: fix auto selection of Soapy device
when the default RF args are used, NULL is passed as argument
to the RF driver. In this case, we should use the previous
SoapySDRDevice_enumerate() and let Soapy pick the device
2020-10-15 17:41:50 +02:00
Francisco Paisana 9b10acff06 implemented logical channel prioritization in DL scheduler 2020-10-14 22:55:12 +01:00
Xavier Arteaga ca6566ad46 Fix PUCCH format1b false detection 2020-10-14 16:42:33 +02:00
Andre Puschmann fab86382c1 mac,rrc: add interface to set SR config explicitly without touching any other MAC function
when releasing PUCCH/SRS (see 5.3.13 in 36.331) we need to reset the SR config as well.
In our case, SR is handled by MAC so we need to (re-)configure MAC, not all of
MAC though, just SR.
2020-10-13 17:38:45 +02:00
Francisco Paisana e7239163e9 silence noisy unhandled in_sync_ev logs 2020-10-12 18:24:14 +01:00
Francisco Paisana b7ed8b1858 - added react method to to_state<...> transitions
- s1 handover composite state simplified
- the eNB now starts a HO cancellation when it receives an invalid
Handover Command
- the FSM log now prints the current state when it receives an unhandled
event
2020-10-12 18:24:14 +01:00
Andre Puschmann 30b8848ea9 metrics_hub: protect access to vector of metrics_listener
prevent potential race between metrics hub thread trying
to access the metrics vector and another thread
adding another element to it
2020-10-08 12:30:57 +02:00
Pedro Alvarez b43e724b4c Remove packing/unpacking code for M2AP. 2020-10-08 11:02:50 +01:00
Pedro Alvarez 5a4e71a6e4 Created k_enb_context structure that holds k_enb, NCC and NH to make it easier to restore context from failed handover. 2020-10-08 09:46:34 +01:00
Jan Remeš 8c7b7cc55a libsrslte_rf: add library version
This patch adds version string to the 'libsrslte_rf' library.
This results in the library being built as
    libsrslte_rf.so.20.04.2
with the following symbolic links
    libsrslte_rf.so.0 -> libsrslte_rf.so.20.04.2
    libsrslte_rf.so -> libsrslte_rf.so.0

The SRSLTE_SOVERSION variable should be increased with each backwards
incompatible change of the library.

Signed-off-by: Jan Remes <jan.remes@invasys.com>
2020-10-07 15:38:57 +02:00
Pedro Alvarez 00ac85e1b3 Small compilation fixes for GCC 10.1 2020-10-07 15:38:57 +02:00
Xavier Arteaga da54e2b501 Better docs in RRC interface types and apply clang-format 2020-10-07 09:58:23 +02:00
Xavier Arteaga 6ae47b6510 SRSUE: Deafult PUCCH/SRS does not imply full PHY dedicated defaults 2020-10-07 09:58:23 +02:00
yagoda 615af5cc4d setting seed to constant in prach test 2020-10-05 22:04:07 +01:00
Andre Puschmann b08a586fd4 pdu: refactor error logging
just some refactoring of error messages when a PDU packing error occurs
2020-10-05 22:41:12 +02:00
faluco 693d2f10b7 - Fix hex dumps newlines. 2020-10-05 13:22:53 +02:00
Pedro Alvarez 2f0125ef4e Fix issue recovering key state, when the first HO fails (specifically, is_first_ncc was not recovered). Minor improvements in key logging. 2020-10-01 18:48:07 +01:00
Francisco Paisana 137e554eb3 reestablish pdcp bearers is required in case of AM bearers 2020-10-01 16:57:08 +01:00
faluco 079ae70e64 - Fix logs entries having two newlines instead of one. The old log formatter will delegate this to the new one. 2020-10-01 17:06:41 +02:00
Andre Puschmann f73fa47a7b pdu: fix printing of buffer state of long BSR
extracted wrong number of bits for 2nd LCID in long BSR
2020-09-30 17:17:21 +02:00
Xavier Arteaga ef9d77c966 SRSUE: add PRACH config present field in PHY configuration structure 2020-09-30 17:10:48 +02:00
faluco 51b27fc255
Import latest srslog version (#1796)
* - Import latest srslog version.
- Adjusted the nas_test to create logs correctly.
- Remove timestamp formatting now that is provided by srslog.
2020-09-30 15:52:42 +02:00
Ismael Gomez 4e88daae21
Set DCI unpacking errors to info (#1781) 2020-09-30 10:04:08 +02:00
faluco 85544bb8d3 - Remove unnecessary newline character and optimize the code to use fputs instead of fprintf since no formatting is required. 2020-09-29 17:38:13 +02:00
faluco dfeed52514 - Rename out_stream function to console. 2020-09-29 17:38:13 +02:00
faluco 62faef7c71 - Replaced all uses of the log::console method. 2020-09-29 17:38:13 +02:00
faluco 302f9793ca - Add common utils to print to stdout and stderr as a first step to remove the log::console method. 2020-09-29 17:38:13 +02:00
Andre Puschmann 58ce9d3959 pdcp: adding basic test to check if control PDUs are handled correctly
use a 3 B long status PDU to check if its dropped from the rx'ing entity
2020-09-29 15:29:04 +02:00
Andre Puschmann 795db30338 pdcp: drop PDCP control PDUs
this patch adds a check to drop all PDCP control PDUs
in order to prevent handling them as data PDUs.

This could happen when the size exceeded the arbitrary length check.

This should fix #1787
2020-09-29 15:29:04 +02:00
Sylvain Munaut 2890bd07ea liblte_mme.h: Adjust LIBLTE_MME_PACKET_FILTER_MAX_SIZE for IPv6
Original was 20 but TS 24.008, section 10.5.6.12 specifies a max
of 60 for ipv6 packet filter
2020-09-28 16:08:28 +02:00
Xavier Arteaga d375e305ec Initial NR DMRS for PDSCH 2020-09-25 11:28:04 +02:00
Ismael Gomez 76bfc78147
Fix issues with Sounding-RS (#1761)
* Fix deadlock caused by update_measurements calling in_sync

* Fix overlapping SRS condition

* Do not use shortened PUSCH in transmissions and retx from RAR

* Revert "Fix deadlock caused by update_measurements calling in_sync"

This reverts commit f58c8c8c766f8f95baa3a3bf8287d8e25b2057ba.
2020-09-24 22:25:24 +02:00
Pedro Alvarez 86f4d469c6 Added some functions to save and restore AS keys for the case of failed handover in the USIM 2020-09-24 13:30:08 +01:00
Ismael Gomez b94d24ed98
Take into account CRS from neigbhour cells when measuring interference (#1757)
* Take into account CRS from neigbhour cells when measuring interference

* fix std::isnormal compilation

* Fixed compilation of test

* Address comments

* Remove unused overrides
2020-09-23 21:46:03 +02:00
Xavier Arteaga 236ef4378d Fix u32 parsing 2020-09-23 14:16:52 +02:00
Xavier Arteaga ede58319ae Vector: added conjugate complex float to short 2020-09-23 09:06:03 +02:00
Xavier Arteaga 8566cbb079 Added device name to prach_test_usrp 2020-09-23 09:06:03 +02:00
Xavier Arteaga 60d563aa06 Fix ringbuffer read conversion 2020-09-23 09:06:03 +02:00
Xavier Arteaga eb5210dbda Radio stops Rx stream prior to stop and benchmark prompts RF metrics 2020-09-23 09:06:03 +02:00
Xavier Arteaga de0501cc55 Fix radio benchmark 2020-09-23 09:06:03 +02:00
Xavier Arteaga c20d4ff5cc Added ringbuffer zerocopy a timeout 2020-09-23 09:06:03 +02:00
Xavier Arteaga 759719ad55 Improved RF helper 2020-09-23 09:06:03 +02:00
Andre Puschmann 1afc137032
[REBASE] Make PHY non-blocking and fefactor HO procedure (#1753)
* Make PHY non-blocking and fefactor HO procedure

* makes entire PHY non-blocking through command interface
* adds dedicated queue for cell_search/cell_select commands
* refactor HO procedure to run faster, in one stack cycle. Looks closer to the specs
* force ue to always apply SIB2 configuration during reestablishment
* Run update_measurements in all workers

Co-authored-by: Ismael Gomez <ismagom@gmail.com>
2020-09-22 21:47:16 +02:00
faluco c1e680769c - Remove stray code left behind. 2020-09-22 18:00:50 +02:00
faluco f604506858 - Fixed missing initialization issues in nas that caused several jumps in liblte_mme to use uninitialized memory.
- Fixed missing initialization in spgw that caused recvfrom to use an unitialized argument.
2020-09-22 18:00:50 +02:00
faluco f0d651ae8e - Fixed a leak in the MME class not releasing the static byte buffer pool.
- Now the pool gets destroyed on program exit using a unique_ptr.
- Removed manual cleanup() calls in all the code base to free the pool instance.
2020-09-22 18:00:50 +02:00
Francisco Paisana dcf5a727f2 do not send RRC release in case the eNB receives a S1AP UEContextRelease command and the UE is doing handover. Handle GTPU end marker 2020-09-22 16:51:45 +01:00
faluco b892da0294 - Calculate the FFT of the PRACH on demand.
- Fixed a PRACH test that was failing with ASAN.
2020-09-21 09:50:20 +02:00
Xavier Arteaga 8cb3945886 SRSUE: fix RV assertion for PUSCH 2020-09-17 22:39:56 +02:00
Xavier Arteaga 44c2412be2 SRSUE: silent PUSCH encoding error by dropping invalid grant 2020-09-17 22:39:56 +02:00
Andre Puschmann 9dd02af15c network_utils: lower verbosity of when socket connection fails
the network helper can log this event but it should be up to
the caller to decide whether this is an error or not.
2020-09-16 13:41:32 +02:00
Andre Puschmann 6dc7841369 epoll_helper: move code to block OS signals into own helper function
before epoll can handle signals, the calling thread needs to block
them. the blocking needs to happen before any other threads get
spawned so they inherit the mask.
2020-09-14 21:20:00 +02:00
Andre Puschmann 33c050791f pdu: add missing to_string() content for MAC SCH PDU subheaders
* add both scell activation CE
* add rnti to CRNTI and CONT RES CE
2020-09-14 20:09:46 +02:00
Xavier Arteaga 1d71cf8557 Avoid zero division 2020-09-10 11:11:46 +02:00
faluco 5e8a4c898d
Bring back the circular array object. (#1712) 2020-09-09 17:16:47 +02:00
Andre Puschmann 6a56476b2a rlc: increase RLC Tx SDU queue
the Tx SDU has been set to 128 PDUs because this gives approx.
150kByte UL buffer state (max value for Rel 8 BSR).

Previously, however, we've always reported too much pending UL
data because we weren't subtracting the transmitted data from
the reported data.

with this newer BSR reporting, however, even with full buffers we would
never report full buffers because the queues size is too short.

This seems to cause issues for iperf TCP sessions not resulting
in full DL rate, see isse #1703. It seems that the TCP bandwitdh
probing works better with larger buffers (in our case this can
only be achieved with more PDUs in the pool).

This should fix #1703
2020-09-08 22:27:21 +02:00
Andre Puschmann 569d8ee860 rlc: remove unused macro
this seems to be a legacy copy of the RLC_TX_QUEUE_LEN macro
in rlc_interfaces_types.h
2020-09-08 22:27:21 +02:00
faluco 1860006203 - Fixed leaks in prach module spotted by asan. 2020-09-08 17:26:50 +02:00
Andre Puschmann e80aa0a553 add circular array class to simplify access to truly circular arrays 2020-09-07 15:56:48 +02:00
yagoda 24574caf44 cleaning up the PRACH time offset calculation 2020-09-07 14:56:12 +01:00
yagoda b5a8d82058 -adding more prach tests to make test, removing some variables from stack
-PRACH time offset to TA unit conversion
2020-09-07 14:56:12 +01:00