Commit Graph

870 Commits

Author SHA1 Message Date
Francisco Paisana d39183419c
Separate TPC PUSCH and PUCCH target SINR (#2740)
* separate target pusch and pucch sinr configurations in tpc class and rr.conf
2021-04-27 10:12:40 +01:00
Francisco 86dac9c823 several coverity high and medium impact fixes 2021-04-27 10:11:03 +01:00
AlaiaL d88760f099 Fixes coverity 366620 2021-04-23 21:22:06 +02:00
AlaiaL beaa1b3e24 Fixes coverity 369569 2021-04-23 21:22:06 +02:00
AlaiaL 82788ca094 Fixed issues from coverity:
- 370233
- 370234
- 370239
- 370240
- 370241
- 370242
- 370243
- 370295
2021-04-23 21:22:06 +02: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
faluco 69726bc939 Remove two allocs in the prio queues in sched_time_pf. 2021-04-21 15:05:48 +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
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
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 14d32db92f implement Handover direct forwarding path availability configuration feature 2021-04-15 17:48:18 +01: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
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
Francisco 6d401bc79f handover - check if UE integrity and encryption algorithms are supported in the target eNB, and report handover failure if not. 2021-04-13 21:23:13 +01:00
Francisco 77bd500312 handover - implement and test S1 Handover fail path for the case of invalid QoS config in HO Request message 2021-04-13 09:30:40 +01: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
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 a890a22ccd enb - rnti memory pool now fallbacks to new/delete if rnti-specific memory block is full 2021-04-09 12:54:22 +01:00
Francisco 344bdf3165 allocation of UE rlc and pdcp classes in the ue dedicated memory pool 2021-04-09 12:54:22 +01:00
Francisco 60d5c6df7b implementation of memory pool with individual memory blocks per UE that get accessed via their rnti 2021-04-09 12:54:22 +01:00
Francisco bb9601c13b gtpu - fix gptu manager members destruction order 2021-04-07 22:26:42 +01:00
Francisco b7d4a72ea1 adt - fix circular map clear() and erase(it) functions 2021-04-07 22:26:42 +01:00
Andre Puschmann 7459a65a8e enb,rrc_ue: remove unused variable 2021-04-07 22:19:08 +02:00
Francisco d02cc51e33 use mutex or atomic in running flag to signal the interruption of a thread 2021-04-07 16:11:31 +01:00
Xavier Arteaga 49731ab5a1 Initial NR-DCI refactor
Added NR DCI 1_1 size

Several DCI NR fixes
2021-04-07 16:57:12 +02:00
Francisco cdf72248f3 Reimplement batch-based background object/memory pool
Main changes:
- addition of pool utilities
- The node size/alignment and batch allocation threshold are now runtime arguments
- object pool and memory pool are not anymore based on the same class.
  The object pool cannot use intrusive free list because it would overwrite the object
  memory
2021-04-07 12:02:22 +01:00
Francisco fbeb87c53e remove unused parameters from mac::ue 2021-04-07 12:02:22 +01:00
Francisco b004c2024d integration of object pool in mac::ue for allocation of softbuffers. Definition of common object pool interface class 2021-04-07 12:02:22 +01:00
Francisco ec3cd9ffea adt - added background object pool test, and fix existing bugs related to the creation of pools with objects that are too small to be used in free lists 2021-04-07 12:02:22 +01:00
Francisco d1c5b000dc adt - creation of pre-initialized object pool, that leverages the background memory pool allocator 2021-04-07 12:02:22 +01:00
Francisco 046633674a refactor - removal of stack-gtpu interface, and use of socket manager interface instead 2021-04-02 11:42:50 +01:00
Francisco c24e382c19 Refactor of socket manager class
- use of inheritance to simplify testing
- removal of global network manager
- pass of custon socket manager to s1ap and gtpu ctors
- overhauled the registration of socket fd,callback in socket manager
2021-04-02 11:42:50 +01:00
Francisco 4aac7ac238 use global rx multisocket handler, and remove stack-s1ap interface 2021-04-02 11:42:50 +01:00
Francisco 39de2efa69 multisocket handler - use blocking socket remove method 2021-04-02 11:42:50 +01:00
Francisco bf96d897ee network utils refactor - renaming of socket handle to unique socket and cleanup of its methods 2021-04-02 11:42:50 +01:00
Francisco 8fda69a3dd refactor mac::ue cc_used_buffers_map class to use new circular_map container 2021-04-02 11:41:08 +01:00
Pedro Alvarez e1a852d4b8 Split split RLF timer and Inactivity timer 2021-04-01 13:21:43 +01:00
Pedro Alvarez 47135cb75b Changed counting of KOs to RRC 2021-04-01 13:21:43 +01:00
Pedro Alvarez 8194b5ec73 Added check for consequetive KOs in MAC. Change set_activity_user to pass activity and max KOs to RRC and trigger RLF timeout. 2021-04-01 13:21:43 +01:00
Francisco ec72b310d7 fix mme ue s1ap id initialization 2021-04-01 10:24:34 +01:00
Francisco 23ae9967cf replaced present+value for optional field in s1ap mme_ue_s1ap_id context field 2021-04-01 10:24:34 +01:00
Francisco c3482b45e1 s1ap - handle erroneous enb/mme s1ap ue id in received s1ap messages from the MME 2021-04-01 10:24:34 +01:00
Francisco cc369aca1f sched - handle the case when the CRC is missing and max retx is reached 2021-03-31 20:52:02 +01:00
faluco 54fab314c0 Enhance RRC eNB events:
- Implement a common event "log_rrc" for all RRC events and discriminate by procedure using an enum.
- Log events for connection, reestablishment, reconfig, reject and release.
- Log the corresponding ASN1 message used by each procedure.
- Redefine the JSON object for this event to match the new structure.

Fixed a compilation error detected by the static analyzer in gcc9.3 where bounded_vector::data() was using taking the address of the internal buffer which confused it, prefer to use the data method of std::array.
2021-03-31 19:37:49 +02:00
Pedro Alvarez 8c7aed1f81 Added handling of MSG3 timout exipiry in activity_timer_expired(). Avoid notifying S1AP in that case. 2021-03-31 11:51:26 +01:00
Pedro Alvarez 37699f2215 Send radio connection with UE lost if max retx are reached 2021-03-31 11:51:26 +01:00
Francisco d04a19f8bc refactor - increase code reuse in adt files 2021-03-29 22:11:25 +01:00
Francisco 5eccfad05b gtpu - added comments, updated expected construct, handled in rrc the case a gtpu teid fails to allocate 2021-03-29 10:20:55 +01:00
Francisco 82b34f3b3f gtpu refactor - fix gtpu logging formatting 2021-03-29 10:20:55 +01:00
Francisco 44440cf562 gtpu refactor - use of raii to automatic path switch and teid removal in forwarding. Clean up of gtpu_tunnel_manager methods. 2021-03-29 10:20:55 +01:00
Francisco ab2bd9a2d2 gtpu refactor - handle dl path state activation internally in gtpu tunnel manager class 2021-03-29 10:20:55 +01:00
Francisco cfd24f6a0e gtpu - leverage byte_buffer_pool to store buffered sdus in gtpu 2021-03-29 10:20:55 +01:00
Francisco bdc5094e17 gtpu - added unit test for gtpu_tunnel_manager class 2021-03-29 10:20:55 +01:00
Francisco c201eb7708 use of more space efficient sorted vector structure for lcid tunnels of a rnti 2021-03-29 10:20:55 +01:00
Francisco eba0edea4a creation of static id obj pool class. Application of this class to gtpu tunnels container to avoid allocations 2021-03-29 10:20:55 +01:00
Francisco 3cf5e85b20 create separate class to handle gtpu tunnel creation/deletion/search 2021-03-29 10:20:55 +01:00
Francisco 099a533573 bugfix - verify that TEID exists before trying to access it 2021-03-29 10:20:55 +01:00
Francisco e1523692c2 implementation of concurrent fixed size pool that leverages thread local caches to avoid mutexing 2021-03-27 12:21:08 +00:00
Ismael Gomez 14bfd55fb9 Restore removed function from ue_db 2021-03-24 09:30:28 +01:00
Xavier Arteaga cade7c8104 Removed redundant error traces 2021-03-23 15:11:46 +01:00
Xavier Arteaga c5bb522f11 SRSENB: Add PHY UE DB return codes 2021-03-23 15:11:46 +01:00
Andre Puschmann 1a0891df51 all: check return value of make_byte_buffer() and handle them safely 2021-03-23 14:31:15 +01:00
Francisco 4869b14de3 application of new circular map to mac::ue_db 2021-03-22 14:58:25 +00:00
Codebot 4523ee6087 rename srsLTE to srsRAN 2021-03-21 21:47:01 +01:00
Ismael Gomez 8d2197e751 Increase MAC UE circular buffer 2021-03-19 20:31:34 +00:00
Francisco 2054ad3f3c eliminate old BFS-based PDCCH allocator. Improvement the scheduler speed by ~2x 2021-03-19 16:31:06 +00:00
Francisco 6bec92fbc9 using new DFS-based PDCCH allocator as a default 2021-03-19 16:31:06 +00:00
Francisco 8347cabe4f implemented a DFS-based PDCCH allocator 2021-03-19 16:31:06 +00:00
Francisco a540c56552 gtpu bugfix - avoid erasing indirect tunnel and causing iterator invalidation while iterating list of tunnels 2021-03-19 13:43:21 +00:00
Francisco 977c194cbc gtpu,bugfix - handle the case when gtpu fails to allocate buffer for end marker. Also, added a timer that when expired, it autoremoves the GTPU handover tunnel 2021-03-19 13:43:21 +00:00
Francisco fb48f4484c sched refactor - removal or cleanup of unused sched methods 2021-03-18 17:04:45 +00:00
Francisco 137a21d6b2 sched refactor - use simple enum to represent allocation result. Refactored logging messages when allocation fails. 2021-03-18 17:04:45 +00:00
Francisco c0a90c5aa8 refactored sf result resetting to avoid realloc of memory 2021-03-17 19:54:44 +00:00
Francisco 1f35c4dc8b sched, feature enhancement, bugfix - allow RAR DL grants with variable PRB size
Some bug fixes had to be solved:
- the cfi cannot be dynamic once we set a SIB/paging/RAR allocation. This is too avoid effective coderate to exceed its maximum
- the previous bugfix required adding the feature to cancel the last PDCCH+PDSCH allocation
2021-03-16 19:27:25 +00:00
Francisco 47f1175502 [sched, feature enhancement] - allow variable nof prbs allocated per SIB / Paging message 2021-03-16 19:27:25 +00:00
Francisco 76103065f7 collapse the 2-stage DCI generation process of SIB/Paging/RAR into one single stage in the scheduler. 2021-03-16 19:27:25 +00:00
Francisco 3a4ae3d69d extended broadcast+RAR DCI encoding scheduler tests 2021-03-16 19:27:25 +00:00
Francisco 9601770196 rrc,bugfix - stop scheduling when RLC AM max_retx is achieved 2021-03-15 21:42:47 +01:00
Francisco 16b5e1fd4d fix collision detection of n1pucch for the ACK and SR in the scheduler 2021-03-12 20:07:32 +00:00
Francisco 6feb311e17 remove instantiations of move-constructors and move assignment operators from cc_buffer_handler 2021-03-12 19:10:15 +00:00
Francisco ca7fe1349e remove unnecessary sfinae from bounded_vector. Use bounded_vector for UE cc buffers. Set ue cc used buffers remove_pdu method to private 2021-03-12 19:10:15 +00:00
Francisco d27e0be609 created special class to manage mac::ue currently allocated rx UL buffers. This class avoids mallocs 2021-03-12 19:10:15 +00:00
Francisco 6159cb3817 add assert to ensure a valid ptr is passed to memory pool deallocator 2021-03-12 01:33:44 +00:00
Francisco 20928651c7 created batch allocator that leverages background worker pool 2021-03-12 01:33:44 +00:00
Francisco 3e9f93eb8a refactor - remove old log_filter and logmap libraries from the codebase 2021-03-11 20:10:54 +00:00
Francisco 770021e364 remove uneeded formatting and std::string creation/allocation in scheduler 2021-03-11 15:18:16 +00:00
Francisco fbbbf7886c sched,bugfix - reset harq used for msg3 correctly 2021-03-10 22:42:39 +00:00
Francisco d1483dc0f8 sched,bugfix - fix bitmask formatting. fix msg3 adaptive retx pdcch allocation 2021-03-10 22:42:39 +00:00
Francisco 837c5bdce5 clang tidy update. applied small fixes to warnings from clang-tidy 2021-03-10 16:18:55 +00:00
faluco 173dcdd421 - Import latest srslog version.
- Remove string allocs in some log lines in radio.cc.

Add new tracing buffer capcity options into srsenb and srsue.

Add missing file.
2021-03-10 16:27:33 +01:00