316 Commits (1180d0f24db5129fedac0275b4fcfeb7afa291de)

Author SHA1 Message Date
David Rupprecht 81ad72b0ff Refactor srb and drb handling 4 years ago
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.
4 years ago
Francisco 14d32db92f implement Handover direct forwarding path availability configuration feature 4 years ago
Francisco b8fa1d1b61 fix rrc mobility test 4 years ago
Francisco 66988ffd32 s1ap - simplified erab setup procedure. Handle correctly the failure to setup causes 4 years ago
Francisco f401683960 s1ap - simplified erab modify procedure 4 years ago
Francisco 76978f0d14 s1ap - simplified erab release procedure 4 years ago
Francisco c5fc543516 s1ap - handling of ts1 reloc overall timer. 4 years ago
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 4 years ago
Francisco 6d401bc79f handover - check if UE integrity and encryption algorithms are supported in the target eNB, and report handover failure if not. 4 years ago
Francisco 77bd500312 handover - implement and test S1 Handover fail path for the case of invalid QoS config in HO Request message 4 years ago
Francisco d2c404b166 handover - setup s1ap cause in case of handover failure at the target enb 4 years ago
Francisco 49bd895e29 s1ap - handle invalid or repeated erab ids in s1ap erab release command 4 years ago
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 4 years ago
Francisco 985846e3bd s1ap - set multiple erab ids cause in replay when s1ap erab modify request has repeated ids. 4 years ago
Francisco 60d5c6df7b implementation of memory pool with individual memory blocks per UE that get accessed via their rnti 4 years ago
Andre Puschmann 7459a65a8e enb,rrc_ue: remove unused variable 4 years ago
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
4 years ago
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 4 years ago
Francisco d1c5b000dc adt - creation of pre-initialized object pool, that leverages the background memory pool allocator 4 years ago
Pedro Alvarez e1a852d4b8 Split split RLF timer and Inactivity timer 4 years ago
Pedro Alvarez 47135cb75b Changed counting of KOs to RRC 4 years ago
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. 4 years ago
Francisco c3482b45e1 s1ap - handle erroneous enb/mme s1ap ue id in received s1ap messages from the MME 4 years ago
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.
4 years ago
Pedro Alvarez 8c7aed1f81 Added handling of MSG3 timout exipiry in activity_timer_expired(). Avoid notifying S1AP in that case. 4 years ago
Pedro Alvarez 37699f2215 Send radio connection with UE lost if max retx are reached 4 years ago
Francisco d04a19f8bc refactor - increase code reuse in adt files 4 years ago
Francisco 5eccfad05b gtpu - added comments, updated expected construct, handled in rrc the case a gtpu teid fails to allocate 4 years ago
Francisco e1523692c2 implementation of concurrent fixed size pool that leverages thread local caches to avoid mutexing 4 years ago
Andre Puschmann 1a0891df51 all: check return value of make_byte_buffer() and handle them safely 4 years ago
Codebot 4523ee6087 rename srsLTE to srsRAN 4 years ago
Francisco 9601770196 rrc,bugfix - stop scheduling when RLC AM max_retx is achieved 4 years ago
Francisco 6159cb3817 add assert to ensure a valid ptr is passed to memory pool deallocator 4 years ago
Francisco 20928651c7 created batch allocator that leverages background worker pool 4 years ago
Francisco 3e9f93eb8a refactor - remove old log_filter and logmap libraries from the codebase 4 years ago
Francisco f0ed1e06a8 documentation,bugfix - added documentation to new blocking queues, changed class names, and removed blocking pushes from the critical path 4 years ago
Francisco d1236fd62f stack,optimization - replaced previous block_queue design for new bounded queue in several places in the enb 4 years ago
Francisco c03dbc6742 fix RRC Connection Reestablishment procedure - correctly save old rnti bearer configuration in new rnti 4 years ago
Francisco 290f39d805 fix crnti mac ce handling in the rrc in normal (no handover) case 4 years ago
Francisco a988351f46 move ue pdcp interfaces to separate interfaces header file 4 years ago
Andre Puschmann 46d8ed8742 enb,rrc: delay UE release after RLC maxRetx
this fixes the eNB behaviour when RLC signals maxRetx reached.
By directly releasing the UE, we ignore the fact that the UE
could still have the reestablishment counters running, so
could attempt a reestablishment, which would result in a reject
because we would have destroyed the UE context too early.

