Commit Graph

3088 Commits

Author SHA1 Message Date
David Rupprecht 020d0dacc8 add the additional sec cap to NAS attach request
use same capabilities that are signaled for EUTRA
2021-01-08 17:20:08 +01:00
David Rupprecht 9eb0b72cb4 Added rrc function has_nr_dc 2021-01-08 17:20:08 +01:00
Andre Puschmann c02aa8f124 liblte_mme: add DCNR UE capabilties packing 2021-01-08 17:20:08 +01:00
Andre Puschmann 4fa89b7039 pcap: make PCAP write thread-safe
* offload PCAP writing to background thread
* use blocking_queue between writer and clients to make it thread-safe
* add basic test case

this fixes point 1-3 of #2161
2021-01-04 11:05:02 +01:00
Andre Puschmann 2ca894df01 pdu: fortify RAR packing
detected with ASAN trying to write negative number of padding bytes.

The patch checks the calculated length and returns with an error
if the length is negative.

=================================================================
==5759==AddressSanitizer: while reporting a bug found another one. Ignoring.
m==5759==ERROR: AddressSanitizer: negative-size-param: (size=-6)
2021-01-03 21:46:41 +01:00
Xavier Arteaga 54a864e021 Added Initial NR-PRACH configuration for preamble format 0 2020-12-30 17:46:00 +01:00
Xavier Arteaga b3200d9ef5 Renaming common UL/DL DMRS related types and initial NR PUSCH implementation 2020-12-30 13:39:08 +01:00
Xavier Arteaga cc5fdb68f3 Added on-the-fly sequence for bit packed 2020-12-30 13:39:08 +01:00
Xavier Arteaga d0a4b4d409 Changed DL-SCH LDPC scaling factor for decoding high rates 2020-12-28 10:11:08 +01:00
Xavier Arteaga 2e59f6a568 Applied LDPC fixes and minor aestheic modifications 2020-12-28 10:11:08 +01:00
Xavier Arteaga 13443c3f8c Added number of DMRS CDM groups without data to NR grant 2020-12-28 10:11:08 +01:00
Xavier Arteaga d413c1aaec Fix base graph selection and improved PHY LIB logging 2020-12-28 10:11:08 +01:00
Xavier Arteaga 808bb3fb94 Fix string to modulation conversion and apply clang-format 2020-12-28 10:11:08 +01:00
Xavier Arteaga 0a06074158 Skip NR PDSCH allocation in PDSCH DMRS symbols 2020-12-28 10:11:08 +01:00
Xavier Arteaga 1775052144 Fix NR PDSCH DMRS cinit and zero after free 2020-12-28 10:11:08 +01:00
Francisco Paisana 74ffe393c6 asn1 update: s1ap asn1 is now v16.1 (2020-03) 2020-12-22 16:28:24 +01:00
faluco 92b11c1adb Backport misc changes from the fapi repo. 2020-12-21 13:45:22 +01:00
Francisco Paisana 66aa34d173 update RRC NR ASN1 to 2020-09 v15.11 2020-12-18 12:50:37 +01:00
Andre Puschmann d5daf60773 pdu_test: add unpacking test for DL-SCH PDU containing TA command 2020-12-18 12:28:52 +01:00
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.
2020-12-18 12:28:52 +01:00
Pedro Alvarez 0ad0e9acac Make sure that RLC entity is only re-created if it switches modes. 2020-12-18 10:52:51 +00:00
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.
2020-12-18 10:52:51 +00:00
Andre Puschmann 48b37394f1 rlc: remove unneeded log entry
was added for testing only
2020-12-18 10:25:30 +01:00
Francisco Paisana 099dad8cb1 disable PHR handling in the UL sched by default 2020-12-17 17:56:42 +01:00
Francisco Paisana e27c0869e5 update RRC ASN1 to 2020-09 v15.11 2020-12-17 17:55:58 +01:00
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
2020-12-17 17:46:55 +01:00
Andre Puschmann d54c33258b rlc_metrics: add sdu rx latency and buffered bytes 2020-12-17 17:46:55 +01:00
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
2020-12-17 17:46:55 +01:00
Andre Puschmann 81cfce6cf0 rlc_um: remove latency calculation from RLC UM 2020-12-17 17:46:55 +01:00
Xavier Arteaga 533222f245 NR PDCCH fixes 2020-12-17 15:48:21 +01:00
Xavier Arteaga a746e29395 Removed shadow variable 2020-12-17 15:48:21 +01:00
Xavier Arteaga 99ca2d2f14 Add polar interleaver 2020-12-17 15:48:21 +01:00
Xavier Arteaga 3662210842 Fix external softbuffer inclusion 2020-12-17 15:48:21 +01:00
Francisco Paisana 1ea635f9ae asn1 utils fix: avoid unpacking an unconstrained integer length twice 2020-12-17 01:40:30 +01:00
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
2020-12-16 20:39:21 +01:00
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
2020-12-16 14:12:38 +01:00
David Rupprecht 62b558fccf Move rat type to common header
Removed phy measurement from rrc interface phy

