Xavier Arteaga
be6cb666e2
Initial moved block coding to FEC
2021-01-26 18:38:30 +01:00
Xavier Arteaga
f6b4f65f12
Add NR-PDSCH-DMRS SNR estimation
2021-01-25 22:04:55 +01:00
Pedro Alvarez
350e90a030
Make RLC retransmissions deterministic. It was creating unpredictablity
...
in the RLC AM tests. See issue #2228
2021-01-25 14:29:17 +00:00
Pedro Alvarez
6ca8bc12ec
Fix wrong SN in RLC status PDU when packet is dropped.
2021-01-21 21:12:30 +01:00
Francisco
e0937d1dd1
add lcid check and increase limit to 10
2021-01-21 17:04:38 +00:00
Francisco
bed979b722
fix out-of-bounds memory writing in the sched_interface::ue_cfg_t ue_bearers member
2021-01-21 17:04:38 +00:00
Ismael Gomez
47dbd6ed70
Merge pull request #2214 from softwareradiosystems/pr_mac_buffers
...
Limit the number of UL buffers in MAC and deallocate old ones
2021-01-20 21:12:39 +01:00
Francisco
b45fdd4f10
use using keyword in asn1 rather than typedef
2021-01-20 20:46:29 +01:00
Francisco
049ad77fca
simplify asn1 choice types with one single type with a packer
2021-01-20 20:46:29 +01:00
Francisco
c336c3eed2
added to_number() conversion of rrc_nr poll_byte
2021-01-20 17:13:29 +01:00
Ismael Gomez
a6423442c2
Refactor NR RA files and fix header includes all over library ( #2162 )
...
* Refactor NR resource allocation classes. Use DCI instead of grant for dummy PDSCH UE/eNB test
* Minor refactors in NR workers and ue_dl
* Fix include issues
* fix compilation issues
2021-01-20 15:46:46 +01:00
Ismael Gomez
d5f0634975
Add PUCCH SNR measurement ( #2175 )
...
* Add PUCCH SNR measurement
* Fix PUCCH SNR estimation
* Reverted PUCCH noise estimation
* use fpclassify instead of iszero
Co-authored-by: Xavier Arteaga <xavier@softwareradiosystems.com>
2021-01-19 21:55:24 +01:00
Ismael Gomez
c1c5fa426c
Fix issue with new way of managing ul buffers not working with CA
2021-01-19 16:59:36 +01:00
Ismael Gomez
0780f3caea
pdu_queue must be non-blocking in order to avoid the ue or enb to block in the event of a memory leak and the buffer pool running out of buffers. In that case, the null return shall be handled properly and error logged. This commit restores commit c4c44c33f4
.
2021-01-16 15:22:29 +01:00
Francisco Paisana
d4242f2db7
precompute nof_re_table[sf][prb][slot][cfi] for faster nof_re computation and for more accurate lower bound nof_re computation
2021-01-15 23:24:39 +01:00
Francisco Paisana
9c7c190074
when the rrc fails to allocate the ue cell resources, it should erase the ue from all stack layers
2021-01-15 00:10:42 +01:00
Andre Puschmann
dadff1a947
pdu: default initialize pdu members with MAC log
...
MAC PDUs are default logged using the MAC log. So this gives
hex prints, etc. without having to manually set the logger for each
PDU.
2021-01-12 20:24:20 +01:00
Andre Puschmann
fcf481b83e
pdu: add check when unpacking MAC PDUs to not read beyond PDU length
...
we've checked the same when unpacking the subheaders but missed the
case where the payload was read beyond the PDU length, as has been
seen with a malformed RAR PDU.
2021-01-12 20:24:20 +01:00
Andre Puschmann
10da7df194
pdu_test: add TC with malformed RAR PDU
...
a malformed RAR PDU should not be decoded further if the payload
indicates a length beyond the actual PDU size.
2021-01-12 20:24:20 +01:00
Francisco Paisana
2866886ade
fix gcc4.8 compilation issue
2021-01-12 16:22:10 +01:00
Francisco Paisana
f8b7351e1b
implementation of object memory pool via class-specific operator new/delete
2021-01-12 16:22:10 +01:00
Francisco Paisana
ea74ca67eb
resolve forward declaration compilation issue in memory pool
2021-01-12 16:22:10 +01:00
Francisco Paisana
e96b8c263a
add mem pool test. fix mem pool leak bug
2021-01-12 16:22:10 +01:00
Francisco Paisana
8912a8ce6c
added extra comments to memory pool code. generalized object pool to mutexed and non-mutexed cases
2021-01-12 16:22:10 +01:00
Francisco Paisana
768a4fa627
added growth policy for rrc::ue memory pool. Fixed memory leak
2021-01-12 16:22:10 +01:00
Francisco Paisana
a73cbcdc9d
added mem_pool for growing object pools. Applied the mem pool to the rrc::ue creation
2021-01-12 16:22:10 +01:00
Andre Puschmann
78b07daf3b
pcap: make public interfaces thread-safe and handle fopen returning nullptr
...
the previous patch only introduced a thread-safe queue between
PHY workers (writers) and PCAP writer thread (consumer).
However, it is also required to protect the ctor (and close()) to
prevent corrupted PCAP files.
The patch also correctly handles the case where the PCAP couldn't
be openend for writing and doesn't start the thread.
2021-01-11 15:45:48 +01:00
Francisco Paisana
ea8ad153c4
add configurable fairness parameter to pf scheduler
2021-01-11 11:56:13 +01:00
David Rupprecht
f7d313147a
Added infrastrukture for measurements
...
Init rrc_nr as part of the LTE stack
2021-01-08 17:20:08 +01:00
David Rupprecht
b79eef0860
Introducing nr_rrc <-> rrc interface for eutra and nr cap query
2021-01-08 17:20:08 +01:00
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