this patch delays the removal of the UE to wait at least
until the reestablishment timers are expired.
4 years ago
Pedro Alvarez 976b5c12c1
Releasing the UE when max retransmissions are reached in the RLC. (#2385) 4 years ago
Francisco 6404722b4b convert qci_cfg in srsenb to std::map to allow qci values above 10 4 years ago
faluco a940e169a3 Add the enb_cc_idx value to S1 events. 4 years ago
faluco a4605883f0 Implement second revision of the events and metrics document. 4 years ago
Francisco 23459dee28 Created enb_{rlc/pdcp/gtpu/phy_interfaces.h files. 4 years ago
Francisco 43e57df00b breaking enb_interfaces.h into multiple files on a layer basis. Created enb_rrc_interfaces.h, enb_mac_interfaces.h and enb_s1ap_interfaces.h 4 years ago
Francisco 3265d940ec remove byte buffer pool cached member variables as they are unnecessary now. 4 years ago
Francisco 9e25e95545 fix S1AP UE Capability Indication message. Created helper to log received S1AP messages 4 years ago
Francisco 78d1b8083a fix GTPU tunneling. Avoid forwarding packets to PDCP while the PDCP bearer is not yet created 4 years ago
faluco 79eca0980d - Ported fsm.h to srslog.
- Adapted and removed old loggers in tests and code that used fsm.h
4 years ago
faluco 96c07a69c0 Report the RLF event to the JSON event file in the enb. 4 years ago
faluco ac62e3c398 Fix the priority of logging levels in places where we before logging we check if a certain log level is enabled. 4 years ago
herlesupreeth 47fff7226a Send NAS PDU in E-RAB Release Command and issue RRCConnectionReconfiguration to UE
This commit addresses the following points

- If a NAS-PDU IE is contained in the E-RAB RELEASE COMMAND message, the eNB shall pass it to the UE.
- Issue RRCConnectionReconfiguration for the DRB to be removed
- Cleaning of DRB in RLC and GTP-U
- Fix for Malformed E-RAB Setup Response upon reaching max. DRBs
4 years ago
Francisco 2befbd1825 setup of forwarding tunnels during enb s1 handover 4 years ago
faluco 711438f756
Port enb specific classes to use srslog (#2155)
* - Started porting the enb PHY layer to use srslog loggers.
- Updated srslog to manage the none level.

* Finished porting enb phy layer including the NR part.

* Ported MAC, GTPU, PDCP, RLC and S1AP enb classes to use srslog.

* Use new stack logger.

* Ported the enb RRC clases to use srslog.

* Remove unused log macros.

* Replace loggers in sched, sched_carrier, sched_helpers.

* Replaced loggers in sched grid.

* Replaced loggers in sched harq.

* Replaced loggers in sched ue.

* Replaced loggers in sched ue ctrl.

* Replace loggers in sched ue ctrl TPC.

* Replaced loggers in sched subclasses.

* Replaced loggers in rrc_meascfg_test

* Configure loggers in rrc_mobility_test.

* Fix compilation errors left out after the rebase.

* - Implement a custom log sink that will serve as a test spy to intercept and count the number of error and warning log entries.
- Adapt the erab_test_setup and rrc_mobility tests to use this new class and make them pass again.

* - Remove trailing new lines introduced in the rebase.
- Ported the sched_ue_cell class to srslog.

* Remove unused log member.

* Ported mac tests to srslog.

* - Removed remaining trailing newlines from log entries.

* Fix compiler errors detected in CI.

* Fix another static variable without definition passed to log lines.

* Fixed a bug in srslog::flush that would never end when the backend queue is full.

* Fetch the RRC logger instead of injecting it in the constructor.
4 years ago
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
4 years ago
Francisco Paisana 9c7c190074 when the rrc fails to allocate the ue cell resources, it should erase the ue from all stack layers 4 years ago
Francisco Paisana 0761a8f08b Add RLF-Report handling functions to srsENB 4 years ago
Francisco Paisana 434bdfca68 decoupled srsenb rrc ue mac controller from the rrc::ue class 4 years ago
Francisco Paisana f8b7351e1b implementation of object memory pool via class-specific operator new/delete 4 years ago
Francisco Paisana 8912a8ce6c added extra comments to memory pool code. generalized object pool to mutexed and non-mutexed cases 4 years ago
Francisco Paisana a73cbcdc9d added mem_pool for growing object pools. Applied the mem pool to the rrc::ue creation 4 years ago
Francisco Paisana 2abe486e18 separate control loops for PUCCH and PUSCH TPC 4 years ago
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.
4 years ago
Francisco 43e0a3209d fill enb rrc metrics with drb info 4 years ago
Pedro Alvarez 7eebd71627 Added S1AP E-RAB release command/response handling to srsENB.
Added the ability to srsEPC to send the E-RAB release command.
4 years ago
David Rupprecht 848496bb0f Moved get_earfcn to srslte get_carrier_freq func 4 years ago
Xavier Arteaga b501f2eeaf SRSENB/UE: Added NR workers 4 years ago
Andre Puschmann 07d2bc4fe8 change license header to agnostic version with hint to root LICENSE file 4 years ago
Francisco 7a74bf28d1 forward declare s1ap types in enb interfaces 4 years ago
Francisco 66712023bb remove unneeded includes of full rrc asn1 lib 4 years ago
Francisco 68eda336bd remove ENB_METRICS_MAX_USERS compile time macro and use run-time variable to set maximum number of UEs the srseNB can have connected at a given instant. 4 years ago
Francisco 324cb80cac rename cell_info_common->enb_cell_common and cell_ctxt_dedicated->ue_cell_ded 4 years ago
yagoda bdc1964335 consolidating RRC eMBMS configuration into single function, setting some parameters to const 4 years ago
yagoda b90574975b refactoring asn1 eMBMS code, removing asn1 from PHY and MAC in eNodeB 4 years ago
Francisco 92c1c2a182 more efficient measObjToAddModList reconfiguration by ensuring consistency in EARFCN ordering 4 years ago
Francisco 68d463b08f remove var_meas_cfg_t class 4 years ago
Francisco 25bfb6d84d move rrc measconfig handling functions to separate file. Update measconfig tests 4 years ago
Francisco 1cb65f07f1 enable meas gaps in RRC and enb parser 4 years ago
Francisco Paisana bf7c587e4f add UL 64QAM support to eNB RRC and scheduler 4 years ago
Francisco Paisana 510959b50f update nr asn1 files, and asn1 tests 4 years ago
Francisco Paisana 980278fdec add comments regarding radio resource asn1 setting in the eNB 4 years ago
Francisco Paisana b40a5a958e use common function to fill rrc reconf message in handover 4 years ago
Francisco Paisana 836e7d7ede refactor scell addition in the srsenb::rrc to follow the same style of other rrc recfg fields 4 years ago
Francisco Paisana a8e11d7991 removal of the special case for rrc reconf update 4 years ago
Francisco Paisana f26b5ccde7 fix drb reestablishment during handover 4 years ago
Francisco Paisana 7bf196a6e0 removal of srb handling from srsenb::rrc::bearer_cfg_handler 4 years ago
Francisco Paisana 2ef1e286b2 fix set of rrc reconf message radio resource cfg fields 4 years ago
Francisco Paisana 890113fd32 now the rrc enb is using a common function for rr_cfg reconf for the first reconf message 4 years ago
Francisco Paisana ce78fa82ce now the rrc enb is using a common function for rr_cfg setup/reest 4 years ago
Francisco Paisana 97f2e4336e refactor of functions for filling the asn1 radio resource config structs. This functions are used during rrc setup/reest/reconf 4 years ago
Francisco Paisana 1ce928ab2e use of current / future ue sched config structs in the srsenb::rrc::ue::mac_controller as an approach to deal with the multi-step mac reconfiguration of the UE 4 years ago
Francisco Paisana 1e6d902873 cleanup of srsenb::rrc::ue::mac_controller api 4 years ago
Francisco Paisana f1bdf33d10 addition of cells provided in cell_meas_list of rr.conf to cellsToAddModList in the rrc reconfiguration message 4 years ago
Francisco Paisana b7ed8b1858 - added react method to to_state<...> transitions
- s1 handover composite state simplified
- the eNB now starts a HO cancellation when it receives an invalid
Handover Command
- the FSM log now prints the current state when it receives an unhandled
event
4 years ago
Francisco Paisana 74c18ecf6c implementation of SCell Deactivation 4 years ago
Francisco Paisana c46402c836 fix phy configuration during handover on srsenb. The function srsenb::rrc::ue::fill_scell_to_addmod_list assumes that the phy_cfg of the PCell is up-to-date, which was not the case. With this PR, the srsenb rrc updates the phy_cfg before the ho cmd is sent, but, in the case of intra-enb ho, the updates are not submitted to the phy before the reception of the crnti mac ce 4 years ago
Francisco Paisana 0f51d70aac fix measObj addition in srsenb. Now the enb considers both scells and meas_cells in the rr.conf 4 years ago
Francisco Paisana d42cdca729 fix scell activation in the phy during intra-enb handover. 4 years ago
Francisco Paisana 4c88404801 fix measurement report handling in case of intra enb handover 4 years ago
Francisco Paisana 942c28881d converted member method of list of cells in the enb to a free function 4 years ago
Francisco Paisana 3a924a1d80 avoid sending cellsToAddModList if cell offsets are zero 4 years ago
Francisco Paisana da70c0fdaf fix cellsToAddModList handling. Now the eNB always adds PCell+SCells as measObjects in the RRC Reconfiguration messages. It may also further include cellsToAddModList if they are provided in the rr.conf file 4 years ago
Francisco Paisana 141960fbda remove unnecessary shared_ptrs and use value semantics instead for the var_meas_cfg of the different enb cells 4 years ago
Ismael Gomez 59b6301cc8 Remove legacy arbritrary 1s timeout for eNB requests 4 years ago
Francisco Paisana fddcc3d8ea In the case of Handover, postpone the activation of the CQI and SR config present in the HO command for after the RA proc completion to the target eNB 4 years ago
Francisco Paisana 13caf287f9 fix S1 Handover with UE CA. The HandoverPreparation message was not being filled correctly 4 years ago
Francisco Paisana cc469fc7a3 fix reestablishment after S1 handover by setting ncc accordingly 4 years ago
Francisco Paisana 0036941af4 added extra state to S1 target enb mobility FSM. Accounts for out-of-order arrival of MMEStatusTransfer. Also, now we avoid creating DRBs before the MMEStatusTransfer 4 years ago
Francisco Paisana bb5dd92dca implemented s1 handover cancellation procedure to force the target enb to release the ue ctxt 4 years ago
Francisco Paisana 8c9e596f89 refactored s1ap handover request interface. cleaned up rrc tenb s1 handover code 4 years ago
Francisco Paisana 7cd4f45d62 fsm refactor.
- avoid triggering directly a subfsm
- improved metafunctions
- other cleanups
4 years ago
Francisco Paisana 5d1343fe75 implemented S1 bearer status transfer 4 years ago
Francisco Paisana db8af399f8 extended rrc tenb s1 handover test. implemented layer reconfig during s1 handover 4 years ago
Francisco Paisana 7605c7df23 added s1ap handover notification, fixed s1ap asn1 bug, and fixed bad fields for admitted erabs in ho req ack 4 years ago
Francisco Paisana 26f46ea067 add S1 Handover Request handling in target eNB 4 years ago
Francisco Paisana 5e06430455 removal of stack handler interface 5 years ago
Pedro Alvarez 89b6e0f714 Send paging message to all cells. 5 years ago
Francisco Paisana fe8f8be62d apply separate cqi configurations to scells 5 years ago
Francisco Paisana e550bf726d updated fsm to allow enter methods to receive event that caused them 5 years ago
Francisco Paisana 97d20ca579 remove obsolete bearer cfg methods 5 years ago
Francisco Paisana 0929a9de62 created rrc mac_controller class to handle the configuration of scheduler 5 years ago
Ismael Gomez 493b7ea2da Remove SNR threshold based link failure detection 5 years ago
Pedro Alvarez fb088a8c54 Restoring PDCP state only when using RLC AM. 5 years ago
Pedro Alvarez 217f16d137 Getting PDCP state on re-establishment. 5 years ago
Pedro Alvarez 33567d81db Added interface to get internal PDCP state. 5 years ago
Ismael Gomez 60b5fb9a74 Refactor variable name 5 years ago
Pedro Alvarez 20c5ea7d17 Fix warning with GCC 10.1 with EEA/EIA prefrence list. 5 years ago
Francisco Paisana 7ce23e0afb extend handover intraenb handover fsm to account for multiple C-RNTI CEs 5 years ago
Francisco Paisana e4a91a207d remove unused variables 5 years ago
Francisco Paisana b843585abc add srsgnb stack class 5 years ago
Francisco Paisana 613003ac53 add srsenb::rrc class 5 years ago
Pedro Alvarez 960c0e97cd Added handling of RRC re-establishment to srsENB.
* Added the appropriate code for handling and sending the
   re-establishment procedure messages to rrc_ue.c/.h.
 * Triggered RRC reconfiguration after the reception of RRC
   re-establishment complete
 * Refreshed K_eNB at the reception of re-establishment
   request
 * Changed the mapping of TEIDs to RNTIs in the GTP-U layer,
   as the RNTI might change with reestablishment.
5 years ago
Francisco Paisana 860174a819 remove comment and changed handover_type enum 5 years ago
Francisco Paisana b37923312e added intraenb handover fsm and respective test 5 years ago
Francisco Paisana 65ef16c7f1 void sending rrc connection release as msg4 5 years ago
Francisco Paisana 61680d64d7 move rrc::ue to separate file 5 years ago
Pedro Alvarez 51f8ba60da Make MBMS MCS configurable for the eNB. 5 years ago
Francisco Paisana f43985b6cd small updates for testing handover and configuring the rrc 5 years ago
Francisco Paisana f2af447b1a use of unique_byte_buffer for sib scheduling to allow for padding 5 years ago
Francisco Paisana 598bad1f0e changed rrc ue cfg files names 5 years ago
Francisco Paisana ea5ba93f25 changed file names 5 years ago
Francisco Paisana d43448e8a1 created security cfg handling class for rrc ue and refactor bearer_list handling 5 years ago
Francisco Paisana 09cafaa4bb update ded_info_nas_list handling 5 years ago
Francisco Paisana 0515229240 perform mac bearer addiction via the bearer handler class 5 years ago
Francisco Paisana 6bcb5910c9 usage of new bearer list cfg class for srb1/srb2 setup 5 years ago
Francisco Paisana ca0db7fffe created generic methods to apply toaddmodlist and removelists. 5 years ago
Francisco Paisana c65c081b51 created separate files to handle rrc bearers 5 years ago