Updated rrc interface for handling measurements
2020-12-16 14:12:38 +01:00
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 2020-12-16 13:49:29 +01:00
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
2020-12-16 13:48:48 +01:00
Francisco Paisana ea36e46635 fix asn1 length determinant packing/unpacking. avoid subtracting len by zero before the packing 2020-12-15 23:42:40 +01:00
Francisco Paisana d198e8fb31 fix asn1 length determinant packing for upper bounds above 64K 2020-12-15 23:42:40 +01:00
Francisco Paisana 1304746bce use of fmt lib in asn1 utils 2020-12-15 15:56:59 +01:00
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.
2020-12-15 15:19:08 +01:00
Francisco Paisana 53116a99fc add rlc metrics to rlc_um 2020-12-14 16:59:09 +01:00
Francisco Paisana 82eb31f70f add rlc metrics to enb 2020-12-14 16:59:09 +01:00
Francisco Paisana 0f693b36b2 changed pdu latency calculation to std chrono 2020-12-14 13:47:05 +01:00
Francisco Paisana 7ffc236a1a enable log line when rlc tx pdu last segment is sent but the latency log is disabled 2020-12-14 13:47:05 +01:00
Francisco 951912d18a disable RLC latency measure when ENABLE_TIMESTAMP flag is disabled 2020-12-14 13:47:05 +01:00
Francisco 92bc98e2f0 add byte tx counter to the set of metrics being measured in RLC 2020-12-14 13:47:05 +01:00
Francisco e2654e69ec Enable pdu stack latency measurements in the eNB. 2020-12-14 13:47:05 +01:00
faluco f23fdf0639 Include missing files. 2020-12-14 13:46:45 +01:00
faluco 98a2c868b5 Update srslog to latest version. 2020-12-14 13:46:45 +01:00
faluco f20b75a05f Re-structure enb metrics a bit. Create a generic mac metric struct and per ue mac metrics struct. 2020-12-14 13:16:13 +01:00
faluco 5529943172 Add a per sector rach preable counter for the metrics. 2020-12-14 13:16:13 +01:00
faluco dcd1157d39 - Prototype the extension of enb metrics. 2020-12-14 13:16:13 +01:00
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.
2020-12-12 15:59:27 +01:00
Francisco cba0cc457f sched rand test refactor: creation of abstract sched simulator class for testing 2020-12-12 15:59:27 +01:00
Francisco b86d2ab7d0 move choice_type to adt folder 2020-12-12 15:59:27 +01:00
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.
2020-12-12 15:59:27 +01:00
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
2020-12-12 15:59:27 +01:00
David Rupprecht 848496bb0f Moved get_earfcn to srslte get_carrier_freq func 2020-12-12 15:59:27 +01:00
David Rupprecht 2e51cfc1a5 Added black cells with index function
Added new index functios
Use asn1 list functions for toAddMod and toRem lists
2020-12-12 15:59:27 +01:00
David Rupprecht 96b75b6433 Fixes clang compiler error in case of UHD_ENABLE_RFNOC enable 2020-12-12 15:59:27 +01:00
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.
2020-12-12 15:59:27 +01:00
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
2020-12-12 15:59:27 +01:00
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.
2020-12-12 15:59:27 +01:00
Francisco b41fc96d6d fix asn1 integer packing for integer values whose length is equal or above 32 bits 2020-12-12 15:59:27 +01:00
Pedro Alvarez 38206bea69 Fixed RLC AM fixed header size in get_buffer_state function. Fixed RLC AM tests accordingly. 2020-12-12 15:59:27 +01:00
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
2020-12-12 15:59:27 +01:00
Xavier Arteaga d6b5229dbe Added CSI-RS unit test and fix defects 2020-12-12 15:59:27 +01:00
Xavier Arteaga 6127681102 Added csi_rs header 2020-12-12 15:59:27 +01:00
Xavier Arteaga 08799cfe0f NR CSI-RS initial put/measure 2020-12-12 15:59:27 +01:00
Xavier Arteaga b7d74ef70b Initial CSI RS 2020-12-12 15:59:27 +01:00
Francisco 7ee99a529a fix assertion messages for bounded_vector::back() method 2020-12-12 15:59:27 +01:00
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
2020-12-12 15:59:27 +01:00
Francisco 2598989f7d replace msg3grant type from C-array to bounded vector 2020-12-12 15:59:27 +01:00
Francisco fc451f17f0 implementation of bounded_vector and respective unit test 2020-12-12 15:59:27 +01:00
Francisco 22229adf08 fix: normal phr is only sent for PCell 2020-12-12 15:59:27 +01:00
Francisco 69748e9313 fix compilation issue regarding definition of size_t in header and declaration of static member null_value in sliding average class 2020-12-12 15:59:27 +01:00
Francisco d42dc50c44 Write TPC sched unit test and fix sched logical channel test 2020-12-12 15:59:27 +01:00
Francisco 479602ed1d add option to specify target ul sinr for UL power control to the enb rr.conf parser 2020-12-12 15:59:27 +01:00
Francisco 5865df39d1 created class that implements the scheduler transmit power control and PHR handling 2020-12-12 15:59:27 +01:00
Xavier Arteaga 788ed5ce70 Corrected PDCCH SEGFAULT 2020-12-12 15:59:27 +01:00
Xavier Arteaga 8cc023e168 Fix PDCCH NR Test 2020-12-12 15:59:27 +01:00
Xavier Arteaga c0cdce6450 Updated license 2020-12-12 15:59:27 +01:00
Xavier Arteaga e07cf513d0 Improved NR blind search and DL test 2020-12-12 15:59:27 +01:00
Xavier Arteaga 90aa4fbea7 Improved srslte_chest_set_smooth_filter_gauss 2020-12-12 15:59:27 +01:00
Xavier Arteaga c635b1e467 Initial NR DCI blind-search 2020-12-12 15:59:27 +01:00
Xavier Arteaga 85d5026e38 Improved NR PDCCH unit test 2020-12-12 15:59:27 +01:00
Xavier Arteaga 315394560d Fix Polar unitialised read 2020-12-12 15:59:27 +01:00
Xavier Arteaga cd1aef7d76 Added NR PDCCH unit test plus fixes 2020-12-12 15:59:26 +01:00
Xavier Arteaga 53f6ac118e Initial PDCCH encode/decode 2020-12-12 15:59:26 +01:00
Xavier Arteaga 159a3d84bd Fix minor precoding issue 2020-12-12 15:59:26 +01:00
Xavier Arteaga 65d5fcf45d Add minor DCI location comment 2020-12-12 15:59:26 +01:00
Xavier Arteaga 67ce4c1491 Avoid std memory functions in EVM measurement 2020-12-12 15:59:26 +01:00
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.
2020-12-12 15:59:26 +01:00
Andre Puschmann 47c5f9e85b remove AGPL header from remaining cpp files
* also add commercial header to come CMake helpers
2020-12-12 15:59:26 +01:00
Andre Puschmann b9f363db9a ssl: rename liblte_ssl.h to ssl.h 2020-12-12 15:59:26 +01:00
Andre Puschmann ef19b1a9bd fix various uninit vars detected by cppcheck
non-critical fixes in tests mostly, still good to have those clean
2020-12-12 15:59:26 +01:00
Xavier Arteaga 81d72380b5 Reduce FEC Polar chain test time 2020-12-12 15:59:26 +01:00