diff --git a/srsenb/hdr/stack/rrc/rrc_endc.h b/srsenb/hdr/stack/rrc/rrc_endc.h index c5d747cf1..949417e49 100644 --- a/srsenb/hdr/stack/rrc/rrc_endc.h +++ b/srsenb/hdr/stack/rrc/rrc_endc.h @@ -66,8 +66,8 @@ public: bool is_endc_supported(); private: - // Send SgNB addition request to gNB - bool start_sgnb_addition(); + // Send SgNB addition request to gNB (either triggered through MeasReport or upon start) + void start_sgnb_addition(); bool is_endc_activation_running() const { return not is_in_state(); } diff --git a/srsenb/src/stack/rrc/rrc_endc.cc b/srsenb/src/stack/rrc/rrc_endc.cc index d3d812f94..3f6d059f7 100644 --- a/srsenb/src/stack/rrc/rrc_endc.cc +++ b/srsenb/src/stack/rrc/rrc_endc.cc @@ -35,7 +35,12 @@ rrc::ue::rrc_endc::rrc_endc(rrc::ue* outer_ue, const rrc_endc_cfg_t& endc_cfg_) rrc_enb(outer_ue->parent), logger(outer_ue->parent->logger), endc_cfg(endc_cfg_) -{} +{ + // start SgNB activation if B1 events are disabled + if (endc_cfg.act_from_b1_event == false) { + start_sgnb_addition(); + } +} //! Method to add NR fields to a RRC Connection Reconfiguration Message bool rrc::ue::rrc_endc::fill_conn_recfg(asn1::rrc::rrc_conn_recfg_r8_ies_s* conn_recfg) @@ -237,6 +242,11 @@ void rrc::ue::rrc_endc::handle_ue_meas_report(const meas_report_s& msg) return; } + start_sgnb_addition(); +} + +void rrc::ue::rrc_endc::start_sgnb_addition() +{ // Start EN-DC activation using EPS bearer of EUTRA DRB1 rrc_nr_interface_rrc::sgnb_addition_req_params_t params = {}; params.eps_bearer_id =