Commit Graph

1740 Commits

Author SHA1 Message Date
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 460d7a8f4f fix memory pool test - placed the pool state into a shared_ptr so that the callbacks still have a valid handle when the pool is destroyed 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 eb9814837a fix gtpu test valgrind warning 2021-04-02 17:40:50 +01:00
Francisco a79ca92020 refactor type storage and pool tests 2021-04-02 17:40:50 +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 aed5c51010 fix bug in cc_used_buffers_map in request_pdu(...) 2021-04-02 11:41:08 +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 696de22a28 Change default maximum number of KOs to 100 2021-04-01 13:21:43 +01:00
Pedro Alvarez b2b7d8f617 Set rlf_timer timeout once. Make activity timer expiry also stops rlf_timer 2021-04-01 13:21:43 +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 b8f220258d s1ap - extend s1ap unit test to verify result of passing an invalid mme s1ap ue id 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 67530687e9 Restore RRC release result variable after logging the event. 2021-03-31 19:37:49 +02: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
Francisco d4a223b5b1 s1ap unit test - add correct cause to erab modify response when erab-id is not recognized 2021-03-31 13:31:07 +01:00
Francisco a68c50a282 s1ap - extend s1ap unit test to setup a full ue connection and modify bearer 2021-03-31 13:31:07 +01:00
Francisco 90bba3b85e s1ap - set s1 handover cause as s1 intra system handover triggered 2021-03-31 13:31:07 +01: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 d571d26b0a disable blocking queue in enb::mac when mac::stop() is called. Ignore PRACHs after stop() is called 2021-03-30 18:09:41 +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
Pedro Alvarez a5229a02d1 Make sure RRC identity is set when NAS reads UE context from file. 2021-03-26 16:36:12 +00:00
Pedro Alvarez ca7a38a2ba Remove old context in eNB's RRC if new connection request arrives with the same TMSI 2021-03-26 16:36:12 +00:00
Pedro Alvarez 8e48467a30 Make sure that meas_report_desc is present if ho_active == true in rr.conf 2021-03-26 10:06:38 +00:00
Francisco 1b47bee4c0 handover - avoid halting ho preparation just due to the presence of a handover restriction list or handover request extension field 2021-03-26 00:18:23 +00:00
Francisco 609366afce change sched buffer state update log level to info for SRBs 2021-03-24 11:21:51 +00:00
AlaiaL bbaebd1274 Added a warning in the log when the cpu metrics are not registered due
to the number cpu cores is greater than supported.
2021-03-24 12:01:12 +01:00
AlaiaL c9d1c77e8c - Deleted the magic number of maximum supported cores, now it is a
constexpr.
- When the system has more cores that the maximum supported, the cpu
metrics will not be registered.
2021-03-24 12:01:12 +01:00
AlaiaL 6cd9bba641 Added the cpu metrics to the system metrics. 2021-03-24 12:01:12 +01:00
Ismael Gomez 14bfd55fb9 Restore removed function from ue_db 2021-03-24 09:30:28 +01:00
Xavier Arteaga 5bdf2c93b3 Initial NR PDSCH CSI-RS RE skip and other changes 2021-03-24 09:06:26 +01:00
Pedro Alvarez ea3c3b1d4f Added some checks for the byte buffer allocation in the GTP-U 2021-03-23 16:40:29 +00: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 dd336c53ea changed srsran_warning to srsran_expect. Applied new macro to rlc am 2021-03-23 10:49:28 +00:00
Francisco b5692037a2 created macros for assertions and warnings. The assert macro prints the whole callstack on crash. The warning macro can just log a warning or call an assertion fail depending on the cmake flag STOP_ON_WARNING 2021-03-23 10:49:28 +00:00
Francisco 7595dbaa02 avoid blocking call for pop from UE pool in mac ue. change log lines 2021-03-22 14:58:25 +00: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
Francisco df8ec4ddd5 reduce max coderate for SIB allocations 2021-03-19 20:44:08 +00:00
Francisco 638989ec4d sched - limit max coderate (via an assumed low cqi) for sib and rar allocations 2021-03-19 20:44:08 +00:00
Ismael Gomez 430b7b7b34 Remove unnecessary info 2021-03-19 20:31:34 +00: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 a2e2501424 avoid disabling SRBs in the eNB when the max retx reached signal is sent from the RLC to the RRC 2021-03-19 13:44:28 +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
Pedro Alvarez dde8157bf1 Make sure that S1 Setup request is restarted regardless of which error made the procedure fail. 2021-03-19 10:48:45 +00:00
Francisco d646111aa9 refactor sched dci unit test 2021-03-18 17:04:45 +00:00
Francisco d6bae76698 extend cch allocation unit tests to verify optimal cfi and DCI position selection for 6 PRBs 2021-03-18 17:04:45 +00:00
Francisco d5750f6fe6 refactor - update of clang-tidy project file. automatic clang-tidy refactors 2021-03-18 17:04:45 +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 0d91802495 sched optimization - swap c-arrays for bounded_vector in sched_interface to reduce time performing bzero/memcpy in the scheduler 2021-03-17 19:54:44 +00:00
Francisco c0a90c5aa8 refactored sf result resetting to avoid realloc of memory 2021-03-17 19:54:44 +00:00
faluco 875773556e Fixed a formatting error in a sched entry. 2021-03-17 16:22:19 +01:00
Francisco 1d4e83473e remove check that verifies that SRB0 is always activated in the scheduler. 2021-03-17 14:55:14 +01:00
Francisco c3a4cb37f4 extension of sched benchmark test to allow different testing modes - test rates, benchmark, test different combinations of sched parameters 2021-03-17 12:12:36 +00:00
Francisco ac4d058fbf correct verification of sched rates in sched benchmark test 2021-03-17 12:12:36 +00:00
Francisco d334907afe sched - wrote benchmark to detect regressions in DL/UL data rates, and to analyse the total latency of the scheduler 2021-03-17 12:12:36 +00:00
Francisco 248f05bf08 sched,bugfix - fix optimal cfi computation for sib/rar allocations 2021-03-16 19:27:25 +00:00
Francisco 19a043683c bugfix - fix compilation issue in gcc10. The interfaces don't have virtual dtors 2021-03-16 19:27:25 +00:00
Francisco 544fe03db3 sched,optimization - considering that cfi is static for sib/rar allocations, pick from the start of the tti, the optimal CFI in terms of largest number of CCE positions available 2021-03-16 19:27:25 +00:00
Francisco d0672d03fb bugfix - mac logger was being fetched before a sink was assigned, leading to it printing to the console 2021-03-16 19:27:25 +00:00
Francisco 884c1b04d2 sched,test - add test to verify cch allocator ability to undo last allocation 2021-03-16 19:27:25 +00:00
Francisco 377831da90 bugfix,minor - remove reset of ue cfg during handover 2021-03-16 19:27:25 +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 64e8a17ea8 mac,bugfix - fix incorrect deallocation of PDU 2021-03-12 19:10:15 +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