Commit Graph

489 Commits

Author SHA1 Message Date
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 13443c3f8c Added number of DMRS CDM groups without data to NR grant 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
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
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
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
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
Francisco b86d2ab7d0 move choice_type to adt folder 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
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 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 fc451f17f0 implementation of bounded_vector and respective unit test 2020-12-12 15:59:27 +01:00
Xavier Arteaga 788ed5ce70 Corrected PDCCH SEGFAULT 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 c635b1e467 Initial NR DCI blind-search 2020-12-12 15:59:27 +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
Xavier Arteaga f9643843a0 SRSENB/UE Fixed NR workers 2020-12-12 15:59:26 +01:00
Xavier Arteaga ac930003be SRSUE: Integrated NR workers 2020-12-12 15:59:26 +01:00
Xavier Arteaga eed9405e40 Moved NR MAX MIMO layers to carrier 2020-12-12 15:59:26 +01:00
Andre Puschmann 07d2bc4fe8 change license header to agnostic version with hint to root LICENSE file 2020-12-12 15:59:25 +01:00
Francisco 66712023bb remove unneeded includes of full rrc asn1 lib 2020-12-12 15:59:25 +01:00
Xavier Arteaga 0396ebae17 Fix UE/ENB DL NR 2020-12-12 15:58:34 +01:00
Xavier Arteaga 8de2870788 Added NR ue_dl, enb_dl and test 2020-12-12 15:58:34 +01:00
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)
2020-12-12 15:58:33 +01:00
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
2020-12-12 15:58:32 +01:00
Francisco Paisana 510959b50f update nr asn1 files, and asn1 tests 2020-12-12 15:58:32 +01:00
David Rupprecht 387a84ff84 Updated missing byte 2020-11-03 10:03:09 +01:00
David Rupprecht b85cb614aa Added test cases for asn1 decoding lib from pcap 2020-11-03 10:03:09 +01:00
Francisco Paisana c7697b62a6 fix asn1_utils_test. arrays used for equal comparison where not being initialized. 2020-10-22 12:33:11 +01:00
Francisco Paisana 698af97ec4 updated asn1 utils to account for conversion from 0 to bitstring. Added asn1 utils test to repository. 2020-10-20 16:29:44 +01:00
Andre Puschmann 48e7734188 phy_dl_test: fix uninit var 2020-10-18 15:56:16 +02:00
Pedro Alvarez b43e724b4c Remove packing/unpacking code for M2AP. 2020-10-08 11:02:50 +01:00
faluco 51b27fc255
Import latest srslog version (#1796)
* - Import latest srslog version.
- Adjusted the nas_test to create logs correctly.
- Remove timestamp formatting now that is provided by srslog.
2020-09-30 15:52:42 +02:00
Andre Puschmann 58ce9d3959 pdcp: adding basic test to check if control PDUs are handled correctly
use a 3 B long status PDU to check if its dropped from the rx'ing entity
2020-09-29 15:29:04 +02:00
faluco f0d651ae8e - Fixed a leak in the MME class not releasing the static byte buffer pool.
- Now the pool gets destroyed on program exit using a unique_ptr.
- Removed manual cleanup() calls in all the code base to free the pool instance.
2020-09-22 18:00:50 +02:00
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
2020-09-03 15:00:36 +02:00
Ismael Gomez 54eed11e1d Refactor decision for extended CSI/SRS 2020-09-03 10:45:06 +02:00
Ismael Gomez e2154d2213 Renamed constants to SRSLTE and use SRSLTE_CFI macros 2020-09-03 10:45:06 +02:00
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
2020-08-27 23:46:28 +02:00
Francisco Paisana 834c0b3929 integrated new observer pattern into phy controller fsm 2020-08-24 22:10:32 +01:00
Francisco Paisana b2313e3631 observer pattern classes. Allows auto and explicit dispatch, and specifying which trigger method to use of an observer. 2020-08-24 22:10:32 +01:00
Francisco Paisana 7cd4f45d62 fsm refactor.
- avoid triggering directly a subfsm
- improved metafunctions
- other cleanups
2020-08-18 16:07:21 +01:00
Francisco Paisana 9146e6ddf1 change method name to resize intervals 2020-08-14 15:06:06 +01:00
Francisco Paisana 4457bbda7e added new asserts to interval interface 2020-08-14 15:06:06 +01:00
Francisco Paisana 8b174ce2f4 changed interval interface to disallow interval::stop < interval::start via an assertion 2020-08-14 15:06:06 +01:00
Francisco Paisana c1755727d7 changed interval method names, and added comments and assertions 2020-08-14 15:06:06 +01:00