3430 Commits (df8ec4ddd504ab7fa9948e87bc9a6938a64bcd58)

Author SHA1 Message Date
Xavier Arteaga d0a4b4d409 Changed DL-SCH LDPC scaling factor for decoding high rates 4 years ago
Xavier Arteaga 2e59f6a568 Applied LDPC fixes and minor aestheic modifications 4 years ago
Xavier Arteaga 13443c3f8c Added number of DMRS CDM groups without data to NR grant 4 years ago
Xavier Arteaga d413c1aaec Fix base graph selection and improved PHY LIB logging 4 years ago
Xavier Arteaga 808bb3fb94 Fix string to modulation conversion and apply clang-format 4 years ago
Xavier Arteaga 0a06074158 Skip NR PDSCH allocation in PDSCH DMRS symbols 4 years ago
Xavier Arteaga 1775052144 Fix NR PDSCH DMRS cinit and zero after free 4 years ago
Francisco Paisana 74ffe393c6 asn1 update: s1ap asn1 is now v16.1 (2020-03) 4 years ago
faluco 92b11c1adb Backport misc changes from the fapi repo. 4 years ago
Francisco Paisana 66aa34d173 update RRC NR ASN1 to 2020-09 v15.11 4 years ago
Andre Puschmann d5daf60773 pdu_test: add unpacking test for DL-SCH PDU containing TA command 4 years ago
Andre Puschmann c5514d7f80 pdu: fix to_string() for TA command
the get_ta_cmd() is returning uint8_t which stringstream
interprets as ASCII character by default. So the log message is bogus.
4 years ago
Pedro Alvarez 0ad0e9acac Make sure that RLC entity is only re-created if it switches modes. 4 years ago
Pedro Alvarez 0c20b7a455 Added support for S1AP modify bearer request support. This includes:
- Handle received E-RAB S1AP at s1ap.cc.
 - Added methods to rrc.cc, rrc_ue.cc and rrc_bearer_cfg.cc to handle erab modify request.
 - Made RLC add_bearer() function capable of re-creating the RLC entity.
 - Send RRC reconfiguration to the UE and reply to the EPC with S1AP
   modify bearer response.

This commit also adds support to srsEPC to send S1AP modify bearer request for
testing purposes.
4 years ago
Andre Puschmann 48b37394f1 rlc: remove unneeded log entry
was added for testing only
4 years ago
Francisco Paisana 099dad8cb1 disable PHR handling in the UL sched by default 4 years ago
Francisco Paisana e27c0869e5 update RRC ASN1 to 2020-09 v15.11 4 years ago
Andre Puschmann bc4c9606ce rlc_am: add extended bearer metrics
this patch adds support for measuring the:
* SDU rx latency (Average time in ms from first RLC segment to full SDU)
* amount of buffered bytes (sum of payload of PDUs buffered in rx_window)

the implementation is using std::chrono
4 years ago
Andre Puschmann d54c33258b rlc_metrics: add sdu rx latency and buffered bytes 4 years ago
Andre Puschmann 2e64fff1df common: extend timestamp interface for byte_buffer
* allow setting timestamp to a specific std::chrono::time_point
* add getter from raw tp
4 years ago
Andre Puschmann 81cfce6cf0 rlc_um: remove latency calculation from RLC UM 4 years ago
Xavier Arteaga 533222f245 NR PDCCH fixes 4 years ago
Xavier Arteaga a746e29395 Removed shadow variable 4 years ago
Xavier Arteaga 99ca2d2f14 Add polar interleaver 4 years ago
Xavier Arteaga 3662210842 Fix external softbuffer inclusion 4 years ago
Francisco Paisana 1ea635f9ae asn1 utils fix: avoid unpacking an unconstrained integer length twice 4 years ago
Andre Puschmann e43eab8b5f rlc: fix rate metrics (nan,inf values), use std::chrono
similar to GW, we remove gettimeofday and use std::chrono.
we also make sure to reset the metrics after reestablishment
4 years ago
David Rupprecht 826dd32c89 Rename meas_cell to meas_cell_eutra
Added meas_cell_nr class

Make meas_cell list as template class

Inheritance rrc_cell to meas_cell_nr
Added process_new_cell_meas_nr function
4 years ago
David Rupprecht 62b558fccf Move rat type to common header
Removed phy measurement from rrc interface phy

