Commit Graph

3687 Commits

Author SHA1 Message Date
Xavier Arteaga 11b9990224 Added NR DCI packing/unpacking format 0_1 2021-04-22 14:16:46 +02:00
faluco 0afd59a5a0 Replace a string with a const char * in the rlc to_string. 2021-04-22 12:38:14 +02:00
Francisco 289559af82 asn1 fix - fix choice access correct type assert 2021-04-22 10:21:08 +01:00
Francisco ff3fc0826b asn1 fixes and improvements
- use const char* instead of std::string in enumerated<>::to_string() to avoid mallocs.
- Remove the use of "typedef", and use "using" keyword instead.
- Fix rrc_nr::setup_release_c<>::to_string() broken linkage.
2021-04-22 10:21:08 +01:00
David Rupprecht 98914dab6a Allow pdcp lte entity to use 18 bit SN 2021-04-22 09:55:34 +02:00
faluco 7df308c756 Remove two mallocs in the stack:
1) Extend the small buffer to 64bytes for the move_callback class.
2) Replace a std::map for a fixed size circular map in sched_time_pf.
2021-04-21 15:05:48 +02:00
Francisco 28f787f1de extend timer handler unit test to check correct time wheel implementation 2021-04-21 10:02:03 +01:00
Francisco 2b572f5376 fix overwrite of timer timeout when it matches previous time wheel position 2021-04-21 10:02:03 +01:00
Xavier Arteaga 407903e0d6 SRSUE: refactor carrier setting for accepting a dynamic carrier configuration 2021-04-20 21:50:10 +02:00
Xavier Arteaga 47523935f6 Minor NR RRC fixes 2021-04-20 21:50:10 +02:00
Francisco ce47cf5910 fix - re-add log flush to srsran_assert 2021-04-20 16:27:40 +01:00
Francisco 63913ff2b2 remove uneeded assert condition. change pdcp log when notified pdcp pdu doesnt exist to info. 2021-04-20 16:27:40 +01:00
Francisco 9efb959471 bugfix, scheduler - fix bit counter specializations for 32 and 64 bits. 2021-04-20 14:01:19 +01:00
Francisco 6137e4569b fix srsran_assert definition when asserts are disabled 2021-04-20 14:01:05 +01:00
Francisco 3b78bf3730 bugfix - fix memcheck warnings. move instructions with side effects outside of asserts 2021-04-20 14:01:05 +01:00
David Rupprecht a064e85c54 rename common lte header 2021-04-19 22:23:59 +02:00
David Rupprecht 81ad72b0ff Refactor srb and drb handling 2021-04-19 22:23:59 +02:00
David Rupprecht 91ff8a2e6d Add rrc_nr to rlc init function 2021-04-19 22:23:59 +02:00
David Rupprecht 6b41ae7e8b Updated PDCP config struct for rat type 2021-04-19 22:23:59 +02:00
Xavier Arteaga 77b6b60b82 Fix rach_cfg.nof_groupA_preambles 2021-04-19 15:17:04 +02:00
Xavier Arteaga aadbe6d880 Normalise NR PUSCH to maximum Tx power 2021-04-19 15:15:55 +02:00
Xavier Arteaga 53e41a165c Revert zeros around DC REs in NR PDSCH 2021-04-19 15:15:55 +02:00
Xavier Arteaga 93c3dc1cb1 Revert "Demodulator sets LLR to zero for 0.0 symbols"
This reverts commit 1a6e5cdee5.
2021-04-19 15:15:55 +02:00
Xavier Arteaga 1c1d7e2447 Revert "Review soft demodulator zero check"
This reverts commit b8a9a7fc70.
2021-04-19 15:15:55 +02:00
Xavier Arteaga 0999b271ba Added RFNOC based LO frequency offset 2021-04-19 15:15:55 +02:00
Francisco ac375f07d9 add precompiler guards to restrict builtin use to gcc and clang 2021-04-19 13:31:20 +01:00
Francisco 22024ac35d implemented bounded_bitset::find_lowest(...) for both reverse and non-reverse bit ordering. Applied this method to UL scheduling search for PRB intervals 2021-04-19 13:31:20 +01:00
Francisco 3f15fc2811 implemented bounded_bitset::find_first(...) 2021-04-19 13:31:20 +01:00
David Rupprecht db9dd85783 Parse carrier config in NR RRC reconfig 2021-04-19 12:13:37 +02:00
David Rupprecht f42d4dbc28 Refactored carrier config 2021-04-19 12:13:37 +02:00
Andre Puschmann 9009c3439c rlc_um_nr: convert log entries to info if they are expected
dropping a PDU and not being able to build a PDU if the
grant is too small is expected and should therefore not cause a log warning.
2021-04-19 10:44:59 +02:00
Andre Puschmann 936bebcfd7 rrc_nr_utils: fix extraction of HARQ processes from ASN1 reconfig 2021-04-18 15:27:56 +02:00
Xavier Arteaga 53b38fccf9 Fix compile and other 2021-04-17 15:51:11 +02:00
Xavier Arteaga ed0929b46d NR PHY logging minor corrections 2021-04-17 15:51:11 +02:00
Xavier Arteaga 8ffced7e88 NR PHY logging minor corrections 2021-04-17 15:51:11 +02:00
Xavier Arteaga abfc1da921 Multiple NR-PUSCH fixes 2021-04-17 15:51:11 +02:00
Xavier Arteaga 7e06e789d5 Fic NR UCI in the info string 2021-04-17 15:51:11 +02:00
Xavier Arteaga 01ce0718be NR-PUSCH RE mapping correction and NR-SCH detailed grant information 2021-04-17 15:51:11 +02:00
David Rupprecht bfe2ad98ef Added parsing for NR DL HARQ cfg 2021-04-17 12:33:21 +02:00
Andre Puschmann b9ae064338 mac_nr: add DL HARQ
this commit adds a complete DL HARQ entity to the MAC of the UE.
It also refactors demux into an own class and adapts the PHY-MAC
interface to use the new MAC capabilities.
2021-04-16 15:32:09 +02:00
Francisco e3e4564a7e fix inconsistency in use of invalid_sn and status_report_sn throughout rlc am code 2021-04-16 13:54:10 +01:00
Francisco c3ec28002b refactor - integration of segment list in rlc_amd_tx_pdu and pdcp_pdu_info classes 2021-04-16 13:54:10 +01:00
Francisco 7f0083a985 implementation of intrusive list abstract classes to be used in RLC for lists of segments 2021-04-16 13:54:10 +01:00
Francisco b06f16891d use of a single array-based pool of RLC AM PDU segments to build data PDUs, while
avoiding any allocations.
Each segment stores its own PDCP SN and RLC SN and has two pointers,
one for the next segment of the same RLC PDU, and another for the next segment
of the same PDCP PDU.
2021-04-16 13:54:10 +01:00
faluco e1752c0878 Replace the queue in thread pool in favour of a static circular buffer to avoid allocations. 2021-04-16 09:29:44 +02:00
David Rupprecht 1cbd1c9d26 Deleted hardcoded phy config 2021-04-16 09:02:29 +02:00
David Rupprecht fe8727050b Added new rrc_nr to phy flattening functions and fixes 2021-04-16 09:02:29 +02:00
Ismael Gomez 635db8dde1 Initialize metrics in hub 2021-04-15 21:32:35 +02:00
Xavier Arteaga e4e3456d76 Refactored PDSCH/PUSCH decoder for LDPC early stopping 2021-04-15 20:42:41 +02:00
Xavier Arteaga 6c5e28bc19 Optimised AVX512 LDPC decoder hard decision 2021-04-15 20:42:41 +02:00
Xavier Arteaga 422d479852 Added CRC match function and optimised byte packing 2021-04-15 20:42:41 +02:00
Xavier Arteaga 5aa7f9dd8b Condensed LDPC Decoder config arguments into an structure and unified common decoder code 2021-04-15 20:42:41 +02:00
Francisco 1f1233782f timers - fix old gcc compilation issue. Changed free list to intrusive list. 2021-04-15 18:46:42 +01:00
Francisco e37968410e simplification of timers handler design, relying solely on one time wheel. 2021-04-15 18:46:42 +01:00
Francisco 60896e30b5 implementation of time wheel-based timer handler, using a circular array and intrusive list 2021-04-15 18:46:42 +01:00
Ismael Gomez 77b11b82ac
Release UE if no activity in DRB (#2658)
* Count user activity with DRB only and SRBs for initial procedures. Add counter to release user after max KO in UL.
2021-04-15 19:13:01 +02:00
Francisco 4838cd2f5e implement cell measurement bandwidth feature 2021-04-15 17:48:18 +01:00
Francisco 14d32db92f implement Handover direct forwarding path availability configuration feature 2021-04-15 17:48:18 +01:00
faluco 582ad5f6de Replace the std::stack member in the buffer_pool class for a vector to avoid reallocs. 2021-04-15 14:56:56 +02:00
Francisco b8fa1d1b61 fix rrc mobility test 2021-04-15 09:45:31 +01:00
Francisco 66988ffd32 s1ap - simplified erab setup procedure. Handle correctly the failure to setup causes 2021-04-15 09:45:31 +01:00
Francisco f401683960 s1ap - simplified erab modify procedure 2021-04-15 09:45:31 +01:00
Francisco 76978f0d14 s1ap - simplified erab release procedure 2021-04-15 09:45:31 +01:00
Francisco c5fc543516 s1ap - handling of ts1 reloc overall timer. 2021-04-15 09:45:31 +01:00
Xavier Arteaga faa6d01e9d Fix RFNOC compilation 2021-04-15 09:24:10 +02:00
Xavier Arteaga c82f609085 Fix b200mini external clock 2021-04-15 09:24:10 +02:00
Andre Puschmann 44baea6666 mac_nr: add UL HARQ
this patch adds a basic UL HARQ entity for NR.

The patch also updates some interfaces between MAC/RA/HARQ,
i.e. get_temp_crnti().

It also adds a Msg3 unit test.
2021-04-14 13:40:31 +02:00
Andre Puschmann b7146c41b2 nr: add NDI for PUSCH grant to sch cfg struct 2021-04-14 13:40:31 +02:00
faluco a474a0f293 SRSLOG: Avoid calling unordered_map::emplace if element already exists since it will allocate even if the insertion is not going to take place. 2021-04-14 12:41:35 +02:00
Xavier Arteaga 80f5c82b53 Fix formatter test 2021-04-14 08:16:44 +02:00
Xavier Arteaga 7823bfc28c Fix append NR to loggers for NR components 2021-04-14 08:16:44 +02:00
Francisco c2a99a8112 handover - support for handover cancellation causes, check for E-RAB QoS requirements, cancellation of handover if E-RABs are not supported in the target eNB 2021-04-13 21:23:13 +01:00
faluco daad20c9d4 Disable copy and move operations for dyn_node_pool. 2021-04-13 17:36:39 +02:00
faluco a2f6e13138 Add a tag to the string memory pool in fmt to discriminate between pool vs heap allocated buffers. Heap allocated buffers are used as a fallback mechanism when the buffer runs out of space. 2021-04-13 17:36:39 +02:00
faluco 0465f6badd Implement a pool in FMT to avoid allocating heap memory when passing a char* to the backend, usually when formatting a %s argument.
Previously since a char* can have any length, this was managed by FMT by converting it into a std::string.
Now we store it into a configurable size node that can store a fixed size string, otherwise it falls back to std::string.
2021-04-13 17:36:39 +02:00
Xavier Arteaga 2f453b43ba Initial NR PHY interface 2021-04-13 16:02:53 +02:00
Francisco d2c404b166 handover - setup s1ap cause in case of handover failure at the target enb 2021-04-13 09:30:40 +01:00
Francisco 49bd895e29 s1ap - handle invalid or repeated erab ids in s1ap erab release command 2021-04-12 22:07:26 +01:00
Francisco 7842e3bff3 s1ap - add unit test to check correct handling of invalid E-RAB ids in modification request. Fix s1ap in order for the test to pass 2021-04-12 22:07:26 +01:00
Francisco 985846e3bd s1ap - set multiple erab ids cause in replay when s1ap erab modify request has repeated ids. 2021-04-12 22:07:26 +01:00
David Rupprecht 5a3a2a6d6f Added functions for adding phr and tag config 2021-04-12 20:50:30 +02:00
Andre Puschmann 48537f3fe7 pdcp,rlc: increase number of PDCP SDUs for notification from RLC
the current value of 256 limits the number of PDCP SDUs that can be
notified from RLC. The limit is quickly hit when too many SDUs
are in flight. This can cause unwanted log entries and weird PDCP
behaviour.

the patch increases the value to 1024, which still can be too few if
many smaller SDUs are traveling.

The patch also set the log level to warning to quicker spot
misconfigs in logs.

Fixes #2616
2021-04-12 20:09:20 +02:00
Xavier Arteaga 2f8ea05132 SRSUE: Add periodic CQI R10 parsing 2021-04-12 20:08:22 +02:00
Andre Puschmann c9da21c9bb mac_nr: add error handling when unpacking SCH MAC PDU
* only handle PDU if unpacking was successfull
* add TC unpacking with malformed PDU
2021-04-12 18:26:31 +02:00
Xavier Arteaga e989e62c52 Fix NR PDCCH DMRS test 2021-04-12 17:05:53 +02:00
Xavier Arteaga b8a9a7fc70 Review soft demodulator zero check 2021-04-12 17:05:53 +02:00
Xavier Arteaga dd26c6a90e Added more comments for better understanding in NR PDCCH DMRS 2021-04-12 17:05:53 +02:00
Xavier Arteaga 17a3c76540 Fix NR TDD pattern configuration 2021-04-12 17:05:53 +02:00
Xavier Arteaga c84e73541d Offset FFT window for UE DL NR 2021-04-12 17:05:53 +02:00
Xavier Arteaga f799ab6f94 Fix NR UL RV selection 2021-04-12 17:05:53 +02:00
Xavier Arteaga 42dcff45b2 Improve PDCCH NR detection 2021-04-12 17:05:53 +02:00
Xavier Arteaga 1a6e5cdee5 Demodulator sets LLR to zero for 0.0 symbols 2021-04-12 17:05:53 +02:00
Xavier Arteaga 3889f1369f Added partial NR time resource mapping tables 2021-04-12 17:05:53 +02:00
Xavier Arteaga de187d4c88 Fix copy-past issue in srsran_vec_apply_cfo_simd 2021-04-12 17:05:53 +02:00
Xavier Arteaga 2e3c00aa97 NR PDSCH zeroes RE around the DC. Added delay and CFO emulation to phy_dl_nr_test 2021-04-12 17:05:53 +02:00
Xavier Arteaga 667cc0b552 NR PDSCH/PUSCH DMRS estimation precompensates Synch error and CFO before interpolation 2021-04-12 17:05:53 +02:00
Francisco 685c971dc2 fix recursive call to get rb name 2021-04-12 13:21:43 +01:00
Francisco f7a8b8bf94 separate drb srb ids into separate enum types 2021-04-12 13:21:43 +01:00
Francisco 21718af3b6 avoid allocating std::string to get lcid radio bearer name. Refactored the lte radio bearer enum type 2021-04-12 13:21:43 +01:00
Francisco 437db3af03 forbid allocations when dispatching task to thread pool 2021-04-10 15:03:38 +01:00