Xavier Arteaga
33bb387f52
Initial NR-PUCCH formats 0 and 1 encoder
2021-01-27 12:30:56 +01:00
Xavier Arteaga
e7562e5b3f
Added ZC sequence LUT object
2021-01-27 12:30:56 +01:00
Xavier Arteaga
d100919561
Initial NR-UCI encoder
2021-01-27 12:30:56 +01:00
David Rupprecht
1b19ee40e7
Added usim features for key derivation
2021-01-27 10:37:09 +01:00
David Rupprecht
306bb6b38b
Added function for derive keys
2021-01-27 10:37:09 +01:00
David Rupprecht
ceda458bb3
Added MAC NR to EUTRA and NR with stack interfaces including MAC config build
...
Moved MAC logical channel config to MAC interface types
2021-01-27 10:37:09 +01:00
David Rupprecht
a6046ca875
Added funcs for asn flat config RLC and PDCP
2021-01-27 10:37:09 +01:00
David Rupprecht
64299960bd
Added procedure for NR reconfiguration and RRC with NR complete
2021-01-27 10:37:09 +01:00
David Rupprecht
145528ad32
Added unpacking test for RRC reconfig
2021-01-27 10:37:09 +01:00
David Rupprecht
99c3aa9ba2
Refactor assert to TESTASSERT in unit test
2021-01-26 21:19:37 +01:00
Xavier Arteaga
7dd99da045
Disable carry-less multiplication
2021-01-26 18:38:30 +01:00
Xavier Arteaga
058bee5fda
Increased prime number range
2021-01-26 18:38:30 +01:00
Xavier Arteaga
2f5b1ba9cb
Avoid PUSCH-DMRS initialization for 0 PRB
2021-01-26 18:38:30 +01:00
Xavier Arteaga
2f2114f377
Fix typo
2021-01-26 18:38:30 +01:00
Xavier Arteaga
732a220d42
Unified low-PAPR Ruv sequence generation
2021-01-26 18:38:30 +01:00
Xavier Arteaga
aa8b69e9a7
Fix prime number
2021-01-26 18:38:30 +01:00
Xavier Arteaga
8de73988b8
Add real vector and complex scalar product
2021-01-26 18:38:30 +01:00
Xavier Arteaga
6bb1788df1
Added more NR CRC polynomials
2021-01-26 18:38:30 +01:00
Xavier Arteaga
a7ca8ffff7
Moved prime number to different file
2021-01-26 18:38:30 +01:00
Xavier Arteaga
ae3c5ec7d0
Moved all block code (32, O/K) to FEC block
...
Fix missing header
Fix missing header
2021-01-26 18:38:30 +01:00
Xavier Arteaga
95ce49acd4
Added more vector copy functions
2021-01-26 18:38:30 +01:00
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