Updated rrc interface for handling measurements
4 years ago
Ismael Gomez f9a02299f9 Use MAC PDU pointer instead of tti_rx and rnti as a key to associate buffers. Decouple crc_info() and push_pdu() functions. This allows for different timing architectures in the PHY 4 years ago
Ismael Gomez 0498439d41
Backport some changes from FAPI branch (#2124)
* Reorder DCI FORMAT enum

* Fix endianness issue

* Fix return codes in phy_ue_db

* Log members should be destructed after the layers.

* Add JSON metrics and Events. Add Alarm log channel. Simplify MAC metrics struct.

* Restore metrics_stdout change
4 years ago
Francisco Paisana ea36e46635 fix asn1 length determinant packing/unpacking. avoid subtracting len by zero before the packing 4 years ago
Francisco Paisana d198e8fb31 fix asn1 length determinant packing for upper bounds above 64K 4 years ago
Francisco Paisana 1304746bce use of fmt lib in asn1 utils 4 years ago
Andre Puschmann 9133135e12 rlc_tm: remove error from log when RLC TM PDU can't be sent
RLC TM can't be segmented so it may happen that a PDU
cannot be sent because the grant is too small. That is not
an error and should only be logged in info.
4 years ago
Francisco Paisana 53116a99fc add rlc metrics to rlc_um 4 years ago
Francisco Paisana 82eb31f70f add rlc metrics to enb 4 years ago
Francisco Paisana 0f693b36b2 changed pdu latency calculation to std chrono 4 years ago
Francisco Paisana 7ffc236a1a enable log line when rlc tx pdu last segment is sent but the latency log is disabled 4 years ago
Francisco 951912d18a disable RLC latency measure when ENABLE_TIMESTAMP flag is disabled 4 years ago
Francisco 92bc98e2f0 add byte tx counter to the set of metrics being measured in RLC 4 years ago
Francisco e2654e69ec Enable pdu stack latency measurements in the eNB. 4 years ago
faluco f23fdf0639 Include missing files. 4 years ago
faluco 98a2c868b5 Update srslog to latest version. 4 years ago
faluco f20b75a05f Re-structure enb metrics a bit. Create a generic mac metric struct and per ue mac metrics struct. 4 years ago
faluco 5529943172 Add a per sector rach preable counter for the metrics. 4 years ago
faluco dcd1157d39 - Prototype the extension of enb metrics. 4 years ago
Pedro Alvarez 7eebd71627 Added S1AP E-RAB release command/response handling to srsENB.
Added the ability to srsEPC to send the E-RAB release command.
4 years ago
Francisco cba0cc457f sched rand test refactor: creation of abstract sched simulator class for testing 4 years ago
Francisco b86d2ab7d0 move choice_type to adt folder 4 years ago
Codebot 43082e8d6a enb/ue: turn various warning messages into info
turn events that may happen in the normal life of a eNB/UE
into info rather than warning to allow strict
warning/error checking in tests.
4 years ago
Codebot f5d14d7649 polar_chain_test: fix compilation issue when AVX2 isn't used
this fixes compilation on aarch64:

FAILED: lib/src/phy/fec/polar/test/CMakeFiles/polar_chain_test.dir/polar_chain_test.c.o
/usr/bin/gcc -DENABLE_TIMEPROF -DENABLE_TTCN3 -DHAVE_5GNR -DHAVE_MBEDTLS -I/usr/include/SoapySDR -Ilib/include -I../lib/include -Wno-unused-but-set-variable -Wall -Wno-comment -Wno-write-strings -Wno-unused-result -Wformat -Wmissing-field-initializers -Wtype-limits -std=c99 -fno-strict-aliasing -D_GNU_SOURCE -O3 -fno-trapping-math -fno-math-errno -DBUILD_TYPE_RELEASE -DIS_ARM -DHAVE_NEON -DHAVE_NEONv8 -fvisibility=hidden -fdiagnostics-color=always -Werror --param large-function-growth=1600 -O3 -DNDEBUG -fPIE -MD -MT lib/src/phy/fec/polar/test/CMakeFiles/polar_chain_test.dir/polar_chain_test.c.o -MF lib/src/phy/fec/polar/test/CMakeFiles/polar_chain_test.dir/polar_chain_test.c.o.d -o lib/src/phy/fec/polar/test/CMakeFiles/polar_chain_test.dir/polar_chain_test.c.o   -c ../lib/src/phy/fec/polar/test/polar_chain_test.c
../lib/src/phy/fec/polar/test/polar_chain_test.c: In function ‘main’:
../lib/src/phy/fec/polar/test/polar_chain_test.c:214:11: error: unused variable ‘gain_c_avx2’ [-Werror=unused-variable]
  214 |   float   gain_c_avx2 = NAN;
      |           ^~~~~~~~~~~
../lib/src/phy/fec/polar/test/polar_chain_test.c:191:7: error: unused variable ‘errors_symb_c_avx2’ [-Werror=unused-variable]
  191 |   int errors_symb_c_avx2 = 0;
      |       ^~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
4 years ago
David Rupprecht 848496bb0f Moved get_earfcn to srslte get_carrier_freq func 4 years ago
David Rupprecht 2e51cfc1a5 Added black cells with index function
Added new index functios
Use asn1 list functions for toAddMod and toRem lists
4 years ago
David Rupprecht 96b75b6433 Fixes clang compiler error in case of UHD_ENABLE_RFNOC enable 4 years ago
Andre Puschmann c0883291f6 rlc: pass TTI to get_metrics to calculate "real" LTE rx/tx rate
when retrieving the RLC metrics, the number of TTIs since the last
call are passed. This allows to calculate the actual rate
based on the LTE timing rather than only the system timing.
4 years ago
Andre Puschmann cff9f03a11 rlc_am_lte: remove unused rx/tx metrics members
those variables aren't used and are included in the bearer metrics already
4 years ago
Andre Puschmann 3c169e6be1 rlc_am: increment retx counter for segments
we've only incremented the retx when retransmitting a full PDU,
but not when only retransmitting segments.

This might lead to many more retx than allowed.
4 years ago
Francisco b41fc96d6d fix asn1 integer packing for integer values whose length is equal or above 32 bits 4 years ago
Pedro Alvarez 38206bea69 Fixed RLC AM fixed header size in get_buffer_state function. Fixed RLC AM tests accordingly. 4 years ago
Francisco 99f94d9a1a Bug fixes of srseNB scheduler TPC
- fix encoding of TPC command
- use of exponential average with irregular sampling for the ULSNR average estimate.
  Turns out using a time-windowed average for the SNR was a bad idea.
  If the UL grants are very sporadic, the SNR time window will never have samples
  when a TPC is encoded
- update of TPC sched test
- other fixes in accumulators lib
4 years ago
Xavier Arteaga d6b5229dbe Added CSI-RS unit test and fix defects 4 years ago
Xavier Arteaga 6127681102 Added csi_rs header 4 years ago
Xavier Arteaga 08799cfe0f NR CSI-RS initial put/measure 4 years ago
Xavier Arteaga b7d74ef70b Initial CSI RS 4 years ago
Francisco 7ee99a529a fix assertion messages for bounded_vector::back() method 4 years ago
Francisco 5cce2e4dc7 extension of bounded_vector unit test and fix of compilation issues
- now bounded_vector::resize(N) works for move-only types
- bounded_vector assertions now print error messages
- fixed move ctor/assignment of bounded_vector
- created a unit test for bounded_vectors of move-only types
4 years ago
Francisco 2598989f7d replace msg3grant type from C-array to bounded vector 4 years ago
Francisco fc451f17f0 implementation of bounded_vector and respective unit test 4 years ago
Francisco 22229adf08 fix: normal phr is only sent for PCell 4 years ago
Francisco 69748e9313 fix compilation issue regarding definition of size_t in header and declaration of static member null_value in sliding average class 4 years ago
Francisco d42dc50c44 Write TPC sched unit test and fix sched logical channel test 4 years ago
Francisco 479602ed1d add option to specify target ul sinr for UL power control to the enb rr.conf parser 4 years ago
Francisco 5865df39d1 created class that implements the scheduler transmit power control and PHR handling 4 years ago
Xavier Arteaga 788ed5ce70 Corrected PDCCH SEGFAULT 4 years ago
Xavier Arteaga 8cc023e168 Fix PDCCH NR Test 4 years ago
Xavier Arteaga c0cdce6450 Updated license 4 years ago
Xavier Arteaga e07cf513d0 Improved NR blind search and DL test 4 years ago
Xavier Arteaga 90aa4fbea7 Improved srslte_chest_set_smooth_filter_gauss 4 years ago
Xavier Arteaga c635b1e467 Initial NR DCI blind-search 4 years ago
Xavier Arteaga 85d5026e38 Improved NR PDCCH unit test 4 years ago
Xavier Arteaga 315394560d Fix Polar unitialised read 4 years ago
Xavier Arteaga cd1aef7d76 Added NR PDCCH unit test plus fixes 4 years ago
Xavier Arteaga 53f6ac118e Initial PDCCH encode/decode 4 years ago
Xavier Arteaga 159a3d84bd Fix minor precoding issue 4 years ago
Xavier Arteaga 65d5fcf45d Add minor DCI location comment 4 years ago
Xavier Arteaga 67ce4c1491 Avoid std memory functions in EVM measurement 4 years ago
Andre Puschmann 00a6e16c14 update license header for liblte_*.{h,cc} files
user license-agnostic text to refer to license file.
make sure copyrights/years are correct.
4 years ago
Andre Puschmann 47c5f9e85b remove AGPL header from remaining cpp files
* also add commercial header to come CMake helpers
4 years ago
Andre Puschmann b9f363db9a ssl: rename liblte_ssl.h to ssl.h 4 years ago
Andre Puschmann ef19b1a9bd fix various uninit vars detected by cppcheck
non-critical fixes in tests mostly, still good to have those clean
4 years ago
Xavier Arteaga 81d72380b5 Reduce FEC Polar chain test time 4 years ago
Xavier Arteaga f9643843a0 SRSENB/UE Fixed NR workers 4 years ago
Xavier Arteaga b501f2eeaf SRSENB/UE: Added NR workers 4 years ago
Xavier Arteaga ac930003be SRSUE: Integrated NR workers 4 years ago
Xavier Arteaga 6fb56a3c62 LDPC: fix AVX tests compilation 4 years ago
Xavier Arteaga a908fb6c5b Fix NR srsue/srsenb. Initial PHY NR in SRSENB. 4 years ago
Xavier Arteaga eed9405e40 Moved NR MAX MIMO layers to carrier 4 years ago
Xavier Arteaga c6798653be SRSUE: created initial PHY LTE worker pool 4 years ago
David Rupprecht c9c8a1db5c Added toRemoveList function for rrc asn lists 4 years ago
Xavier Arteaga 31a637adae Fix UCI SCH threshold, cover PUSCH 64QAM, check UCI-ACK valid in PUSCH test 4 years ago
Xavier Arteaga 12c076bf96 updated copyright headers 4 years ago
Xavier Arteaga 24297f973c Removed CTTC from file headers 4 years ago
Xavier Arteaga 035fcc9afb Removed FEC working directory 4 years ago
Xavier Arteaga bde1fa703d Added Polar RM and removed vectors with malloc from FEC NR 4 years ago
Francisco 82d057345b fix compilation issue with user-defined fmt formatter 4 years ago
Francisco 86ab1864f7 The struct tti_point is now used ubiquitously in the scheduler 4 years ago
Pedro Alvarez 49bcffcdf8 Fix issue packing TEID in Error indication. 4 years ago
Francisco 8fb3ea6922 Added the ability to choose scheduling policy from enb.conf
- The two options provided at the moment are time-domain RR and PF
4 years ago
Andre Puschmann 07d2bc4fe8 change license header to agnostic version with hint to root LICENSE file 4 years ago
Francisco 2dc3fce9bd fix derivation of UL-64QAM support from the UE Capabilities in the eNB
Before this PR, the eNB was not activating UL-64QAM if the UE release was below 12,
due to an erroneous convertion of the ASN1 EUTRA Capabilities struct into the flattened
srslte::ue_capabilities_t.

With this PR, the eNB activates UL-64QAM for the following cases:
- UE category 5
- UE category 8 and release >= 10
- UE category UL 8 and release >= 12
4 years ago
Francisco f07e52129c increase mcs ul upper bound to 24 when ue is cat4 and enb supports 64qam. Simplified max_mcs computation 4 years ago
Andre Puschmann 477fe77f24 rlc_am: reformat log message for PDU retx 4 years ago
Andre Puschmann 6d3af2d2bd rlc_um: fix bearer name in logging after re-configuration
the RLC bearer name was empty after reestablishing a UM bearer.

we need to pass the RLF config and RB name to the internal configure()
call of the Rx entity, like we already do for the Tx side
4 years ago
Xavier Arteaga 225bc9d260 Enable FEC SIMD acceleration 4 years ago
Jesus Gomez c9cdb0d53c Solve Issue 1: Invalid read in LDPC AVX2 Encoder/Decoder 4 years ago
Andre Puschmann d014a89cfb pdsch_ue: enable EVM measurements for PDSCH
enable EVM measurements by default and print them in to stdout.
This is very useful for manual receiver calibration with the
PDSCH eNB example.
4 years ago
Andre Puschmann 504d8fd9f0 pdsch: calculate average PDSCH EVM over all decoded codewords
when EVM measurements are enabled, instead of only logging them for
each decoded codeword, we also calculate the average.

this is useful for calibration.
4 years ago
Andre Puschmann cfee074756 pdsch_enodeb: add tx gain control over page-up/down keys
this allows to modify the tx gain of a running pdsch_enodeb
with the page-up/down keys in 1dB steps
4 years ago
Andre Puschmann 382f56fbea pdsch_{ue,enodeb}: add -Q switch to enable use of standard LTE rates
this is useful for RF equipment that doesn't support the shorter symbol
size we use by default, e.g. the N310
4 years ago
Xavier Arteaga 755325fc3e Avoid sizeof and standard memory functions 4 years ago
Xavier Arteaga 35bf5b8c6d Added generic memory malloc 4 years ago
Xavier Arteaga 83dddae525 Added vector zero 4 years ago
Xavier Arteaga a5537cc1ef Correct argument 4 years ago
Xavier Arteaga b7fc2299e5 Softbuffers initialise buffer pointers with zero memory 4 years ago
Andre Puschmann 7f81f44427 rf_uhd: treat N3xx like the X3xx and do not set timespec on every burst iteration
the N310 too doesn't seem to like setting the timespec for each call to
send in a single burst
4 years ago
Francisco 7a74bf28d1 forward declare s1ap types in enb interfaces 4 years ago
Francisco 66712023bb remove unneeded includes of full rrc asn1 lib 4 years ago
Francisco 0ffea62411 Wrote logging functions for SCHED MAC CE/LCID allocations 4 years ago
Francisco 68eda336bd remove ENB_METRICS_MAX_USERS compile time macro and use run-time variable to set maximum number of UEs the srseNB can have connected at a given instant. 4 years ago
Pedro Alvarez d05bc064b5 Reduced SCTP connect() timeout.
Added configuration for RTO_MAX. Cleanup debug prints.
4 years ago
yagoda bdc1964335 consolidating RRC eMBMS configuration into single function, setting some parameters to const 4 years ago
yagoda b90574975b refactoring asn1 eMBMS code, removing asn1 from PHY and MAC in eNodeB 4 years ago
Francisco 1cb65f07f1 enable meas gaps in RRC and enb parser 4 years ago
Xavier Arteaga c2bc042713 Disable SIMD AVX decoder 4 years ago
Francisco Paisana 9579931f16 added meas gap checks to scheduler ue 4 years ago
Andre Puschmann 43a6cd50e5 rf_imp: fix stopping of AGC thread
hard killing of AGC thread causes issue on some RF devices,
such as the N310. The thread still seemed to access the device while
the radio was already killed (or the streamer object deleted).

It's unclear why this isn't causing similar issues on B210 or X310,
at least not visible, but it is obviously not the correct way to stop a thread.

The patch now correctly sets the stop flag for the AGC thread, wakes it
it up and waits until it has terminated.
4 years ago
Xavier Arteaga 7495986b5c Minor aesthetic changes and fix memory issue 4 years ago
Xavier Arteaga 0396ebae17 Fix UE/ENB DL NR 4 years ago
Xavier Arteaga 8de2870788 Added NR ue_dl, enb_dl and test 4 years ago
Xavier Arteaga 6b5c4148c8 DL Channel estimation results accepts nof RE 4 years ago
Xavier Arteaga ce330a6dfb OFDM's DC is optional 4 years ago
Xavier Arteaga c6a2e4578e Refactored PHY object arguments 4 years ago
Xavier Arteaga e621a1cde3 EVM buffer takes number of bits 4 years ago
Xavier Arteaga a278a49e42 Limit PDSCH-NR unit test 4 years ago
Xavier Arteaga bff71761a9 PDSCH-NR: Added single layer channel equalization 4 years ago
Xavier Arteaga 0138c3b856 PDSCH-NR fixed with unit test 4 years ago
Jesus Gomez 6defd2658c Solve Issue 2: Rate matching zeroes output data prior to soft-combine 4 years ago
Xavier Arteaga fb64c2a460 Initial NR PDSCH encode/decode 4 years ago
Xavier Arteaga 666ba7d590 Added unpacked bit sequence XOR 4 years ago
Xavier Arteaga 6df83c32b3 Added NR layer mapper and demapper 4 years ago
Xavier Arteaga 3060972514 Removed redundant softbuffer dependency 4 years ago
Xavier Arteaga 644758416e DL-SCH-NR adjust unit test 4 years ago
Xavier Arteaga d27f0819a8 Fix DL-SCH for NR 4 years ago
Xavier Arteaga 53282bdfbf Dl-SCH-NR: updated unit test 4 years ago
Xavier Arteaga 4e5edb5168 DL-SCH NR added traces and fixes 4 years ago
Xavier Arteaga 2aa7e43771 Implemented NR DL SCH decoder and unit test 4 years ago
Xavier Arteaga 3464dd3c0d Added MCS table string serializer 4 years ago
Xavier Arteaga 794d1b5c4b Added LDPC decoder RM interface 4 years ago
Xavier Arteaga fa691bb8e3 Fix softbuffer 4 years ago
Xavier Arteaga 27a3e87fb7 Initial DL-SCH encoding 4 years ago
Xavier Arteaga bc66942b8d Bit unpacking input to constant 4 years ago
Xavier Arteaga 9a320baf37 extended resource allocation for NR 4 years ago
Xavier Arteaga 766a43225d 5G FEC extension 4 years ago
Xavier Arteaga 30037d9223 Added guru softbuffer interface 4 years ago
Xavier Arteaga 8e8889032e Changed CRC input vector to constant 4 years ago
Xavier Arteaga f64c268a69 SRSUE: Refactored MAC/RRC SCell Activation/Deactivation 4 years ago
Andre Puschmann ff5f215df9 rf_soapy: print warning when using the Lime with shorter sample rates
the Lime has better performance when using the default LTE sample
rates due to filterering being done in the LMS RF chip.

Print a warning when using the Lime with the non-default LTE rates.
4 years ago
Andre Puschmann 2c797fce1a phy_common: add method to check whether we use default LTE symbol size
helpful getter to check whether we've compiled in
or selected at run time to use default LTE sample rates
4 years ago
Xavier Arteaga a6ac80cfbf Initial NR DL DCI Packing/Unpacking 4 years ago
Francisco Paisana fdec451a9d disable mcs>20 if eNB supports UL 64QAM but UE doesn't 4 years ago
Francisco Paisana bf7c587e4f add UL 64QAM support to eNB RRC and scheduler 4 years ago
Andre Puschmann 5f7f818abb pdu: fix bug in BSR table lookup
the bug causes the BSR to return a bsr_idx of 0, i.e. no data
pending, when the buff_size was reported to be 1 B only.

Instead, the UE should return BSR idx 1, i.e. between 0 < BSR <= 10.
4 years ago
Andre Puschmann e227fec3d8 pdu_test: add rigerous test for LBSR content
* make sure upper and lower edges of Table 6.1.3.1-1 in 36.321 are correct
* fix existing BSR test vectors (verified with Wireshark)
4 years ago
Andre Puschmann 286844b3dd mac_pdu: reset subheader state when deleting from PDU
when packing MAC PDUs, adding a new SDU might fail, for example
because RLC couldn't provide a new PDU. The muxer then needs
to delete the subheader from the PDU again.

When adding a padding BSR at the end, the same subheader is again
used to store the BSR, so any state in that subheader should be removed.

In the particular case, this was causing an issue when logging a LBSR
because the LCG buffer states are printed using the payload buffer,
which was still pointing to some memory that was used when trying
to add the new RLC PDU in the beginning.
4 years ago
Andre Puschmann 035d989737 pdu: fix unpacking of LCG2 of LBSR MAC CE
LBSR packing is fine but this makes the eNB do wrong things
because it thinkgs LCG2 has no or too much data to send.

LCG2 is our default LCG for DRB1. One occasion we saw the issue
is doing full rate TCP DL which requires quite a bit of ACK traffic
back to the sender. With the BSR for LCG2 being wrong, providing
UL grants was delayed and so the TCP DL throuhgput was very low.

In the log below we see that the buff_size[2]=1 so there is data to send.
Interestingly, the packing was correct so Wireshark displays it correctly.
But the unpacking not, as can be seen in the MAC log below which reports
0 buffer state for all LCGs

22:08:54.804792 [MAC ] [I] [ 5084] pdu_get: sdu_len=1212, channel.sched_len=1213, bsr.buff_size[2]=1
22:08:54.804840 [MAC ] [I] [ 5084] UL LCID=3 len=1212 LBSR: b=0 0 0 0
4 years ago
Xavier Arteaga cf55eb4c4f Improved comments 4 years ago
Xavier Arteaga e8f94c40b8 Added LDPC codeblock segmentation 4 years ago
Xavier Arteaga fc3d154fe3 Fix compilation 4 years ago
Xavier Arteaga 736e6db616 Initial resource allocation for NR 4 years ago
Xavier Arteaga 0439161de6 Removed modulation enum from LDPC RM 4 years ago
Pedro Alvarez 454162cea7 Deleted nas_interface_stack. 4 years ago
Pedro Alvarez 604e79214d Changed NAS is_attached interface to is_registered. 4 years ago
Pedro Alvarez 14844a168a Created new class to hold all NAS states for the NAS state machine. Added EMM-DEREGISTERED substates and EMM-REGISTERED substates.
Decoupled PLMN selection, attach request and service request. Removed RRC connect procedure from NAS.
4 years ago
Andre Puschmann 6773f6d02f pdu_queue: add reset method to empty queue 4 years ago
Francisco Paisana 88105c1577 change the namespace of tti point helper functions for the eNB 4 years ago
Andre Puschmann f155b7a5d5 rlc: fix stopping of poll retx timer (#2006)
* rlc_am: add TC for pollRetx timer handling

* rlc_am: fix stopping of pollRetx timer

stopping the pollRetx timer when receiving a status PDU
without checking the acknowledged PDUs is wrong.

if an ACK for another PDU, for which the polling bit has been set,
is still pending, it won't be rescheduled until another
PDU is transmitted that again starts the pollRetx timer.

this fixes the issue with missing RLC AM segment retx in #1992,
and #2003
4 years ago
Andre Puschmann 7cf919e2af Fix MAC PDU packing after sending Truncated BSR (#2004)
* mac_test: add extended TBSR unit test

unit test to MAC UL packing after sending a TBSR

this fixes the MAC issues described in issue #2002

* mux: fix updating of LCG buffer state after packing PDU

we've previously lowered the buffer state of the LCG according
to the bytes that have been scheduled, but not according to
those that have been actually included in the PDU.

* proc_bsr: fix LCG buffer state updating for TBSR

when sending a TBSR do not update the internal buffer
state of the BSR proc.

This caused issues because the buffer state for all LCG that
are not included in the TBSR are set to zero, although at least
one LCG does have data to transmit.

* rlc_am: include LCID when logging retx of SN
4 years ago
Andre Puschmann 1b97ba5300 benchmark_radio: fix duration and thread priority
I noticed that the app didn't configure the process with
RT thread prio. But it then turned out that in order to do
that we need to actually spawn a new thread. Also a few other things
didn't work out of the box.

In summary the changes are:
* fix duration to support more than 120s
* move main functionality in thread
* set high priority for radio thread
* only return success if no radio errors occured
4 years ago
Francisco Paisana 510959b50f update nr asn1 files, and asn1 tests 4 years ago
Xavier Arteaga 8d9577626b Fix NR FEC unit test 4 years ago
Xavier Arteaga 0c2f96d389 Fix 5G NR FEC memcheck 4 years ago
Xavier Arteaga 2835e87ff0 Add missing file 4 years ago
Xavier Arteaga f8dd67260f Polar: fix unit test working directory 4 years ago
Xavier Arteaga 15356b3ec8 Fix compilation for non-AVX2 machines 4 years ago
Xavier Arteaga 2c4aa1e379 Added Polar and LDPC forward error correction 4 years ago
David Rupprecht 387a84ff84 Updated missing byte 4 years ago
David Rupprecht b85cb614aa Added test cases for asn1 decoding lib from pcap 4 years ago
Xavier Arteaga 271002c9fb Fix compilation 4 years ago
Xavier Arteaga 4f89c6ed3f Added missing CMakeFiles 4 years ago
Xavier Arteaga f21590735d refactored FEC directories 4 years ago
Xavier Arteaga 7093a85f81 Refactored FEC directories 4 years ago
Xavier Arteaga c2621cc4f8 Protect ring-buffer write from nullptr 4 years ago
Francisco Paisana a865858db3 disable srbs UL during handover to avoid UL grants and scheduling requests before the handover is complete 4 years ago
Andre Puschmann f647343f18 rlc_am: fix poll bit during header reconstruction
this makes sure that the reconstructed RLC AM header
has the poll bit set when any of its segments had it set.

this triggered a bug in RLC AM because the Status PDU
isn't transmitted for a RLC PDU that was segmented and
only the first segment had the P flag set.
4 years ago
Francisco Paisana b40a5a958e use common function to fill rrc reconf message in handover 4 years ago
Francisco Paisana e9b693942f diff-based cell selection activation 4 years ago
Francisco Paisana 836e7d7ede refactor scell addition in the srsenb::rrc to follow the same style of other rrc recfg fields 4 years ago
Francisco Paisana f26b5ccde7 fix drb reestablishment during handover 4 years ago
Francisco Paisana 97f2e4336e refactor of functions for filling the asn1 radio resource config structs. This functions are used during rrc setup/reest/reconf 4 years ago
Xavier Arteaga 9487d27ef9 Renamed NR constants and comments 4 years ago
Xavier Arteaga e8f168b20c PDSCH NR: Added files 4 years ago
Xavier Arteaga c8477483d9 PDSCH NR: Added files 4 years ago
Xavier Arteaga 30d8e05d50 Fix PDSCH-DMRS symbol index 4 years ago
Xavier Arteaga 275cbafe6e Modified comments 4 years ago
Xavier Arteaga 8d34d344a8 Created PDSCH-NR configuration structures and refactored DMRS 4 years ago
Xavier Arteaga 009f300c5e Initial PHY Data procedures 4 years ago
Xavier Arteaga 775692f461 Rearanged PDCCH NR functions structures 4 years ago
Xavier Arteaga 452eb2dbbf Updated some DOCS 4 years ago
Xavier Arteaga 937c52339d Added PDCCH DMRS estimation and measurement 4 years ago
Xavier Arteaga 5799100e42 FFT based Resampler admits NULL inputs/outputs 4 years ago
Xavier Arteaga 44ae70dcc6 Initial implementation of the 5G NR PDCCH DMRS encoding 4 years ago
Xavier Arteaga 29ad2427d9 Initial implementation of the 5G NR PDCCH DMRS encoding 4 years ago
Xavier Arteaga 579526f1fe Added sequence advance without generating data 4 years ago
Xavier Arteaga eba20b6367 Radio: fix frame overlap at start-of-burst 4 years ago
Xavier Arteaga be400503b9 Add pass criteria to PRACH USRP test 4 years ago
Xavier Arteaga 28bb4709ff Solved possible high impact PHY out-of-bounds issues 4 years ago
Pedro Alvarez e4f143059e Simple log fix to make it easier to compare PDCP RX and TX. 4 years ago
Xavier Arteaga 58be68f856 Changed cell gain command from cell index to cell id 4 years ago
Andre Puschmann 0740154bff rrc,sync: fix two uninit vars
detected by Valgrind when running UE with TDD cell
4 years ago
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.
4 years ago
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.
4 years ago
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
4 years ago
Francisco Paisana 4cb6ed27eb updated scheduler ue mcs computation to account for new 256QAM tables 4 years ago
Francisco Paisana c7697b62a6 fix asn1_utils_test. arrays used for equal comparison where not being initialized. 4 years ago
Xavier Arteaga fac6d40a45 SRSENB: fix PUSCH max number of iterations 4 years ago
Xavier Arteaga 791c979063 Vector: fix cf to cs conjugate conversion 4 years ago
Francisco Paisana 698af97ec4 updated asn1 utils to account for conversion from 0 to bitstring. Added asn1 utils test to repository. 4 years ago
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
4 years ago
faluco 8376111419 - LGTM fixes. 4 years ago
Xavier Arteaga caf37b8e62 Added serving cell index in UCI/CSI report trace 4 years ago
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
4 years ago
Andre Puschmann 48e7734188 phy_dl_test: fix uninit var 4 years ago
Andre Puschmann 1a03839f78 rlc_am_lte: fix potential bug when setting uint32_t to -1
discovered in Coverity CID 359664
4 years ago
Andre Puschmann bb1dd0f4cf gnb_interface: remove FIXME 4 years ago
Francisco Paisana 665b3996bb now the phy controller handles the scenario where the phy cell selection failed to be initialized 4 years ago
Pedro Alvarez 4c1416b84f Remove redundant declaration of EIA2 4 years ago
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
4 years ago
Francisco Paisana 9b10acff06 implemented logical channel prioritization in DL scheduler 4 years ago
Xavier Arteaga ca6566ad46 Fix PUCCH format1b false detection 4 years ago
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.
4 years ago
Francisco Paisana e7239163e9 silence noisy unhandled in_sync_ev logs 4 years ago
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
4 years ago
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
4 years ago
Pedro Alvarez b43e724b4c Remove packing/unpacking code for M2AP. 4 years ago
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. 4 years ago
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>
4 years ago
Pedro Alvarez 00ac85e1b3 Small compilation fixes for GCC 10.1 4 years ago
Xavier Arteaga da54e2b501 Better docs in RRC interface types and apply clang-format 4 years ago
Xavier Arteaga 6ae47b6510 SRSUE: Deafult PUCCH/SRS does not imply full PHY dedicated defaults 4 years ago
yagoda 615af5cc4d setting seed to constant in prach test 4 years ago
Andre Puschmann b08a586fd4 pdu: refactor error logging
just some refactoring of error messages when a PDU packing error occurs
4 years ago
faluco 693d2f10b7 - Fix hex dumps newlines. 4 years ago
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. 4 years ago
Francisco Paisana 137e554eb3 reestablish pdcp bearers is required in case of AM bearers 4 years ago
faluco 079ae70e64 - Fix logs entries having two newlines instead of one. The old log formatter will delegate this to the new one. 4 years ago
Andre Puschmann f73fa47a7b pdu: fix printing of buffer state of long BSR
extracted wrong number of bits for 2nd LCID in long BSR
4 years ago
Xavier Arteaga ef9d77c966 SRSUE: add PRACH config present field in PHY configuration structure 4 years ago
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.
4 years ago
Ismael Gomez 4e88daae21
Set DCI unpacking errors to info (#1781) 4 years ago
faluco 85544bb8d3 - Remove unnecessary newline character and optimize the code to use fputs instead of fprintf since no formatting is required. 4 years ago
faluco dfeed52514 - Rename out_stream function to console. 4 years ago
faluco 62faef7c71 - Replaced all uses of the log::console method. 4 years ago
faluco 302f9793ca - Add common utils to print to stdout and stderr as a first step to remove the log::console method. 4 years ago
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
4 years ago
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
4 years ago
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
4 years ago
Xavier Arteaga d375e305ec Initial NR DMRS for PDSCH 4 years ago
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.
4 years ago
Pedro Alvarez 86f4d469c6 Added some functions to save and restore AS keys for the case of failed handover in the USIM 4 years ago
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
4 years ago
Xavier Arteaga 236ef4378d Fix u32 parsing 4 years ago
Xavier Arteaga ede58319ae Vector: added conjugate complex float to short 4 years ago
Xavier Arteaga 8566cbb079 Added device name to prach_test_usrp 4 years ago
Xavier Arteaga 60d563aa06 Fix ringbuffer read conversion 4 years ago
Xavier Arteaga eb5210dbda Radio stops Rx stream prior to stop and benchmark prompts RF metrics 4 years ago
Xavier Arteaga de0501cc55 Fix radio benchmark 4 years ago
Xavier Arteaga c20d4ff5cc Added ringbuffer zerocopy a timeout 4 years ago
Xavier Arteaga 759719ad55 Improved RF helper 4 years ago
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>
4 years ago
faluco c1e680769c - Remove stray code left behind. 4 years ago
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.
4 years ago
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.
4 years ago
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 4 years ago
faluco b892da0294 - Calculate the FFT of the PRACH on demand.
- Fixed a PRACH test that was failing with ASAN.
4 years ago
Xavier Arteaga 8cb3945886 SRSUE: fix RV assertion for PUSCH 4 years ago
Xavier Arteaga 44c2412be2 SRSUE: silent PUSCH encoding error by dropping invalid grant 4 years ago
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.
4 years ago
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.
4 years ago
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
4 years ago
Xavier Arteaga 1d71cf8557 Avoid zero division 4 years ago
faluco 5e8a4c898d
Bring back the circular array object. (#1712) 4 years ago
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
4 years ago
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
4 years ago
faluco 1860006203 - Fixed leaks in prach module spotted by asan. 4 years ago
Andre Puschmann e80aa0a553 add circular array class to simplify access to truly circular arrays 4 years ago
yagoda 24574caf44 cleaning up the PRACH time offset calculation 4 years ago
yagoda b5a8d82058 -adding more prach tests to make test, removing some variables from stack
-PRACH time offset to TA unit conversion
4 years ago
yagoda 59082770d3 moving some arrays to the heap, fixing formatting, setting dft norm 4 years ago
yagoda f6ea431555 -adopting new PRACH equalization approach for successive cancellation
-adding frequency domain time offset detection
-adding to testing of PRACH
4 years ago
yagoda ec7873e7cc refactoring PRACH, adding phase correction to successive cancellation 4 years ago
yagoda 4d8888aae6 - adding simple successive cancellation to PRACH detection
- adding testing for same and for offset detection
4 years ago
Ismael Gomez 1bd3e76f98 Move unncessary buffer in radio 4 years ago
Ismael Gomez c4080e35cc Set different timestamp behaviour for X300 and B200 4 years ago
Pedro Alvarez 08a0d6bc0a Fix compilation warning with unecessary comparison. 4 years ago
Ismael Gomez f49fbd6d02
Fix the order of HO/reest measurement actions (#1696) 4 years ago
Andre Puschmann d48bc8837e pdu: refactor MAC PDU class
this patch refactors the MAC PDU class, the main changes are:

* add to_string() method to pretty print PDU and subheaders
  This allows to have a single log entry per MAC PDU with all its
  contents.
  It removes the C-style fprint() method

* Simplity payload vs. w_payload_ce
  Before we've used payload when reading the PDU and w_payload_ce
  as a buffer when writing. In all getters we needed to differentiate
  between both. Now payload points to w_payload_ce initially and is
  only updated when parsing a new PDU.

* add various helpers, e.g. to get subheader index, update a BSR, ..

* fix PDU test to use new to_string() method
4 years ago
Ismael Gomez 54eed11e1d Refactor decision for extended CSI/SRS 4 years ago
Ismael Gomez c9daf1f61a Make const args 4 years ago
Ismael Gomez e2154d2213 Renamed constants to SRSLTE and use SRSLTE_CFI macros 4 years ago
Ismael Gomez 38e2ffe414 Use Format1A when using CA and 15 PRB due to DCI size ambiguity 4 years ago
Ismael Gomez 51521ad8e4 Improved PDCCH blind search and fixed a few issues with ambiguous DCI size with Release 10 4 years ago
faluco db03275337 - Fix compiler errors when trying to build the project without SIMD support. 4 years ago
faluco 12e82a947f
LTO compiler and linker fixes (#1676)
* Guard the LTO feature in a CMAKE option and document possible issues of using it.
4 years ago
Xavier Arteaga af8898943f SRSENB: implement console cell_gain command
SRSENB: fix 5GNR compilation

SRSENB: fix override methods
4 years ago
Xavier Arteaga 1f18e8a054 SIMD: frequency estimate optimization 4 years ago
Xavier Arteaga bf1b7b8527 SIMD: fix NEON compilation 4 years ago
Ismael Gomez 0afcea9d61
Do not allow empty TBS PUSCH. Account for CQI from inactive cells before activated. (#1667) 4 years ago
Francisco Paisana 92221eb780 update of rrc_interface_mac to remove signal from mac to rrc that RA failed in case of handover failure 4 years ago
Xavier Arteaga 080543815f Solved compilation warnings and enb_phy_test stop 4 years ago
Xavier Arteaga b8f4d03979 Fix in SIMD frequency estimation 4 years ago
Xavier Arteaga 611dd67364 SRSENB: PUCCH TA measurement only available with detected PUCCH 4 years ago
Xavier Arteaga 87edafeddb Reduced SRS test cases to SF index 0 4 years ago
Xavier Arteaga ee6f24befe Optimize vector frequency estimation 4 years ago
Xavier Arteaga bc0aba0d8a SRSENB: calculate TA from PUCCH messages 4 years ago
Andre Puschmann 49a7a90698 mac: simplify BSR packing logic
simplify logic to check whether a BSR fits and, if so, which type.
before the check has been done in two places.

we now also accomodate for the CE subheader size.
4 years ago
Andre Puschmann 96c911752c pdu: add test case for issue #1649
testcase checks the correct handling of the remaining PDU space
when a long BSR is added but no space is left in PDU to fit it
4 years ago
Xavier Arteaga 1843c9efbc SRSENB: PUCCH TA measurement only available with detected PUCCH 4 years ago
Xavier Arteaga 3aec23f7d8 SRSENB: calculate TA from PUCCH messages 4 years ago
Xavier Arteaga df2c949417 Radio: add individual Rx gain and integrate in srsue
Fix compilation

Fix compilation

Add missing variable. Wasn't compiling

Radio: revert some changes
4 years ago
Xavier Arteaga 04d7267734 UHD: Force LO frequency option 4 years ago
Xavier Arteaga b3d66c98c3 SRSENB: tx gain per channel and fix bug 4 years ago
Andre Puschmann 3f02e56a1e uhd: do not stop rx_stream when setting rx_rate for the B210
with the B210 and 2 RF ports, i.e. MIMO mode, we have stopped the
Rx stream after changing the rx_samp_rate but didn't start it again.

Either the issue doesn't exist in SISO mode or we never saw it but for MIMO
it can be reproduced easily with rate changes during streaming, i.e.:

$ ./lib/src/radio/test/benchmark_radio -p 2 -t 10 -x -y -s 23.04e6
Instantiating objects and allocating memory...
Initialising instances...
Opening 2 channels in RF device= with args=default
[INFO] [UHD] linux; GNU C++ version 9.2.1 20200304; Boost_107100; UHD_3.15.0.0-2build5
[INFO] [LOGGING] Fastpath logging disabled at runtime.
Opening USRP channels=2, args: type=b200,master_clock_rate=23.04e6
[INFO] [B200] Detected Device: B210
[INFO] [B200] Operating over USB 3.
[INFO] [B200] Initialize CODEC control...
[INFO] [B200] Initialize Radio control...
[INFO] [B200] Performing register loopback test...
[INFO] [B200] Register loopback test passed
[INFO] [B200] Performing register loopback test...
[INFO] [B200] Register loopback test passed
[INFO] [B200] Asking for clock rate 23.040000 MHz...
[INFO] [B200] Actually got clock rate 23.040000 MHz.
[INFO] [MULTI_USRP]     1) catch time transition at pps edge
[INFO] [MULTI_USRP]     2) set times next pps (synchronously)

Warning: TX gain was not set. Using open-loop power control (not working properly)

Setting manual TX/RX offset to 0 samples
Start capturing 10000 frames of 23040 samples...
Changing sampling rate to 23.04 Msamps/s
Setting manual TX/RX offset to 0 samples
Changing sampling rate to 1.92 Msamps/s
Setting manual TX/RX offset to 0 samples
/home/anpu/src/srsLTE/lib/src/phy/rf/rf_uhd_imp.cc.1211: Error timed out while receiving samples from UHD.

/home/anpu/src/srsLTE/lib/src/phy/rf/rf_uhd_imp.cc.1211: Error timed out while receiving samples from UHD.

/home/anpu/src/srsLTE/lib/src/phy/rf/rf_uhd_imp.cc.1211: Error timed out while receiving samples from UHD.

/home/anpu/src/srsLTE/lib/src/phy/rf/rf_uhd_imp.cc.1211: Error timed out while receiving samples from UHD.

/home/anpu/src/srsLTE/lib/src/phy/rf/rf_uhd_imp.cc.1211: Error timed out while receiving samples from UHD.
4 years ago
Andre Puschmann 7253efe17e rf_blade: fix memleak when device wasn't found 4 years ago
Andre Puschmann 9684b2a63a uhd: fix memleak when USRP wasn't found 4 years ago
Andre Puschmann c327a18f59 radio: fix memleak of dummy buffers 4 years ago
Ismael Gomez 59b9125d4e
Do not send time_spec in between the burst. X300 does not like it (#1583) 4 years ago
Ismael Gomez a4835dd2c8
More accurate MCS reduction when PUSCH carries UCI (#1630) 4 years ago
Xavier Arteaga bd46c40650 srsLTE: fix minor aesthetics 4 years ago
Xavier Arteaga 7bad21c30a Radio: added locks to protect sample rate change concurrent access 4 years ago
Xavier Arteaga 029f36b449 srsLTE: added efficient integer resampler and srsue/srsenb integration 4 years ago
Francisco Paisana 834c0b3929 integrated new observer pattern into phy controller fsm 4 years ago
Francisco Paisana 48dd436d86 integrated observer pattern into rrc phy ctrl fsm 4 years ago
Francisco Paisana b2313e3631 observer pattern classes. Allows auto and explicit dispatch, and specifying which trigger method to use of an observer. 4 years ago
Xavier Arteaga 0e96ef3df0 Channel emulator takes SNR as input parameter 4 years ago
Andre Puschmann 9149cf852d rf_uhd: fix rx timeout error after late with B210
it fixes #1623.

this happens more often with MIMO since lates are more likely here.

after a late, the Rx stream must not be stopped on the B2xx either.

<log>
RF status: O=3, U=0, L=1
/home/anpu/src/srsLTE/lib/src/phy/rf/rf_uhd_imp.cc.1209: Error timed out while receiving samples from UHD.

stop rx stream
./home/anpu/src/srsLTE/lib/src/phy/rf/rf_uhd_imp.cc.1209: Error timed out while receiving samples from UHD.

stop rx stream
/home/anpu/src/srsLTE/lib/src/phy/ue/ue_sync.c.775: Error receiving samples

/home/anpu/src/srsLTE/lib/src/phy/ue/ue_cell_search.c.312: Error calling srslte_ue_sync_work()

/home/anpu/src/srsLTE/lib/src/phy/ue/ue_cell_search.c.272: Error searching cell
</log>
4 years ago
Andre Puschmann 5e40bfe72c mac_pdu: unpack and print BSR index as well as BSR value in bytes
before the BSR was extracted but the actual index (between 0 and 63)
was not stored but directly converted into bytes.

for log parsing and debugging it is easier to follow the index
value. this patch therefore adds both values to the log message
and extends the API accordingly.
4 years ago
Andre Puschmann 55336665b9 rlc: remove timers and sdu queue length from RLC TM ctor
timers aren't used in RLC TM, also the default queue length is
fine to be used at all times.
4 years ago
Francisco Paisana bb5dd92dca implemented s1 handover cancellation procedure to force the target enb to release the ue ctxt 4 years ago
Francisco Paisana 8c9e596f89 refactored s1ap handover request interface. cleaned up rrc tenb s1 handover code 4 years ago
Andre Puschmann 8e44d0504c radio: fix device mapping for mimo
commit #51c6e8d1 introduced a regression in which the 2nd antenna
port was never considered. All MIMO ZMQ based tests therefore failed.
this fixes #1608
4 years ago
Xavier Arteaga 710700d0eb SRSUE: Fix synch error correction for multiple channels 4 years ago
Andre Puschmann d5da4bd8b6 radio: fix printf for 32bit 4 years ago
Francisco Paisana 7cd4f45d62 fsm refactor.
- avoid triggering directly a subfsm
- improved metafunctions
- other cleanups
4 years ago
Francisco Paisana 5d1343fe75 implemented S1 bearer status transfer 4 years ago
Francisco Paisana db8af399f8 extended rrc tenb s1 handover test. implemented layer reconfig during s1 handover 4 years ago
Francisco Paisana 7605c7df23 added s1ap handover notification, fixed s1ap asn1 bug, and fixed bad fields for admitted erabs in ho req ack 4 years ago
Francisco Paisana 841b884796 remove extern C flags from common_helper.h 4 years ago
Francisco Paisana a2b8bc9e0a check all cpus scaling governor 4 years ago
Francisco Paisana 5be5409f62 scaling governor function moved to common header file 4 years ago
Francisco Paisana 9146e6ddf1 change method name to resize intervals 4 years ago
Francisco Paisana 4457bbda7e added new asserts to interval interface 4 years ago
Francisco Paisana 8b174ce2f4 changed interval interface to disallow interval::stop < interval::start via an assertion 4 years ago
Francisco Paisana 39b380c8e0 fix compilation issue for gcc version < 5 4 years ago
Francisco Paisana 2f689372dd added missing header 4 years ago
Francisco Paisana c1755727d7 changed interval method names, and added comments and assertions 4 years ago
Francisco Paisana b2dd46ccad remove extra space in to_string 4 years ago
Francisco Paisana 20b69fb22e substitution of ul_alloc_t for prb_interval 4 years ago
Francisco Paisana 26f46ea067 add S1 Handover Request handling in target eNB 4 years ago
Francisco Paisana 857cc141c7 fix macro checking for exceptions, added missing includes, fixed bounded bitset methods' noexcept specifiers 4 years ago
Francisco Paisana cceeff10de moved expected, bounded_bitset, move_callback to adt folder. created a test for bitset 4 years ago
Francisco Paisana caf862c99f moved expected, bounded_bitset, move_callback to adt folder. created a test for bitset 4 years ago
Ismael Gomez 382811e10e
Update S1AP RNTI context when doing Reestablishment (#1582) 4 years ago
faluco 1253740da3 - Extracted traits from class to a detail namespace. 4 years ago
faluco 072e84cec8 - Simplified the usage of span now with implicit constructors as it should be.
- Added overload for generic containers that have size and data members like vector.
- Removed unnecessary uses of make_span.
4 years ago
faluco 158edd4fe7 Removed init list constructor test. 4 years ago
faluco eb4b2d4e43 - Added a clarification comment on why to use make_span.
- Moved byte_buffer utilities to common.h thus breaking the dependency of ADT to COMMON.
- Fixed compilation failures in tests.
4 years ago
faluco af8dfcf19c Extended a bit the span implementation with the following changes:
- Documented methods and class.
- Adapted interface to the latest standard: no init list and generic container constructors, new iterator pair ctor.
- Implemented some SFINAE for managing conversions in constructors.
- Re-organised some methods to be grouped by category (modifiers, observers, iterators, ...).
- Added convenience make_span functions.
- Added some more  asserts.
- Adapted test to use some syntax that was modified.
4 years ago
Francisco Paisana 76a62909c1 use of span type for universal array views 4 years ago
Francisco Paisana a9d882c1f1 fix task_scheduler_test. Fix potential reference invalidation in task_scheduler internal tasks data structure 4 years ago
Francisco Paisana 9d877e55b3 add test for when scope exit lambda is an lvalue 4 years ago
faluco 9e2a116e11 - Fix a missing template parameter in the constructor.
- Decay the type to the template.
- Switched member order to improve memory layout.
4 years ago
Francisco Paisana 0f67bee556 creation of a scope exit standalone file. Created a new folder ADT. Added test for scope exit. 4 years ago
Andre Puschmann cb2d7f4c16 rf_uhd_generic: add explicit ctor and dtor
clang 6 complained about a missing virtual dtor and thus
failed compilation. this patch adds both, an explicit ctor and dtor.
4 years ago
Andre Puschmann 498af989bf rf_uhd: add missing endl to UHD log macros 4 years ago
Xavier Arteaga 46ab07123d UHD: fix compatibility with 3.9.7 LTS 4 years ago
Andre Puschmann 5867668c0c rf_uhd_rfnoc: fix compilation for UHD before 3.15
the enable_rx_timestamps() for the radio_ctrl object has only been
introduced in Nov 2019 for UHD 3.15 and therefore needs
to be excluded when compiling for 3.14 and below.

Note: According to the original UHD commit in
67dbaa41f2 (diff-60a9387c0fc8406fd5b39fa995dd8c14)
it looks like the Rx timestamps are disabled by default
for UHD versions before 3.15

This commit fixes #1602
4 years ago
Xavier Arteaga 0cd61145ca RFNOC: added optional FPGA FIFO 4 years ago
Xavier Arteaga 237de07ab3 UHD: disable AD936x based device reset 4 years ago
Xavier Arteaga ff8925b6ec UHD: use same timeout policy than previous release 4 years ago
Xavier Arteaga ac76a398fe UHD: Minor stability improvement 4 years ago
Xavier Arteaga d2abaaf719 UHD: add initial test for AD936x based devices during initialization 4 years ago
Xavier Arteaga f80c779d88 RFNOC: added DUC/DDC internal loopback option and test 4 years ago
Xavier Arteaga dcf05f7a53 UHD: Improved RFNOC 4 years ago
Xavier Arteaga 38d9545e99 UHD: API improvement 4 years ago
Xavier Arteaga 405e0c8195 UHD: Check if tree exist before requesting access 4 years ago
Xavier Arteaga 5d43fc903e UHD: fix SPP equal 0 4 years ago
Xavier Arteaga 774c0926a6 UHD: added device args for log level, spp and return if timeout 4 years ago
Xavier Arteaga 88a1ab12c5 UHD: Generic detects if it a AD9361, USB based device and resets if LIBUSB_TRANSFER_ERROR is detected 4 years ago
Xavier Arteaga 04a661d239 UHD: RFNOC class detects custom DDC and DUC 4 years ago
Xavier Arteaga 180fb42dc3 UHD: minor aesthetic corrections 4 years ago
Xavier Arteaga 0f24d510ac UHD: Fix RFNOC DDC frequency calculator 4 years ago
Xavier Arteaga ebf995c621 UHD: better RFNOC detection and configuration 4 years ago
Xavier Arteaga 0e360b3953 UHD: RFNOC Dynamic re-configuration 4 years ago
Xavier Arteaga d9cb51d261 UHD: Added custom DDC/DUC support
UHD: Aesthetic corrections

UHD: minor aesthetic changes
4 years ago
Xavier Arteaga e4a794fdbd UHD: Initial RFNOC implementation
UHD: Fix RFNOC for multiple carriers
4 years ago
faluco cfd3f51931
Import of srslog into srsepc and srsenb. (#1574)
* - Import of srslog into srsepc and srsenb.
* - Removed logger_file and logger_stdout files.
4 years ago
Xavier Arteaga 21e9a3958f Minor changes 4 years ago
Xavier Arteaga 2271aec6b2 Radio: remove trace 4 years ago
Xavier Arteaga a5fefbfdd3 Radio: fix possible overflow 4 years ago
Xavier Arteaga 51c6e8d1a6 Radio: channel map includes device mapping, unmapped Rx uses dummy buffers 4 years ago
Xavier Arteaga 74fde5597f PDSCH_UE: added synchronization error to console 4 years ago
Xavier Arteaga edda1f730a srsLTE: Placeholder Band correction 4 years ago
Xavier Arteaga d8eaa99132 Radio: do not use more radios than necessary 4 years ago
Xavier Arteaga 5258f27490 Fix start-of_burst for PRACH Test USRP 4 years ago
Ismael Gomez dda91b14f7 Remove duplicate add_rnti() function since already done in set_config 4 years ago
Xavier Arteaga fda1d040e7 SRSENB: implement PUSCH threshold for UCI bits 4 years ago
faluco efdff8ba4c
Import srslog into srsue (#1556)
- Import the srslog project into srslte.
- Ported srsue app to use the new logging framework.
- Implemented a wrapper that dispatches log entries to srslog.
- Renamed an existing log test to be more specific to avoid name clashes.
4 years ago
Andre Puschmann d441486f76 fading: fix heap buffer overflow in fading sim
at the when applying the fading channel we copied the state back
to our buffer. Since we are offsetting the read buffer
by X samples, we need to make sure that we don't read after then
(len-X) samples of the temporary memory buffer
4 years ago
Andre Puschmann 1199a79851 fix Scell sync for large cells
the PSS detection needs more temporary buffer than a full subframe.
we therefore need to allocate and initialize the sync object with
larger maximum size to support Scell search of large cells, e.g.
20 MHz

this fixes issue #1538
4 years ago
Ismael Gomez f380f46a10 Revert "Remove unnecessary zero memory (#1564)"
This reverts commit f662aeaff3.
4 years ago
Andre Puschmann 9550bd3ef8 rlc: revisit interface for MAC and RRC
* add locked and unlocked version of has_data() since one is
  called from stack and one from PHY threads

* add comments in each interface section as to why locking
  is required or not

* remove RLC rwlock when not required

* move calls only used by RRC to RRC section
4 years ago
Andre Puschmann 7f98cb9b62 pdcp: log discard timer duration in init()
to log the configured discard timer length
4 years ago
Andre Puschmann a578ff1975 pdcp: fix typo 4 years ago
Francisco Paisana 58c4bcf288 reduce mcs for UL grants carrying UCI 4 years ago
Ismael Gomez f662aeaff3
Remove unnecessary zero memory (#1564)
* RF drivers to allow nullptr buffers in send/recv

* Remove zeromem from radio

* remove unused buffers
4 years ago
Andre Puschmann dc67d28709 nas: do not generate NAS encryption key if also is set to NULL
its more a cosmetic change to clean the logs. this makes
sure that a zero key is logged when NULL encryption is selected.
4 years ago
Ismael Gomez 1eaf7efab0 Fix UL adaptive retx rv index 5 years ago
Xavier Arteaga 5cf2089a8c srsLTE: increased SRS test TA us threshold 5 years ago
Xavier Arteaga 794f969e1a srsLTE: fix TA calculation 5 years ago
Xavier Arteaga 729986f259 srsLTE: Added PUCCH format 3 valid correlation 5 years ago
Xavier Arteaga 0192130742 SRSUE/SRSENB: UCI bits are carrier by the lowest serving cell index
SRSENB: Fix UCI in lowest serving cell index PUSCH transmission
5 years ago
Andre Puschmann c8b4ba885b rename rlc_tx_queue to byte_buffer_queue
this data structure will be used by the PDCP layer as well.
5 years ago
Francisco Paisana 36fc88d2e2 fsm log macros, and utility methods to convert event callbacks to move tasks 5 years ago
Francisco Paisana 9c5471b094 more ergonomic event callback 5 years ago
Francisco Paisana d48a45976e moved cell selection/search complete event signalling out of phy_controller 5 years ago
Francisco Paisana 489969722e implemented phy controller FSM to perform cell selection & search. The controller also tracks the phy sync state 5 years ago
Andre Puschmann 6fb01d61a7 rlc: change remaining occurances of "SN: " to "SN="
streamline all RLC AM and UM for better log analysis
5 years ago
Xavier Arteaga 137d250d66 srsLTE: fix ZMQ decimation pointer 5 years ago
Andre Puschmann a7911f0dab pdcp,rlc: refactor SDU queueing policy
this patch refactors the SDU queuing and dropping policy of the RLC and PDCP layer.
the previous design had issues when packets have been generated at a higher
rate above the PDCP than they could be consumed below the RLC.

When the RLC SDU queues were full, we allowed two policies, one to block on the write
and the other to drop the SDU. Both options are not ideal because they either
lead to a blocking stack thread or to lost PDCP PDUs.

To avoid this, this patch makes the following changes:

* PDCP monitors RLC's SDU queue and drops packets on its north-bound SAP if queues are full
  * a new method sdu_queue_is_full() has been added to the RLC interface for PDCP
* remove blocking write from pdcp and rlc write_sdu() interface
  * all writes into queues need to be non-blocking
  * if Tx queues are overflowing, SDUs are dropped above PDCP, not RLC
* log warning if RLC still needs to drop SDUs
  * this case should be avoided with the monitoring mechanism
5 years ago